DiagnosticReport Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-diagnosticreport |
|---|---|
| Status | draft · 1.26.0 |
| Base | DiagnosticReport (constraint) |
| Source | FSH · JSON |
Defines the Nexus EMR FHIR profile for DiagnosticReport resources, based on CA-Core constraints, for aggregating diagnostic reports (e.g., Lab, Imaging) from multiple EMRs.
TypedFhir API / Pydantic schema
The typed accessor surface DiagnosticReport exposes for DiagnosticReport — generated from this IG's compiled profile; each typed accessor has a validating raw-FHIR twin (xRaw) where marked. The three ports are parity-enforced.
The AI-facing shape: from typed_fhir.facade.generated.schemas import DiagnosticReportSchema — model_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.
class DiagnosticReportSchema(BaseModel):
"""AI-facing shape of the DiagnosticReport profile: the facade's typed accessor
surface (curated + salient fields) as a pydantic model. `model_json_schema()` is a
structured-output / tool schema; instantiating validates an extraction."""
model_config = ConfigDict(extra="forbid")
status: Literal[
"amended",
"appended",
"cancelled",
"corrected",
"entered-in-error",
"final",
"partial",
"preliminary",
"registered",
"unknown",
] | None = Field(
None,
description=(
"Where the report is in its lifecycle. The status of the diagnostic report. Indicates "
"whether the report is complete and verified. Note: This is a modifier element. "
"Preliminary reports should be interpreted with caution. DiagnosticReport.status — "
"1..1"
),
)
category: Concept | None = Field(
None,
description=(
"Service category with raw code support. Classification of the clinical discipline, "
"department or diagnostic service that created the report. RECOMMENDED: Standard "
"terminology codes (e.g., HL7 Diagnostic Service Section Codes) OPTIONAL: Raw EMR "
"codes for source system preservation Multiple categories may be specified to "
"classify the report in different ways. Note: Multiple categories are allowed using "
"various categorization schemes. The level of granularity is defined by the category "
"concepts in the value set. More fine-grained filtering can be performed using the "
"metadata and/or terminology hierarchy in DiagnosticReport.code. "
"DiagnosticReport.category — 0..*"
),
)
code: Concept | None = Field(
None,
description=(
"Diagnostic report type with raw code support. Type of diagnostic report (e.g., CBC, "
"Chest X-ray, Lipid Panel). REQUIRED: text element for human readability RECOMMENDED: "
"LOINC or other standard terminology when available OPTIONAL: Raw EMR codes for "
"source system preservation Nexus EMR does not mandate a specific coding system for "
"diagnostic report types. The text element ensures human readability even when coded "
"values are not recognized. Note: Where this code was mapped from a source system's "
"own vocabulary, carry the raw coding alongside the mapped one, flagged `userSelected "
"= true`. See [Carrying the raw "
"code](../guide/patterns/raw-codes.md). DiagnosticReport.code "
"— 1..1"
),
)
subject: Reference | None = Field(
None,
description=(
"The subject of the report - usually a patient. The patient who is the subject of the "
"diagnostic report. Must reference using Nexus EMR patient identifier. Note: "
"References should use identifier-based references following Nexus EMR patterns. "
"DiagnosticReport.subject — 1..1"
),
)
encounter: Reference | None = Field(
None,
description=(
"Healthcare event when report was generated. The encounter during which this "
"diagnostic report was generated. Optional but provides important clinical context. "
"Note: Linking to encounter helps establish the clinical context and timing of the "
"diagnostic testing. DiagnosticReport.encounter — 0..1"
),
)
issued: FuzzyDate | None = Field(
None,
description=(
"DateTime report was released. The date and time that this version of the report was "
"made available to providers. Note: May be different from the effective date, "
"especially for amended reports. DiagnosticReport.issued — 0..1"
),
)
result: Reference | None = Field(
None,
description=(
"Observations that are part of this report. References to the Observations that are "
"part of this diagnostic report. Note: Individual results are represented as separate "
"Observation resources. DiagnosticReport.result — 0..*"
),
)
imaging_study: Reference | None = Field(
None,
description=(
"Reference to full details of imaging associated with the diagnostic report. 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 images. Note: Left at base R4. This guide withdrew its "
"ImagingStudy profile in 1.22.0 and models the imaging report rather than the DICOM "
"acquisition, so nothing here produces this reference and no consumer is required to "
"resolve it. DiagnosticReport.imagingStudy — 0..*"
),
)
conclusion: str | None = Field(
None,
description=(
"Clinical conclusion (interpretation) of test results. Concise and clinically "
"contextualized summary conclusion of the diagnostic report. Note: The narrative "
"conclusion shall only contain filtered information from the report. "
"DiagnosticReport.conclusion — 0..1"
),
)
conclusion_code: Concept | None = Field(
None,
description=(
"Codes for the clinical conclusion. Coded representation of the conclusion. Note: "
"Where this code was mapped from a source system's own vocabulary, carry the raw "
"coding alongside the mapped one, flagged `userSelected = true`. See [Carrying the "
"raw code](../guide/patterns/raw-codes.md). "
"DiagnosticReport.conclusionCode — 0..*"
),
)
presented_form: dict | None = Field(
None,
description=(
"Entire report as issued. Rich text representation of the entire result as issued by "
"the diagnostic service. Note: Multiple formats of the same report may be provided "
"(e.g., PDF and HTML). DiagnosticReport.presentedForm — 0..*"
),
)
effective: FuzzyDate | None = Field(
None,
description=(
"Clinically relevant time/time-period for report. The time or time-period the "
"observed values are related to. This is usually the time specimen was collected or "
"imaging was performed. Note: For lab reports, this is typically when specimen was "
"collected. For imaging, when the images were taken. Salient field — "
"effectiveDateTime | effectivePeriod.start"
),
)
data: str | None = Field(
None,
description=(
"Data inline, base64 encoded. The actual data of the attachment - a sequence of "
"bytes, base64 encoded. Note: The base64-encoded data SHALL be expressed in the same "
"character set as the base resource XML or JSON. Salient field — "
"presentedForm.first().data"
),
)