Download now
Preview: proposed, may change
What this page describes is not live yet. Build against it together with your YOU(th) contact, who tells you when it is.

FHIR

A checkup as a FHIR bundle and a member as a Patient: the resources, codes and values.

A checkup reaches you as a FHIR Bundle, and a member as a FHIR Patient: in a delivery that carries the resource, or from the read API.

curl https://api.example.com/v1/fhir/checkups/64d866f3-0c88-485c-bfe6-3339df1d224a \  --header "Authorization: Bearer $YOUTH_ACCESS_TOKEN"

Resources are FHIR R4, checked against the R4B structures. YOU(th) never sends or answers a resource that fails that check. Passing it does not certify a resource against any profile or for clinical use.

A checkup: Bundle

A Bundle of type collection, with a timestamp. The bundle only packs the resources together: its own id does not name the checkup.

ResourceOne forHolds
PatientThe memberid, an identifier, active, and birthDate and gender where known
DiagnosticReportThe checkupid and identifier: the checkup's id. status final. category: the checkup type. code.text: the checkup's name. effectiveDateTime: when it was completed. issued. result: its Observations
ObservationEach measurementThe biomarker's code, its value, and effectiveDateTime: when it was measured
  • Every entry has a fullUrl of the form urn:uuid:<uuid>, stable for that resource. References between resources use it, so they resolve inside the bundle. Resource ids are YOU(th)'s ids.
  • A measurement's code is the biomarker's code, such as heart_rate, in YOU(th)'s biomarker code system; Biomarkers lists them. Codes are open: new biomarkers can appear at any time; keep a code you do not know.
  • A number is a valueQuantity: the unit as text, plus system http://unitsofmeasure.org and the UCUM code where the unit is valid UCUM (bpm is /min, mmHg is mm[Hg]).
  • A category, such as a risk level low, is a valueCodeableConcept, coded in a YOU(th) code system. A category is a classification, never a diagnosis.
  • Blood pressure is one Observation: code LOINC 85354-9 beside YOU(th)'s blood_pressure, with two components, systolic LOINC 8480-6 and diastolic LOINC 8462-4. When only one side was measured, both components are still there, and the missing one has a dataAbsentReason of unknown (system http://terminology.hl7.org/CodeSystem/data-absent-reason) instead of a value.

In this example, shortened, the blood pressure was measured on one side only:

{  "resourceType": "Bundle",  "id": "90970514-fbcb-4c07-aee3-3778f4dc594a",  "type": "collection",  "timestamp": "2026-10-01T09:30:00Z",  "entry": [    {      "fullUrl": "urn:uuid:797790be-4a7b-4aeb-a554-e2685ee57942",      "resource": {        "resourceType": "Patient",        "id": "cfefb422-ac79-4cb9-a849-e80f8a6f21cd",        "identifier": [          {            "system": "https://example.com/fhir/patients",            "value": "cfefb422-ac79-4cb9-a849-e80f8a6f21cd"          }        ],        "active": true,        "birthDate": "1988-04-12",        "gender": "female"      }    },    {      "fullUrl": "urn:uuid:3bc83773-8e40-465d-b194-5b52c797f59d",      "resource": {        "resourceType": "DiagnosticReport",        "id": "64d866f3-0c88-485c-bfe6-3339df1d224a",        "identifier": [          {            "system": "https://example.com/fhir/checkups",            "value": "64d866f3-0c88-485c-bfe6-3339df1d224a"          }        ],        "status": "final",        "category": [          {            "coding": [              {                "system": "https://example.com/fhir/CodeSystem/checkup-type",                "code": "digital",                "display": "Digital checkup"              }            ]          }        ],        "code": { "text": "Digital checkup" },        "subject": { "reference": "urn:uuid:797790be-4a7b-4aeb-a554-e2685ee57942" },        "effectiveDateTime": "2026-10-01T09:28:00Z",        "issued": "2026-10-01T09:30:00Z",        "result": [          { "reference": "urn:uuid:c47f1291-702c-42a1-a0f6-bbf4cb4eee15" },          { "reference": "urn:uuid:d0851610-7047-40c5-a486-a80dacdbe56c" },          { "reference": "urn:uuid:960272da-d72c-413b-92ff-83acdf46709e" }        ]      }    },    {      "fullUrl": "urn:uuid:c47f1291-702c-42a1-a0f6-bbf4cb4eee15",      "resource": {        "resourceType": "Observation",        "id": "119d03ca-128d-4a26-8924-fa76fa92fbfe",        "status": "final",        "code": {          "coding": [            { "system": "https://example.com/fhir/CodeSystem/biomarkers", "code": "heart_rate" }          ]        },        "subject": { "reference": "urn:uuid:797790be-4a7b-4aeb-a554-e2685ee57942" },        "effectiveDateTime": "2026-10-01T09:24:00Z",        "valueQuantity": {          "value": 64,          "unit": "bpm",          "system": "http://unitsofmeasure.org",          "code": "/min"        }      }    },    {      "fullUrl": "urn:uuid:d0851610-7047-40c5-a486-a80dacdbe56c",      "resource": {        "resourceType": "Observation",        "id": "c3a1f0d2-8e4b-5b7a-9f61-2d0e7c5b4a38",        "status": "final",        "code": {          "coding": [            {              "system": "https://example.com/fhir/CodeSystem/biomarkers",              "code": "blood_pressure"            },            { "system": "http://loinc.org", "code": "85354-9" }          ]        },        "subject": { "reference": "urn:uuid:797790be-4a7b-4aeb-a554-e2685ee57942" },        "effectiveDateTime": "2026-10-01T09:26:00Z",        "component": [          {            "code": { "coding": [{ "system": "http://loinc.org", "code": "8480-6" }] },            "valueQuantity": {              "value": 122,              "unit": "mmHg",              "system": "http://unitsofmeasure.org",              "code": "mm[Hg]"            }          },          {            "code": { "coding": [{ "system": "http://loinc.org", "code": "8462-4" }] },            "dataAbsentReason": {              "coding": [                {                  "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason",                  "code": "unknown"                }              ]            }          }        ]      }    },    {      "fullUrl": "urn:uuid:960272da-d72c-413b-92ff-83acdf46709e",      "resource": {        "resourceType": "Observation",        "id": "cd127997-4727-4795-b34c-227ac825d3e0",        "status": "final",        "code": {          "coding": [            {              "system": "https://example.com/fhir/CodeSystem/biomarkers",              "code": "high_fasting_glucose_risk"            }          ]        },        "subject": { "reference": "urn:uuid:797790be-4a7b-4aeb-a554-e2685ee57942" },        "effectiveDateTime": "2026-10-01T09:25:00Z",        "valueCodeableConcept": {          "coding": [{ "system": "https://example.com/fhir/CodeSystem/risk-level", "code": "low" }],          "text": "low"        }      }    }  ]}

A member: Patient

GET /v1/fhir/Patient/{patient_id} and Patient.registered give the same Patient as in the bundle: id, identifier, active, and birthDate and gender where known. No name, and no extensions.

Not decided yet: the addresses of YOU(th)'s code and identifier systems, shown under example.com; whether every checkup bundle carries the Patient; and whether measurements other than blood pressure will carry LOINC codes beside YOU(th)'s own. Adding a coding never breaks a receiver that ignores codings it does not know.