ProductInstance
type: StructureDefinition
node role: treeRoot
id:
  v: ProductInstance
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: StructureDefinition ProductInstance Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> ParticipantRole ParticipantRole XML Namespace: urn:hl7-org:v3 Instance of this type are validated by templateId Logical Container: ClinicalDocument (CDA Class) #xD; Slices for templateId 1..* II Slice: Unordered, Open by value:root #xD; templateId:product-instance 1..1 II #xD; @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.37 #xD; @extension 0..0 #xD; @classCode 1..1 cs Fixed Value: MANU #xD; id 1..* II #xD; playingDevice C 1..1 Device Constraints: should-code #xD; code 0..1 CE #xD; scopingEntity 1..1 Entity #xD; id 1..* II #xD; <img src="[binary]" alt="doco" style="background-color: inherit"/> Documentation for this format
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/logical-target
    l: logical-target
  value: Boolean
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/data-absent-reason
        l: data-absent-reason
      value: Code
        v: not-applicable
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-namespace
    l: xml-namespace
  value: Uri
    v: urn:hl7-org:v3
    l: v3
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-name
    l: xml-name
  value: String
    v: participantRole
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/logical-container
    l: logical-container
  value: Uri
    v: http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument
    l: ClinicalDocument
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/type-profile-style
    l: type-profile-style
  value: Code
    v: cda
url:
  v: http://hl7.org/cda/us/ccda/StructureDefinition/ProductInstance
  l: ProductInstance
identifier:
  system:
    v: urn:ietf:rfc:3986
    l: 3986
  value:
    v: urn:oid:2.16.840.1.113883.10.20.22.4.37
version:
  v: 4.0.0
name:
  v: ProductInstance
title:
  v: Product Instance
status:
  v: draft
date:
  v: 2025-10-31T15:59:49+00:00
publisher:
  v: Health Level Seven
contact:
  name:
    v: HL7 International - Structured Documents
  telecom:
    system:
      v: url
    value:
      v: http://www.hl7.org/Special/committees/structure
description:
  v: 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.
jurisdiction:
  coding:
    system:
      v: urn:iso:std:iso:3166
      l: 3166
    code:
      v: US
fhir version:
  v: 5.0.0
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
    l: v3
  name:
    v: RIM Mapping
kind:
  v: logical
abstract:
  v: false
type:
  v: http://hl7.org/cda/stds/core/StructureDefinition/ParticipantRole
  l: ParticipantRole
base definition:
  v: http://hl7.org/cda/stds/core/StructureDefinition/ParticipantRole
  l: ParticipantRole
derivation:
  v: constraint
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
      l: snapshot-base-version
    value: String
      v: 2.0.1-sd
  element:
    id:
      v: ParticipantRole
    path:
      v: ParticipantRole
    short:
      v: Base for all types and resources
    definition:
      v: Defines the basic properties of every data value. This is an abstract type, meaning that no value can be just a data value without belonging to any concrete type. Every concrete type is a specialization of this general abstract DataValue type.
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: Base
      min:
        v: 0
      max:
        v: *
    constraint:
      key:
        v: role-choice
      severity:
        v: error
      human:
        v: playingDevice and playingEntity are mutually exclusive
      expression:
        v: (playingDevice | playingEntity).count() <= 1
      source:
        v: http://hl7.org/cda/stds/core/StructureDefinition/ParticipantRole
        l: ParticipantRole
    is modifier:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
  element:
    id:
      v: ParticipantRole.nullFlavor
    path:
      v: ParticipantRole.nullFlavor
    representation:
      v: xmlAttr
    label:
      v: Exceptional Value Detail
    definition:
      v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: ANY.nullFlavor
      min:
        v: 0
      max:
        v: 1
    type:
      code:
        v: code
        l: code
      profile:
        v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
        l: cs-simple
    binding:
      strength:
        v: required
      value set:
        v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
        l: CDANullFlavor
  element:
    id:
      v: ParticipantRole.realmCode
    path:
      v: ParticipantRole.realmCode
    definition:
      v: When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: InfrastructureRoot.realmCode
      min:
        v: 0

