R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.5.0: R4 Ballot #2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

10.3 Resource DiagnosticReport - Content

Orders and Observations Work GroupMaturity Level: 3 Trial Use Compartments: Device, Encounter, Patient, Practitioner

The findings and interpretation of diagnostic tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.

This resource is an event resource from a FHIR workflow perspective - see Workflow. It is the intent of the Orders and Observation Workgroup to align this resource with the workflow pattern for event resources.

A diagnostic report is the set of information that is typically provided by a diagnostic service when investigations are complete. The information includes a mix of atomic results, text reports, images, and codes. The mix varies depending on the nature of the diagnostic procedure, and sometimes on the nature of the outcomes for a particular investigation. In FHIR, the report can be conveyed in a variety of ways including a Document, RESTful API, or Messaging framework. Included within each of these, would be the DiagnosticReport resource itself.

The DiagnosticReport resource has information about the diagnostic report itself, and about the subject and, in the case of laboratory tests, the specimen of the report. It can also refer to the request details and atomic observations details or image instances. Report conclusions can be expressed as a simple text blob, structured coded data or as an attached fully formatted report such as a PDF.

The DiagnosticReport resource is suitable for the following kinds of diagnostic reports:

  • Laboratory (Clinical Chemistry, Hematology, Microbiology, etc.)
  • Pathology / Histopathology / related disciplines
  • Imaging Investigations (x-ray, CT, MRI etc.)
  • Other diagnostics - Cardiology, Gastroenterology etc.

The DiagnosticReport resource is not intended to support cumulative result presentation (tabular presentation of past and present results in the resource). The DiagnosticReport resource does not yet provide full support for detailed structured reports of sequencing; this is planned for a future release.

Diagnostic Report Names

The words "tests", "results", "observations", "panels" and "batteries" are often used interchangeably when describing the various parts of a diagnostic report. This leads to much confusion. The naming confusion is worsened because of the wide variety of forms that the result of a diagnostic investigation can take, as described above. Languages other than English have their own variations on this theme.

This resource uses one particular set of terms. A practitioner "requests" a set of "tests". The diagnostic service returns a "report" which may contain a "narrative" - a written summary of the outcomes, and/or "results" - the individual pieces of atomic data which each are "observations". The results are assembled in "groups" which are nested structures of Observations (traditionally referred to as "panels" or " batteries" by laboratories) that can be used to represent relationships between the individual data items.

Note that many diagnostic processes are procedures that generate observations and diagnostic reports. In many cases, such an observation does not require an explicit representation of the procedure used to create the observation, but where there are details of interest about how the diagnostic procedure was performed, the Procedure resource is used to describe the activity.

In contrast to the Observation resource, the DiagnosticReport resource typically includes additional clinical context and some mix of atomic results, images, imaging reports, textual and coded interpretation, and formatted representations. Laboratory reports, pathology reports, and imaging reports should be represented using the DiagnosticReport resource. The Observation resource is referenced by the DiagnosticReport to provide the atomic results for a particular investigation.

If you have a highly structured report, then use DiagnosticReport - it has data and workflow support. Details about the request for a diagnostic investigation are captured in the various "request" resources (e.g., the ServiceRequest) and allow the report to connect to clinical workflows. For more narrative driven reports with less work flow (histology/mortuary, etc.), the Composition resource would be more appropriate.

Image and media representations of the report and supporting images are referenced in the DiagnosticReport resource. The details and actual image instances can be referenced directly in Diagnostic report using the "imaging" element or by indirect reference through the ImagingStudy resources which represent the content produced in a DICOM imaging study or set of DICOM Instances for a patient.

