Read, interpret, and create basic FHIR resources for health data exchange
FHIR (Fast Healthcare Interoperability Resources) is the global standard for health data exchange. Every health AI system consumes or produces FHIR data. This skill teaches you to read, interpret, and create basic FHIR resources — the atoms of modern health data.
After completing this skill, you will be able to:
This skill is foundational for anyone working with health data systems. Whether you're building AI models, integrating hospital systems, or analyzing health data dashboards, FHIR is the language everything speaks. In African health systems transitioning from paper to digital, understanding FHIR is the bridge.
Open the FHIR specification at https://www.hl7.org/fhir/resourcelist.html and familiarize yourself with these 5 resource types:
| Resource | What It Represents | Example |
|---|---|---|
| Patient | A person receiving care | Name, DOB, gender, identifier |
| Observation | A measurement or finding | Blood pressure, lab result, vital sign |
| Condition | A diagnosis or problem | "Traumatic brain injury, mild" |
| Encounter | A clinical interaction | ER visit, outpatient appointment |
| DiagnosticReport | A collection of findings | Radiology report, lab panel |
Given this Patient resource, extract the clinical information:
{
"resourceType": "Patient",
"id": "example-liberia-001",
"identifier": [{
"system": "http://hospital.liberia.gov/patients",
"value": "UL-MED-2026-0042"
}],
"name": [{"family": "Johnson", "given": ["Emmanuel"]}],
"gender": "male",
"birthDate": "1998-03-15",
"address": [{"city": "Monrovia", "country": "LR"}]
}
Questions to answer:
Take a sample paper patient record (from your institution or use the template in assets/paper-record-template.pdf) and convert it to a valid FHIR Patient JSON resource. Include at minimum: name, gender, birthDate, identifier, and address.
Create an Observation resource for a Glasgow Coma Scale (GCS) score that references the Patient from Step 3:
{
"resourceType": "Observation",
"status": "final",
"code": {
"coding": [{"system": "http://loinc.org", "code": "9269-2", "display": "Glasgow coma score total"}]
},
"subject": {"reference": "Patient/example-liberia-001"},
"valueQuantity": {"value": 14, "unit": "score"}
}
Note how subject.reference links this observation to a specific patient.
Use the FHIR validator at https://validator.fhir.org/ to check that your Patient and Observation resources are valid FHIR.
| Criterion | Meets Standard | Below Standard |
|---|---|---|
| Patient resource valid | Passes FHIR validator | Contains structural errors |
| All required fields present | name, gender, birthDate, identifier | Missing required fields |
| Observation correctly references Patient | Valid reference format | Broken or missing reference |
| Clinical interpretation correct | All questions answered accurately | Errors in interpretation |
name.family (surname) with name.given (first names) — given is an arraybirthDate uses ISO 8601 format (YYYY-MM-DD)resourceType fielddhis2-data-entry — How DHIS2 aggregates FHIR-compatible datadigitalize-paper-records — Systematic approach to paper-to-digital conversionconsent-form-design — Data governance before you start collecting FHIR data