Consolidated CDA (C-CDA)
3.0.0 - STU United States of America flag

Consolidated CDA (C-CDA), published by Health Level Seven. This guide is not an authorized publication; it is the continuous build for version 3.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/CDA-ccda/ and changes regularly. See the Directory of published versions

Logical Model: Product Instance

Official URL: http://hl7.org/cda/us/ccda/StructureDefinition/ProductInstance Version: 3.0.0
Draft as of 2024-05-07 Computable Name: ProductInstance
Other Identifiers: 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 Template Content

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

This structure is derived from ParticipantRole

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole ParticipantRole XML 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..* II Slice: Unordered, Open by value:root
.... templateId:product-instance 1..1 II
..... @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.37
..... @extension 0..0
... @classCode 1..1 cs Fixed Value: MANU
... id 1..* II
.... code 0..1 CE
... scopingEntity 1..1 Entity
.... id 1..* II

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
should-codewarningParticipantRole.playingDeviceSHOULD contain code
: code.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole C 1..1 ParticipantRole XML 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)
role-choice: playingDevice and playingEntity are mutually exclusive
... Slices for templateId 1..* II Slice: Unordered, Open by value:root
.... templateId:product-instance 1..1 II
..... @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1 cs Binding: CDARoleClassRoot (required)
Fixed Value: MANU
... id 1..* II
.... code 0..1 CE Binding: CDAEntityCode (example)
... scopingEntity 1..1 Entity
.... id 1..* II

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
ParticipantRole.classCoderequiredFixed Value: MANU
http://hl7.org/cda/stds/core/ValueSet/CDARoleClassRoot
ParticipantRole.playingDevice.codeexampleCDAEntityCode
http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode

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 C 1..1 ParticipantRole XML 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)
role-choice: playingDevice and playingEntity are mutually exclusive
... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
... realmCode 0..* CS
... typeId 0..1 II
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1 st
.... @displayable 0..1 bl
.... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1 st
.... templateId:product-instance 1..1 II
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1 cs Binding: CDARoleClassRoot (required)
Fixed Value: MANU
... id 1..* II
... sdtcIdentifiedBy 0..* IdentifiedBy XML Namespace: urn:hl7-org:sdtc
XML: identifiedBy (urn:hl7-org:sdtc)
... code 0..1 CE Binding: CDARoleCode (example)
... addr 0..* AD
... telecom 0..* TEL
... (Choice of one) 0..1
.... playingDevice C 1..1 Device should-code: SHOULD contain code
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... realmCode 0..* CS
..... typeId 0..1 II
...... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
...... @assigningAuthorityName 0..1 st
...... @displayable 0..1 bl
...... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
...... @extension 1..1 st
..... templateId 0..* II
..... @classCode 0..1 cs Binding: EntityClassDevice (required)
..... @determinerCode 0..1 cs Binding: EntityDeterminer (required)
Fixed Value: INSTANCE
..... code 0..1 CE Binding: CDAEntityCode (example)
..... manufacturerModelName 0..1 SC Binding: Manufacturer Model Name Example (example)
..... softwareName 0..1 SC Binding: Software Name Example (example)
.... playingEntity 0..1 PlayingEntity
... scopingEntity 1..1 Entity
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... realmCode 0..* CS
.... typeId 0..1 II
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1 st
.... templateId 0..* II
.... @classCode 0..1 cs Binding: EntityClassRoot (required)
.... @determinerCode 0..1 cs Binding: EntityDeterminer (required)
Fixed Value: INSTANCE
.... id 1..* II
.... code 0..1 CE Binding: CDAEntityCode (example)
.... desc 0..1 ED

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
ParticipantRole.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.templateId:product-instance.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.classCoderequiredFixed Value: MANU
http://hl7.org/cda/stds/core/ValueSet/CDARoleClassRoot
ParticipantRole.codeexampleCDARoleCode
http://hl7.org/cda/stds/core/ValueSet/CDARoleCode
ParticipantRole.playingDevice.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.playingDevice.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.playingDevice.classCoderequiredEntityClassDevice
http://terminology.hl7.org/ValueSet/v3-EntityClassDevice
ParticipantRole.playingDevice.determinerCoderequiredFixed Value: INSTANCE
http://terminology.hl7.org/ValueSet/v3-EntityDeterminer
ParticipantRole.playingDevice.codeexampleCDAEntityCode
http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode
ParticipantRole.playingDevice.manufacturerModelNameexampleManufacturerModelNameExample
http://terminology.hl7.org/ValueSet/v3-ManufacturerModelNameExample
ParticipantRole.playingDevice.softwareNameexampleSoftwareNameExample
http://terminology.hl7.org/ValueSet/v3-SoftwareNameExample
ParticipantRole.scopingEntity.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.scopingEntity.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.scopingEntity.classCoderequiredEntityClassRoot
http://terminology.hl7.org/ValueSet/v3-EntityClassRoot
ParticipantRole.scopingEntity.determinerCoderequiredFixed Value: INSTANCE
http://terminology.hl7.org/ValueSet/v3-EntityDeterminer
ParticipantRole.scopingEntity.codeexampleCDAEntityCode
http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode

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: 8 elements
Fixed: 1 element
Prohibited: 1 element