This resource is referenced by CarePlan, ChargeItem, ClinicalImpression, Communication, CommunicationRequest, Condition, Contract, DeviceRequest, DeviceUseStatement, FamilyMemberHistory, GuidanceResponse, ImagingStudy, Immunization, MedicationAdministration, MedicationStatement, Procedure, RequestGroup, RiskAssessment, ServiceRequest and SupplyRequest

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport TUDomainResourceA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness identifier for report
... basedOn 0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!Σ1..1coderegistered | partial | preliminary | final +
DiagnosticReportStatus (Required)
... category Σ0..1CodeableConceptService category
Diagnostic Service Section Codes (Example)
... code Σ1..1CodeableConceptName/Code for this diagnostic report
LOINC Diagnostic Report Codes (Preferred)
... subject Σ0..1Reference(Patient | Group | Device | Location)The subject of the report - usually, but not always, the patient
... context Σ0..1Reference(Encounter | EpisodeOfCare)Health care event when test ordered
... effective[x] Σ0..1Clinically relevant time/time-period for report
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantDateTime this version was made
... performer Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Responsible Diagnostic Service
... resultsInterpreter Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen 0..*Reference(Specimen)Specimens this report is based on
... result 0..*Reference(Observation)Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media Σ0..*BackboneElementKey images associated with this report
.... comment 0..1stringComment about the image (e.g. explanation)
.... link Σ1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical conclusion (interpretation) of test results
... conclusionCode 0..*CodeableConceptCodes for the clinical conclusion of test results
SNOMED CT Clinical Findings (Example)
... presentedForm 0..*AttachmentEntire report as issued

doco Documentation for this format

UML Diagram (Legend)

DiagnosticReport (DomainResource)Identifiers assigned to this report by the performer or other systemsidentifier : Identifier [0..*]Details concerning a service requestedbasedOn : Reference [0..*] « CarePlan|ImmunizationRecommendation| MedicationRequest|NutritionOrder|ServiceRequest »The status of the diagnostic report (this element modifies the meaning of other elements)status : code [1..1] « The status of the diagnostic report. (Strength=Required)DiagnosticReportStatus! »A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposescategory : CodeableConcept [0..1] « Codes for diagnostic service sections. (Strength=Example)DiagnosticServiceSectionCodes?? »A code or name that describes this diagnostic reportcode : CodeableConcept [1..1] « Codes that describe Diagnostic Reports. (Strength=Preferred)LOINCDiagnosticReportCodes? »The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sourcessubject : Reference [0..1] « Patient|Group|Device|Location »The healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport per is aboutcontext : Reference [0..1] « Encounter|EpisodeOfCare »The time or time-period the observed values are related to. When the subject of the report is a patient, this is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itselfeffective[x] : Type [0..1] « dateTime|Period »The date and time that this version of the report was made available to providers, typically after the report was reviewed and verifiedissued : instant [0..1]The diagnostic service that is responsible for issuing the reportperformer : Reference [0..*] « Practitioner|PractitionerRole| Organization|CareTeam »The practitioner or organization that is responsible for the report's conclusions and interpretationsresultsInterpreter : Reference [0..*] « Practitioner| PractitionerRole|Organization|CareTeam »Details about the specimens on which this diagnostic report is basedspecimen : Reference [0..*] « Specimen »[Observations](observation.html) that are part of this diagnostic reportresult : Reference [0..*] « Observation »One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source imagesimagingStudy : Reference [0..*] « ImagingStudy »Concise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic reportconclusion : string [0..1]One or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic reportconclusionCode : CodeableConcept [0..*] « Diagnosis codes provided as adjuncts to the report. (Strength=Example)SNOMEDCTClinicalFindings?? »Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalentpresentedForm : Attachment [0..*]MediaA comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important featurescomment : string [0..1]Reference to the image sourcelink : Reference [1..1] « Media »A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest)media[0..*]

XML Template

