Name Flags Card. Type Description & Constraints Procedure C 1..1 Procedure XML Namespace: urn:hl7-org:v3 Elements defined in Ancestors: @nullFlavor, realmCode, <a href="http://hl7.org/cda/stds/core/2.0.0-sd-snapshot1/StructureDefinition-InfrastructureRoot.html" title="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.">typeId, templateId, @classCode, @moodCode, id, code, @negationInd, text, statusCode, effectiveTime, priorityCode, languageCode, methodCode, approachSiteCode, targetSiteCode, subject, specimen, performer, author, informant, participant, entryRelationship, reference, precondition, sdtcPrecondition2, sdtcInFulfillmentOf1 Base for all types and resources Instances of this type are validated by templateId Logical Container: ClinicalDocument (CDA Class) should-text-ref-value: SHOULD contain text/reference/@value active-high-ts-after-document: If the procedure is active and contains a high effectiveTime, this time SHALL be after the ClinicalDocument/effectiveTime should-targetSiteCode: SHOULD contain targetSiteCode should-performer: SHOULD contain performer should-author: SHOULD contain author Slices for templateId 1..* II Slice: Unordered, Open by value:root, value:extension templateId:procedure 1..1 II @root 1..1 oid, uuid, ruid Required Pattern: 2.16.840.1.113883.10.20.22.4.14 @extension 1..1 st Required Pattern: 2024-05-01 @classCode 1..1 cs @moodCode 1..1 cs Fixed Value: EVN id 1..* II code C 1..1 CD Binding: US Core Procedure Codes (preferred) Additional Bindings Purpose Documentation Social Determinants of Health Procedures Preferred Binding For Social Determinant of Health Interventions should-otext-ref-value: SHOULD contain originalText/reference/@value originalText 0..1 ED SHOULD reference the portion of narrative corresponding to this code reference C 0..1 TEL value-starts-octothorpe: If reference/@value is present, it SHALL begin with a '#' and SHALL point to its corresponding narrative text 0..1 ED SHOULD reference the portion of section narrative text corresponding to this entry reference C 0..1 TEL value-starts-octothorpe: If reference/@value is present, it SHALL begin with a '#' and SHALL point to its corresponding narrative statusCode 1..1 CS @code 1..1 cs Binding: ProcedureAct statusCode (required) effectiveTime C 1..1 USRealmDateTimeInterval (USCDI) Performance Time should-value: SHOULD contain value ts-value-before-document: Time value must be equal to or before ClinicalDocument/effectiveTime @value 0..1 ts Indicates historical procedure or an instance of a procedure where precision may be only a date or even a year. low C 0..1 IVXB_TS Indicates when a procedure started ts-value-before-document: Time value must be equal to or before ClinicalDocument/effectiveTime high 0..1 IVXB_TS Indicates when a procedure ended. If the statusCode='active', this must be after the ClinicalDcument/effectiveTime priorityCode 0..1 CE Binding: ActPriority (required) methodCode 0..1 CE MethodCode **SHALL NOT** conflict with the method inherent in Procedure / code (CONF:4515-7890). targetSiteCode 0..* CD In the case of an implanted medical device, targetSiteCode is used to record the location of the device, in or on the patient's body. Binding: Body Site Value Set (required) specimen 0..* Specimen This specimen is for representing specimens obtained from a procedure (CONF:4515-16842). specimenRole C 1..1 SpecimenRole should-id: SHOULD contain id id 0..* II If 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). performer 0..* Performer2 assignedEntity C 1..1 AssignedEntity should-assignedPerson: SHOULD contain assignedPerson should-representedOrganization: SHOULD contain representedOrganization id 1..* II addr 1..* USRealmAddress Base for all types and resources telecom 1..* TEL assignedPerson 0..1 Person name 1..* USRealmPersonNamePNUSFIELDED Base for all types and resources representedOrganization C 0..1 Organization should-id: SHOULD contain id id 0..* II name 0..* ON telecom 1..* TEL addr 1..* USRealmAddress Base for all types and resources author 0..* AuthorParticipation Base for all types and resources Slices for participant 0..* Participant2 Slice: Unordered, Open by value:typeCode participant:participant1 0..* Participant2 participant @typeCode 1..1 cs Fixed Value: DEV participantRole 1..1 ProductInstance Base for all types and resources participant:participant2 0..* Participant2 participant @typeCode 1..1 cs Fixed Value: LOC participantRole 1..1 ServiceDeliveryLocation Base for all types and resources Slices for entryRelationship 0..* EntryRelationship Slice: Unordered, Open by profile:act, profile:observation, exists:encounter entryRelationship:entryRelationship1 0..* EntryRelationship entryRelationship @typeCode 1..1 cs Fixed Value: COMP @inversionInd 1..1 bl Fixed Value: true encounter 1..1 Encounter @classCode 1..1 cs @moodCode 1..1 cs Fixed Value: EVN id 1..1 II Set the encounter ID to the ID of an encounter in another section to signify they are the same encounter (CONF:4515-16843). entryRelationship:entryRelationship2 0..1 EntryRelationship entryRelationship @typeCode 1..1 cs Fixed Value: SUBJ @inversionInd 1..1 bl Fixed Value: true act 1..1 Instruction Base for all types and resources entryRelationship:entryRelationship3 0..* EntryRelationship entryRelationship @typeCode 1..1 cs Fixed Value: RSON observation 1..1 Indication Base for all types and resources entryRelationship:entryRelationship4 0..* EntryRelationship entryRelationship @typeCode 1..1 cs Fixed Value: COMP substanceAdministration 1..1 MedicationActivity Base for all types and resources entryRelationship:entryRelationship5 0..* EntryRelationship entryRelationship @typeCode 1..1 cs Fixed Value: COMP observation 1..1 ReactionObservation Base for all types and resources entryRelationship:entryRelationship6 0..* EntryRelationship When 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. @typeCode 1..1 cs Fixed Value: RSON observation 1..1 AssessmentScaleObservation Base for all types and resources entryRelationship:entryRelationship7 0..* EntryRelationship When 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. @typeCode 1..1 cs Fixed Value: RSON act 1..1 EntryReference Base for all types and resources Documentation for this format
HL7 International - Structured Documents
This template is used to represent the details of current and historical procedures performed on or for a patient. A procedure is an activity that is performed on, with, or for a patient as part of the provision of care. Examples include surgical procedures, diagnostic procedures, endoscopic procedures, biopsies, counseling, physiotherapy, personal support services, adult day care services, non-emergency transportation, home modification, exercise, etc. Procedures may be performed by a healthcare professional, a service provider, a friend or relative or in some cases by the patient themselves.
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.
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
If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question
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.
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.
Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false).
Identifies the type as an HL7 Registered model
A character string as a unique identifier within the scope of the identifier root.
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
A unique identifier that guarantees the global uniqueness of the instance identifier. The root alone may be the entire instance identifier.
SHALL contain exactly one [1..1] @classCode="PROC" Procedure (CodeSystem: HL7ActClass urn:oid:2.16.840.1.113883.5.6 STATIC) (CONF:4515-7652).
SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: HL7ActMood urn:oid:2.16.840.1.113883.5.1001 STATIC) (CONF:4515-7653).
SHALL contain at least one [1..*] id (CONF:4515-7655).
SHALL contain exactly one [1..1] code (CONF:4515-7656).
SHOULD contain originalText/reference/@value
If the Intervention Procedure is a Social Determinant of Health Intervention, the procedure code **SHOULD** be selected from ValueSet [Social Determinant of Health Procedures](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1196.789/expansion) **DYNAMIC** (CONF:4515-32984).
For Social Determinant of Health Interventions
The plain code symbol defined by the code system. For example, "784.0" is the code symbol of the ICD-9 code "784.0" for headache.
Specifies the code system that defines the code.
If applicable, a version descriptor defined specifically for the given code system.
A name or title for the code, under which the sending system shows the code value to its users.
The valueSet extension adds an attribute for elements with a CD dataType which indicates the particular value set constraining the coded concept.
The valueSetVersion extension adds an attribute for elements with a CD dataType which indicates the version of the particular value set constraining the coded concept.
SHOULD reference the portion of narrative corresponding to this code
The text or phrase used as the basis for the coding.
Indicates whether the raw byte data is compressed, and what compression algorithm was used.
The integrity check is a short binary value representing a cryptographically strong checksum that is calculated over the binary data. The purpose of this property, when communicated with a reference is for anyone to validate later whether the reference still resolved to the same data that the reference resolved to when the encapsulated data value with reference was created.
Specifies the algorithm used to compute the integrityCheck value. The cryptographically strong checksum algorithm Secure Hash Algorithm-1 (SHA-1) is currently the industry standard. It has superseded the MD5 algorithm only a couple of years ago, when certain flaws in the security of MD5 were discovered. Currently the SHA-1 hash algorithm is the default choice for the integrity check algorithm. Note that SHA-256 is also entering widespread usage.
For character based information the language property specifies the human language of the text.
Identifies the type of the encapsulated data and identifies a method to interpret or render the data.
Allows for mixed text content. If @representation='B64', this SHALL be a base64binary string.
Data that is primarily intended for human interpretation or for further machine processing is outside the scope of HL7. This includes unformatted or formatted written language, multimedia data, or structured information as defined by a different standard (e.g., XML-signatures.)
This element is represented in XML as textual content. The actual name "xmlText" will not appear in a CDA instance.
A telecommunication address (TEL), such as a URL for HTTP or FTP, which will resolve to precisely the same binary data that could as well have been provided as inline data.
If reference/@value is present, it SHALL begin with a '#' and SHALL point to its corresponding narrative
value.exists() implies value.startsWith('#')
An abbreviated rendition of the full data. A thumbnail requires significantly fewer resources than the full data, while still maintaining some distinctive similarity with the full data. A thumbnail is typically used with by-reference encapsulated data. It allows a user to select data more efficiently before actually downloading through the reference.
Specifies additional codes that increase the specificity of the the primary code.
A set of other concept descriptors that translate this concept descriptor into other code systems.
SHOULD reference the portion of section narrative text corresponding to this entry
SHALL contain exactly one [1..1] statusCode (CONF:4515-7661).
This statusCode SHALL contain exactly one [1..1] @code, which SHALL be selected from ValueSet ProcedureAct statusCode urn:oid:2.16.840.1.113883.11.20.9.22 STATIC 2014-04-23 (CONF:4515-32366).
A quantity specifying a point on the axis of natural time. A point in time is most often represented as a calendar expression.
center.empty() or (low.empty() and high.empty())
If a time interval contains @value, then it shall be precise to at least the day.
value.exists() implies value.toString().length() >= 10
If a time interval contains @value, then it SHOULD contain a time component.
value.exists() implies value.toString().length() > 10
Time value must be equal to or before ClinicalDocument/effectiveTime
value.exists() implies value <= %resource.effectiveTime.value
Indicates historical procedure or an instance of a procedure where precision may be only a date or even a year.
A code specifying whether the set component is included (union) or excluded (set-difference) from the set, or other set operations with the current set component and the set as constructed from the representation stream up to the current point.
**SHALL** be precise to at least the day
nullFlavor.exists() or value.toString().length() >= 10
**SHOULD** be precise to at least the minute
nullFlavor.exists() or value.toString().length() > 10
Specifies whether the limit is included in the interval (interval is closed) or excluded from the interval (interval is open).
The arithmetic mean of the interval (low plus high divided by 2). The purpose of distinguishing the center as a semantic property is for conversions of intervals from and to point values.
The difference between high and low boundary. The purpose of distinguishing a width property is to handle all cases of incomplete information symmetrically. In any interval representation only two of the three properties high, low, and width need to be stated and the third can be derived.
Indicates when a procedure ended. If the statusCode='active', this must be after the ClinicalDcument/effectiveTime
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).
MethodCode **SHALL NOT** conflict with the method inherent in Procedure / code (CONF:4515-7890).
Drawn from concept domain ProcedureMethod
MAY contain zero or one [0..1] methodCode (CONF:4515-7670).
In the case of an implanted medical device, targetSiteCode is used to record the location of the device, in or on the patient's body.
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).
This specimen is for representing specimens obtained from a procedure (CONF:4515-16842).
MAY contain zero or more [0..*] specimen (CONF:4515-7697).
The specimen, if present, SHALL contain exactly one [1..1] specimenRole (CONF:4515-7704).
If 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).
This specimenRole SHOULD contain zero or more [0..*] id (CONF:4515-7716).
SHOULD contain zero or more [0..*] performer (CONF:4515-7718) such that it
SHALL contain exactly one [1..1] assignedEntity (CONF:4515-7720).
This assignedEntity SHALL contain at least one [1..*] id (CONF:4515-7722).
Mailing and home or office addresses. A sequence of address parts, such as street or post office Box, city, postal code, country, etc.
This assignedEntity SHALL contain at least one [1..*] addr (CONF:4515-7731).
SHALL contain exactly one [1..1] city (CONF:81-7292).
nullFlavor.exists() or item.city.count() = 1
SHALL contain at least one and not more than 4 streetAddressLine (CONF:81-7291).
nullFlavor.exists() or (item.streetAddressLine.count() >= 1 and item.streetAddressLine.count() <= 4)
nullFlavor.exists() or item.country.exists()
**SHALL NOT** have mixed content except for white space (CONF:81-7296)
If the country is US, the state element is required and SHALL be selected from ValueSet StateValueSet but SHOULD have @nullFlavor if the state is unknown. If country is not specified, it's assumed to be US. If country is something other than US, the state MAY be present but MAY be bound to different vocabularies (CONF:81-10024).
nullFlavor.exists() or (item.country.exists() and item.country.xmlText != 'US' and item.country.xmlText != 'USA') or item.state.exists(nullFlavor.exists() or xmlText.memberOf('http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state'))
If the country is US, the postalCode element is required but SHOULD have @nullFlavor if the postalCode is unknown. If country is not specified, it's assumed to be US. If country is something other than US, the postalCode MAY be present but MAY be bound to different vocabularies (CONF:81-10025).
nullFlavor.exists() or (item.country.exists() and item.country.xmlText != 'US' and item.country.xmlText != 'USA') or item.postalCode.exists(nullFlavor.exists() or xmlText.matches('[0-9]{5}(-[0-9]{4})?'))
SHALL have at most one of each: state, city, postalCode, and country
(item.state.empty() or item.state.count() = 1) and (item.city.empty() or item.city.count() = 1) and (item.postalCode.empty() or item.postalCode.count() = 1) and (item.country.empty() or item.country.count() = 1)
This assignedEntity SHALL contain at least one [1..*] telecom (CONF:4515-7732).
This assignedEntity SHOULD contain zero or one [0..1] assignedPerson.
A name for a person. A sequence of name parts, such as given name or family name, prefix, suffix, etc. Examples for person name values are "Jim Bob Walton, Jr.", "Adam Everyman", etc. A person name may be as simple as a character string or may consist of several person name parts, such as, "Jim", "Bob", "Walton", and "Jr.". PN differs from EN because the qualifier type cannot include LS (Legal Status).
This assignedPerson SHALL contain at least one [1..*] US Realm Person Name (PN.US.FIELDED).
No PN name part may have a qualifier of LS.
(item.delimiter | item.family | item.given | item.prefix | item.suffix).where(qualifier.where($this = 'LS').exists()).empty()
The content of name **SHALL** be either a conformant Patient Name (PTN.US.FIELDED), or a string (CONF:81-9371).
conformsTo('http://hl7.org/cda/us/ccda/StructureDefinition/USRealmPatientNamePTNUSFIELDED') or item.xmlText.exists()
The string **SHALL NOT** contain name parts (CONF:81-9372).
item.xmlText.exists() implies (item.delimiter | item.family | item.given | item.prefix | item.suffix).empty()
The desc extension allows multimedia depictions of patients, healthcare providers, or other individuals to be included in a CDA document.
Each participant role other than an informant/relatedEntity may have zero or more relationship roles with the patient. Each of these roles can be expressed with an asPatientRelationship element which further describes the type of role using a code element.
This assignedEntity SHOULD contain zero or one [0..1] representedOrganization (CONF:4515-7733).
The representedOrganization, if present, SHOULD contain zero or more [0..*] id (CONF:4515-7734).
The representedOrganization, if present, MAY contain zero or more [0..*] name (CONF:4515-7735).
The representedOrganization, if present, SHALL contain at least one [1..*] telecom (CONF:4515-7737).
The representedOrganization, if present, SHALL contain at least one [1..*] addr (CONF:4515-7736).
SHOULD contain zero or more [0..*] Author Participation (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.119) (CONF:4515-32479).
MAY contain zero or more [0..*] participant (CONF:4515-7765) such that it
MAY contain zero or more [0..*] participant (CONF:4515-7751) such that it
SHALL contain exactly one [1..1] @typeCode="DEV" Device (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002 STATIC) (CONF:4515-7752).
SHALL contain exactly one [1..1] Product Instance (identifier: urn:oid:2.16.840.1.113883.10.20.22.4.37) (CONF:4515-15911).
playingDevice and playingEntity are mutually exclusive
(playingDevice | playingEntity).count() <= 1
SHALL contain exactly one [1..1] @typeCode="LOC" Location (CodeSystem: HL7ParticipationType urn:oid:2.16.840.1.113883.5.90 STATIC) (CONF:4515-7766).
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).
MAY contain zero or more [0..*] entryRelationship (CONF:4515-32988) such that it
MAY contain zero or more [0..*] entryRelationship (CONF:4515-7768) such that it
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).
The entryRelationship.inversionInd can be set to "true" to indicate that the relationship should be interpreted as if the roles of the source and target entries were reversed.
SHALL contain exactly one [1..1] @inversionInd="true" true (CONF:4515-8009).
The entryRelationship.contextConductionInd differs from the otherwise common use of this attribute in that in all other cases where this attribute is used, the value is fixed at "true", whereas here the value is defaulted to "true", and can be changed to "false" when referencing an entry in the same document. Setting the context conduction to false when referencing an entry in the same document keeps clear the fact that the referenced object retains its original context.
SHALL contain exactly one [1..1] encounter (CONF:4515-7770).
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).
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).
Set the encounter ID to the ID of an encounter in another section to signify they are the same encounter (CONF:4515-16843).
This encounter SHALL contain exactly one [1..1] id (CONF:4515-7773).
MAY contain zero or one [0..1] entryRelationship (CONF:4515-7775) such that it
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).
SHALL contain exactly one [1..1] @inversionInd="true" true (CONF:4515-7777).
MAY contain zero or more [0..*] entryRelationship (CONF:4515-7779) such that it
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).
MAY contain zero or more [0..*] entryRelationship (CONF:4515-7886) such that it
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).
SHOULD contain zero or one [0..1] effectiveTime (CONF:1098-7513) such that it **SHALL** contain exactly one [1..1] @xsi:type="PIVL_TS" or "EIVL_TS" (CONF:1098-28499).
effectiveTime.ofType(CDA.PIVL_TS).exists() or effectiveTime.ofType(CDA.EIVL_TS).exists()
If doseQuantity/@unit is present, then administrationUnitCode SHALL NOT be present.
doseQuantity.unit.exists() implies administrationUnitCode.empty()
MAY contain zero or more [0..*] entryRelationship (CONF:4515-32473) such that it
SHALL contain exactly one [1..1] @typeCode="COMP" Has Component (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002) (CONF:4515-32474).
When 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.
MAY contain zero or more [0..*] entryRelationship (CONF:4515-32985) such that it
SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002) (CONF:4515-32987).
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).
When 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.
SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: HL7ActRelationshipType urn:oid:2.16.840.1.113883.5.1002) (CONF:4515-32990).