International Patient Summary Implementation Guide
1.0.0 - STU 1

This page is part of the International Patient Summary Implementation Guide (v1.0.0: STU 1) based on FHIR R4. The current version which supercedes this version is 1.1.0. For a full list of available versions, see the Directory of published versions

StructureDefinition: DeviceUvIps

This profile represents the constraints applied to the Device resource by the International Patient Summary (IPS) FHIR Implementation Guide, based on FHIR R4. A device used by or implanted on the patient is described in the patient summary as an instance of a Device resource constrained by this profile.

The official URL for this profile is:

http://hl7.org/fhir/uv/ips/StructureDefinition/Device-uv-ips

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Device

Summary

Mandatory: 2 elements
Must-Support: 4 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Device.type is sliced based on the value of pattern:$this

This structure is derived from Device

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device S0..*DeviceItem used in healthcare
... type S0..1(Slice Definition)Type of device. Preferably valued by using SNOMED CT. The absence of information, or of devices relevant for purpose of this IPS, shall be explicitly stated by using the codes included in the absent-or-unknown-devices-uv-ips value set.
Slice: Unordered, Open by pattern:$this
Binding: Medical Devices - IPS (preferred)
.... type:absentOrUnknownDevice S0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Absent or Unknown Devices - IPS (required)
... patient S1..1Reference(Patient (IPS))Patient to whom Device is affixed
.... reference S1..1stringLiteral reference, Relative, internal or absolute URL

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Device SI0..*DeviceItem used in healthcare
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierInstance identifier
... definition I0..1Reference(DeviceDefinition)The reference to the definition for the device
... udiCarrier ΣI0..*BackboneElementUnique Device Identifier (UDI) Barcode string
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... deviceIdentifier ΣI0..1stringMandatory fixed portion of UDI
.... issuer I0..1uriUDI Issuing Organization
.... jurisdiction I0..1uriRegional UDI authority
.... carrierAIDC ΣI0..1base64BinaryUDI Machine Readable Barcode String
.... carrierHRF ΣI0..1stringUDI Human Readable Barcode String
.... entryType I0..1codebarcode | rfid | manual +
Binding: UDIEntryType (required)
... status ?!ΣI0..1codeactive | inactive | entered-in-error | unknown
Binding: FHIRDeviceStatus (required)
... statusReason I0..*CodeableConceptonline | paused | standby | offline | not-ready | transduc-discon | hw-discon | off
Binding: FHIRDeviceStatusReason (extensible)
... distinctIdentifier I0..1stringThe distinct identification string
... manufacturer I0..1stringName of device manufacturer
... manufactureDate I0..1dateTimeDate when the device was made
... expirationDate I0..1dateTimeDate and time of expiry of this device (if applicable)
... lotNumber I0..1stringLot number of manufacture
... serialNumber I0..1stringSerial number assigned by the manufacturer
... deviceName I0..*BackboneElementThe name of the device as given by the manufacturer
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name I1..1stringThe name of the device
.... type I1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required)
... modelNumber I0..1stringThe model number for the device
... partNumber I0..1stringThe part number of the device
... type SI0..1(Slice Definition)Type of device. Preferably valued by using SNOMED CT. The absence of information, or of devices relevant for purpose of this IPS, shall be explicitly stated by using the codes included in the absent-or-unknown-devices-uv-ips value set.
Slice: Unordered, Open by pattern:$this
Binding: Medical Devices - IPS (preferred)
.... type:absentOrUnknownDevice SI0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Absent or Unknown Devices - IPS (required)
... specialization I0..*BackboneElementThe capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... systemType I1..1CodeableConceptThe standard that is used to operate and communicate
.... version I0..1stringThe version of the standard that is used to operate and communicate
... version I0..*BackboneElementThe actual design of the device or software version running on the device
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I0..1CodeableConceptThe type of the device version
.... component I0..1IdentifierA single component of the device version
.... value I1..1stringThe version text
... property I0..*BackboneElementThe actual configuration settings of a device as it actually operates, e.g., regulation status, time properties
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I1..1CodeableConceptCode that specifies the property DeviceDefinitionPropetyCode (Extensible)
.... valueQuantity I0..*QuantityProperty value as a quantity
.... valueCode I0..*CodeableConceptProperty value as a code, e.g., NTP4 (synced to NTP)
... patient SI1..1Reference(Patient (IPS))Patient to whom Device is affixed
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference SΣI1..1stringLiteral reference, Relative, internal or absolute URL
.... type ΣI0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible)
.... identifier ΣI0..1IdentifierLogical reference, when literal reference is not known
.... display ΣI0..1stringText alternative for the resource
... owner I0..1Reference(Organization)Organization responsible for device
... contact I0..*ContactPointDetails for human/organization for support
... location I0..1Reference(Location)Where the device is found
... url I0..1uriNetwork address to contact device
... note I0..*AnnotationDevice notes and comments
... safety ΣI0..*CodeableConceptSafety Characteristics of Device
... parent I0..1Reference(Device)The parent device

doco Documentation for this format

This structure is derived from Device

Summary

Mandatory: 2 elements
Must-Support: 4 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Device.type is sliced based on the value of pattern:$this

Differential View