<DiagnosticReport xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Business identifier for report --></identifier>
 <basedOn><!-- 0..* Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ServiceRequest) What was requested --></basedOn>
 <status value="[code]"/><!-- 1..1 registered | partial | preliminary | final + -->
 <category><!-- 0..1 CodeableConcept Service category --></category>
 <code><!-- 1..1 CodeableConcept Name/Code for this diagnostic report --></code>
 <subject><!-- 0..1 Reference(Patient|Group|Device|Location) The subject of the report - usually, but not always, the patient --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Health care event when test ordered --></context>
 <effective[x]><!-- 0..1 dateTime|Period Clinically relevant time/time-period for report --></effective[x]>
 <issued value="[instant]"/><!-- 0..1 DateTime this version was made -->
 <performer><!-- 0..* Reference(Practitioner|PractitionerRole|Organization|
   CareTeam) Responsible Diagnostic Service --></performer>
 <resultsInterpreter><!-- 0..* Reference(Practitioner|PractitionerRole|
   Organization|CareTeam) Primary result interpreter --></resultsInterpreter>
 <specimen><!-- 0..* Reference(Specimen) Specimens this report is based on --></specimen>
 <result><!-- 0..* Reference(Observation) Observations --></result>
 <imagingStudy><!-- 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report --></imagingStudy>
 <media>  <!-- 0..* Key images associated with this report -->
  <comment value="[string]"/><!-- 0..1 Comment about the image (e.g. explanation) -->
  <link><!-- 1..1 Reference(Media) Reference to the image source --></link>
 </media>
 <conclusion value="[string]"/><!-- 0..1 Clinical conclusion (interpretation) of test results -->
 <conclusionCode><!-- 0..* CodeableConcept Codes for the clinical conclusion of test results --></conclusionCode>
 <presentedForm><!-- 0..* Attachment Entire report as issued --></presentedForm>
</DiagnosticReport>

JSON Template

{doco
  "resourceType" : "DiagnosticReport",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business identifier for report
  "basedOn" : [{ Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ServiceRequest) }], // What was requested
  "status" : "<code>", // R!  registered | partial | preliminary | final +
  "category" : { CodeableConcept }, // Service category
  "code" : { CodeableConcept }, // R!  Name/Code for this diagnostic report
  "subject" : { Reference(Patient|Group|Device|Location) }, // The subject of the report - usually, but not always, the patient
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Health care event when test ordered
  // effective[x]: Clinically relevant time/time-period for report. One of these 2:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "issued" : "<instant>", // DateTime this version was made
  "performer" : [{ Reference(Practitioner|PractitionerRole|Organization|
   CareTeam) }], // Responsible Diagnostic Service
  "resultsInterpreter" : [{ Reference(Practitioner|PractitionerRole|
   Organization|CareTeam) }], // Primary result interpreter
  "specimen" : [{ Reference(Specimen) }], // Specimens this report is based on
  "result" : [{ Reference(Observation) }], // Observations
  "imagingStudy" : [{ Reference(ImagingStudy) }], // Reference to full details of imaging associated with the diagnostic report
  "media" : [{ // Key images associated with this report
    "comment" : "<string>", // Comment about the image (e.g. explanation)
    "link" : { Reference(Media) } // R!  Reference to the image source
  }],
  "conclusion" : "<string>", // Clinical conclusion (interpretation) of test results
  "conclusionCode" : [{ CodeableConcept }], // Codes for the clinical conclusion of test results
  "presentedForm" : [{ Attachment }] // Entire report as issued
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:DiagnosticReport;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:DiagnosticReport.identifier [ Identifier ], ... ; # 0..* Business identifier for report
  fhir:DiagnosticReport.basedOn [ Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|NutritionOrder|
  ServiceRequest) ], ... ; # 0..* What was requested
  fhir:DiagnosticReport.status [ code ]; # 1..1 registered | partial | preliminary | final +
  fhir:DiagnosticReport.category [ CodeableConcept ]; # 0..1 Service category
  fhir:DiagnosticReport.code [ CodeableConcept ]; # 1..1 Name/Code for this diagnostic report
  fhir:DiagnosticReport.subject [ Reference(Patient|Group|Device|Location) ]; # 0..1 The subject of the report - usually, but not always, the patient
  fhir:DiagnosticReport.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Health care event when test ordered
  # DiagnosticReport.effective[x] : 0..1 Clinically relevant time/time-period for report. One of these 2
    fhir:DiagnosticReport.effectiveDateTime [ dateTime ]
    fhir:DiagnosticReport.effectivePeriod [ Period ]
  fhir:DiagnosticReport.issued [ instant ]; # 0..1 DateTime this version was made
  fhir:DiagnosticReport.performer [ Reference(Practitioner|PractitionerRole|Organization|CareTeam) ], ... ; # 0..* Responsible Diagnostic Service
  fhir:DiagnosticReport.resultsInterpreter [ Reference(Practitioner|PractitionerRole|Organization|CareTeam) ], ... ; # 0..* Primary result interpreter
  fhir:DiagnosticReport.specimen [ Reference(Specimen) ], ... ; # 0..* Specimens this report is based on
  fhir:DiagnosticReport.result [ Reference(Observation) ], ... ; # 0..* Observations
  fhir:DiagnosticReport.imagingStudy [ Reference(ImagingStudy) ], ... ; # 0..* Reference to full details of imaging associated with the diagnostic report
  fhir:DiagnosticReport.media [ # 0..* Key images associated with this report
    fhir:DiagnosticReport.media.comment [ string ]; # 0..1 Comment about the image (e.g. explanation)
    fhir:DiagnosticReport.media.link [ Reference(Media) ]; # 1..1 Reference to the image source
  ], ...;
  fhir:DiagnosticReport.conclusion [ string ]; # 0..1 Clinical conclusion (interpretation) of test results
  fhir:DiagnosticReport.conclusionCode [ CodeableConcept ], ... ; # 0..* Codes for the clinical conclusion of test results
  fhir:DiagnosticReport.presentedForm [ Attachment ], ... ; # 0..* Entire report as issued
]

