Condition Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-condition |
|---|---|
| Status | draft · 1.26.0 |
| Base | Condition (constraint) |
| Source | FSH · JSON |
Nexus EMR profile for Condition resource, representing health concerns (CII E11) or clinical assessments (CII E34). Constrains necessary elements, requires a Nexus EMR identifier, and adds support for required extensions and security labels.
TypedFhir API / Pydantic schema
The typed accessor surface Condition exposes for Condition — 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 ConditionSchema — model_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.
class ConditionSchema(BaseModel):
"""AI-facing shape of the Condition 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")
clinical_status: Concept | None = Field(
None,
description=(
"Whether the condition is still current. The clinical status of the condition. "
"Indicates whether the condition is currently active or resolved. Note: This is a "
"modifier element that affects how the condition should be interpreted in clinical "
"decision support. Condition.clinicalStatus — 0..1. codes (required): active | "
"inactive | recurrence | relapse | remission | resolved"
),
)
verification_status: Concept | None = Field(
None,
description=(
"How confident the recorder is that the condition is real. The verification status to "
"support the clinical status of the condition. Indicates the confidence in the "
"condition. Note: This is a modifier element. Unconfirmed conditions should be "
"interpreted with caution. Condition.verificationStatus — 0..1. codes (required): "
"confirmed | differential | entered-in-error | provisional | refuted | unconfirmed"
),
)
category: Concept | None = Field(
None,
description=(
"problem-list-item | encounter-diagnosis. A category assigned to the condition. "
"Distinguishes problem list items from encounter diagnoses. **Binding guidance for "
"downstream converters:** - Conditions sourced from `dxresearch` (disease registry) → "
"`problem-list-item` - Conditions sourced from `casemgmt_issue` with CPP types (e.g. "
"`MedHistory`) → `problem-list-item` - Conditions referenced from an Invoice line "
"item or appointment → `encounter-diagnosis`. Note: Multiple categories can be "
"assigned. Problem list items persist across encounters. Condition.category — 1..*. "
"codes (extensible): encounter-diagnosis | problem-list-item"
),
)
code: Concept | None = Field(
None,
description=(
"Condition/diagnosis with raw code support. The specific condition, problem, or "
"diagnosis. REQUIRED: text element for human readability OPTIONAL: Standard "
"terminology codes (ICD-10, SNOMED CT, etc.) OPTIONAL: Raw EMR condition codes for "
"source system preservation Nexus EMR does not mandate a specific coding system for "
"conditions. 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). Condition.code — 1..1"
),
)
body_site: Concept | None = Field(
None,
description=(
"Anatomical location, if relevant. The anatomical location where this condition "
"manifests itself. Note: Only used if not implicit in code found in Condition.code. "
"If the use case requires attributes from the BodySite resource (e.g. to identify and "
"track separately) then use the standard extension "
"[bodySite](extension-bodysite.html). May be a summary code, or a reference to a very "
"precise definition of the location, or both. Condition.bodySite — 0..*"
),
)
recorded_date: FuzzyDate | None = Field(
None,
description=(
"Date condition was first recorded. The date on which the condition was first "
"recorded in this system. This may differ from the onset date. Note: This represents "
"when the condition was documented, not when it first occurred. "
"Condition.recordedDate — 0..1"
),
)
onset_date_time: FuzzyDate | None = Field(
None,
description=(
"When the condition started. The date/time or age when the condition first manifested "
"or was first observed. Can be a specific date, age, period, or range. Note: The "
"onset may be vague (e.g., 'childhood') or precise. Use the most appropriate data "
"type. Condition.onset[x] — 0..1"
),
)
subject: Reference | None = Field(
None,
description=(
"Who has the condition. The patient who has the condition, problem, or diagnosis. "
"Must reference using Nexus EMR patient identifier. Note: References should use "
"identifier-based references following Nexus EMR patterns. Condition.subject — 1..1"
),
)
onset: FuzzyDate | None = Field(
None,
description=(
"When the condition started. The date/time or age when the condition first manifested "
"or was first observed. Can be a specific date, age, period, or range. Note: The "
"onset may be vague (e.g., 'childhood') or precise. Use the most appropriate data "
"type. Salient field — onsetDateTime | onsetPeriod.start"
),
)