Consolidated CDA
3.0.0-ballot - ballot United States of America flag

This page is part of the CCDA: Consolidated CDA Release (v3.0.0-ballot: CCDA 3.0 Ballot 1) based on FHIR (HL7® FHIR® Standard) v5.0.0. . For a full list of available versions, see the Directory of published versions

Logical Model: Product Instance

Official URL: http://hl7.org/cda/us/ccda/StructureDefinition/ProductInstance Version: 3.0.0-ballot
Draft as of 2023-12-21 Computable Name: ProductInstance
Other Identifiers: id: urn:oid:2.16.840.1.113883.10.20.22.4.37

This clinical statement represents a particular device that was placed in a patient or used as part of a procedure or other act. This provides a record of the identifier and other details about the given product that was used. For example, it is important to have a record that indicates not just that a hip prostheses was placed in a patient but that it was a particular hip prostheses number with a unique identifier.

The FDA Amendments Act specifies the creation of a Unique Device Identification (UDI) System that requires the label of devices to bear a unique identifier that will standardize device identification and identify the device through distribution and use.

The FDA permits an issuing agency to designate that their Device Identifier (DI) + Production Identifier (PI) format qualifies as a UDI through a process of accreditation. Currently, there are three FDA-accredited issuing agencies that are allowed to call their format a UDI. These organizations are GS1, HIBCC, and ICCBBA. For additional information on technical formats that qualify as UDI from each of the issuing agencies see the UDI Appendix.

When communicating only the issuing agency device identifier (i.e., subcomponent of the UDI), the use of the issuing agency OID is appropriate. However, when communicating the unique device identifier (DI + PI), the FDA OID (2.16.840.1.113883.3.3719) must be used. When sending a UDI, populate the participantRole/id/@root with the FDA OID (2.16.840.1.113883.3.3719) and participantRole/id/@extension with the UDI.

When sending a DI, populate the participantRole/id/@root with the appropriate assigning agency OID and participantRole/id/@extension with the DI. The scopingEntity/id should correspond to FDA or the appropriate issuing agency.

Usage:

Formal Views of Profile Content

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

This structure is derived from ParticipantRole

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole ParticipantRoleXML Namespace: urn:hl7-org:v3
Elements defined in Ancestors: @nullFlavor, realmCode, typeId, templateId, @classCode, id, sdtcIdentifiedBy, code, addr, telecom, playingDevice, playingEntity, scopingEntity
Instances of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... Slices for templateId 1..*IISlice: Unordered, Open by value:root
.... templateId:product-instance 1..1II
..... @root 1..1oid, uuid, ruidRequired Pattern: 2.16.840.1.113883.10.20.22.4.37
..... @extension 0..0
... @classCode 1..1csFixed Value: MANU
... id 1..*II
.... code 0..1CE
... scopingEntity 1..1Entity
.... id 1..*II

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
should-codewarningParticipantRole.playingDeviceSHOULD contain code
: code.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole C1..1ParticipantRoleXML Namespace: urn:hl7-org:v3
Elements defined in Ancestors: @nullFlavor, realmCode, typeId, templateId, @classCode, id, sdtcIdentifiedBy, code, addr, telecom, playingDevice, playingEntity, scopingEntity
Base for all types and resources
Instances of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... Slices for templateId 1..*IISlice: Unordered, Open by value:root
.... templateId:product-instance 1..1II
..... @root 1..1oid, uuid, ruidRequired Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1csBinding: RoleClassRoot (required)
Fixed Value: MANU
... id 1..*II
.... @classCode 1..1csBinding: EntityClassDevice (required)
.... code 0..1CEBinding: EntityCode (example)
... scopingEntity 1..1Entity
.... @classCode 1..1csBinding: EntityClassRoot (required)
.... id 1..*II

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ParticipantRole.classCoderequiredFixed Value: MANU
ParticipantRole.playingDevice.classCoderequiredEntityClassDevice
ParticipantRole.playingDevice.codeexampleEntityCode
ParticipantRole.scopingEntity.classCoderequiredEntityClassRoot