Changes since R3

DiagnosticReport
DiagnosticReport.basedOn
  • Type changed from Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|NutritionOrder|ProcedureRequest|ReferralRequest) to Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|NutritionOrder|ServiceRequest)
DiagnosticReport.performer
  • Type changed from BackboneElement to Reference(Practitioner|PractitionerRole|Organization|CareTeam)
DiagnosticReport.resultsInterpreter
  • Added Element
DiagnosticReport.imagingStudy
  • Type changed from Reference(ImagingStudy|ImagingManifest) to Reference(ImagingStudy)
DiagnosticReport.media
  • Added Element
DiagnosticReport.media.comment
  • Added Element
DiagnosticReport.media.link
  • Added Element
DiagnosticReport.conclusionCode
  • Added Element
DiagnosticReport.performer.role
  • deleted
DiagnosticReport.performer.actor
  • deleted
DiagnosticReport.image
  • deleted
DiagnosticReport.codedDiagnosis
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 14 tests of which 8 fail to execute. 6 fail round-trip testing and 6 r3 resources are invalid (0 errors).)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport TUDomainResourceA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness identifier for report
... basedOn 0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!Σ1..1coderegistered | partial | preliminary | final +
DiagnosticReportStatus (Required)
... category Σ0..1CodeableConceptService category
Diagnostic Service Section Codes (Example)
... code Σ1..1CodeableConceptName/Code for this diagnostic report
LOINC Diagnostic Report Codes (Preferred)
... subject Σ0..1Reference(Patient | Group | Device | Location)The subject of the report - usually, but not always, the patient
... context Σ0..1Reference(Encounter | EpisodeOfCare)Health care event when test ordered
... effective[x] Σ0..1Clinically relevant time/time-period for report
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantDateTime this version was made
... performer Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Responsible Diagnostic Service
... resultsInterpreter Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen 0..*Reference(Specimen)Specimens this report is based on
... result 0..*Reference(Observation)Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media Σ0..*BackboneElementKey images associated with this report
.... comment 0..1stringComment about the image (e.g. explanation)
.... link Σ1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical conclusion (interpretation) of test results
... conclusionCode 0..*CodeableConceptCodes for the clinical conclusion of test results
SNOMED CT Clinical Findings (Example)
... presentedForm 0..*AttachmentEntire report as issued

doco Documentation for this format

UML Diagram (Legend)

