Consolidated CDA (C-CDA)
4.0.0-ballot - STU4 Ballot 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 4.0.0-ballot 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: ProcedureActivityProcedure - Detailed Descriptions

Draft as of 2024-12-19

Definitions for the ProcedureActivityProcedure logical model.

Guidance on how to interpret the contents of this table can be found here

0. Procedure
Logical ContainerClinicalDocument (CDA Class)
ValidationInstance of this type are validated by templateId
XML FormatIn the XML format, this property has the namespace urn:hl7-org:v3.
Invariantsshould-text-ref-value: SHOULD contain text/reference/@value (text.reference.value.exists())
active-high-ts-after-document: If the procedure is active and contains a high effectiveTime, this time SHALL be after the ClinicalDocument/effectiveTime ((statusCode.code = 'active' and effectiveTime.high.value.exists()) implies effectiveTime.high.value > %resource.effectiveTime.value)
should-targetSiteCode: SHOULD contain targetSiteCode (targetSiteCode.exists())
should-performer: SHOULD contain performer (performer.exists())
should-author: SHOULD contain author (author.exists())
2. Procedure.templateId
Control1..?
SlicingThis element introduces a set of slices on Procedure.templateId. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ root
  • value @ extension
  • 4. Procedure.templateId:procedure
    Slice Nameprocedure
    Control1..1
    6. Procedure.templateId:procedure.root
    Control1..?
    Pattern Value2.16.840.1.113883.10.20.22.4.14
    8. Procedure.templateId:procedure.extension
    Control1..?
    Pattern Value2024-05-01
    10. Procedure.classCode
    Comments

    SHALL contain exactly one [1..1] @classCode="PROC" Procedure (CodeSystem: HL7ActClass urn:oid:2.16.840.1.113883.5.6 STATIC) (CONF:4515-7652).

    12. Procedure.moodCode
    Comments

    SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: HL7ActMood urn:oid:2.16.840.1.113883.5.1001 STATIC) (CONF:4515-7653).

    Fixed ValueEVN
    14. Procedure.id
    Comments

    SHALL contain at least one [1..*] id (CONF:4515-7655).

    Control1..?
    16. Procedure.code
    Short𝗨𝗦𝗖𝗗𝗜: SDOH Interventions
    Comments

    SHALL contain exactly one [1..1] code (CONF:4515-7656).

    Control1..?
    BindingThe codes SHOULD be taken from US Core Procedure Codes
    (preferred to http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code)
    Invariantsshould-otext-ref-value: SHOULD contain originalText/reference/@value (originalText.reference.value.exists())
    18. Procedure.code.originalText
    ShortSHOULD reference the portion of narrative corresponding to this code
    20. Procedure.code.originalText.reference
    Invariantsvalue-starts-octothorpe: If reference/@value is present, it SHALL begin with a '#' and SHALL point to its corresponding narrative (value.exists() implies value.startsWith('#'))
    22. Procedure.text
    ShortSHOULD reference the portion of section narrative text corresponding to this entry
    24. Procedure.text.reference
    Invariantsvalue-starts-octothorpe: If reference/@value is present, it SHALL begin with a '#' and SHALL point to its corresponding narrative (value.exists() implies value.startsWith('#'))
    26. Procedure.statusCode
    Comments

    SHALL contain exactly one [1..1] statusCode (CONF:4515-7661).

    Control1..?
    28. Procedure.statusCode.nullFlavor
    Control0..0
    30. Procedure.statusCode.code
    Control1..?
    BindingThe codes SHALL be taken from ProcedureAct statusCode .
    (required to http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.11.20.9.22)
    32. Procedure.effectiveTime
    Short𝗨𝗦𝗖𝗗𝗜: Performance Time
    Control1..?
    Typehttp://hl7.org/cda/stds/core/StructureDefinition/IVL-TS(US Realm Date and Time - Interval)
    Invariantsshould-value: SHOULD contain value (value.exists())
    ts-value-before-document: Time value must be equal to or before ClinicalDocument/effectiveTime (value.exists() implies value <= %resource.effectiveTime.value)
    34. Procedure.effectiveTime.value
    ShortIndicates historical procedure or an instance of a procedure where precision may be only a date or even a year.
    36. Procedure.effectiveTime.low
    ShortIndicates when a procedure started
    Comments

    MAY contain zero or one [0..1] low

    Invariantsts-value-before-document: Time value must be equal to or before ClinicalDocument/effectiveTime (value.exists() implies value <= %resource.effectiveTime.value)
    38. Procedure.effectiveTime.high
    ShortIndicates when a procedure ended. If the statusCode='active', this must be after the ClinicalDcument/effectiveTime
    Comments

    MAY contain zero or one [0..1] high

    40. Procedure.priorityCode
    Comments

    MAY contain zero or one [0..1] priorityCode, which SHALL be selected from ValueSet ActPriority urn:oid:2.16.840.1.113883.1.11.16866 DYNAMIC (CONF:4515-7668).

    BindingThe codes SHALL be taken from ActPriority
    (required to http://terminology.hl7.org/ValueSet/v3-ActPriority)
    42. Procedure.methodCode
    ShortMethodCode **SHALL NOT** conflict with the method inherent in Procedure / code (CONF:4515-7890).
    Comments

    MAY contain zero or one [0..1] methodCode (CONF:4515-7670).

    Control0..1
    44. Procedure.targetSiteCode
    ShortIn the case of an implanted medical device, targetSiteCode is used to record the location of the device, in or on the patient's body.
    Comments

    SHOULD contain zero or more [0..*] targetSiteCode, which SHALL be selected from ValueSet Body Site Value Set urn:oid:2.16.840.1.113883.3.88.12.3221.8.9 DYNAMIC (CONF:4515-7683).

    BindingThe codes SHALL be taken from Body Site Value Set .
    (required to http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.88.12.3221.8.9)
    46. Procedure.specimen
    ShortThis specimen is for representing specimens obtained from a procedure (CONF:4515-16842).
    Comments

    MAY contain zero or more [0..*] specimen (CONF:4515-7697).

    48. Procedure.specimen.specimenRole
    Comments

    The specimen, if present, SHALL contain exactly one [1..1] specimenRole (CONF:4515-7704).

    Invariantsshould-id: SHOULD contain id (id.exists())
    50. Procedure.specimen.specimenRole.id
    ShortIf you want to indicate that the Procedure and the Results are referring to the same specimen, the Procedure/specimen/specimenRole/id **SHOULD** be set to equal an Organizer/specimen/specimenRole/id (CONF:4515-29744).
    Comments

    This specimenRole SHOULD contain zero or more [0..*] id (CONF:4515-7716).

    52. Procedure.performer
    Comments

    SHOULD contain zero or more [0..*] performer (CONF:4515-7718) such that it

    54. Procedure.performer.assignedEntity
    Comments

    SHALL contain exactly one [1..1] assignedEntity (CONF:4515-7720).

    Invariantsshould-assignedPerson: SHOULD contain assignedPerson (assignedPerson.exists())
    should-representedOrganization: SHOULD contain representedOrganization (representedOrganization.exists())
    56. Procedure.performer.assignedEntity.id
    Comments

    This assignedEntity SHALL contain at least one [1..*] id (CONF:4515-7722).

    58. Procedure.performer.assignedEntity.addr
    Comments

    This assignedEntity SHALL contain at least one [1..*] addr (CONF:4515-7731).

    Control1..?
    Typehttp://hl7.org/cda/stds/core/StructureDefinition/AD(US Realm Address)
    60. Procedure.performer.assignedEntity.telecom
    Comments

    This assignedEntity SHALL contain at least one [1..*] telecom (CONF:4515-7732).

    Control1..?
    62. Procedure.performer.assignedEntity.assignedPerson
    Comments

    This assignedEntity SHOULD contain zero or one [0..1] assignedPerson.

    64. Procedure.performer.assignedEntity.assignedPerson.name
    Comments

    This assignedPerson SHALL contain at least one [1..*] US Realm Person Name (PN.US.FIELDED).

    Control1..?
    Typehttp://hl7.org/cda/stds/core/StructureDefinition/PN(US Realm Person Name (PN.US.FIELDED))
    66. Procedure.performer.assignedEntity.representedOrganization
    Comments

    This assignedEntity SHOULD contain zero or one [0..1] representedOrganization (CONF:4515-7733).

    Invariantsshould-id: SHOULD contain id (id.exists())
    68. Procedure.performer.assignedEntity.representedOrganization.id
    Comments

    The representedOrganization, if present, SHOULD contain zero or more [0..*] id (CONF:4515-7734).

    70. Procedure.performer.assignedEntity.representedOrganization.name
    Comments

    The representedOrganization, if present, MAY contain zero or more [0..*] name (CONF:4515-7735).

    72. Procedure.performer.assignedEntity.representedOrganization.telecom
    Comments

    The representedOrganization, if present, SHALL contain at least one [1..*] telecom (CONF:4515-7737).

    Control1..?
    74. Procedure.performer.assignedEntity.representedOrganization.addr
    Comments

    The representedOrganization, if present, SHALL contain at least one [1..*] addr (CONF:4515-7736).

    Control1..?
    Typehttp://hl7.org/cda/stds/core/StructureDefinition/AD(US Realm Address)
    76. Procedure.author
    Comments

    SHOULD contain zero or more [0..*] Author Participation (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.119) (CONF:4515-32479).

    Typehttp://hl7.org/cda/stds/core/StructureDefinition/Author(Author Participation)
    78. Procedure.participant
    Comments

    MAY contain zero or more [0..*] participant (CONF:4515-7765) such that it

    SlicingThis element introduces a set of slices on Procedure.participant. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ typeCode
    • 80. Procedure.participant:productInstance
      Slice NameproductInstance
      Shortparticipant
      Comments

      MAY contain zero or more [0..*] participant (CONF:4515-7751) such that it

      Control0..*
      82. Procedure.participant:productInstance.typeCode
      Comments

      SHALL contain exactly one [1..1] @typeCode="DEV" Device (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002 STATIC) (CONF:4515-7752).

      Fixed ValueDEV
      84. Procedure.participant:productInstance.participantRole
      Comments

      SHALL contain exactly one [1..1] Product Instance (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.37) (CONF:4515-15911).

      Typehttp://hl7.org/cda/stds/core/StructureDefinition/ParticipantRole(Product Instance)
      86. Procedure.participant:serviceDeliveryLocation
      Slice NameserviceDeliveryLocation
      Shortparticipant
      Control0..*
      88. Procedure.participant:serviceDeliveryLocation.typeCode
      Comments

      SHALL contain exactly one [1..1] @typeCode="LOC" Location (CodeSystem: HL7ParticipationType urn:oid:2.16.840.1.113883.5.90 STATIC) (CONF:4515-7766).

      Fixed ValueLOC
      90. Procedure.participant:serviceDeliveryLocation.participantRole
      Comments

      SHALL contain exactly one [1..1] Service Delivery Location (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.32) (CONF:4515-15912).

      Typehttp://hl7.org/cda/stds/core/StructureDefinition/ParticipantRole(Service Delivery Location)
      92. Procedure.entryRelationship
      Comments

      MAY contain zero or more [0..*] entryRelationship (CONF:4515-32988) such that it

      SlicingThis element introduces a set of slices on Procedure.entryRelationship. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • profile @ act
      • profile @ observation
      • profile @ substanceAdministration
      • exists @ encounter
      • 94. Procedure.entryRelationship:encounter
        Slice Nameencounter
        ShortentryRelationship
        Comments

        MAY contain zero or more [0..*] entryRelationship (CONF:4515-7768) such that it

        Control0..*
        96. Procedure.entryRelationship:encounter.typeCode
        Comments

        SHALL contain exactly one [1..1] @typeCode="COMP" Has Component (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002 STATIC) (CONF:4515-7769).

        Fixed ValueCOMP
        98. Procedure.entryRelationship:encounter.inversionInd
        Comments

        SHALL contain exactly one [1..1] @inversionInd="true" true (CONF:4515-8009).

        Control1..?
        Fixed Valuetrue
        100. Procedure.entryRelationship:encounter.encounter
        Comments

        SHALL contain exactly one [1..1] encounter (CONF:4515-7770).

        Control1..?
        102. Procedure.entryRelationship:encounter.encounter.classCode
        Comments

        This encounter SHALL contain exactly one [1..1] @classCode="ENC" Encounter (CodeSystem: HL7ActClass urn:oid:2.16.840.1.113883.5.6 STATIC) (CONF:4515-7771).

        104. Procedure.entryRelationship:encounter.encounter.moodCode
        Comments

        This encounter SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: HL7ActMood urn:oid:2.16.840.1.113883.5.1001 STATIC) (CONF:4515-7772).

        Fixed ValueEVN
        106. Procedure.entryRelationship:encounter.encounter.id
        ShortSet the encounter ID to the ID of an encounter in another section to signify they are the same encounter (CONF:4515-16843).
        Comments

        This encounter SHALL contain exactly one [1..1] id (CONF:4515-7773).

        Control1..1
        108. Procedure.entryRelationship:instruction
        Slice Nameinstruction
        ShortentryRelationship
        Comments

        MAY contain zero or one [0..1] entryRelationship (CONF:4515-7775) such that it

        Control0..1
        110. Procedure.entryRelationship:instruction.typeCode
        Comments

        SHALL contain exactly one [1..1] @typeCode="SUBJ" Has Subject (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002 STATIC) (CONF:4515-7776).

        Fixed ValueSUBJ
        112. Procedure.entryRelationship:instruction.inversionInd
        Comments

        SHALL contain exactly one [1..1] @inversionInd="true" true (CONF:4515-7777).

        Control1..?
        Fixed Valuetrue
        114. Procedure.entryRelationship:instruction.encounter
        Control0..0
        116. Procedure.entryRelationship:instruction.observation
        Control1..?
        Typehttp://hl7.org/cda/stds/core/StructureDefinition/Observation(Instruction Observation)
        118. Procedure.entryRelationship:indication
        Slice Nameindication
        ShortentryRelationship
        Comments

        MAY contain zero or more [0..*] entryRelationship (CONF:4515-7779) such that it

        Control0..*
        120. Procedure.entryRelationship:indication.typeCode
        Comments

        SHALL contain exactly one [1..1] @typeCode="RSON" Has Reason (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002 STATIC) (CONF:4515-7780).

        Fixed ValueRSON
        122. Procedure.entryRelationship:indication.encounter
        Control0..0
        124. Procedure.entryRelationship:indication.observation
        Comments

        SHALL contain exactly one [1..1] Indication (identifier: urn:hl7ii:2.16.840.1.113883.10.20.22.4.19:2014-06-09) (CONF:4515-15914).

        Control1..?
        Typehttp://hl7.org/cda/stds/core/StructureDefinition/Observation(Indication)
        126. Procedure.entryRelationship:medication
        Slice Namemedication
        ShortentryRelationship
        Comments

        MAY contain zero or more [0..*] entryRelationship (CONF:4515-7886) such that it

        Control0..*
        128. Procedure.entryRelationship:medication.typeCode
        Comments

        SHALL contain exactly one [1..1] @typeCode="COMP" Has Component (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002 STATIC) (CONF:4515-7887).

        Fixed ValueCOMP
        130. Procedure.entryRelationship:medication.encounter
        Control0..0
        132. Procedure.entryRelationship:medication.substanceAdministration
        Comments

        SHALL contain exactly one [1..1] Medication Activity (identifier: urn:hl7ii:2.16.840.1.113883.10.20.22.4.16:2014-06-09) (CONF:4515-15915).

        Control1..?
        Typehttp://hl7.org/cda/stds/core/StructureDefinition/SubstanceAdministration(Medication Activity)
        134. Procedure.entryRelationship:reaction
        Slice Namereaction
        ShortentryRelationship
        Comments

        MAY contain zero or more [0..*] entryRelationship (CONF:4515-32473) such that it

        Control0..*
        136. Procedure.entryRelationship:reaction.typeCode
        Comments

        SHALL contain exactly one [1..1] @typeCode="COMP" Has Component (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002) (CONF:4515-32474).

        Fixed ValueCOMP
        138. Procedure.entryRelationship:reaction.encounter
        Control0..0
        140. Procedure.entryRelationship:reaction.observation
        Comments

        SHALL contain exactly one [1..1] Reaction Observation (identifier: urn:hl7ii:2.16.840.1.113883.10.20.22.4.9:2014-06-09) (CONF:4515-32475).

        Control1..?
        Typehttp://hl7.org/cda/stds/core/StructureDefinition/Observation(Reaction Observation)
        142. Procedure.entryRelationship:assessmentScaleObs
        Slice NameassessmentScaleObs
        ShortWhen an Assessment Scale Observation is contained in a Procedure Template instance that is a Social Determinant of Health intervention procedure, that Assessment scale **MAY** contain Assessment Scale observations that represent LOINC question and answer pairs from SDOH screening instruments.
        Comments

        MAY contain zero or more [0..*] entryRelationship (CONF:4515-32985) such that it

        Control0..*
        144. Procedure.entryRelationship:assessmentScaleObs.typeCode
        Comments

        SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002) (CONF:4515-32987).

        Fixed ValueRSON
        146. Procedure.entryRelationship:assessmentScaleObs.encounter
        Control0..0
        148. Procedure.entryRelationship:assessmentScaleObs.observation
        Comments

        SHALL contain exactly one [1..1] Assessment Scale Observation (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.69) (CONF:4515-32986).

        Control1..?
        Typehttp://hl7.org/cda/stds/core/StructureDefinition/Observation(Assessment Scale Observation)
        150. Procedure.entryRelationship:entryReference
        Slice NameentryReference
        ShortWhen an Entry Reference Template is contained in a Procedure Template instance that is a Social Determinant of Health procedure, that Entry Reference **MAY** refer to Assessment Scale Observation in the same document that represent LOINC question and answer pairs from SDOH screening instruments.
        Control0..*
        152. Procedure.entryRelationship:entryReference.typeCode
        Comments

        SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002) (CONF:4515-32990).

        Fixed ValueRSON
        154. Procedure.entryRelationship:entryReference.act
        Comments

        SHALL contain exactly one [1..1] Entry Reference (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.122) (CONF:4515-32989).

        Control1..?
        Typehttp://hl7.org/cda/stds/core/StructureDefinition/Act(Entry Reference)
        156. Procedure.entryRelationship:entryReference.encounter
        Control0..0