@prefix fhir: <http://hl7.org/fhir/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

# - resource -------------------------------------------------------------------

[] a fhir:StructureDefinition ;
  fhir:id [ fhir:v "ProductInstance"] ;
  fhir:text [
     fhir:status [ fhir:v "extensions" ]
  ] ;
  fhir:extension ( [
     fhir:url [ fhir:v "http://hl7.org/fhir/tools/StructureDefinition/logical-target" ] ;
     fhir:value [
       fhir:v "" ;
       fhir:extension ( [
         fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/data-absent-reason" ] ;
         fhir:value [ fhir:v "not-applicable" ]
       ] )
     ]
  ] [
     fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/elementdefinition-namespace" ] ;
     fhir:value [ fhir:v "urn:hl7-org:v3" ]
  ] [
     fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/elementdefinition-xml-name" ] ;
     fhir:value [ fhir:v "participantRole" ]
  ] ) ;
  fhir:url [ fhir:v "http://hl7.org/cda/us/ccda/StructureDefinition/ProductInstance"], [ fhir:v "http://hl7.org/cda/us/ccda/StructureDefinition/ProductInstance"] ;
  fhir:identifier ( [
     fhir:value [ fhir:v "urn:oid:2.16.840.1.113883.10.20.22.4.37" ]
  ] [
     fhir:value [ fhir:v "urn:oid:2.16.840.1.113883.10.20.22.4.37" ]
  ] ) ;
  fhir:version [ fhir:v "2.1"], [ fhir:v "2.1"] ;
  fhir:name [ fhir:v "ProductInstance"], [ fhir:v "ProductInstance"] ;
  fhir:title [ fhir:v "Product Instance"], [ fhir:v "Product Instance"] ;
  fhir:status [ fhir:v "draft"], [ fhir:v "draft"] ;
  fhir:date [ fhir:v "2023-09-29T16:20:44+00:00"], [ fhir:v "2023-09-29T16:20:44+00:00"] ;
  fhir:publisher [ fhir:v "Health Level Seven"], [ fhir:v "Health Level Seven"] ;
  fhir:contact ( [
     fhir:name [ fhir:v "HL7 International - Structured Documents" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "url" ] ;
       fhir:value [ fhir:v "http://www.hl7.org/Special/committees/structure" ]
     ] )
  ] [
     fhir:name [ fhir:v "HL7 International - Structured Documents" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "url" ] ;
       fhir:value [ fhir:v "http://www.hl7.org/Special/committees/structure" ]
     ] )
  ] ) ;
  fhir:description [ fhir: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.\n\nThe 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. \n\nThe 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.\n\nWhen 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. \nWhen 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.\n\nWhen sending a DI, populate the participantRole/id/@root with the appropriate assigning agency OID and participantRole/id/@extension with the DI.\nThe scopingEntity/id should correspond to FDA or the appropriate issuing agency."], [ fhir: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.\n\nThe 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. \n\nThe 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.\n\nWhen 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. \nWhen 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.\n\nWhen sending a DI, populate the participantRole/id/@root with the appropriate assigning agency OID and participantRole/id/@extension with the DI.\nThe scopingEntity/id should correspond to FDA or the appropriate issuing agency."] ;
  fhir:jurisdiction ( [
     fhir:coding ( [
       fhir:system [ fhir:v "urn:iso:std:iso:3166" ] ;
       fhir:code [ fhir:v "US" ]
     ] )
  ] [
     fhir:coding ( [
       fhir:system [ fhir:v "urn:iso:std:iso:3166" ] ;
       fhir:code [ fhir:v "US" ]
     ] )
  ] ) ;
  fhir:fhirVersion [ fhir:v "5.0.0"] ;
  fhir:mapping ( [
     fhir:identity [ fhir:v "rim" ] ;
     fhir:uri [ fhir:v "http://hl7.org/v3" ] ;
     fhir:name [ fhir:v "RIM Mapping" ]
  ] ) ;
  fhir:kind [ fhir:v "logical"] ;
  fhir:abstract [ fhir:v "false"] ;
  fhir:type [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ParticipantRole"] ;
  fhir:baseDefinition [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ParticipantRole"] ;
  fhir:derivation [ fhir:v "constraint"] ;
  fhir:snapshot [
     fhir:element ( [
       fhir:id [ fhir:v "ParticipantRole" ] ;
       fhir:path [ fhir:v "ParticipantRole" ] ;
       fhir:short [ fhir:v "Base for all types and resources" ] ;
       fhir:definition [ fhir:v "Base definition for all types defined in FHIR type system." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Base" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [ ] ) ;
       fhir:constraint ( [
         fhir:key [ fhir:v "ele-1" ] ;
         fhir:severity [ fhir:v "error" ] ;
         fhir:human [ fhir:v "All FHIR elements must have a @value or children" ] ;
         fhir:expression [ fhir:v "hasValue() or (children().count() > id.count())" ] ;
         fhir:source [ fhir:v "http://hl7.org/fhir/StructureDefinition/Element" ]
       ] ) ;
       fhir:isModifier [ fhir:v "false" ] ;
       fhir:mapping ( [
         fhir:identity [ fhir:v "rim" ] ;
         fhir:map [ fhir:v "n/a" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.classCode" ] ;
       fhir:path [ fhir:v "ParticipantRole.classCode" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:comment [ fhir: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)." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.classCode" ] ;
         fhir:min [ fhir:v "1" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "code" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple" ] )
       ] ) ;
       fhir:defaultValue [ fhir:v "ROL" ] ;
       fhir:fixed [ fhir:v "MANU" ] ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-RoleClassRoot" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId" ] ;
       fhir:slicing [
         fhir:discriminator ( [
           fhir:type [ fhir:v "value" ] ;
           fhir:path [ fhir:v "root" ]
         ] ) ;
         fhir:rules [ fhir:v "open" ]
       ] ;
       fhir:definition [ fhir: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" ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.templateId" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/II" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId" ] ;
       fhir:sliceName [ fhir:v "primary" ] ;
       fhir:definition [ fhir: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" ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] templateId (CONF:81-7901) such that it, SHALL not contain [0..0] extension." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.templateId" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/II" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary.nullFlavor" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId.nullFlavor" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:label [ fhir:v "Exceptional Value Detail" ] ;
       fhir:definition [ fhir:v "If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing." ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ANY.nullFlavor" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "code" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple" ] )
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-NullFlavor" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary.assigningAuthorityName" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId.assigningAuthorityName" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:label [ fhir:v "Assigning Authority Name" ] ;
       fhir:definition [ fhir: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." ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "II.assigningAuthorityName" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "string" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/st-simple" ] )
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary.displayable" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId.displayable" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:label [ fhir:v "Displayable" ] ;
       fhir:definition [ fhir:v "Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false)." ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "II.displayable" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "boolean" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/bl-simple" ] )
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary.root" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId.root" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:label [ fhir:v "Root" ] ;
       fhir:definition [ fhir:v "A unique identifier that guarantees the global uniqueness of the instance identifier. The root alone may be the entire instance identifier." ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] @root=\"2.16.840.1.113883.10.20.22.4.37\" (CONF:81-10522)." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "II.root" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "string" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/oid" ] [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/uuid" ] [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ruid" ] )
       ] ) ;
       fhir:pattern [ fhir:v "2.16.840.1.113883.10.20.22.4.37" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary.extension" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId.extension" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:label [ fhir:v "Extension" ] ;
       fhir:definition [ fhir:v "A character string as a unique identifier within the scope of the identifier root." ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "0" ] ;
       fhir:base [
         fhir:path [ fhir:v "II.extension" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "string" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/st-simple" ] )
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.id" ] ;
       fhir:path [ fhir:v "ParticipantRole.id" ] ;
       fhir:comment [ fhir:v "SHALL contain at least one [1..*] id (CONF:81-7902)." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.id" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/II" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.sdtcIdentifiedBy" ] ;
       fhir:extension ( [
         fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/elementdefinition-namespace" ] ;
         fhir:value [ fhir:v "urn:hl7-org:sdtc" ]
       ] [
         fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/elementdefinition-xml-name" ] ;
         fhir:value [ fhir:v "identifiedBy" ]
       ] ) ;
       fhir:path [ fhir:v "ParticipantRole.sdtcIdentifiedBy" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.sdtcIdentifiedBy" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/IdentifiedBy" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.code" ] ;
       fhir:path [ fhir:v "ParticipantRole.code" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.code" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/CE" ]
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "extensible" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-RoleCode" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.addr" ] ;
       fhir:path [ fhir:v "ParticipantRole.addr" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.addr" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/AD" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.telecom" ] ;
       fhir:path [ fhir:v "ParticipantRole.telecom" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.telecom" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/TEL" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice" ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] playingDevice (CONF:81-7903)." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.playingDevice" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/Device" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice.classCode" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice.classCode" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Device.classCode" ] ;
         fhir:min [ fhir:v "1" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "code" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple" ] )
       ] ) ;
       fhir:defaultValue [ fhir:v "DEV" ] ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-EntityClassDevice" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice.determinerCode" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice.determinerCode" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Device.determinerCode" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "code" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple" ] )
       ] ) ;
       fhir:fixed [ fhir:v "INSTANCE" ] ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-EntityDeterminer" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice.templateId" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice.templateId" ] ;
       fhir:definition [ fhir: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" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "Device.templateId" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/II" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice.code" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice.code" ] ;
       fhir:comment [ fhir:v "This playingDevice SHOULD contain zero or one [0..1] code (CONF:81-16837)." ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Device.code" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/CE" ]
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "extensible" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-EntityCode" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice.manufacturerModelName" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice.manufacturerModelName" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Device.manufacturerModelName" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/SC" ]
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "example" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-ManufacturerModelNameExample" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice.softwareName" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice.softwareName" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Device.softwareName" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/SC" ]
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "example" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-SoftwareNameExample" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingEntity" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingEntity" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.playingEntity" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/PlayingEntity" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity" ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] scopingEntity (CONF:81-7905)." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ParticipantRole.scopingEntity" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/Entity" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity.classCode" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity.classCode" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Entity.classCode" ] ;
         fhir:min [ fhir:v "1" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "code" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple" ] )
       ] ) ;
       fhir:defaultValue [ fhir:v "ENT" ] ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-EntityClassRoot" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity.determinerCode" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity.determinerCode" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Entity.determinerCode" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "code" ] ;
         fhir:profile ( [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple" ] )
       ] ) ;
       fhir:fixed [ fhir:v "INSTANCE" ] ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-EntityDeterminer" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity.templateId" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity.templateId" ] ;
       fhir:definition [ fhir: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" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "Entity.templateId" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/II" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity.id" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity.id" ] ;
       fhir:comment [ fhir:v "This scopingEntity SHALL contain at least one [1..*] id (CONF:81-7908)." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "Entity.id" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/II" ]
       ] )
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity.code" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity.code" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Entity.code" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/CE" ]
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "extensible" ] ;
         fhir:valueSet [ fhir:v "http://terminology.hl7.org/ValueSet/v3-EntityCode" ]
       ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity.desc" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity.desc" ] ;
       fhir:min [ fhir:v "0" ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "Entity.desc" ] ;
         fhir:min [ fhir:v "0" ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [ fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ED" ]
       ] )
     ] )
  ] ;
  fhir:differential [
     fhir:element ( [
       fhir:id [ fhir:v "ParticipantRole.classCode" ] ;
       fhir:path [ fhir:v "ParticipantRole.classCode" ] ;
       fhir:comment [ fhir: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)." ] ;
       fhir:fixed [ fhir:v "MANU" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId" ] ;
       fhir:slicing [
         fhir:discriminator ( [
           fhir:type [ fhir:v "value" ] ;
           fhir:path [ fhir:v "root" ]
         ] ) ;
         fhir:rules [ fhir:v "open" ]
       ] ;
       fhir:min [ fhir:v "1" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId" ] ;
       fhir:sliceName [ fhir:v "primary" ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] templateId (CONF:81-7901) such that it, SHALL not contain [0..0] extension." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:max [ fhir:v "1" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary.root" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId.root" ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] @root=\"2.16.840.1.113883.10.20.22.4.37\" (CONF:81-10522)." ] ;
       fhir:min [ fhir:v "1" ] ;
       fhir:pattern [ fhir:v "2.16.840.1.113883.10.20.22.4.37" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.templateId:primary.extension" ] ;
       fhir:path [ fhir:v "ParticipantRole.templateId.extension" ] ;
       fhir:max [ fhir:v "0" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.id" ] ;
       fhir:path [ fhir:v "ParticipantRole.id" ] ;
       fhir:comment [ fhir:v "SHALL contain at least one [1..*] id (CONF:81-7902)." ] ;
       fhir:min [ fhir:v "1" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice" ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] playingDevice (CONF:81-7903)." ] ;
       fhir:min [ fhir:v "1" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.playingDevice.code" ] ;
       fhir:path [ fhir:v "ParticipantRole.playingDevice.code" ] ;
       fhir:comment [ fhir:v "This playingDevice SHOULD contain zero or one [0..1] code (CONF:81-16837)." ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity" ] ;
       fhir:comment [ fhir:v "SHALL contain exactly one [1..1] scopingEntity (CONF:81-7905)." ] ;
       fhir:min [ fhir:v "1" ]
     ] [
       fhir:id [ fhir:v "ParticipantRole.scopingEntity.id" ] ;
       fhir:path [ fhir:v "ParticipantRole.scopingEntity.id" ] ;
       fhir:comment [ fhir:v "This scopingEntity SHALL contain at least one [1..*] id (CONF:81-7908)." ] ;
       fhir:min [ fhir:v "1" ]
     ] )
  ] .

# -------------------------------------------------------------------------------------