DiagnosticReport (DomainResource)Identifiers assigned to this report by the performer or other systemsidentifier : Identifier [0..*]Details concerning a service requestedbasedOn : Reference [0..*] « CarePlan|ImmunizationRecommendation| MedicationRequest|NutritionOrder|ServiceRequest »The status of the diagnostic report (this element modifies the meaning of other elements)status : code [1..1] « The status of the diagnostic report. (Strength=Required)DiagnosticReportStatus! »A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposescategory : CodeableConcept [0..1] « Codes for diagnostic service sections. (Strength=Example)DiagnosticServiceSectionCodes?? »A code or name that describes this diagnostic reportcode : CodeableConcept [1..1] « Codes that describe Diagnostic Reports. (Strength=Preferred)LOINCDiagnosticReportCodes? »The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sourcessubject : Reference [0..1] « Patient|Group|Device|Location »The healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport per is aboutcontext : Reference [0..1] « Encounter|EpisodeOfCare »The time or time-period the observed values are related to. When the subject of the report is a patient, this is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itselfeffective[x] : Type [0..1] « dateTime|Period »The date and time that this version of the report was made available to providers, typically after the report was reviewed and verifiedissued : instant [0..1]The diagnostic service that is responsible for issuing the reportperformer : Reference [0..*] « Practitioner|PractitionerRole| Organization|CareTeam »The practitioner or organization that is responsible for the report's conclusions and interpretationsresultsInterpreter : Reference [0..*] « Practitioner| PractitionerRole|Organization|CareTeam »Details about the specimens on which this diagnostic report is basedspecimen : Reference [0..*] « Specimen »[Observations](observation.html) that are part of this diagnostic reportresult : Reference [0..*] « Observation »One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source imagesimagingStudy : Reference [0..*] « ImagingStudy »Concise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic reportconclusion : string [0..1]One or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic reportconclusionCode : CodeableConcept [0..*] « Diagnosis codes provided as adjuncts to the report. (Strength=Example)SNOMEDCTClinicalFindings?? »Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalentpresentedForm : Attachment [0..*]MediaA comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important featurescomment : string [0..1]Reference to the image sourcelink : Reference [1..1] « Media »A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest)media[0..*]

XML Template

<DiagnosticReport xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Business identifier for report --></identifier>
 <basedOn><!-- 0..* Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ServiceRequest) What was requested --></basedOn>
 <status value="[code]"/><!-- 1..1 registered | partial | preliminary | final + -->
 <category><!-- 0..1 CodeableConcept Service category --></category>
 <code><!-- 1..1 CodeableConcept Name/Code for this diagnostic report --></code>
 <subject><!-- 0..1 Reference(Patient|Group|Device|Location) The subject of the report - usually, but not always, the patient --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Health care event when test ordered --></context>
 <effective[x]><!-- 0..1 dateTime|Period Clinically relevant time/time-period for report --></effective[x]>
 <issued value="[instant]"/><!-- 0..1 DateTime this version was made -->
 <performer><!-- 0..* Reference(Practitioner|PractitionerRole|Organization|
   CareTeam) Responsible Diagnostic Service --></performer>
 <resultsInterpreter><!-- 0..* Reference(Practitioner|PractitionerRole|
   Organization|CareTeam) Primary result interpreter --></resultsInterpreter>
 <specimen><!-- 0..* Reference(Specimen) Specimens this report is based on --></specimen>
 <result><!-- 0..* Reference(Observation) Observations --></result>
 <imagingStudy><!-- 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report --></imagingStudy>
 <media>  <!-- 0..* Key images associated with this report -->
  <comment value="[string]"/><!-- 0..1 Comment about the image (e.g. explanation) -->
  <link><!-- 1..1 Reference(Media) Reference to the image source --></link>
 </media>
 <conclusion value="[string]"/><!-- 0..1 Clinical conclusion (interpretation) of test results -->
 <conclusionCode><!-- 0..* CodeableConcept Codes for the clinical conclusion of test results --></conclusionCode>
 <presentedForm><!-- 0..* Attachment Entire report as issued --></presentedForm>
</DiagnosticReport>

JSON Template

