## Profile Comparison between http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure vs http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-Procedure

Left: | US Core Procedure Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure)
Right: | SDOHCC Procedure (http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-Procedure)

### Messages

Error | StructureDefinition.url | Values for url differ: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure' vs 'http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-Procedure'
Error | StructureDefinition.version | Values for version differ: '9.0.0-ballot' vs '3.0.0-ballot'
Information | StructureDefinition.name | Values for name differ: 'USCoreProcedureProfile' vs 'SDOHCCProcedure'
Information | StructureDefinition.title | Values for title differ: 'US Core Procedure Profile' vs 'SDOHCC Procedure'
Information | StructureDefinition.date | Values for date differ: '2023-10-17' vs '2025-12-13T17:11:59+00:00'
Information | StructureDefinition.publisher | Values for publisher differ: 'HL7 International / Cross-Group Projects' vs 'HL7 International / Patient Care'
Information | StructureDefinition.short | Values for short differ: 'Additional content defined by implementations' vs 'Extension'
Information | StructureDefinition.definition | Values for definition differ: 'May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.' vs 'An Extension'
Information | StructureDefinition.short | Values for short differ: '𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure' vs 'A request for this procedure'
Warning | Procedure.basedOn | Elements differ in definition for mustSupport: 'false' vs 'true'
Information | StructureDefinition.definition | Values for definition differ: 'A code that classifies the procedure for searching, sorting and display purposes (e.g. 'Surgical Procedure').' vs 'A code that classifies the procedure for searching, sorting and display purposes (e.g. 'Social service procedure').'
Information | StructureDefinition.definition | Values for definition differ: 'The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. 'Laparoscopic Appendectomy').' vs 'The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded.'
Information | StructureDefinition.requirements | Values for requirements differ: '0..1 to account for primarily narrative only resources.' vs 'Code is required and must be selected from the bound value set.'
Information | StructureDefinition.short | Values for short differ: '𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: The people who performed the procedure' vs 'The people who performed the procedure'
Information | StructureDefinition.short | Values for short differ: '𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: The reference to the practitioner' vs 'The reference to the practitioner'
Information | StructureDefinition.short | Values for short differ: '𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed' vs 'Coded reason procedure performed'
Information | StructureDefinition.comment | Values for comment differ: 'Use Procedure.reasonCode when a code sufficiently describes the reason. Use Procedure.reasonReference when referencing a resource, which allows more information to be conveyed, such as onset date. Procedure.reasonCode and Procedure.reasonReference are not meant to be duplicative. For a single reason, either Procedure.reasonCode or Procedure.reasonReference can be used. Procedure.reasonCode may be a summary code, or Procedure.reasonReference may be used to reference a very precise definition of the reason using Condition | Observation | Procedure | DiagnosticReport | DocumentReference. Both Procedure.reasonCode and Procedure.reasonReference can be used if they are describing different reasons for the procedure.' vs 'Procedure.reasonCode and Procedure.reasonReference are not meant to be duplicative. For a single reason, either Procedure.reasonCode or Procedure.reasonReference can be used. Procedure.reasonCode may be a summary code, or Procedure.reasonReference may be used to reference a very precise definition of the reason using Condition | Observation | Procedure | DiagnosticReport | DocumentReference. Both Procedure.reasonCode and Procedure.reasonReference can be used if they are describing different reasons for the procedure. Information represented by Procedure.reasonCode may overlap significantly with information represented by Procedure.reasonReference. Multiple approaches to representing the same information may negatively impact interoperability. Therefore, where similar information could be provided by either Procedure.reasonCode or Procedure.reasonReference, it is recommended that Procedure.reasonReference be used to provide a reason for why a procedure was performed.'
Information | StructureDefinition.short | Values for short differ: '𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed' vs 'The justification that the procedure was performed'
Information | StructureDefinition.comment | Values for comment differ: 'It is possible for a procedure to be a reason (such as C-Section) for another procedure (such as an epidural). Other examples include endoscopy for dilatation and biopsy (a combination of diagnostic and therapeutic use). Use Procedure.reasonCode when a code sufficiently describes the reason. Use Procedure.reasonReference when referencing a resource, which allows more information to be conveyed, such as onset date. Procedure.reasonCode and Procedure.reasonReference are not meant to be duplicative. For a single reason, either Procedure.reasonCode or Procedure.reasonReference can be used. Procedure.reasonCode may be a summary code, or Procedure.reasonReference may be used to reference a very precise definition of the reason using Condition | Observation | Procedure | DiagnosticReport | DocumentReference. Both Procedure.reasonCode and Procedure.reasonReference can be used if they are describing different reasons for the procedure.' vs 'Procedure.reasonCode and Procedure.reasonReference are not meant to be duplicative. For a single reason, either Procedure.reasonCode or Procedure.reasonReference can be used. Procedure.reasonCode may be a summary code, or Procedure.reasonReference may be used to reference a very precise definition of the reason using Condition | Observation | Procedure | DiagnosticReport | DocumentReference. Both Procedure.reasonCode and Procedure.reasonReference can be used if they are describing different reasons for the procedure. Additionally, see Comments for reasonCode.'

