MedNet interface implementation guide
0.15.0 - CI Build

MedNet interface implementation guide - Local Development build (v0.15.0). See the Directory of published versions

Resource Profile: MedNet Interface (MNI) - Device

Official URL: https://mednet.swiss/fhir/StructureDefinition/mni-device Version: 0.15.0
Active as of 2020-11-06 Computable Name: MNIDevice

Copyright/Legal: novcom AG

MedNet Interface (MNI) - Device Profile

Usage:

Formal Views of Profile Content

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

This structure is derived from Device

Summary

Must-Support: 7 elements
Fixed Value: 1 element

This structure is derived from Device

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceMedNet Interface (MNI) - Device
... id S0..1stringThe id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... manufacturer S0..1stringName of device manufacturer
... deviceName S0..1BackboneElementThe name of the device as given by the manufacturer
.... name S1..1stringThe name of the device
.... type S1..1codeuser-friendly-name
Fixed Value: user-friendly-name
.... value S1..1stringThe version text

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceMedNet Interface (MNI) - Device
... id SΣ0..1stringThe id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierInstance identifier
... definition 0..1Reference(DeviceDefinition)The reference to the definition for the device
... udiCarrier Σ0..*BackboneElementUnique Device Identifier (UDI) Barcode string
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... deviceIdentifier Σ0..1stringMandatory fixed portion of UDI
.... issuer 0..1uriUDI Issuing Organization
.... jurisdiction 0..1uriRegional UDI authority
.... carrierAIDC Σ0..1base64BinaryUDI Machine Readable Barcode String
.... carrierHRF Σ0..1stringUDI Human Readable Barcode String
.... entryType 0..1codebarcode | rfid | manual +
Binding: UDIEntryType (required): Codes to identify how UDI data was entered.

... status ?!Σ0..1codeactive | inactive | entered-in-error | unknown
Binding: FHIRDeviceStatus (required): The availability status of the device.

... statusReason 0..*CodeableConceptonline | paused | standby | offline | not-ready | transduc-discon | hw-discon | off
Binding: FHIRDeviceStatusReason (extensible): The availability status reason of the device.


... distinctIdentifier 0..1stringThe distinct identification string
... manufacturer S0..1stringName of device manufacturer
... manufactureDate 0..1dateTimeDate when the device was made
... expirationDate 0..1dateTimeDate and time of expiry of this device (if applicable)
... lotNumber 0..1stringLot number of manufacture
... serialNumber 0..1stringSerial number assigned by the manufacturer
... deviceName S0..1BackboneElementThe name of the device as given by the manufacturer
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name S1..1stringThe name of the device
.... type S1..1codeuser-friendly-name
Binding: DeviceNameType (required): The type of name the device is referred by.


Fixed Value: user-friendly-name
... modelNumber 0..1stringThe model number for the device
... partNumber 0..1stringThe part number of the device
... type 0..1CodeableConceptThe kind or type of device
Binding: DeviceType (example): Codes to identify medical devices.

... specialization 0..*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 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... systemType 1..1CodeableConceptThe standard that is used to operate and communicate
.... version 0..1stringThe version of the standard that is used to operate and communicate
... version S0..1BackboneElementThe actual design of the device or software version running on the device
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type 0..1CodeableConceptThe type of the device version
.... component 0..1IdentifierA single component of the device version
.... value S1..1stringThe version text
... property 0..*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 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type 1..1CodeableConceptCode that specifies the property DeviceDefinitionPropetyCode (Extensible)
.... valueQuantity 0..*QuantityProperty value as a quantity
.... valueCode 0..*CodeableConceptProperty value as a code, e.g., NTP4 (synced to NTP)
... patient 0..1Reference(Patient)Patient to whom Device is affixed
... owner 0..1Reference(Organization)Organization responsible for device
... contact 0..*ContactPointDetails for human/organization for support
... location 0..1Reference(Location)Where the device is found
... url 0..1uriNetwork address to contact device
... note 0..*AnnotationDevice notes and comments
... safety Σ0..*CodeableConceptSafety Characteristics of Device
... parent 0..1Reference(Device)The parent device

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceMedNet Interface (MNI) - Device
... id Σ0..1stringThe id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... manufacturer 0..1stringName of device manufacturer
... deviceName 0..1BackboneElementThe name of the device as given by the manufacturer
.... name 1..1stringThe name of the device
.... type 1..1codeuser-friendly-name
Binding: DeviceNameType (required): The type of name the device is referred by.


Fixed Value: user-friendly-name
.... value 1..1stringThe version text

doco Documentation for this format

This structure is derived from Device

Summary

Must-Support: 7 elements
Fixed Value: 1 element

Differential View