{doco
  "resourceType" : "DiagnosticReport",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business identifier for report
  "basedOn" : [{ Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ServiceRequest) }], // What was requested
  "status" : "<code>", // R!  registered | partial | preliminary | final +
  "category" : { CodeableConcept }, // Service category
  "code" : { CodeableConcept }, // R!  Name/Code for this diagnostic report
  "subject" : { Reference(Patient|Group|Device|Location) }, // The subject of the report - usually, but not always, the patient
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Health care event when test ordered
  // effective[x]: Clinically relevant time/time-period for report. One of these 2:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "issued" : "<instant>", // DateTime this version was made
  "performer" : [{ Reference(Practitioner|PractitionerRole|Organization|
   CareTeam) }], // Responsible Diagnostic Service
  "resultsInterpreter" : [{ Reference(Practitioner|PractitionerRole|
   Organization|CareTeam) }], // Primary result interpreter
  "specimen" : [{ Reference(Specimen) }], // Specimens this report is based on
  "result" : [{ Reference(Observation) }], // Observations
  "imagingStudy" : [{ Reference(ImagingStudy) }], // Reference to full details of imaging associated with the diagnostic report
  "media" : [{ // Key images associated with this report
    "comment" : "<string>", // Comment about the image (e.g. explanation)
    "link" : { Reference(Media) } // R!  Reference to the image source
  }],
  "conclusion" : "<string>", // Clinical conclusion (interpretation) of test results
  "conclusionCode" : [{ CodeableConcept }], // Codes for the clinical conclusion of test results
  "presentedForm" : [{ Attachment }] // Entire report as issued
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:DiagnosticReport;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:DiagnosticReport.identifier [ Identifier ], ... ; # 0..* Business identifier for report
  fhir:DiagnosticReport.basedOn [ Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|NutritionOrder|
  ServiceRequest) ], ... ; # 0..* What was requested
  fhir:DiagnosticReport.status [ code ]; # 1..1 registered | partial | preliminary | final +
  fhir:DiagnosticReport.category [ CodeableConcept ]; # 0..1 Service category
  fhir:DiagnosticReport.code [ CodeableConcept ]; # 1..1 Name/Code for this diagnostic report
  fhir:DiagnosticReport.subject [ Reference(Patient|Group|Device|Location) ]; # 0..1 The subject of the report - usually, but not always, the patient
  fhir:DiagnosticReport.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Health care event when test ordered
  # DiagnosticReport.effective[x] : 0..1 Clinically relevant time/time-period for report. One of these 2
    fhir:DiagnosticReport.effectiveDateTime [ dateTime ]
    fhir:DiagnosticReport.effectivePeriod [ Period ]
  fhir:DiagnosticReport.issued [ instant ]; # 0..1 DateTime this version was made
  fhir:DiagnosticReport.performer [ Reference(Practitioner|PractitionerRole|Organization|CareTeam) ], ... ; # 0..* Responsible Diagnostic Service
  fhir:DiagnosticReport.resultsInterpreter [ Reference(Practitioner|PractitionerRole|Organization|CareTeam) ], ... ; # 0..* Primary result interpreter
  fhir:DiagnosticReport.specimen [ Reference(Specimen) ], ... ; # 0..* Specimens this report is based on
  fhir:DiagnosticReport.result [ Reference(Observation) ], ... ; # 0..* Observations
  fhir:DiagnosticReport.imagingStudy [ Reference(ImagingStudy) ], ... ; # 0..* Reference to full details of imaging associated with the diagnostic report
  fhir:DiagnosticReport.media [ # 0..* Key images associated with this report
    fhir:DiagnosticReport.media.comment [ string ]; # 0..1 Comment about the image (e.g. explanation)
    fhir:DiagnosticReport.media.link [ Reference(Media) ]; # 1..1 Reference to the image source
  ], ...;
  fhir:DiagnosticReport.conclusion [ string ]; # 0..1 Clinical conclusion (interpretation) of test results
  fhir:DiagnosticReport.conclusionCode [ CodeableConcept ], ... ; # 0..* Codes for the clinical conclusion of test results
  fhir:DiagnosticReport.presentedForm [ Attachment ], ... ; # 0..* Entire report as issued
]

Changes since Release 3

DiagnosticReport
DiagnosticReport.basedOn
  • Type changed from Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|NutritionOrder|ProcedureRequest|ReferralRequest) to Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|NutritionOrder|ServiceRequest)