v: *

id:
  v: ParticipantRole.typeId
path:
  v: ParticipantRole.typeId
definition:
  v: When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified message type. This might be a common type (also known as CMET in the messaging communication environment), or content included within a wrapper. The value of this attribute provides a unique identifier for the type in question.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: InfrastructureRoot.typeId
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II
constraint:
  key:
    v: II-1
  severity:
    v: error
  human:
    v: An II instance must have either a root or an nullFlavor.
  expression:
    v: root.exists() or nullFlavor.exists()
  source:
    v: http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot
    l: InfrastructureRoot

id:
  v: ParticipantRole.typeId.nullFlavor
path:
  v: ParticipantRole.typeId.nullFlavor
representation:
  v: xmlAttr
label:
  v: Exceptional Value Detail
definition:
  v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ANY.nullFlavor
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
    l: CDANullFlavor

id:
  v: ParticipantRole.typeId.assigningAuthorityName
path:
  v: ParticipantRole.typeId.assigningAuthorityName
representation:
  v: xmlAttr
label:
  v: Assigning Authority Name
definition:
  v: A human readable name or mnemonic for the assigning authority. The Assigning Authority Name has no computational value. The purpose of a Assigning Authority Name is to assist an unaided human interpreter of an II value to interpret the authority. Note: no automated processing must depend on the assigning authority name to be present in any form.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.assigningAuthorityName
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.typeId.displayable
path:
  v: ParticipantRole.typeId.displayable
representation:
  v: xmlAttr
label:
  v: Displayable
definition:
  v: Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.displayable
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: boolean
    l: boolean
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/bl-simple
    l: bl-simple

id:
  v: ParticipantRole.typeId.root
path:
  v: ParticipantRole.typeId.root
representation:
  v: xmlAttr
label:
  v: Root
definition:
  v: Identifies the type as an HL7 Registered model
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.root
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/oid
    l: oid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/uuid
    l: uuid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/ruid
    l: ruid
fixed: String
  v: 2.16.840.1.113883.1.3

id:
  v: ParticipantRole.typeId.extension
path:
  v: ParticipantRole.typeId.extension
representation:
  v: xmlAttr
label:
  v: Extension
definition:
  v: A character string as a unique identifier within the scope of the identifier root.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.extension
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.templateId
path:
  v: ParticipantRole.templateId
slicing:
  discriminator:
    type:
      v: value
    path:
      v: root
  rules:
    v: open
definition:
  v: When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question
min:
  v: 1
max:
  v: *
base:
  path:
    v: InfrastructureRoot.templateId
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II

id:
  v: ParticipantRole.templateId:product-instance
path:
  v: ParticipantRole.templateId
slice name:
  v: product-instance
definition:
  v: When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question
min:
  v: 1
max:
  v: 1
base:
  path:
    v: InfrastructureRoot.templateId
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II

id:
  v: ParticipantRole.templateId:product-instance.nullFlavor
path:
  v: ParticipantRole.templateId.nullFlavor
representation:
  v: xmlAttr
label:
  v: Exceptional Value Detail
definition:
  v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ANY.nullFlavor
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
    l: CDANullFlavor

id:
  v: ParticipantRole.templateId:product-instance.assigningAuthorityName
path:
  v: ParticipantRole.templateId.assigningAuthorityName
representation:
  v: xmlAttr
label:
  v: Assigning Authority Name
definition:
  v: A human readable name or mnemonic for the assigning authority. The Assigning Authority Name has no computational value. The purpose of a Assigning Authority Name is to assist an unaided human interpreter of an II value to interpret the authority. Note: no automated processing must depend on the assigning authority name to be present in any form.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.assigningAuthorityName
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.templateId:product-instance.displayable
path:
  v: ParticipantRole.templateId.displayable
representation:
  v: xmlAttr
label:
  v: Displayable
definition:
  v: Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.displayable
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: boolean
    l: boolean
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/bl-simple
    l: bl-simple

