This page is part of the US Core (v7.0.0-ballot: STU7 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 6.1.0. For a full list of available versions, see the Directory of published versions
Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure | Version: 7.0.0-ballot | |||
Standards status: Trial-use | Maturity Level: 3 | Computable Name: USCoreProcedureProfile | ||
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License |
The US Core Procedure Profile is based upon the core FHIR Procedure Resource and meets the U.S. Core Data for Interoperability (USCDI) v2 ‘Procedures’ requirements. This profile sets minimum expectations for the Procedure resource to record, search, and fetch procedures associated with a patient to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. It provides the floor for standards development for specific use cases.
Example Usage Scenarios:
The following are example usage scenarios for this profile:
The following data-elements must always be present (Mandatory definition) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.
Each Procedure Must Have:
*This elements have the following constraints: SHALL be present if status is ‘completed’ or ‘in-progress’.
Each Procedure Must Support:
Additional USCDI Requirements:
This Additional USCDI Requirements element is not Mandatory or Must Support but is required for ONC Health IT certification testing and is included in the formal definition of the profile and the Procedure examples.
*see guidance below
Profile Specific Implementation Guidance:
Procedure.focalDevice
with a reference to the US Core Implantable Device Profile.ServiceRequest.reason
or ServiceRequest.reason
, and Procedure.basedOn
that links the Procedure to the US Core ServiceRequest Profile.
ServiceRequest.reasonCode
and ServiceRequest.reasonReference
are marked as Additional USCDI Requirements. The certifying server system is not required to support both but SHALL support at least one of these elements. The certifying client application SHALL support both elements.ServiceRequest.reasonReference
, the referenced resources SHOULD be a US Core Profile.Procedure.reasonCode
or Procedure.reasonReference
when the Procedure does not have an associated ServiceRequest.
Procedure.reasonCode
and Procedure.reasonReference
are marked as Additional USCDI Requirements. The certifying server system is not required to support both but SHALL support at least one of these elements. The certifying client application SHALL support both elements.Procedure.reasonReference
, the referenced resources SHOULD be a US Core Profile.Certifying Servers and Clients SHALL support options 1 and 2 as Additional USCDI Requirements.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Procedure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | C | 0..* | Procedure | An action that is being or was performed on a patient us-core-7: Performed SHALL be present if the status is 'completed' or 'in-progress' |
basedOn | 0..* | Reference(US Core CarePlan Profile | US Core ServiceRequest Profile) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure | |
status | SC | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required) |
code | S | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): Codes describing the type of Procedure |
subject | S | 1..1 | Reference(US Core Patient Profile S | Group) | Who the procedure was performed on |
encounter | S | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with the procedure |
performed[x] | SC | 0..1 | When the procedure was performed | |
performedDateTime | dateTime S | |||
performedPeriod | Period | |||
performedString | string | |||
performedAge | Age | |||
performedRange | Range | |||
reasonCode | 0..* | CodeableConcept | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed Binding: US Core Condition Codes (extensible) | |
reasonReference | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed | |
Documentation for this format |
Path | Conformance | ValueSet |
Procedure.status | required | EventStatus |
Procedure.code | extensible | USCoreProcedureCodes |
Procedure.reasonCode | extensible | USCoreConditionCodes |
Id | Grade | Path(s) | Details | Requirements |
us-core-7 | error | Procedure | Performed SHALL be present if the status is 'completed' or 'in-progress' : (status='completed' or status='in-progress') implies performed.exists() |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | C | 0..* | Procedure | An action that is being or was performed on a patient us-core-7: Performed SHALL be present if the status is 'completed' or 'in-progress' |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
basedOn | Σ | 0..* | Reference(US Core CarePlan Profile | US Core ServiceRequest Profile) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure |
status | ?!SΣC | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required) |
code | SΣ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): Codes describing the type of Procedure |
subject | SΣ | 1..1 | Reference(US Core Patient Profile) | Who the procedure was performed on |
encounter | SΣ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with the procedure |
performed[x] | SΣC | 0..1 | When the procedure was performed | |
performedDateTime | dateTime | |||
reasonCode | Σ | 0..* | CodeableConcept | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed Binding: US Core Condition Codes (extensible) |
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed |
Documentation for this format |
Path | Conformance | ValueSet |
Procedure.status | required | EventStatus |
Procedure.code | extensible | USCoreProcedureCodes |
Procedure.reasonCode | extensible | USCoreConditionCodes |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Procedure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
us-core-7 | error | Procedure | Performed SHALL be present if the status is 'completed' or 'in-progress' : (status='completed' or status='in-progress') implies performed.exists() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Procedure | C | 0..* | Procedure | An action that is being or was performed on a patient us-core-7: Performed SHALL be present if the status is 'completed' or 'in-progress' | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | External Identifiers for this procedure | ||||
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition | ||||
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition | ||||
basedOn | Σ | 0..* | Reference(US Core CarePlan Profile | US Core ServiceRequest Profile) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure | ||||
partOf | Σ | 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: EventStatus (required) | ||||
statusReason | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed. | ||||
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes. | ||||
code | SΣ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): Codes describing the type of Procedure | ||||
subject | SΣ | 1..1 | Reference(US Core Patient Profile S | Group) | Who the procedure was performed on | ||||
encounter | SΣ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with the procedure | ||||
performed[x] | SΣC | 0..1 | When the procedure was performed | |||||
performedDateTime | dateTime S | |||||||
performedPeriod | Period | |||||||
performedString | string | |||||||
performedAge | Age | |||||||
performedRange | Range | |||||||
recorder | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure | ||||
asserter | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure | ||||
performer | Σ | 0..* | BackboneElement | The people who performed the procedure | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure. | ||||
actor | Σ | 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 | |||||
location | Σ | 0..1 | Reference(Location) | Where the procedure happened | ||||
reasonCode | Σ | 0..* | CodeableConcept | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed Binding: US Core Condition Codes (extensible) | ||||
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed | ||||
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise. | ||||
report | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure | |||||
complication | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure. | |||||
complicationDetail | 0..* | Reference(Condition) | A condition that is a result of the procedure | |||||
followUp | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures. | |||||
note | 0..* | Annotation | Additional information about the procedure | |||||
focalDevice | 0..* | BackboneElement | Manipulated, implanted, or removed device | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
action | 0..1 | CodeableConcept | Kind of change to device Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure. | |||||
manipulated | 1..1 | Reference(Device) | Device that was changed | |||||
usedReference | 0..* | Reference(Device | Medication | Substance) | Items used during procedure | |||||
usedCode | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure. | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Procedure.language | preferred | CommonLanguages
| ||||
Procedure.status | required | EventStatus | ||||
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) | ||||
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT) | ||||
Procedure.code | extensible | USCoreProcedureCodes | ||||
Procedure.performer.function | example | ProcedurePerformerRoleCodes | ||||
Procedure.reasonCode | extensible | USCoreConditionCodes | ||||
Procedure.bodySite | example | SNOMEDCTBodyStructures | ||||
Procedure.outcome | example | ProcedureOutcomeCodes(SNOMEDCT) | ||||
Procedure.complication | example | Condition/Problem/DiagnosisCodes | ||||
Procedure.followUp | example | ProcedureFollowUpCodes(SNOMEDCT) | ||||
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodes | ||||
Procedure.usedCode | example | FHIRDeviceTypes |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Procedure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
us-core-7 | error | Procedure | Performed SHALL be present if the status is 'completed' or 'in-progress' : (status='completed' or status='in-progress') implies performed.exists() |
This structure is derived from Procedure
Summary
Mandatory: 1 element
Must-Support: 5 elements
Structures
This structure refers to these other structures:
Maturity: 3
Differential View
This structure is derived from Procedure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | C | 0..* | Procedure | An action that is being or was performed on a patient us-core-7: Performed SHALL be present if the status is 'completed' or 'in-progress' |
basedOn | 0..* | Reference(US Core CarePlan Profile | US Core ServiceRequest Profile) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure | |
status | SC | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required) |
code | S | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): Codes describing the type of Procedure |
subject | S | 1..1 | Reference(US Core Patient Profile S | Group) | Who the procedure was performed on |
encounter | S | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with the procedure |
performed[x] | SC | 0..1 | When the procedure was performed | |
performedDateTime | dateTime S | |||
performedPeriod | Period | |||
performedString | string | |||
performedAge | Age | |||
performedRange | Range | |||
reasonCode | 0..* | CodeableConcept | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed Binding: US Core Condition Codes (extensible) | |
reasonReference | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed | |
Documentation for this format |
Path | Conformance | ValueSet |
Procedure.status | required | EventStatus |
Procedure.code | extensible | USCoreProcedureCodes |
Procedure.reasonCode | extensible | USCoreConditionCodes |
Id | Grade | Path(s) | Details | Requirements |
us-core-7 | error | Procedure | Performed SHALL be present if the status is 'completed' or 'in-progress' : (status='completed' or status='in-progress') implies performed.exists() |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | C | 0..* | Procedure | An action that is being or was performed on a patient us-core-7: Performed SHALL be present if the status is 'completed' or 'in-progress' |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
basedOn | Σ | 0..* | Reference(US Core CarePlan Profile | US Core ServiceRequest Profile) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure |
status | ?!SΣC | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required) |
code | SΣ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): Codes describing the type of Procedure |
subject | SΣ | 1..1 | Reference(US Core Patient Profile) | Who the procedure was performed on |
encounter | SΣ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with the procedure |
performed[x] | SΣC | 0..1 | When the procedure was performed | |
performedDateTime | dateTime | |||
reasonCode | Σ | 0..* | CodeableConcept | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed Binding: US Core Condition Codes (extensible) |
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed |
Documentation for this format |
Path | Conformance | ValueSet |
Procedure.status | required | EventStatus |
Procedure.code | extensible | USCoreProcedureCodes |
Procedure.reasonCode | extensible | USCoreConditionCodes |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Procedure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
us-core-7 | error | Procedure | Performed SHALL be present if the status is 'completed' or 'in-progress' : (status='completed' or status='in-progress') implies performed.exists() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Procedure | C | 0..* | Procedure | An action that is being or was performed on a patient us-core-7: Performed SHALL be present if the status is 'completed' or 'in-progress' | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | External Identifiers for this procedure | ||||
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition | ||||
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition | ||||
basedOn | Σ | 0..* | Reference(US Core CarePlan Profile | US Core ServiceRequest Profile) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A request for this procedure | ||||
partOf | Σ | 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: EventStatus (required) | ||||
statusReason | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed. | ||||
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes. | ||||
code | SΣ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): Codes describing the type of Procedure | ||||
subject | SΣ | 1..1 | Reference(US Core Patient Profile S | Group) | Who the procedure was performed on | ||||
encounter | SΣ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with the procedure | ||||
performed[x] | SΣC | 0..1 | When the procedure was performed | |||||
performedDateTime | dateTime S | |||||||
performedPeriod | Period | |||||||
performedString | string | |||||||
performedAge | Age | |||||||
performedRange | Range | |||||||
recorder | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure | ||||
asserter | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure | ||||
performer | Σ | 0..* | BackboneElement | The people who performed the procedure | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure. | ||||
actor | Σ | 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 | |||||
location | Σ | 0..1 | Reference(Location) | Where the procedure happened | ||||
reasonCode | Σ | 0..* | CodeableConcept | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Coded reason procedure performed Binding: US Core Condition Codes (extensible) | ||||
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Profile justifying the reason procedure performed | ||||
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise. | ||||
report | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure | |||||
complication | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure. | |||||
complicationDetail | 0..* | Reference(Condition) | A condition that is a result of the procedure | |||||
followUp | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures. | |||||
note | 0..* | Annotation | Additional information about the procedure | |||||
focalDevice | 0..* | BackboneElement | Manipulated, implanted, or removed device | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
action | 0..1 | CodeableConcept | Kind of change to device Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure. | |||||
manipulated | 1..1 | Reference(Device) | Device that was changed | |||||
usedReference | 0..* | Reference(Device | Medication | Substance) | Items used during procedure | |||||
usedCode | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure. | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Procedure.language | preferred | CommonLanguages
| ||||
Procedure.status | required | EventStatus | ||||
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) | ||||
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT) | ||||
Procedure.code | extensible | USCoreProcedureCodes | ||||
Procedure.performer.function | example | ProcedurePerformerRoleCodes | ||||
Procedure.reasonCode | extensible | USCoreConditionCodes | ||||
Procedure.bodySite | example | SNOMEDCTBodyStructures | ||||
Procedure.outcome | example | ProcedureOutcomeCodes(SNOMEDCT) | ||||
Procedure.complication | example | Condition/Problem/DiagnosisCodes | ||||
Procedure.followUp | example | ProcedureFollowUpCodes(SNOMEDCT) | ||||
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodes | ||||
Procedure.usedCode | example | FHIRDeviceTypes |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Procedure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
us-core-7 | error | Procedure | Performed SHALL be present if the status is 'completed' or 'in-progress' : (status='completed' or status='in-progress') implies performed.exists() |
This structure is derived from Procedure
Summary
Mandatory: 1 element
Must-Support: 5 elements
Structures
This structure refers to these other structures:
Maturity: 3
Other representations of profile: CSV, Excel, Schematron
Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.
Servers providing access to procedure data SHALL support these US Core SMART Scopes:
patient/Procedure.rs
.The following search parameters and search parameter combinations SHALL be supported:
SHALL support searching for all procedures for a patient using the patient
search parameter:
GET [base]/Procedure?patient={Type/}[id]
Example:
Implementation Notes: Fetches a bundle of all Procedure resources for the specified patient (how to search by reference)
SHALL support searching using the combination of the patient
and date
search parameters:
date
comparators: gt,lt,ge,le
date
(e.g.date=[date]&date=[date]]&...
)GET [base]/Procedure?patient={Type/}[id]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
Example:
Implementation Notes: Fetches a bundle of all Procedure resources for the specified patient and date (how to search by reference and how to search by token)
The following search parameter combinations SHOULD be supported:
patient
and status
search parameters:
status
(e.g.status={system|}[code],{system|}[code],...
)GET [base]/Procedure?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}
Example:
Implementation Notes: Fetches a bundle of all Procedure resources for the specified patient and status (how to search by reference and how to search by token)
patient
and code
and date
search parameters:
code
(e.g.code={system|}[code],{system|}[code],...
)date
comparators: gt,lt,ge,le
date
(e.g.date=[date]&date=[date]]&...
)GET [base]/Procedure?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
Example:
Implementation Notes: Fetches a bundle of all Procedure resources for the specified patient and date and procedure code(s). SHOULD support search by multiple codes. (how to search by reference and how to search by token and how to search by date)