FHIR R4 DiagnosticReport example: lab panel
DiagnosticReport is the report as a whole: what was ordered, who issued it and when. The individual values are Observations listed in result; the report does not repeat them.
The DiagnosticReport in JSON
{
"resourceType": "DiagnosticReport",
"id": "lipid-panel",
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "LAB",
"display": "Laboratory"
}
]
}
],
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "24331-1",
"display": "Lipid 1996 panel - Serum or Plasma"
}
],
"text": "Lipid panel"
},
"subject": {
"reference": "Patient/example",
"display": "Jane Doe"
},
"effectiveDateTime": "2026-10-02T07:45:00-05:00",
"issued": "2026-10-02T13:10:00-05:00",
"performer": [
{
"reference": "Organization/lab",
"display": "Springfield Clinical Laboratory"
}
],
"result": [
{
"reference": "Observation/cholesterol",
"display": "Cholesterol"
},
{
"reference": "Observation/triglyceride",
"display": "Triglyceride"
},
{
"reference": "Observation/hdl",
"display": "HDL cholesterol"
},
{
"reference": "Observation/ldl",
"display": "LDL cholesterol (calculated)"
}
],
"conclusion": "Results reviewed."
}
Validator result: raw JSON ยท open the validator
- informationNo errors: this DiagnosticReport matches the FHIR R4 structure checked here.
The elements that matter
| Element | Cardinality | Notes |
|---|---|---|
status | 1..1 | final, preliminary, amended and others. |
code | 1..1 | The panel or test: LOINC 24331-1 for a lipid panel. |
result | 0..* | References to the Observations; each one is a separate resource. |
issued | 0..1 | When this version of the report was released. |
presentedForm | 0..* | The original PDF, if you keep it, as an Attachment. |
To send the report and its results together, put them in one transaction Bundle so the references resolve on the server.
The full definition is in the FHIR R4 DiagnosticReport specification.
Common mistakes and the errors they cause
References as strings
A Reference is an object with a reference element, not a bare string.
- error
DiagnosticReport.result[0]Expected a JSON object here (a FHIR complex type such as Reference or CodeableConcept), not a plain value.
Missing code
DiagnosticReport.code is 1..1.
- error
DiagnosticReport.codeRequired element is missing.
Status outside the value set
completed belongs to other resources; reports use final.
- error
DiagnosticReport.statusDiagnosticReport.status 'completed' is not in the required value set (amended, appended, cancelled, corrected, entered-in-error, final, partial, preliminary, registered, unknown).
Store it in a real FHIR R4 serverA free sandbox key gives you 30 synthetic patients and the full API, including
Get a free API keyPOST /fhir/R4/DiagnosticReport and $validate.More examples
- Patient resource example
- Observation example: blood pressure
- Observation example: laboratory result
- Condition resource example
- MedicationStatement example
- AllergyIntolerance example
- Immunization resource example
- Encounter resource example
Related guides
- How to import laboratory results into a FHIR recordTutorial: import a lab report as CSV and as HL7 v2 ORU^R01 into FHIR R4 Observations with LOINC codes and reference ranges, handle unmapped markers and resent reports, and trace each result to its laboratory.
- How to integrate clinic systems with a FHIR backendTutorial: connect a clinic EMR to patients' FHIR R4 records โ directory of doctors, matching by record number, a visit as one transaction with the doctor as author, lab reports, other providers' data and webhooks.