Constraints

IdGradePath(s)DetailsRequirements
role-choiceerrorParticipantRoleplayingDevice and playingEntity are mutually exclusive
: (playingDevice | playingEntity).count() <= 1
should-codewarningParticipantRole.playingDeviceSHOULD contain code
: code.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole C1..1ParticipantRoleXML Namespace: urn:hl7-org:v3
Elements defined in Ancestors: @nullFlavor, realmCode, typeId, templateId, @classCode, id, sdtcIdentifiedBy, code, addr, telecom, playingDevice, playingEntity, scopingEntity
Base for all types and resources
Instances of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @nullFlavor 0..1csBinding: CDANullFlavor (required)
... realmCode 0..*CS
... typeId 0..1II
.... @nullFlavor 0..1csBinding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1st
.... @displayable 0..1bl
.... @root 1..1oid, uuid, ruidFixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1st
.... templateId:product-instance 1..1II
..... @nullFlavor 0..1csBinding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1st
..... @displayable 0..1bl
..... @root 1..1oid, uuid, ruidRequired Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1csBinding: RoleClassRoot (required)
Fixed Value: MANU
... id 1..*II
... sdtcIdentifiedBy 0..*IdentifiedByXML Namespace: urn:hl7-org:sdtc
XML: identifiedBy (urn:hl7-org:sdtc)
... code 0..1CEBinding: v3 Code System RoleCode (example)
... addr 0..*AD
... telecom 0..*TEL
... (Choice of one) 0..1
.... playingDevice C1..1Deviceshould-code: SHOULD contain code
..... @nullFlavor 0..1csBinding: CDANullFlavor (required)
..... realmCode 0..*CS
..... typeId 0..1II
...... @nullFlavor 0..1csBinding: CDANullFlavor (required)
...... @assigningAuthorityName 0..1st
...... @displayable 0..1bl
...... @root 1..1oid, uuid, ruidFixed Value: 2.16.840.1.113883.1.3
...... @extension 1..1st
..... templateId 0..*II
..... @classCode 1..1csBinding: EntityClassDevice (required)
..... @determinerCode 0..1csBinding: EntityDeterminer (required)
Fixed Value: INSTANCE
..... code 0..1CEBinding: EntityCode (example)
..... manufacturerModelName 0..1SCBinding: Manufacturer Model Name Example (example)
..... softwareName 0..1SCBinding: Software Name Example (example)
.... playingEntity 0..1PlayingEntity
... scopingEntity 1..1Entity
.... @nullFlavor 0..1csBinding: CDANullFlavor (required)
.... realmCode 0..*CS
.... typeId 0..1II
..... @nullFlavor 0..1csBinding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1st
..... @displayable 0..1bl
..... @root 1..1oid, uuid, ruidFixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1st
.... templateId 0..*II
.... @classCode 1..1csBinding: EntityClassRoot (required)
.... @determinerCode 0..1csBinding: EntityDeterminer (required)
Fixed Value: INSTANCE
.... id 1..*II
.... code 0..1CEBinding: EntityCode (example)
.... desc 0..1ED

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ParticipantRole.nullFlavorrequiredCDANullFlavor
ParticipantRole.typeId.nullFlavorrequiredCDANullFlavor
ParticipantRole.templateId:product-instance.nullFlavorrequiredCDANullFlavor
ParticipantRole.classCoderequiredFixed Value: MANU
ParticipantRole.codeexampleRoleCode
ParticipantRole.playingDevice.nullFlavorrequiredCDANullFlavor
ParticipantRole.playingDevice.typeId.nullFlavorrequiredCDANullFlavor
ParticipantRole.playingDevice.classCoderequiredEntityClassDevice
ParticipantRole.playingDevice.determinerCoderequiredFixed Value: INSTANCE
ParticipantRole.playingDevice.codeexampleEntityCode
ParticipantRole.playingDevice.manufacturerModelNameexampleManufacturerModelNameExample
ParticipantRole.playingDevice.softwareNameexampleSoftwareNameExample
ParticipantRole.scopingEntity.nullFlavorrequiredCDANullFlavor
ParticipantRole.scopingEntity.typeId.nullFlavorrequiredCDANullFlavor
ParticipantRole.scopingEntity.classCoderequiredEntityClassRoot
ParticipantRole.scopingEntity.determinerCoderequiredFixed Value: INSTANCE
ParticipantRole.scopingEntity.codeexampleEntityCode

