ClinicalImpression Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-clinicalimpression |
|---|---|
| Status | draft · 1.26.0 |
| Base | ClinicalImpression (constraint) |
| Source | FSH · JSON |
Nexus EMR profile for ClinicalImpression capturing the Assessment section of a SOAP encounter note. Purpose: export assessment text. Should be exported by EMRs that have the ability to parse the 'A' text out of a SOAP note.
TypedFhir API / Pydantic schema
The typed accessor surface ClinicalImpression exposes for ClinicalImpression — 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 ClinicalImpressionSchema — model_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.
class ClinicalImpressionSchema(BaseModel):
"""AI-facing shape of the ClinicalImpression 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["completed", "entered-in-error", "in-progress"] | None = Field(
None,
description=(
"preparation | in-progress | not-done | on-hold | stopped | completed | "
"entered-in-error. The status of the ClinicalImpression. Indicates whether the "
"assessment is in progress, completed, or entered in error. Note: This is a modifier "
"element. The status affects how the clinical impression should be interpreted. "
"ClinicalImpression.status — 1..1"
),
)
status_reason: Concept | None = Field(
None,
description=(
"Reason for current status. Captures the reason for the current state of the "
"ClinicalImpression. Note: This is generally only used for \"exception\" statuses such "
"as \"not-done\", \"suspended\" or \"cancelled\". [distinct reason codes for different "
"statuses can be enforced using invariants if they are universal bindings]. "
"ClinicalImpression.statusReason — 0..1"
),
)
code: Concept | None = Field(
None,
description=(
"Assessment type with raw code support. Kind of assessment performed. RECOMMENDED: "
"Standard terminology codes when available OPTIONAL: Raw EMR codes for source system "
"preservation 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). "
"Note: This is present as a place-holder only and may be removed based on "
"feedback/work group opinion. ClinicalImpression.code — 0..1"
),
)
description: str | None = Field(
None,
description=(
"Assessment narrative from SOAP note. Free-text Assessment ('A') section of the SOAP "
"encounter note. Contains the clinician's assessment and clinical reasoning. Note: "
"This is the primary content - the assessment portion extracted from SOAP "
"documentation. ClinicalImpression.description — 1..1"
),
)
subject: Reference | None = Field(
None,
description=(
"Patient being assessed. The patient who is the subject of this clinical impression. "
"Must reference using Nexus EMR patient identifier. Note: References should use "
"identifier-based references following Nexus EMR patterns. ClinicalImpression.subject "
"— 1..1"
),
)
encounter: Reference | None = Field(
None,
description=(
"Encounter during which assessment was made. The encounter during which this clinical "
"impression was created. Optional but provides important clinical context. Note: "
"Linking to encounter helps establish when and where the assessment occurred. "
"ClinicalImpression.encounter — 0..1"
),
)
date: FuzzyDate | None = Field(
None,
description=(
"When assessment was recorded. The date and time when the clinical impression was "
"recorded in the system. Note: This is when the assessment was documented, not "
"necessarily when the clinical encounter occurred. ClinicalImpression.date — 1..1"
),
)
prognosis_codeable_concept: Concept | None = Field(
None,
description=(
"Estimate of likely outcome. Estimate of likely outcome. "
"ClinicalImpression.prognosisCodeableConcept — 0..*"
),
)