This structure is derived from Device

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceMedNet Interface (MNI) - Device
... id S0..1stringThe id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... manufacturer S0..1stringName of device manufacturer
... deviceName S0..1BackboneElementThe name of the device as given by the manufacturer
.... name S1..1stringThe name of the device
.... type S1..1codeuser-friendly-name
Fixed Value: user-friendly-name
.... value S1..1stringThe version text

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceMedNet Interface (MNI) - Device
... id SΣ0..1stringThe id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierInstance identifier
... definition 0..1Reference(DeviceDefinition)The reference to the definition for the device
... udiCarrier Σ0..*BackboneElementUnique Device Identifier (UDI) Barcode string
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... deviceIdentifier Σ0..1stringMandatory fixed portion of UDI
.... issuer 0..1uriUDI Issuing Organization
.... jurisdiction 0..1uriRegional UDI authority
.... carrierAIDC Σ0..1base64BinaryUDI Machine Readable Barcode String
.... carrierHRF Σ0..1stringUDI Human Readable Barcode String
.... entryType 0..1codebarcode | rfid | manual +
Binding: UDIEntryType (required): Codes to identify how UDI data was entered.

... status ?!Σ0..1codeactive | inactive | entered-in-error | unknown
Binding: FHIRDeviceStatus (required): The availability status of the device.

... statusReason 0..*CodeableConceptonline | paused | standby | offline | not-ready | transduc-discon | hw-discon | off
Binding: FHIRDeviceStatusReason (extensible): The availability status reason of the device.


... distinctIdentifier 0..1stringThe distinct identification string
... manufacturer S0..1stringName of device manufacturer
... manufactureDate 0..1dateTimeDate when the device was made
... expirationDate 0..1dateTimeDate and time of expiry of this device (if applicable)
... lotNumber 0..1stringLot number of manufacture
... serialNumber 0..1stringSerial number assigned by the manufacturer
... deviceName S0..1BackboneElementThe name of the device as given by the manufacturer
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name S1..1stringThe name of the device
.... type S1..1codeuser-friendly-name
Binding: DeviceNameType (required): The type of name the device is referred by.


Fixed Value: user-friendly-name
... modelNumber 0..1stringThe model number for the device
... partNumber 0..1stringThe part number of the device
... type 0..1CodeableConceptThe kind or type of device
Binding: DeviceType (example): Codes to identify medical devices.

... specialization 0..*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 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... systemType 1..1CodeableConceptThe standard that is used to operate and communicate
.... version 0..1stringThe version of the standard that is used to operate and communicate
... version S0..1BackboneElementThe actual design of the device or software version running on the device
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type 0..1CodeableConceptThe type of the device version
.... component 0..1IdentifierA single component of the device version
.... value S1..1stringThe version text
... property 0..*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 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type 1..1CodeableConceptCode that specifies the property DeviceDefinitionPropetyCode (Extensible)
.... valueQuantity 0..*QuantityProperty value as a quantity
.... valueCode 0..*CodeableConceptProperty value as a code, e.g., NTP4 (synced to NTP)
... patient 0..1Reference(Patient)Patient to whom Device is affixed
... owner 0..1Reference(Organization)Organization responsible for device
... contact 0..*ContactPointDetails for human/organization for support
... location 0..1Reference(Location)Where the device is found
... url 0..1uriNetwork address to contact device
... note 0..*AnnotationDevice notes and comments
... safety Σ0..*CodeableConceptSafety Characteristics of Device
... parent 0..1Reference(Device)The parent device

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Device.languagepreferredCommonLanguages
Max Binding: AllLanguages
Device.udiCarrier.entryTyperequiredUDIEntryType
Device.statusrequiredFHIRDeviceStatus
Device.statusReasonextensibleFHIRDeviceStatusReason
Device.deviceName.typerequiredFixed Value: user-friendly-name
Device.typeexampleDeviceType

Constraints

IdGradePathDetailsRequirements
dom-2errorDeviceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDeviceIf 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-4errorDeviceIf 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-5errorDeviceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeDeviceA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorDevice.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.definitionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.udiCarrierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.udiCarrier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.udiCarrier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.udiCarrier.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.udiCarrier.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.udiCarrier.deviceIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.udiCarrier.issuerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.udiCarrier.jurisdictionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.udiCarrier.carrierAIDCAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.udiCarrier.carrierHRFAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.udiCarrier.entryTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.distinctIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.manufactureDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.serialNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.deviceNameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.deviceName.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.deviceName.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.deviceName.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.deviceName.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.deviceName.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.deviceName.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.modelNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.partNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.specializationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.specialization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.specialization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.specialization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.specialization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.specialization.systemTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.specialization.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.version.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.version.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.version.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.version.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.version.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.version.componentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.version.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.propertyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.property.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.property.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.property.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDevice.property.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDevice.property.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.property.valueQuantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.property.valueCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.ownerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.contactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.safetyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDevice.parentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())