DiagnosticReport.performer
  • Type changed from BackboneElement to Reference(Practitioner|PractitionerRole|Organization|CareTeam)
DiagnosticReport.resultsInterpreter
  • Added Element
DiagnosticReport.imagingStudy
  • Type changed from Reference(ImagingStudy|ImagingManifest) to Reference(ImagingStudy)
DiagnosticReport.media
  • Added Element
DiagnosticReport.media.comment
  • Added Element
DiagnosticReport.media.link
  • Added Element
DiagnosticReport.conclusionCode
  • Added Element
DiagnosticReport.performer.role
  • deleted
DiagnosticReport.performer.actor
  • deleted
DiagnosticReport.image
  • deleted
DiagnosticReport.codedDiagnosis
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 14 tests of which 8 fail to execute. 6 fail round-trip testing and 6 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
DiagnosticReport.status The status of the diagnostic report.RequiredDiagnosticReportStatus
DiagnosticReport.category Codes for diagnostic service sections.ExampleDiagnosticServiceSectionCodes
DiagnosticReport.code Codes that describe Diagnostic Reports.PreferredLOINCDiagnosticReportCodes
DiagnosticReport.conclusionCode Diagnosis codes provided as adjuncts to the report.ExampleSNOMEDCTClinicalFindings

The identifier datatype has a type element that may be used to distinguish the identifiers assigned by the requester and the performer of the request (known as the 'Placer' and 'Filler' in the HL7 Version 2 Messaging Standard). Use the identifier type code "PLAC" for the Placer Identifier and "FILL" for the Filler identifier as is shown in the example below:

<!-- Placer identifier-->
<identifier>
<type>
<coding>
  <system value="http://terminology.hl7.org/CodeSystem/v2-0203"/>
  <code value="PLAC"/>
</coding>
<text value="Placer"/>
</type>
<system value="urn:oid:1.3.4.5.6.7"/>
<value value="2345234234234"/>
</identifier>
<!-- Filler identifier-->
<identifier>
<type>
<coding>
  <system value="http://terminology.hl7.org/CodeSystem/v2-0203"/>
  <code value="PLAC"/>
</coding>
<text value="Placer"/>
</type>
<system value=" http://terminology.hl7.org/CodeSystem/v2-0203"/>
<value value="567890"/>
</identifier>

If the diagnostic procedure was performed on the patient directly, the effective[x] element is a dateTime, the time it was performed. If specimens were taken, the clinically relevant time of the report can be derived from the specimen collection times, but since detailed specimen information is not always available, and nor is the clinically relevant time always exactly the specimen collection time (e.g. complex timed tests), the reports SHALL always include a effective[x] element. Note that HL7 v2 messages often carry a diagnostically relevant time without carrying any specimen information.

  • The DiagnosticReport.code always contains the name of the report itself. The report can also contain a set of Observations in the DiagnosticReport.result element. These Observations can be simple observations (e.g. atomic results) or groups/panels of other observations. The Observation.code indicates the nature of the observation or panel (e.g. individual measure, organism isolate/sensitivity or antibody functional testing). When relevant, the observation can specify a particular specimen from which the result comes.
    • Examples of nesting groups/panels within an observation include reporting a "profile" consisting of several panels as is shown in this example, a group of antibiotic isolate/sensitivities for a bacterial culture, or a set of perinatal measurements on a single fetus.
    • There is rarely a need for more than two levels of nesting in the Observation tree. One known use is for organism sensitivities - an example of a complex Micro Isolate and Sensitivities is provided.

ImagingStudy and ImageObjectStudy and the media element are somewhat overlapping - typically, the list of image references in the image element will also be found in one of the imaging study resources. However each caters to different types of displays for different types of purposes. Neither, either, or both may be provided.

  • Applications consuming diagnostic reports must take careful note of updated (revised) reports, and ensure that retracted reports are appropriately handled.
  • For applications providing diagnostic reports, a report should not be final until all the individual data items reported with it are final or appended.
  • If the report has been withdrawn following a previous final release, the DiagnosticReport and associated Observations should be retracted by replacing the status codes with the concept "entered-in-error", and setting the conclusion/comment (if provided) and the text narrative to some text like "This report has been withdrawn" in the appropriate language. A reason for retraction may be provided in the narrative.

