At-Home In-Vitro Test Report
1.0.0 - STU 1 United States of America flag

This page is part of the At-Home In-Vitro Test Report (v1.0.0: STU 1) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: Device - At-Home In-Vitro Test

Official URL: http://hl7.org/fhir/us/home-lab-report/StructureDefinition/Device-at-home-in-vitro-test Version: 1.0.0
Active as of 2023-03-25 Computable Name: DeviceAtHomeInVitroTest

This profile constrains the Device resource for At-Home In-Vitro Tests.

The data elements in this profile contain narrative guidance (mappings) to specific columns in the “LOINC Mapping” tab contained in the LIVD Spreadsheet.

Although most at home test kits will have a single udiCarrier.deviceIdentifier for the “test kit” (all in one package of reagents, test card/device, etc.) it is possible for at home kits to have a resuable “reader device” which would need a distinct “equipment id”. In this case, the reader device would have an “equipment UID” that may be the same for multiple tests performed. For these cases use multiple Devices - one to represent the test kit (which would have the Test Kit Name ID recorded in Device.udiCarrier.deviceIdentifier) and one to represent the reader device (which would have the Equipment ID recorded in Device.udiCarrier.deviceIdentifier).

Usage:

Formal Views of Profile Content

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

This structure is derived from Device

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceItem used in healthcare
... udiCarrier S0..1BackboneElementUnique Device Identifier (UDI) Barcode string
.... deviceIdentifier S1..1stringLIVD Spreadsheet | LOINC Mapping.Testkit Name ID or LIVD Spreadsheet | LOINC Mapping.Testkit Equipment UID
.... issuer S0..1uriUDI Issuing Organization
... manufacturer S0..1stringLIVD Spreadsheet | LOINC Mapping.Manufacturer
... manufactureDate S0..1dateTimeDate when the device was made
... lotNumber S0..1stringLot number of the test kit
... serialNumber S0..1stringSerial number of the test kit
... Slices for deviceName 1..*BackboneElementThe name of the device as given by the manufacturer
Slice: Unordered, Open by value:type
.... deviceName:modelName 1..1BackboneElementLIVD Spreadsheet | LOINC Mapping.Model
..... name S1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Fixed Value: model-name

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceItem used in healthcare
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... udiCarrier SΣ0..1BackboneElementUnique Device Identifier (UDI) Barcode string
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... deviceIdentifier SΣ1..1stringLIVD Spreadsheet | LOINC Mapping.Testkit Name ID or LIVD Spreadsheet | LOINC Mapping.Testkit Equipment UID
.... issuer S0..1uriUDI Issuing Organization
... manufacturer S0..1stringLIVD Spreadsheet | LOINC Mapping.Manufacturer
... manufactureDate S0..1dateTimeDate when the device was made
... expirationDate S0..1dateTimeExpiration date of the test kit
... lotNumber S0..1stringLot number of the test kit
... serialNumber S0..1stringSerial number of the test kit
... Slices for deviceName 1..*BackboneElementThe name of the device as given by the manufacturer
Slice: Unordered, Open by value:type
.... deviceName:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.

.... deviceName:modelName 1..1BackboneElementLIVD Spreadsheet | LOINC Mapping.Model
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name S1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.


Fixed Value: model-name

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Device.statusrequiredFHIRDeviceStatus
Device.deviceName.typerequiredDeviceNameType
Device.deviceName:modelName.typerequiredFixed Value: model-name

Constraints

IdGradePath(s)DetailsRequirements
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-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceItem used in healthcare
... id Σ0..1idLogical id of this artifact
... 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 SΣ0..1BackboneElementUnique 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 SΣ1..1stringLIVD Spreadsheet | LOINC Mapping.Testkit Name ID or LIVD Spreadsheet | LOINC Mapping.Testkit Equipment UID
.... issuer S0..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..1stringLIVD Spreadsheet | LOINC Mapping.Manufacturer
... manufactureDate S0..1dateTimeDate when the device was made
... expirationDate S0..1dateTimeExpiration date of the test kit
... lotNumber S0..1stringLot number of the test kit
... serialNumber S0..1stringSerial number of the test kit
... Slices for deviceName 1..*BackboneElementThe name of the device as given by the manufacturer
Slice: Unordered, Open by value:type
.... deviceName:All Slices Content/Rules for all slices
..... 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 1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.

.... deviceName:modelName 1..1BackboneElementLIVD Spreadsheet | LOINC Mapping.Model
..... 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 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.


Fixed Value: model-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 0..*BackboneElementThe 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 1..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

Terminology Bindings