id:
  v: ParticipantRole.templateId:product-instance.root
path:
  v: ParticipantRole.templateId.root
representation:
  v: xmlAttr
label:
  v: Root
definition:
  v: A unique identifier that guarantees the global uniqueness of the instance identifier. The root alone may be the entire instance identifier.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.root
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/oid
    l: oid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/uuid
    l: uuid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/ruid
    l: ruid
pattern: String
  v: 2.16.840.1.113883.10.20.22.4.37

id:
  v: ParticipantRole.templateId:product-instance.extension
path:
  v: ParticipantRole.templateId.extension
representation:
  v: xmlAttr
label:
  v: Extension
definition:
  v: A character string as a unique identifier within the scope of the identifier root.
min:
  v: 0
max:
  v: 0
base:
  path:
    v: II.extension
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.classCode
path:
  v: ParticipantRole.classCode
representation:
  v: xmlAttr
comment:
  v: SHALL contain exactly one [1..1] @classCode="MANU" Manufactured Product (CodeSystem: HL7RoleClass urn:oid:2.16.840.1.113883.5.110 STATIC) (CONF:81-7900).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ParticipantRole.classCode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
default value: Code
  v: ROL
fixed: Code
  v: MANU
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDARoleClassRoot
    l: CDARoleClassRoot

id:
  v: ParticipantRole.id
path:
  v: ParticipantRole.id
comment:
  v: SHALL contain at least one [1..*] id (CONF:81-7902).
min:
  v: 1
max:
  v: *
base:
  path:
    v: ParticipantRole.id
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II

id:
  v: ParticipantRole.sdtcIdentifiedBy
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-namespace
    l: xml-namespace
  value: Uri
    v: urn:hl7-org:sdtc
    l: sdtc
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-name
    l: xml-name
  value: String
    v: identifiedBy
path:
  v: ParticipantRole.sdtcIdentifiedBy
min:
  v: 0
max:
  v: *
base:
  path:
    v: ParticipantRole.sdtcIdentifiedBy
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/IdentifiedBy
    l: IdentifiedBy

id:
  v: ParticipantRole.code
path:
  v: ParticipantRole.code
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ParticipantRole.code
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/CE
    l: CE
binding:
  strength:
    v: example
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDARoleCode
    l: CDARoleCode

id:
  v: ParticipantRole.addr
path:
  v: ParticipantRole.addr
min:
  v: 0
max:
  v: *
base:
  path:
    v: ParticipantRole.addr
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/AD
    l: AD

id:
  v: ParticipantRole.telecom
path:
  v: ParticipantRole.telecom
min:
  v: 0
max:
  v: *
base:
  path:
    v: ParticipantRole.telecom
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/TEL
    l: TEL

id:
  v: ParticipantRole.playingDevice
path:
  v: ParticipantRole.playingDevice
comment:
  v: SHALL contain exactly one [1..1] playingDevice (CONF:81-7903).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ParticipantRole.playingDevice
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/Device
    l: Device
constraint:
  key:
    v: should-code
  severity:
    v: warning
  human:
    v: SHOULD contain code
  expression:
    v: code.exists()
  source:
    v: http://hl7.org/cda/us/ccda/StructureDefinition/ProductInstance
    l: ProductInstance

id:
  v: ParticipantRole.playingDevice.nullFlavor
path:
  v: ParticipantRole.playingDevice.nullFlavor
representation:
  v: xmlAttr
label:
  v: Exceptional Value Detail
definition:
  v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ANY.nullFlavor
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
    l: CDANullFlavor

id:
  v: ParticipantRole.playingDevice.realmCode
path:
  v: ParticipantRole.playingDevice.realmCode
definition:
  v: When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question
min:
  v: 0
max:
  v: *
base:
  path:
    v: InfrastructureRoot.realmCode
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/CS
    l: CS

id:
  v: ParticipantRole.playingDevice.typeId
path:
  v: ParticipantRole.playingDevice.typeId