### Metadata

Name | Value | Comments
--- | --- | ---
abstract | false |
baseDefinition | http://hl7.org/fhir/StructureDefinition/Procedure |
copyright | Used by permission of HL7 International, all rights reserved Creative Commons License |  | Removed the item 'Used by permission of HL7 International, all rights reserved Creative Commons License'
date | 2023-10-17 | 2025-12-13T17:11:59+00:00 | Values Differ
description | The US Core Procedure Profile inherits from the FHIR [Procedure](https://hl7.org/fhir/R4/procedure.html) resource; refer to it for scope and usage definitions. This profile meets the requirements of the U.S. Core Data for Interoperability (USCDI) *Procedures* Data Class. It sets minimum expectations for the Procedure resource to record, search, and fetch procedure information associated with a patient. It specifies which core elements, extensions, vocabularies, and value sets **SHALL** be present and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption. | Profile for interventions that address Social Determinants of Health. | Values Differ
experimental | false |  | Removed the item 'false'
fhirVersion | 4.0.1 |
jurisdiction |  |
jurisdiction[0] | urn:iso:std:iso:3166#US |
kind | resource |
name | USCoreProcedureProfile | SDOHCCProcedure | Values Differ
publisher | HL7 International / Cross-Group Projects | HL7 International / Patient Care | Values Differ
purpose |  |
status | active |
title | US Core Procedure Profile | SDOHCC Procedure | Values Differ
type | Procedure |
url | http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure | http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-Procedure | Values Differ
version | 9.0.0-ballot | 3.0.0-ballot | Values Differ

### Structure

Name | L Flags | L Card. | L Type | L Description & Constraints | R Flags | R Card. | R Type | R Description & Constraints | Comments
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Procedure | C | 0..* | Procedure | An action that is being or was performed on a patient Constraints: us-core-7 | C | 0..* | Procedure | An action that is being or was performed on a patient Constraints: us-core-7 |
id | Σ | 0..1 | id | Logical id of this artifact | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language |  | 0..1 | code | Language of the resource content Binding: ?? (preferred): A human language.
Additional Bindings | Purpose
?? | Max Binding
|  | 0..1 | code | Language of the resource content Binding: ?? (preferred): A human language.
Additional Bindings | Purpose
?? | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements |
contained |  | 0..* | Resource | Contained, inline Resources |  | 0..* | Resource | Contained, inline Resources |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | External Identifiers for this procedure | Σ | 0..* | Identifier | External Identifiers for this procedure |
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition |
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition | Σ | 0..* | uri | Instantiates external protocol or definition |
basedOn | Σ | 0..* | Reference(US Core CarePlan Profile(7.0.0) | US Core ServiceRequest Profile(7.0.0)) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure | S Σ | 0..* | Reference(CarePlan | ServiceRequest) | A request for this procedure Slice: Unordered, Open by profile:resolve() | Elements differ in definition for mustSupport: 'false' vs 'true'
partOf | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event |
status | ?!S Σ C | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: ?? (required) | ?!S Σ C | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: ?? (required) |
statusReason | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ?? (example): A code that identifies the reason a procedure was not performed. | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ?? (example): A code that identifies the reason a procedure was not performed. |
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ?? (example): A code that classifies a procedure for searching, sorting and display purposes. | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ?? (example): A code that classifies a procedure for searching, sorting and display purposes. |
id |  |  |  |  |  | 0..1 | string | Unique id for inter-element referencing | Added this element
Slices for extension |  |  |  |  |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | Added this element
Slices for coding |  |  |  |  | S Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:$this | Added this element
text |  |  |  |  | Σ | 0..1 | string | Plain text representation of the concept | Added this element
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: ?? (preferred): Codes describing the type of Procedure
Additional Bindings | Purpose
?? | Current
| S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: ?? (required)
Additional Bindings | Purpose | Usage
?? | Extensible | SDOHCCProcedure#`Procedure.category` = digital-access
?? | Extensible | SDOHCCProcedure#`Procedure.category` = digital-literacy
?? | Extensible | SDOHCCProcedure#`Procedure.category` = educational-attainment
?? | Extensible | SDOHCCProcedure#`Procedure.category` = elder-abuse
?? | Extensible | SDOHCCProcedure#`Procedure.category` = employment-status
?? | Extensible | SDOHCCProcedure#`Procedure.category` = financial-insecurity
?? | Extensible | SDOHCCProcedure#`Procedure.category` = food-insecurity
?? | Extensible | SDOHCCProcedure#`Procedure.category` = health-insurance-coverage-status
?? | Extensible | SDOHCCProcedure#`Procedure.category` = homelessness
?? | Extensible | SDOHCCProcedure#`Procedure.category` = housing-instability
?? | Extensible | SDOHCCProcedure#`Procedure.category` = inadequate-housing
?? | Extensible | SDOHCCProcedure#`Procedure.category` = incarceration-status
?? | Extensible | SDOHCCProcedure#`Procedure.category` = intimate-partner-violence
?? | Extensible | SDOHCCProcedure#`Procedure.category` = language-access
?? | Extensible | SDOHCCProcedure#`Procedure.category` = material-hardship
?? | Extensible | SDOHCCProcedure#`Procedure.category` = medical-cost-burden
?? | Extensible | SDOHCCProcedure#`Procedure.category` = personal-health-literacy
?? | Extensible | SDOHCCProcedure#`Procedure.category` = social-connection
?? | Extensible | SDOHCCProcedure#`Procedure.category` = stress
?? | Extensible | SDOHCCProcedure#`Procedure.category` = transportation-insecurity
?? | Extensible | SDOHCCProcedure#`Procedure.category` = utility-insecurity
?? | Extensible | SDOHCCProcedure#`Procedure.category` = veteran-status
?? | Required | SDOHCCProcedure#`Procedure.category` = sdoh-category-unspecified
subject | S Σ | 1..1 | Reference(US Core Patient Profile(7.0.0) S | Group) | Who the procedure was performed on | S Σ | 1..1 | Reference(US Core Patient Profile(7.0.0)) | Who the procedure was performed on |
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile(7.0.0)) | Encounter associated with the procedure | S Σ | 0..1 | Reference(US Core Encounter Profile(7.0.0)) | Encounter associated with the procedure |
performed[x] | S Σ C | 0..1 | dateTime S, Period, string, Age, Range | When the procedure was performed | S Σ C | 0..1 | dateTime S, Period, string, Age, Range | When the procedure was performed |
recorder | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure |
asserter | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure |
performer | Σ | 0..* | BackboneElement | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: The people who performed the procedure | Σ | 0..* | BackboneElement | The people who performed the procedure |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ?? (example): A code that identifies the role of a performer of the procedure. | Σ | 0..1 | CodeableConcept | Type of performance Binding: ?? (example): A code that identifies the role of a performer of the procedure. |
actor | Σ | 1..1 | Reference(US Core Practitioner Profile(7.0.0) | US Core PractitionerRole Profile(7.0.0) | US Core Organization Profile(7.0.0) | US Core Patient Profile(7.0.0) | US Core RelatedPerson Profile(7.0.0) | US Core Device Profile) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: The reference to the practitioner | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) | The reference to the practitioner |
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for |
location | Σ | 0..1 | Reference(Location) | Where the procedure happened | Σ | 0..1 | Reference(Location) | Where the procedure happened |
reasonCode | Σ | 0..* | CodeableConcept | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed Binding: ?? (extensible) | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: ?? (extensible) |
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | The justification that the procedure was performed Slice: Unordered, Open by profile:resolve() |
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: ?? (example): Codes describing anatomical locations. May include laterality. | Σ | 0..* | CodeableConcept | Target body sites Binding: ?? (example): Codes describing anatomical locations. May include laterality. |
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ?? (example): An outcome of a procedure - whether it was resolved or otherwise. | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ?? (example): An outcome of a procedure - whether it was resolved or otherwise. |
report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure |
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: ?? (example): Codes describing complications that resulted from a procedure. |  | 0..* | CodeableConcept | Complication following the procedure Binding: ?? (example): Codes describing complications that resulted from a procedure. |
complicationDetail |  | 0..* | Reference(Condition) | A condition that is a result of the procedure |  | 0..* | Reference(Condition) | A condition that is a result of the procedure |
followUp |  | 0..* | CodeableConcept | Instructions for follow up Binding: ?? (example): Specific follow up required for a procedure e.g. removal of sutures. |  | 0..* | CodeableConcept | Instructions for follow up Binding: ?? (example): Specific follow up required for a procedure e.g. removal of sutures. |
note |  | 0..* | Annotation | Additional information about the procedure |  | 0..* | Annotation | Additional information about the procedure |
focalDevice |  | 0..* | BackboneElement | Manipulated, implanted, or removed device |  | 0..* | BackboneElement | Manipulated, implanted, or removed device |
id |  | 0..1 | string | Unique id for inter-element referencing |  | 0..1 | string | Unique id for inter-element referencing |
extension |  | 0..* | Extension | Additional content defined by implementations |  | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
action |  | 0..1 | CodeableConcept | Kind of change to device Binding: ?? (preferred): A kind of change that happened to the device during the procedure. |  | 0..1 | CodeableConcept | Kind of change to device Binding: ?? (preferred): A kind of change that happened to the device during the procedure. |
manipulated |  | 1..1 | Reference(Device) | Device that was changed |  | 1..1 | Reference(Device) | Device that was changed |
usedReference |  | 0..* | Reference(Device | Medication | Substance) | Items used during procedure |  | 0..* | Reference(Device | Medication | Substance) | Items used during procedure |
usedCode |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: ?? (example): Codes describing items used during a procedure. |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: ?? (example): Codes describing items used during a procedure. |
Documentation for this format