Skip to content

ClinicalImpression Profile

Canonical../StructureDefinition/nexus-emr-core-clinicalimpression
Statusdraft · 1.26.0
BaseClinicalImpression (constraint)
SourceFSH · 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 ClinicalImpressionSchemamodel_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..*"
        ),
    )