Skip to content

App Device Profile

Canonical../StructureDefinition/nexus-emr-core-appdevice
Statusdraft · 1.26.0
BaseDevice (constraint)
SourceFSH · 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 DeviceSchemamodel_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"
        ),
    )