Typically, a report is either: all data, no narrative (e.g. Core lab) or a mix of data with some concluding narrative (e.g. Structured Pathology Report, Bone Density), or all narrative (for example a typical imaging report, histopathology). This resource provides for these 3 different presentations:

  • As atomic data items: a hierarchical set of nested references to Observation resources often including pathologist/radiologist interpretation(s), one or more images, and possibly with a conclusion and/or one or more coded diagnoses
  • As narrative: an XHTML presentation in the standard resource narrative
  • As a "presented form": A rich text representation of the report - typically a PDF

Note that the conclusion and the coded diagnoses are part of the atomic data, and SHOULD be duplicated in the narrative and in the presented form if the latter is present. The narrative and the presented form serve the same function: a representation of the report for a human. The presented form is included since diagnostic service reports often contain presentation features that are not easy to reproduce in the HTML narrative. Whether or not the presented form is included, the narrative must be a clinically safe view of the diagnostic report; at a minimum, this could be fulfilled by a note indicating that the narrative is not proper representation of the report, and that the presented form must be used, or a generated view from the atomic data. However consumers of the report will best be served if the narrative contains clinically relevant data from the form. Commonly, the following patterns are used:

  • Simple Laboratory Reports: A single set of atomic observations, and a tabular presentation in narrative. Typically this is encountered in high volume areas such as Biochemistry and Hematology
  • Histopathology Report: A document report in a presented form and the narrative. Possibly a few key images, and some coded diagnoses for registries. If the service is creating a structured report, some atomic data may be included
  • imaging Report: A document report in a presented form and the narrative, with an imaging study reference and possibly some key images. Some imaging reports such as a Bone Density Scan may include some atomic data

Note that the nature of reports from the various disciplines that provide diagnostic reports are changing quickly, as expert systems provide improved narrative reporting in high volume reports, structured reporting brings additional data to areas that have classically been narrative based, and the nature of the imaging and laboratory procedures are merging. As a consequence the patterns described above are only examples of how a diagnostic report can be used.

Genetic reporting makes heavy use of the DiagnosticReport and Observation resources. An implementation guide describing how to represent genetic results can be found here .

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
based-onreferenceReference to the service request.DiagnosticReport.basedOn
(CarePlan, MedicationRequest, NutritionOrder, ServiceRequest, ImmunizationRecommendation)
categorytokenWhich diagnostic discipline/department created the reportDiagnosticReport.category
codetokenThe code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the resultDiagnosticReport.code13 Resources
conclusiontokenA coded conclusion (interpretation/impression) on the reportDiagnosticReport.conclusionCode
contextreferenceHealthcare event (Episode of Care or Encounter) related to the reportDiagnosticReport.context
(EpisodeOfCare, Encounter)
datedateThe clinically relevant time of the reportDiagnosticReport.effective17 Resources
encounterreferenceThe Encounter when the order was madeDiagnosticReport.context.where(resolve() is Encounter)
(Encounter)
12 Resources
identifiertokenAn identifier for the reportDiagnosticReport.identifier30 Resources
issueddateWhen the report was issuedDiagnosticReport.issued
mediareferenceA reference to the image source.DiagnosticReport.media.link
(Media)
patientreferenceThe subject of the report if a patientDiagnosticReport.subject.where(resolve() is Patient)
(Patient)
29 Resources
performerreferenceWho is responsible for the reportDiagnosticReport.performer
(Practitioner, Organization, CareTeam, PractitionerRole)
resultreferenceLink to an atomic result (observation resource)DiagnosticReport.result
(Observation)
results-interpreterreferenceWho was the source of the reportDiagnosticReport.resultsInterpreter
(Practitioner, Organization, CareTeam, PractitionerRole)
specimenreferenceThe specimen detailsDiagnosticReport.specimen
(Specimen)
statustokenThe status of the reportDiagnosticReport.status
subjectreferenceThe subject of the reportDiagnosticReport.subject
(Group, Device, Patient, Location)