Constraints

IdGradePath(s)DetailsRequirements
role-choiceerrorParticipantRoleplayingDevice and playingEntity are mutually exclusive
: (playingDevice | playingEntity).count() <= 1
should-codewarningParticipantRole.playingDeviceSHOULD contain code
: code.exists()

This structure is derived from ParticipantRole

Summary

Mandatory: 7 elements
Fixed Value: 1 element
Prohibited: 1 element

Slices

This structure defines the following Slices:

  • The element ParticipantRole.templateId is sliced based on the value of value:root

Differential View

This structure is derived from ParticipantRole

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole ParticipantRoleXML Namespace: urn:hl7-org:v3
Elements defined in Ancestors: @nullFlavor, realmCode, typeId, templateId, @classCode, id, sdtcIdentifiedBy, code, addr, telecom, playingDevice, playingEntity, scopingEntity
Instances of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... Slices for templateId 1..*IISlice: Unordered, Open by value:root
.... templateId:product-instance 1..1II
..... @root 1..1oid, uuid, ruidRequired Pattern: 2.16.840.1.113883.10.20.22.4.37
..... @extension 0..0
... @classCode 1..1csFixed Value: MANU
... id 1..*II
.... code 0..1CE
... scopingEntity 1..1Entity
.... id 1..*II

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
should-codewarningParticipantRole.playingDeviceSHOULD contain code
: code.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole C1..1ParticipantRoleXML Namespace: urn:hl7-org:v3
Elements defined in Ancestors: @nullFlavor, realmCode, typeId, templateId, @classCode, id, sdtcIdentifiedBy, code, addr, telecom, playingDevice, playingEntity, scopingEntity
Base for all types and resources
Instances of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... Slices for templateId 1..*IISlice: Unordered, Open by value:root
.... templateId:product-instance 1..1II
..... @root 1..1oid, uuid, ruidRequired Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1csBinding: RoleClassRoot (required)
Fixed Value: MANU
... id 1..*II
.... @classCode 1..1csBinding: EntityClassDevice (required)
.... code 0..1CEBinding: EntityCode (example)
... scopingEntity 1..1Entity
.... @classCode 1..1csBinding: EntityClassRoot (required)
.... id 1..*II

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ParticipantRole.classCoderequiredFixed Value: MANU
ParticipantRole.playingDevice.classCoderequiredEntityClassDevice
ParticipantRole.playingDevice.codeexampleEntityCode
ParticipantRole.scopingEntity.classCoderequiredEntityClassRoot

Constraints