definition:
  v: When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified message type. This might be a common type (also known as CMET in the messaging communication environment), or content included within a wrapper. The value of this attribute provides a unique identifier for the type in question.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: InfrastructureRoot.typeId
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II
constraint:
  key:
    v: II-1
  severity:
    v: error
  human:
    v: An II instance must have either a root or an nullFlavor.
  expression:
    v: root.exists() or nullFlavor.exists()
  source:
    v: http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot
    l: InfrastructureRoot

id:
  v: ParticipantRole.playingDevice.typeId.nullFlavor
path:
  v: ParticipantRole.playingDevice.typeId.nullFlavor
representation:
  v: xmlAttr
label:
  v: Exceptional Value Detail
definition:
  v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ANY.nullFlavor
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
    l: CDANullFlavor

id:
  v: ParticipantRole.playingDevice.typeId.assigningAuthorityName
path:
  v: ParticipantRole.playingDevice.typeId.assigningAuthorityName
representation:
  v: xmlAttr
label:
  v: Assigning Authority Name
definition:
  v: A human readable name or mnemonic for the assigning authority. The Assigning Authority Name has no computational value. The purpose of a Assigning Authority Name is to assist an unaided human interpreter of an II value to interpret the authority. Note: no automated processing must depend on the assigning authority name to be present in any form.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.assigningAuthorityName
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.playingDevice.typeId.displayable
path:
  v: ParticipantRole.playingDevice.typeId.displayable
representation:
  v: xmlAttr
label:
  v: Displayable
definition:
  v: Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.displayable
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: boolean
    l: boolean
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/bl-simple
    l: bl-simple

id:
  v: ParticipantRole.playingDevice.typeId.root
path:
  v: ParticipantRole.playingDevice.typeId.root
representation:
  v: xmlAttr
label:
  v: Root
definition:
  v: Identifies the type as an HL7 Registered model
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.root
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/oid
    l: oid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/uuid
    l: uuid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/ruid
    l: ruid
fixed: String
  v: 2.16.840.1.113883.1.3

id:
  v: ParticipantRole.playingDevice.typeId.extension
path:
  v: ParticipantRole.playingDevice.typeId.extension
representation:
  v: xmlAttr
label:
  v: Extension
definition:
  v: A character string as a unique identifier within the scope of the identifier root.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.extension
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.playingDevice.templateId
path:
  v: ParticipantRole.playingDevice.templateId
definition:
  v: When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question
min:
  v: 0
max:
  v: *
base:
  path:
    v: InfrastructureRoot.templateId
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II

id:
  v: ParticipantRole.playingDevice.classCode
path:
  v: ParticipantRole.playingDevice.classCode
representation:
  v: xmlAttr
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Device.classCode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
default value: Code
  v: DEV
binding:
  strength:
    v: required
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-EntityClassDevice
    l: v3-EntityClassDevice

id:
  v: ParticipantRole.playingDevice.determinerCode
path:
  v: ParticipantRole.playingDevice.determinerCode
representation:
  v: xmlAttr
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Device.determinerCode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
fixed: Code
  v: INSTANCE
binding:
  strength:
    v: required
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-EntityDeterminer
    l: v3-EntityDeterminer

id:
  v: ParticipantRole.playingDevice.code
path:
  v: ParticipantRole.playingDevice.code
comment:
  v: This playingDevice SHOULD contain zero or one [0..1] code (CONF:81-16837).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Device.code
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/CE
    l: CE
binding:
  strength:
    v: example
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode
    l: CDAEntityCode

id:
  v: ParticipantRole.playingDevice.manufacturerModelName
path:
  v: ParticipantRole.playingDevice.manufacturerModelName
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Device.manufacturerModelName
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/SC
    l: SC
binding:
  strength:
    v: example
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-ManufacturerModelNameExample
    l: v3-ManufacturerModelNameExample

id:
  v: ParticipantRole.playingDevice.softwareName
path:
  v: ParticipantRole.playingDevice.softwareName
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Device.softwareName
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/SC
    l: SC