Slices

This structure defines the following Slices:

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

Differential View

This structure is derived from ParticipantRole

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParticipantRole ParticipantRole XML 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..* II Slice: Unordered, Open by value:root
.... templateId:product-instance 1..1 II
..... @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.37
..... @extension 0..0
... @classCode 1..1 cs Fixed Value: MANU
... id 1..* II
.... code 0..1 CE
... scopingEntity 1..1 Entity
.... 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 C 1..1 ParticipantRole XML 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)
role-choice: playingDevice and playingEntity are mutually exclusive
... Slices for templateId 1..* II Slice: Unordered, Open by value:root
.... templateId:product-instance 1..1 II
..... @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1 cs Binding: CDARoleClassRoot (required)
Fixed Value: MANU
... id 1..* II
.... code 0..1 CE Binding: CDAEntityCode (example)
... scopingEntity 1..1 Entity
.... id 1..* II

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
ParticipantRole.classCoderequiredFixed Value: MANU
http://hl7.org/cda/stds/core/ValueSet/CDARoleClassRoot
ParticipantRole.playingDevice.codeexampleCDAEntityCode
http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode

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 C 1..1 ParticipantRole XML 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)
role-choice: playingDevice and playingEntity are mutually exclusive
... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
... realmCode 0..* CS
... typeId 0..1 II
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1 st
.... @displayable 0..1 bl
.... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1 st
.... templateId:product-instance 1..1 II
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.37
... @classCode 1..1 cs Binding: CDARoleClassRoot (required)
Fixed Value: MANU
... id 1..* II
... sdtcIdentifiedBy 0..* IdentifiedBy XML Namespace: urn:hl7-org:sdtc
XML: identifiedBy (urn:hl7-org:sdtc)
... code 0..1 CE Binding: CDARoleCode (example)
... addr 0..* AD
... telecom 0..* TEL
... (Choice of one) 0..1
.... playingDevice C 1..1 Device should-code: SHOULD contain code
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... realmCode 0..* CS
..... typeId 0..1 II
...... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
...... @assigningAuthorityName 0..1 st
...... @displayable 0..1 bl
...... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
...... @extension 1..1 st
..... templateId 0..* II
..... @classCode 0..1 cs Binding: EntityClassDevice (required)
..... @determinerCode 0..1 cs Binding: EntityDeterminer (required)
Fixed Value: INSTANCE
..... code 0..1 CE Binding: CDAEntityCode (example)
..... manufacturerModelName 0..1 SC Binding: Manufacturer Model Name Example (example)
..... softwareName 0..1 SC Binding: Software Name Example (example)
.... playingEntity 0..1 PlayingEntity
... scopingEntity 1..1 Entity
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... realmCode 0..* CS
.... typeId 0..1 II
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1 st
.... templateId 0..* II
.... @classCode 0..1 cs Binding: EntityClassRoot (required)
.... @determinerCode 0..1 cs Binding: EntityDeterminer (required)
Fixed Value: INSTANCE
.... id 1..* II
.... code 0..1 CE Binding: CDAEntityCode (example)
.... desc 0..1 ED

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
ParticipantRole.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.templateId:product-instance.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.classCoderequiredFixed Value: MANU
http://hl7.org/cda/stds/core/ValueSet/CDARoleClassRoot
ParticipantRole.codeexampleCDARoleCode
http://hl7.org/cda/stds/core/ValueSet/CDARoleCode
ParticipantRole.playingDevice.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.playingDevice.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.playingDevice.classCoderequiredEntityClassDevice
http://terminology.hl7.org/ValueSet/v3-EntityClassDevice
ParticipantRole.playingDevice.determinerCoderequiredFixed Value: INSTANCE
http://terminology.hl7.org/ValueSet/v3-EntityDeterminer
ParticipantRole.playingDevice.codeexampleCDAEntityCode
http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode
ParticipantRole.playingDevice.manufacturerModelNameexampleManufacturerModelNameExample
http://terminology.hl7.org/ValueSet/v3-ManufacturerModelNameExample
ParticipantRole.playingDevice.softwareNameexampleSoftwareNameExample
http://terminology.hl7.org/ValueSet/v3-SoftwareNameExample
ParticipantRole.scopingEntity.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.scopingEntity.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
ParticipantRole.scopingEntity.classCoderequiredEntityClassRoot
http://terminology.hl7.org/ValueSet/v3-EntityClassRoot
ParticipantRole.scopingEntity.determinerCoderequiredFixed Value: INSTANCE
http://terminology.hl7.org/ValueSet/v3-EntityDeterminer
ParticipantRole.scopingEntity.codeexampleCDAEntityCode
http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode

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: 8 elements
Fixed: 1 element
Prohibited: 1 element

Slices

This structure defines the following Slices:

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

 

Other representations of profile: CSV, Excel