IdGradePath(s)DetailsRequirements
role-choiceerrorParticipantRoleplayingDevice and playingEntity are mutually exclusive
: (playingDevice | playingEntity).count() <= 1
should-codewarningParticipantRole.playingDeviceSHOULD contain code
: code.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole C1..1ParticipantRoleXML Namespace: urn:hl7-org:v3
Elements defined in Ancestors: @nullFlavor, realmCode, typeId, templateId, @classCode, id, sdtcIdentifiedBy, code, addr, telecom, playingDevice, playingEntity, scopingEntity
Base for all types and resources
Instances of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @nullFlavor 0..1csBinding: CDANullFlavor (required)
... realmCode 0..*CS
... typeId 0..1II
.... @nullFlavor 0..1csBinding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1st
.... @displayable 0..1bl
.... @root 1..1oid, uuid, ruidFixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1st
.... templateId:product-instance 1..1II
..... @nullFlavor 0..1csBinding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1st
..... @displayable 0..1bl
..... @root 1..1oid, uuid, ruidRequired Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1csBinding: RoleClassRoot (required)
Fixed Value: MANU
... id 1..*II
... sdtcIdentifiedBy 0..*IdentifiedByXML Namespace: urn:hl7-org:sdtc
XML: identifiedBy (urn:hl7-org:sdtc)
... code 0..1CEBinding: v3 Code System RoleCode (example)
... addr 0..*AD
... telecom 0..*TEL
... (Choice of one) 0..1
.... playingDevice C1..1Deviceshould-code: SHOULD contain code
..... @nullFlavor 0..1csBinding: CDANullFlavor (required)
..... realmCode 0..*CS
..... typeId 0..1II
...... @nullFlavor 0..1csBinding: CDANullFlavor (required)
...... @assigningAuthorityName 0..1st
...... @displayable 0..1bl
...... @root 1..1oid, uuid, ruidFixed Value: 2.16.840.1.113883.1.3
...... @extension 1..1st
..... templateId 0..*II
..... @classCode 1..1csBinding: EntityClassDevice (required)
..... @determinerCode 0..1csBinding: EntityDeterminer (required)
Fixed Value: INSTANCE
..... code 0..1CEBinding: EntityCode (example)
..... manufacturerModelName 0..1SCBinding: Manufacturer Model Name Example (example)
..... softwareName 0..1SCBinding: Software Name Example (example)
.... playingEntity 0..1PlayingEntity
... scopingEntity 1..1Entity
.... @nullFlavor 0..1csBinding: CDANullFlavor (required)
.... realmCode 0..*CS
.... typeId 0..1II
..... @nullFlavor 0..1csBinding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1st
..... @displayable 0..1bl
..... @root 1..1oid, uuid, ruidFixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1st
.... templateId 0..*II
.... @classCode 1..1csBinding: EntityClassRoot (required)
.... @determinerCode 0..1csBinding: EntityDeterminer (required)
Fixed Value: INSTANCE
.... id 1..*II
.... code 0..1CEBinding: EntityCode (example)
.... desc 0..1ED

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ParticipantRole.nullFlavorrequiredCDANullFlavor
ParticipantRole.typeId.nullFlavorrequiredCDANullFlavor
ParticipantRole.templateId:product-instance.nullFlavorrequiredCDANullFlavor
ParticipantRole.classCoderequiredFixed Value: MANU
ParticipantRole.codeexampleRoleCode
ParticipantRole.playingDevice.nullFlavorrequiredCDANullFlavor
ParticipantRole.playingDevice.typeId.nullFlavorrequiredCDANullFlavor
ParticipantRole.playingDevice.classCoderequiredEntityClassDevice
ParticipantRole.playingDevice.determinerCoderequiredFixed Value: INSTANCE
ParticipantRole.playingDevice.codeexampleEntityCode
ParticipantRole.playingDevice.manufacturerModelNameexampleManufacturerModelNameExample
ParticipantRole.playingDevice.softwareNameexampleSoftwareNameExample
ParticipantRole.scopingEntity.nullFlavorrequiredCDANullFlavor
ParticipantRole.scopingEntity.typeId.nullFlavorrequiredCDANullFlavor
ParticipantRole.scopingEntity.classCoderequiredEntityClassRoot
ParticipantRole.scopingEntity.determinerCoderequiredFixed Value: INSTANCE
ParticipantRole.scopingEntity.codeexampleEntityCode

Constraints

IdGradePath(s)DetailsRequirements
role-choiceerrorParticipantRoleplayingDevice and playingEntity are mutually exclusive
: (playingDevice | playingEntity).count() <= 1
should-codewarningParticipantRole.playingDeviceSHOULD contain code
: code.exists()

This structure is derived from ParticipantRole

Summary

Mandatory: 7 elements
Fixed Value: 1 element
Prohibited: 1 element

Slices

This structure defines the following Slices:

  • The element ParticipantRole.templateId is sliced based on the value of value:root

 

Other representations of profile: CSV, Excel