Skip to content

Risk Assessment Profile

Canonical../StructureDefinition/nexus-emr-core-riskassessment
Statusdraft (experimental) · 1.26.0
BaseRiskAssessment (constraint)
SourceFSH · JSON

Nexus EMR profile for RiskAssessment -- computed clinical risk scores. First pass: status, method, predictions (outcome + probability + qualitative band), basis. Closed to SMART apps pending an exposure decision.

TypedFhir API / Pydantic schema

The typed accessor surface RiskAssessment exposes for RiskAssessment — 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 RiskAssessmentSchemamodel_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.

class RiskAssessmentSchema(BaseModel):
    """AI-facing shape of the RiskAssessment 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",
        "cancelled",
        "corrected",
        "entered-in-error",
        "final",
        "preliminary",
        "registered",
        "unknown",
    ] | None = Field(
        None,
        description=(
            "registered | preliminary | final | amended | ... | entered-in-error. The status of "
            "the RiskAssessment, using the same statuses as an Observation. RiskAssessment.status "
            "— 1..1"
        ),
    )
    method: Concept | None = Field(
        None,
        description=(
            "Which score was computed (text-first until a method vocabulary settles). The "
            "algorithm, process or mechanism used to evaluate the risk. RiskAssessment.method — "
            "0..1"
        ),
    )
    subject: Reference | None = Field(
        None,
        description=(
            "The patient. The patient or group the risk assessment applies to. "
            "RiskAssessment.subject — 1..1"
        ),
    )
    condition: Reference | None = Field(
        None,
        description=(
            "The condition the assessment is about, when there is one. For assessments or "
            "prognosis specific to a particular condition, indicates the condition being "
            "assessed. RiskAssessment.condition — 0..1"
        ),
    )
    basis: Reference | None = Field(
        None,
        description=(
            "What went into the calculation (the Observations/Conditions used). Indicates the "
            "source data considered as part of the assessment (for example, FamilyHistory, "
            "Observations, Procedures, Conditions, etc.). RiskAssessment.basis — 0..*"
        ),
    )
    prediction: dict | None = Field(
        None,
        description=(
            "The score itself: outcome + probability + qualitative band. Describes the expected "
            "outcome for the subject. Note: Multiple repetitions can be used to identify the same "
            "type of outcome in different timeframes as well as different types of outcomes. "
            "RiskAssessment.prediction — 0..*"
        ),
    )