binding:
  strength:
    v: example
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-SoftwareNameExample
    l: v3-SoftwareNameExample

id:
  v: ParticipantRole.playingEntity
path:
  v: ParticipantRole.playingEntity
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ParticipantRole.playingEntity
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/PlayingEntity
    l: PlayingEntity

id:
  v: ParticipantRole.scopingEntity
path:
  v: ParticipantRole.scopingEntity
comment:
  v: SHALL contain exactly one [1..1] scopingEntity (CONF:81-7905).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ParticipantRole.scopingEntity
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/Entity
    l: Entity

id:
  v: ParticipantRole.scopingEntity.nullFlavor
path:
  v: ParticipantRole.scopingEntity.nullFlavor
representation:
  v: xmlAttr
label:
  v: Exceptional Value Detail
definition:
  v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ANY.nullFlavor
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
    l: CDANullFlavor

id:
  v: ParticipantRole.scopingEntity.realmCode
path:
  v: ParticipantRole.scopingEntity.realmCode
definition:
  v: When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question
min:
  v: 0
max:
  v: *
base:
  path:
    v: InfrastructureRoot.realmCode
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/CS
    l: CS

id:
  v: ParticipantRole.scopingEntity.typeId
path:
  v: ParticipantRole.scopingEntity.typeId
definition:
  v: When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified message type. This might be a common type (also known as CMET in the messaging communication environment), or content included within a wrapper. The value of this attribute provides a unique identifier for the type in question.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: InfrastructureRoot.typeId
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II
constraint:
  key:
    v: II-1
  severity:
    v: error
  human:
    v: An II instance must have either a root or an nullFlavor.
  expression:
    v: root.exists() or nullFlavor.exists()
  source:
    v: http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot
    l: InfrastructureRoot

id:
  v: ParticipantRole.scopingEntity.typeId.nullFlavor
path:
  v: ParticipantRole.scopingEntity.typeId.nullFlavor
representation:
  v: xmlAttr
label:
  v: Exceptional Value Detail
definition:
  v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ANY.nullFlavor
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
    l: CDANullFlavor

id:
  v: ParticipantRole.scopingEntity.typeId.assigningAuthorityName
path:
  v: ParticipantRole.scopingEntity.typeId.assigningAuthorityName
representation:
  v: xmlAttr
label:
  v: Assigning Authority Name
definition:
  v: A human readable name or mnemonic for the assigning authority. The Assigning Authority Name has no computational value. The purpose of a Assigning Authority Name is to assist an unaided human interpreter of an II value to interpret the authority. Note: no automated processing must depend on the assigning authority name to be present in any form.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.assigningAuthorityName
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.scopingEntity.typeId.displayable
path:
  v: ParticipantRole.scopingEntity.typeId.displayable
representation:
  v: xmlAttr
label:
  v: Displayable
definition:
  v: Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.displayable
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: boolean
    l: boolean
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/bl-simple
    l: bl-simple

id:
  v: ParticipantRole.scopingEntity.typeId.root
path:
  v: ParticipantRole.scopingEntity.typeId.root
representation:
  v: xmlAttr
label:
  v: Root
definition:
  v: Identifies the type as an HL7 Registered model
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.root
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/oid
    l: oid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/uuid
    l: uuid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/ruid
    l: ruid
fixed: String
  v: 2.16.840.1.113883.1.3

id:
  v: ParticipantRole.scopingEntity.typeId.extension
path:
  v: ParticipantRole.scopingEntity.typeId.extension
representation:
  v: xmlAttr
label:
  v: Extension
definition:
  v: A character string as a unique identifier within the scope of the identifier root.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.extension
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    l: st-simple

id:
  v: ParticipantRole.scopingEntity.templateId
path:
  v: ParticipantRole.scopingEntity.templateId
definition:
  v: When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question
min:
  v: 0
max:
  v: *
base:
  path:
    v: InfrastructureRoot.templateId
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II

id:
  v: ParticipantRole.scopingEntity.classCode
