App Device Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-appdevice |
|---|---|
| Status | draft · 1.26.0 |
| Base | Device (constraint) |
| Source | FSH · JSON |
Simple profile for applications that integrate with patient data and require consent tracking. Contains just the essential information: app name, client_id, and basic details.
TypedFhir API / Pydantic schema
The typed accessor surface Device exposes for Device — 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 DeviceSchema — model_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.
class DeviceSchema(BaseModel):
"""AI-facing shape of the Device 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["active", "entered-in-error", "inactive", "unknown"] | None = Field(
None,
description=(
"active | inactive. Status of the Device availability. Note: This element is labeled "
"as a modifier because the status contains the codes inactive and entered-in-error "
"that mark the device (record)as not currently valid. Device.status — 1..1"
),
)
status_reason: Concept | None = Field(
None,
description=(
"online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off. "
"Reason for the dtatus of the Device availability. Device.statusReason — 0..*. codes "
"(extensible): hw-discon | not-ready | off | offline | online | paused | standby | "
"transduc-discon"
),
)
manufacturer: str | None = Field(
None,
description=(
"App developer/company (optional). A name of the manufacturer. Device.manufacturer — "
"0..1"
),
)
device_name: dict | None = Field(
None,
description=(
"The name of the device as given by the manufacturer. This represents the "
"manufacturer's name of the device as provided by the device, from a UDI label, or by "
"a person describing the Device. This typically would be used when a person provides "
"the name(s) or when the device represents one of the names available from "
"DeviceDefinition. Device.deviceName — 1..1"
),
)
type: Concept | None = Field(
None,
description=(
"Software application type. The kind or type of device. Device.type — 0..1"
),
)
note: dict | None = Field(
None,
description=(
"Brief description of the app. Descriptive information, usage information or "
"implantation information that is not captured in an existing element. Device.note — "
"0..1"
),
)