RelatedPerson Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-relatedperson |
|---|---|
| Status | draft · 1.26.0 |
| Base | RelatedPerson (constraint) |
| Source | FSH · JSON |
Nexus EMR profile for RelatedPerson, capturing an alternative contact for a patient — a person the practice can reach on the patient's behalf, with a personal relationship, any number of contact purposes, contact details, an optional note, and an optional primary (call-first) flag. Backs the Patient Profile Relationships section.
TypedFhir API / Pydantic schema
The typed accessor surface RelatedPerson exposes for RelatedPerson — 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 RelatedPersonSchema — model_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.
class RelatedPersonSchema(BaseModel):
"""AI-facing shape of the RelatedPerson 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")
patient: Reference | None = Field(
None,
description=(
"The patient this person is a contact for. The patient on whose behalf this person "
"can be contacted. RelatedPerson.patient — 1..1"
),
)
relationship: Concept | None = Field(
None,
description=(
"Personal relationship to the patient, plus any contact purposes. The nature of the "
"relationship between a patient and the related person. Note: Carries the personal "
"relationship (a member of the official relatedperson-relationshiptype value set — "
"HL7 v3 PersonalRelationshipRoleType or v2-0131 'O' — with v3 RoleCode GUARD for "
"legal guardian) and zero or more contact purposes (the local contact-purpose system, "
"dual-coded with an official v2-0131 / v3 RoleCode / v3 RoleClass code where one "
"exists). Readers discriminate the relationship by matching system AND code against "
"the relationship value set. 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). "
"RelatedPerson.relationship — 0..*"
),
)
name: dict | None = Field(
None,
description=(
"The contact's name. A name associated with the person. RelatedPerson.name — 0..*"
),
)
telecom: dict | None = Field(
None,
description=(
"The contact's phone numbers and e-mail (a work number's extension rides on the "
"contact-point-phone-extension). A contact detail for the person, e.g. a telephone "
"number or an email address. Note: Person may have multiple ways to be contacted with "
"different uses or applicable periods. May need to have options for contacting the "
"person urgently, and also to help with identification. RelatedPerson.telecom — 0..*"
),
)
gender: Literal["female", "male", "other", "unknown"] | None = Field(
None,
description=(
"male | female | other | unknown. Administrative Gender - the gender that the person "
"is considered to have for administration and record keeping purposes. "
"RelatedPerson.gender — 0..1"
),
)