path:
  v: ParticipantRole.scopingEntity.classCode
representation:
  v: xmlAttr
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Entity.classCode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
default value: Code
  v: ENT
binding:
  strength:
    v: required
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-EntityClassRoot
    l: v3-EntityClassRoot

id:
  v: ParticipantRole.scopingEntity.determinerCode
path:
  v: ParticipantRole.scopingEntity.determinerCode
representation:
  v: xmlAttr
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Entity.determinerCode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    l: cs-simple
fixed: Code
  v: INSTANCE
binding:
  strength:
    v: required
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-EntityDeterminer
    l: v3-EntityDeterminer

id:
  v: ParticipantRole.scopingEntity.id
path:
  v: ParticipantRole.scopingEntity.id
comment:
  v: This scopingEntity SHALL contain at least one [1..*] id (CONF:81-7908).
min:
  v: 1
max:
  v: *
base:
  path:
    v: Entity.id
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II
    l: II

id:
  v: ParticipantRole.scopingEntity.code
path:
  v: ParticipantRole.scopingEntity.code
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Entity.code
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/CE
    l: CE
binding:
  strength:
    v: example
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDAEntityCode
    l: CDAEntityCode

id:
  v: ParticipantRole.scopingEntity.desc
path:
  v: ParticipantRole.scopingEntity.desc
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Entity.desc
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/ED
    l: ED

element:
  id:
    v: ParticipantRole.templateId
  path:
    v: ParticipantRole.templateId
  slicing:
    discriminator:
      type:
        v: value
      path:
        v: root
    rules:
      v: open
  min:
    v: 1
element:
  id:
    v: ParticipantRole.templateId:product-instance
  path:
    v: ParticipantRole.templateId
  slice name:
    v: product-instance
  min:
    v: 1
  max:
    v: 1
element:
  id:
    v: ParticipantRole.templateId:product-instance.root
  path:
    v: ParticipantRole.templateId.root
  min:
    v: 1
  pattern: String
    v: 2.16.840.1.113883.10.20.22.4.37
element:
  id:
    v: ParticipantRole.templateId:product-instance.extension
  path:
    v: ParticipantRole.templateId.extension
  max:
    v: 0
element:
  id:
    v: ParticipantRole.classCode
  path:
    v: ParticipantRole.classCode
  comment:
    v: SHALL contain exactly one [1..1] @classCode="MANU" Manufactured Product (CodeSystem: HL7RoleClass urn:oid:2.16.840.1.113883.5.110 STATIC) (CONF:81-7900).
  min:
    v: 1
  fixed: Code
    v: MANU
element:
  id:
    v: ParticipantRole.id
  path:
    v: ParticipantRole.id
  comment:
    v: SHALL contain at least one [1..*] id (CONF:81-7902).
  min:
    v: 1
element:
  id:
    v: ParticipantRole.playingDevice
  path:
    v: ParticipantRole.playingDevice
  comment:
    v: SHALL contain exactly one [1..1] playingDevice (CONF:81-7903).
  min:
    v: 1
  constraint:
    key:
      v: should-code
    severity:
      v: warning
    human:
      v: SHOULD contain code
    expression:
      v: code.exists()
    source:
      v: http://hl7.org/cda/us/ccda/StructureDefinition/ProductInstance
      l: ProductInstance
element:
  id:
    v: ParticipantRole.playingDevice.code
  path:
    v: ParticipantRole.playingDevice.code
  comment:
    v: This playingDevice SHOULD contain zero or one [0..1] code (CONF:81-16837).
element:
  id:
    v: ParticipantRole.scopingEntity
  path:
    v: ParticipantRole.scopingEntity
  comment:
    v: SHALL contain exactly one [1..1] scopingEntity (CONF:81-7905).
  min:
    v: 1
element:
  id:
    v: ParticipantRole.scopingEntity.id
  path:
    v: ParticipantRole.scopingEntity.id
  comment:
    v: This scopingEntity SHALL contain at least one [1..*] id (CONF:81-7908).
  min:
    v: 1