This page is part of the US Core (v3.0.1: STU3 Ballot 3) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions
StructureDefinition-us-core-procedure
This profile sets minimum expectations for the Procedure resource to record, search and fetch procedures associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.
Example Usage Scenarios:
The following are example usage scenarios for the US Core-Procedure profile:
- Query for procedures performed on a Patient
- Record a procedure performed on a Patient
Mandatory and Must Support Data Elements
The following data-elements are mandatory (i.e data MUST be present) 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 Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each Procedure must have:
- a status
- a code that identifies the type of procedure performed on the patient
- a patient
- when the procedure was performed
Profile specific implementation guidance:
-
Either SNOMED-CT or CPT-4/HCPC procedure codes are required and ICD-10-PCS codes MAY be supported as translations to them. If choosing to primarily to dental procedures, the Code on Dental Procedures and Nomenclature (CDT Code) may be used.
-
A procedure including an implantable device SHOULD use
Procedure.focalDevice
with a reference to the US Core Implantable Device Profile.
Examples
Formal Views of Profile Content
Description of Profiles, Differentials, and Snapshots.
The official URL for this profile is:
http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure
Published on Mon Aug 26 00:00:00 EDT 2019 as active by the HL7 US Realm Steering Committee.
This profile builds on Procedure
Procedure
Summary of the Mandatory Requirements
- A code in
Procedure.status
with a required binding to EventStatus - A CodeableConcept in
Procedure.code
with an extensible binding to US Core Procedure Codes - A Patient Reference in
Procedure.subject
- A dateTime in
Procedure.performed[x]
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | 0..* | |||
status | S | 1..1 | code | Binding: EventStatus (required) |
code | S | 1..1 | CodeableConcept | Procedure codes from CPT or SNOMED CT Binding: US Core Procedure Codes (extensible) |
subject | S | 1..1 | Reference(US Core Patient Profile) | |
performed[x] | S | 1..1 | ||
performedDateTime | dateTime | |||
performedPeriod | Period | |||
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | I | 0..* | An action that is being or was performed on a patient | |
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) Max Binding: AllLanguages | |
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(CarePlan | ServiceRequest) | A request for this procedure |
partOf | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event |
status | ?!SΣ | 1..1 | code | preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown Binding: EventStatus (required) |
statusReason | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example) |
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example) |
code | SΣ | 1..1 | CodeableConcept | Procedure codes from CPT or SNOMED CT Binding: US Core Procedure Codes (extensible) |
subject | SΣ | 1..1 | Reference(US Core Patient Profile) | Who the procedure was performed on |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of |
performed[x] | SΣ | 1..1 | When the procedure was performed | |
performedDateTime | dateTime | |||
performedPeriod | Period | |||
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 | ΣI | 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) |
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: ProcedureReasonCodes (example) |
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | The justification that the procedure was performed |
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example) |
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example) |
report | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure | |
complication | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example) | |
complicationDetail | 0..* | Reference(Condition) | A condition that is a result of the procedure | |
followUp | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example) | |
note | 0..* | Annotation | Additional information about the procedure | |
focalDevice | I | 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) | |
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) | |
Documentation for this format |
Procedure
Summary of the Mandatory Requirements
- A code in
Procedure.status
with a required binding to EventStatus - A CodeableConcept in
Procedure.code
with an extensible binding to US Core Procedure Codes - A Patient Reference in
Procedure.subject
- A dateTime in
Procedure.performed[x]
Differential View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | 0..* | |||
status | S | 1..1 | code | Binding: EventStatus (required) |
code | S | 1..1 | CodeableConcept | Procedure codes from CPT or SNOMED CT Binding: US Core Procedure Codes (extensible) |
subject | S | 1..1 | Reference(US Core Patient Profile) | |
performed[x] | S | 1..1 | ||
performedDateTime | dateTime | |||
performedPeriod | Period | |||
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | I | 0..* | An action that is being or was performed on a patient | |
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) Max Binding: AllLanguages | |
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(CarePlan | ServiceRequest) | A request for this procedure |
partOf | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event |
status | ?!SΣ | 1..1 | code | preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown Binding: EventStatus (required) |
statusReason | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example) |
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example) |
code | SΣ | 1..1 | CodeableConcept | Procedure codes from CPT or SNOMED CT Binding: US Core Procedure Codes (extensible) |
subject | SΣ | 1..1 | Reference(US Core Patient Profile) | Who the procedure was performed on |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of |
performed[x] | SΣ | 1..1 | When the procedure was performed | |
performedDateTime | dateTime | |||
performedPeriod | Period | |||
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 | ΣI | 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) |
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: ProcedureReasonCodes (example) |
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | The justification that the procedure was performed |
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example) |
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example) |
report | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure | |
complication | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example) | |
complicationDetail | 0..* | Reference(Condition) | A condition that is a result of the procedure | |
followUp | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example) | |
note | 0..* | Annotation | Additional information about the procedure | |
focalDevice | I | 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) | |
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) | |
Documentation for this format |
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Quick Start
Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.
- See the General Guidance section for additional rules and expectations when a server requires status parameters.
- See the General Guidance section for additional guidance on searching for multiple patients.
Mandatory Search Parameters:
The following search parameters, search parameter combinations SHALL be supported. Any listed search parameter modifiers, comparators, chains and composites SHALL also be supported UNLESS they are listed as “optional” in which case they SHOULD be supported.:
-
SHALL support searching for all procedures for a patient using the
patient
search parameter:GET [base]/Procedure?patient=[reference]
Example:
- GET [base]/Procedure?patient=1291938
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
anddate
search parameters:- including support for these
date
comparators:gt,lt,ge,le
- including optional support for composite AND search on
date
(e.g.date=[date]&date=[date]]&...
)
GET [base]/Procedure?patient=[reference]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
Example:
- GET [base]/Procedure?patient=1137192&date=ge2019-01-14
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)
- including support for these
Optional Search Parameters:
The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHOULD be supported.
- SHOULD support searching using the combination of the
patient
andstatus
search parameters:- including support for composite OR search on
status
(e.g.status={[system]}|[code],{[system]}|[code],...
)
GET [base]/Procedure?patient=[reference]&status={[system]}|[code]{,{[system]}|[code],...}
Example:
- GET [base]/Procedure?patient=1137192&status=completed
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)
- including support for composite OR search on
- SHOULD support searching using the combination of the
patient
andcode
anddate
search parameters:- including optional support for composite OR search on
code
(e.g.code={[system]}|[code],{[system]}|[code],...
) - including support for these
date
comparators:gt,lt,ge,le
- including optional support for composite AND search on
date
(e.g.date=[date]&date=[date]]&...
)
GET [base]/Procedure?patient=[reference]&code={[system]}|[code]{,{[system]}|[code],...}&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
Example:
- GET [base]/Procedure?patient=1137192&date=ge2019-01-14&code=http://snomed.info/sct|35637008
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)
- including optional support for composite OR search on