This structure is derived from Device

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device S0..*DeviceItem used in healthcare
... type S0..1(Slice Definition)Type of device. Preferably valued by using SNOMED CT. The absence of information, or of devices relevant for purpose of this IPS, shall be explicitly stated by using the codes included in the absent-or-unknown-devices-uv-ips value set.
Slice: Unordered, Open by pattern:$this
Binding: Medical Devices - IPS (preferred)
.... type:absentOrUnknownDevice S0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Absent or Unknown Devices - IPS (required)
... patient S1..1Reference(Patient (IPS))Patient to whom Device is affixed
.... reference S1..1stringLiteral reference, Relative, internal or absolute URL

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device SI0..*DeviceItem used in healthcare
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierInstance identifier
... definition I0..1Reference(DeviceDefinition)The reference to the definition for the device
... udiCarrier ΣI0..*BackboneElementUnique Device Identifier (UDI) Barcode string
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... deviceIdentifier ΣI0..1stringMandatory fixed portion of UDI
.... issuer I0..1uriUDI Issuing Organization
.... jurisdiction I0..1uriRegional UDI authority
.... carrierAIDC ΣI0..1base64BinaryUDI Machine Readable Barcode String
.... carrierHRF ΣI0..1stringUDI Human Readable Barcode String
.... entryType I0..1codebarcode | rfid | manual +
Binding: UDIEntryType (required)
... status ?!ΣI0..1codeactive | inactive | entered-in-error | unknown
Binding: FHIRDeviceStatus (required)
... statusReason I0..*CodeableConceptonline | paused | standby | offline | not-ready | transduc-discon | hw-discon | off
Binding: FHIRDeviceStatusReason (extensible)
... distinctIdentifier I0..1stringThe distinct identification string
... manufacturer I0..1stringName of device manufacturer
... manufactureDate I0..1dateTimeDate when the device was made
... expirationDate I0..1dateTimeDate and time of expiry of this device (if applicable)
... lotNumber I0..1stringLot number of manufacture
... serialNumber I0..1stringSerial number assigned by the manufacturer
... deviceName I0..*BackboneElementThe name of the device as given by the manufacturer
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name I1..1stringThe name of the device
.... type I1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required)
... modelNumber I0..1stringThe model number for the device
... partNumber I0..1stringThe part number of the device
... type SI0..1(Slice Definition)Type of device. Preferably valued by using SNOMED CT. The absence of information, or of devices relevant for purpose of this IPS, shall be explicitly stated by using the codes included in the absent-or-unknown-devices-uv-ips value set.
Slice: Unordered, Open by pattern:$this
Binding: Medical Devices - IPS (preferred)
.... type:absentOrUnknownDevice SI0..1CodeableConceptIPSConcept - reference to a terminology or just text
Binding: Absent or Unknown Devices - IPS (required)
... specialization I0..*BackboneElementThe capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... systemType I1..1CodeableConceptThe standard that is used to operate and communicate
.... version I0..1stringThe version of the standard that is used to operate and communicate
... version I0..*BackboneElementThe actual design of the device or software version running on the device
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I0..1CodeableConceptThe type of the device version
.... component I0..1IdentifierA single component of the device version
.... value I1..1stringThe version text
... property I0..*BackboneElementThe actual configuration settings of a device as it actually operates, e.g., regulation status, time properties
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I1..1CodeableConceptCode that specifies the property DeviceDefinitionPropetyCode (Extensible)
.... valueQuantity I0..*QuantityProperty value as a quantity
.... valueCode I0..*CodeableConceptProperty value as a code, e.g., NTP4 (synced to NTP)
... patient SI1..1Reference(Patient (IPS))Patient to whom Device is affixed
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference SΣI1..1stringLiteral reference, Relative, internal or absolute URL
.... type ΣI0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible)
.... identifier ΣI0..1IdentifierLogical reference, when literal reference is not known
.... display ΣI0..1stringText alternative for the resource
... owner I0..1Reference(Organization)Organization responsible for device
... contact I0..*ContactPointDetails for human/organization for support
... location I0..1Reference(Location)Where the device is found
... url I0..1uriNetwork address to contact device
... note I0..*AnnotationDevice notes and comments
... safety ΣI0..*CodeableConceptSafety Characteristics of Device
... parent I0..1Reference(Device)The parent device

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Device.languagepreferredCommonLanguages
Max Binding: AllLanguages
Device.udiCarrier.entryTyperequiredUDIEntryType
Device.statusrequiredFHIRDeviceStatus
Device.statusReasonextensibleFHIRDeviceStatusReason
Device.deviceName.typerequiredDeviceNameType
Device.typepreferredMedicalDevicesUvIps
Device.type:absentOrUnknownDevicerequiredNoDevicesInfoUvIps
Device.patient.typeextensibleResourceType

Constraints

Constraints

IdPathDetailsRequirements
dom-2DeviceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3DeviceIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4DeviceIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5DeviceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6DeviceA resource should have narrative for robust management
: text.`div`.exists()
ele-1Device.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.definitionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.udiCarrierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.udiCarrier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.udiCarrier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.udiCarrier.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.udiCarrier.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.udiCarrier.deviceIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.udiCarrier.issuerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.udiCarrier.jurisdictionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.udiCarrier.carrierAIDCAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.udiCarrier.carrierHRFAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.udiCarrier.entryTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.distinctIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.manufactureDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.serialNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.deviceNameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.deviceName.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.deviceName.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.deviceName.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.deviceName.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.deviceName.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.deviceName.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.modelNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.partNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.type:absentOrUnknownDeviceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.specializationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.specialization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.specialization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.specialization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.specialization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.specialization.systemTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.specialization.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.version.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.version.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.version.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.version.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.version.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.version.componentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.version.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.propertyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.property.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.property.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.property.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.property.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.property.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.property.valueQuantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.property.valueCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.patient.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Device.patient.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Device.patient.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.patient.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.patient.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.patient.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.ownerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.contactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.safetyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Device.parentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())