PathConformanceValueSet / Code
Device.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Device.udiCarrier.entryTyperequiredUDIEntryType
Device.statusrequiredFHIRDeviceStatus
Device.statusReasonextensibleFHIRDeviceStatusReason
Device.deviceName.typerequiredDeviceNameType
Device.deviceName:modelName.typerequiredFixed Value: model-name
Device.typeexampleDeviceType

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Device

Summary

Mandatory: 2 elements (1 nested mandatory element)
Must-Support: 9 elements
Fixed Value: 1 element

Slices

This structure defines the following Slices:

  • The element Device.deviceName is sliced based on the value of value:type

Differential View

This structure is derived from Device

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceItem used in healthcare
... udiCarrier S0..1BackboneElementUnique Device Identifier (UDI) Barcode string
.... deviceIdentifier S1..1stringLIVD Spreadsheet | LOINC Mapping.Testkit Name ID or LIVD Spreadsheet | LOINC Mapping.Testkit Equipment UID
.... issuer S0..1uriUDI Issuing Organization
... manufacturer S0..1stringLIVD Spreadsheet | LOINC Mapping.Manufacturer
... manufactureDate S0..1dateTimeDate when the device was made
... lotNumber S0..1stringLot number of the test kit
... serialNumber S0..1stringSerial number of the test kit
... Slices for deviceName 1..*BackboneElementThe name of the device as given by the manufacturer
Slice: Unordered, Open by value:type
.... deviceName:modelName 1..1BackboneElementLIVD Spreadsheet | LOINC Mapping.Model
..... name S1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Fixed Value: model-name

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceItem used in healthcare
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... udiCarrier SΣ0..1BackboneElementUnique Device Identifier (UDI) Barcode string
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... deviceIdentifier SΣ1..1stringLIVD Spreadsheet | LOINC Mapping.Testkit Name ID or LIVD Spreadsheet | LOINC Mapping.Testkit Equipment UID
.... issuer S0..1uriUDI Issuing Organization
... manufacturer S0..1stringLIVD Spreadsheet | LOINC Mapping.Manufacturer
... manufactureDate S0..1dateTimeDate when the device was made
... expirationDate S0..1dateTimeExpiration date of the test kit
... lotNumber S0..1stringLot number of the test kit
... serialNumber S0..1stringSerial number of the test kit
... Slices for deviceName 1..*BackboneElementThe name of the device as given by the manufacturer
Slice: Unordered, Open by value:type
.... deviceName:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.

.... deviceName:modelName 1..1BackboneElementLIVD Spreadsheet | LOINC Mapping.Model
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name S1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.


Fixed Value: model-name

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Device.statusrequiredFHIRDeviceStatus
Device.deviceName.typerequiredDeviceNameType
Device.deviceName:modelName.typerequiredFixed Value: model-name

Constraints

IdGradePath(s)DetailsRequirements
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-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device 0..*DeviceItem used in healthcare
... id Σ0..1idLogical id of this artifact
... 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 SΣ0..1BackboneElementUnique 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 SΣ1..1stringLIVD Spreadsheet | LOINC Mapping.Testkit Name ID or LIVD Spreadsheet | LOINC Mapping.Testkit Equipment UID
.... issuer S0..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..1stringLIVD Spreadsheet | LOINC Mapping.Manufacturer
... manufactureDate S0..1dateTimeDate when the device was made
... expirationDate S0..1dateTimeExpiration date of the test kit
... lotNumber S0..1stringLot number of the test kit
... serialNumber S0..1stringSerial number of the test kit
... Slices for deviceName 1..*BackboneElementThe name of the device as given by the manufacturer
Slice: Unordered, Open by value:type
.... deviceName:All Slices Content/Rules for all slices
..... 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 1..1stringThe name of the device
..... type 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.

.... deviceName:modelName 1..1BackboneElementLIVD Spreadsheet | LOINC Mapping.Model
..... 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 1..1codeudi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other
Binding: DeviceNameType (required): The type of name the device is referred by.


Fixed Value: model-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 0..*BackboneElementThe 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 1..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

Terminology Bindings

PathConformanceValueSet / Code
Device.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Device.udiCarrier.entryTyperequiredUDIEntryType
Device.statusrequiredFHIRDeviceStatus
Device.statusReasonextensibleFHIRDeviceStatusReason
Device.deviceName.typerequiredDeviceNameType
Device.deviceName:modelName.typerequiredFixed Value: model-name
Device.typeexampleDeviceType

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Device

Summary

Mandatory: 2 elements (1 nested mandatory element)
Must-Support: 9 elements
Fixed Value: 1 element

Slices

This structure defines the following Slices:

  • The element Device.deviceName is sliced based on the value of value:type

 

Other representations of profile: CSV, Excel, Schematron