US-Core CI Build

This page is part of the US Core (v0.0.0: STU1 Ballot 1) based on FHIR v1.8.0. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions

D.4.1 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 Data Elements and Terminology

The following data-elements are mandatory (i.e data MUST be present). These 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:

  1. a status
  2. a code that identifies the type of procedure performed on the patient
  3. a patient
  4. when the procedure was performed

Profile specific implementation guidance:

Examples

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure

This profile builds on Procedure.

This profile was published on Mon Aug 01 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR-Infrastructure).

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

Complete Summary of the Mandatory Requirements

  1. One patient reference in Procedure.patient
  2. A status code in Procedure.status which has an required binding to:
  3. One Identification of the procedure in Procedure.codewhich has an required binding to:
  4. A date or a time period in Procedure.performedDateTime or Procedure.performedPeriod
NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure I0..*US Core Procedure Profile
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ∑0..*IdentifierExternal Identifiers for this procedure
... status ?!S1..1codein-progress | aborted | completed | entered-in-error | unknown
Binding: ProcedureStatus (required)
... category ∑0..1CodeableConceptClassification of the procedure
Binding: Procedure Category Codes (SNOMED CT) (example)
... code S1..1CodeableConceptSNOMED-CT | ICD-10 | CPT-4
Binding: Procedure Codes (SNOMED CT) (example)
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... coding ∑CodingCode defined by a terminology system
Slice: Unordered, Open, by code
.... coding S1..1CodingCode defined by a terminology system
Binding: US CoreProcedureType (required)
.... coding S0..1CodingCode defined by a terminology system
Binding: US Core Procedure Type ICD-10-PCS Codes (required)
.... text ∑0..1stringPlain text representation of the concept
... subject S1..1Reference(US Core Patient Profile)Who the procedure was performed on
... encounter ∑0..1Reference(Encounter)The encounter associated with the procedure
... performed[x] S1..1dateTime, PeriodDate/Period the procedure was performed
... performer ∑I0..*BackboneElementThe people who performed the procedure
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... actor ∑0..1Reference(Practitioner), Reference(Organization), Reference(Patient), Reference(RelatedPerson)The reference to the practitioner
.... role ∑0..1CodeableConceptThe role the actor was in
Binding: Procedure Performer Role Codes (example)
... location ∑0..1Reference(Location)Where the procedure happened
... reasonReference ∑0..*Reference(Condition)Condition that is the reason the procedure performed
... reasonCode ∑0..*CodeableConceptCoded reason procedure performed
Binding: Procedure Reason Codes (example)
... notPerformed ?!∑0..1booleanTrue if procedure was not performed as scheduled
... reasonNotPerformed I0..*CodeableConceptReason procedure was not performed
Binding: Procedure Not Performed Reason (SNOMED-CT) (example)
... bodySite ∑0..*CodeableConceptTarget body sites
Binding: SNOMED CT Body Structures (example)
... outcome ∑0..1CodeableConceptThe result of procedure
Binding: Procedure Outcome Codes (SNOMED CT) (example)
... report 0..*Reference(DiagnosticReport)Any report resulting from the procedure
... complication 0..*CodeableConceptComplication following the procedure
Binding: Condition/Problem/Diagnosis Codes (example)
... followUp 0..*CodeableConceptInstructions for follow up
Binding: Procedure Follow up Codes (SNOMED CT) (example)
... request 0..1Reference(CarePlan), Reference(DiagnosticRequest), Reference(ProcedureRequest), Reference(ReferralRequest)A request for this procedure
... notes 0..*AnnotationAdditional information about the procedure
... focalDevice I0..*BackboneElementDevice changed in procedure
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... action 0..1CodeableConceptKind of change to device
Binding: Procedure Device Action Codes (required)
.... manipulated 1..1Reference(Device)Device that was changed
... usedReference 0..*Reference(Device), Reference(Medication), Reference(Substance)Items used during procedure
... usedCode 0..*CodeableConceptCoded items used during the procedure
Binding: (unbound) (example)
... component 0..*Reference(MedicationAdministration), Reference(Procedure), Reference(Observation)Events related to the procedure

doco Documentation for this format

Complete Summary of the Mandatory Requirements

  1. One patient reference in Procedure.patient
  2. A status code in Procedure.status which has an required binding to:
  3. One Identification of the procedure in Procedure.codewhich has an required binding to:
  4. A date or a time period in Procedure.performedDateTime or Procedure.performedPeriod

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure I0..*US Core Procedure Profile
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ∑0..*IdentifierExternal Identifiers for this procedure
... status ?!S1..1codein-progress | aborted | completed | entered-in-error | unknown
Binding: ProcedureStatus (required)
... category ∑0..1CodeableConceptClassification of the procedure
Binding: Procedure Category Codes (SNOMED CT) (example)
... code S1..1CodeableConceptSNOMED-CT | ICD-10 | CPT-4
Binding: Procedure Codes (SNOMED CT) (example)
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... coding ∑CodingCode defined by a terminology system
Slice: Unordered, Open, by code
.... coding S1..1CodingCode defined by a terminology system
Binding: US CoreProcedureType (required)
.... coding S0..1CodingCode defined by a terminology system
Binding: US Core Procedure Type ICD-10-PCS Codes (required)
.... text ∑0..1stringPlain text representation of the concept
... subject S1..1Reference(US Core Patient Profile)Who the procedure was performed on
... encounter ∑0..1Reference(Encounter)The encounter associated with the procedure
... performed[x] S1..1dateTime, PeriodDate/Period the procedure was performed
... performer ∑I0..*BackboneElementThe people who performed the procedure
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... actor ∑0..1Reference(Practitioner), Reference(Organization), Reference(Patient), Reference(RelatedPerson)The reference to the practitioner
.... role ∑0..1CodeableConceptThe role the actor was in
Binding: Procedure Performer Role Codes (example)
... location ∑0..1Reference(Location)Where the procedure happened
... reasonReference ∑0..*Reference(Condition)Condition that is the reason the procedure performed
... reasonCode ∑0..*CodeableConceptCoded reason procedure performed
Binding: Procedure Reason Codes (example)
... notPerformed ?!∑0..1booleanTrue if procedure was not performed as scheduled
... reasonNotPerformed I0..*CodeableConceptReason procedure was not performed
Binding: Procedure Not Performed Reason (SNOMED-CT) (example)
... bodySite ∑0..*CodeableConceptTarget body sites
Binding: SNOMED CT Body Structures (example)
... outcome ∑0..1CodeableConceptThe result of procedure
Binding: Procedure Outcome Codes (SNOMED CT) (example)
... report 0..*Reference(DiagnosticReport)Any report resulting from the procedure
... complication 0..*CodeableConceptComplication following the procedure
Binding: Condition/Problem/Diagnosis Codes (example)
... followUp 0..*CodeableConceptInstructions for follow up
Binding: Procedure Follow up Codes (SNOMED CT) (example)
... request 0..1Reference(CarePlan), Reference(DiagnosticRequest), Reference(ProcedureRequest), Reference(ReferralRequest)A request for this procedure
... notes 0..*AnnotationAdditional information about the procedure
... focalDevice I0..*BackboneElementDevice changed in procedure
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... action 0..1CodeableConceptKind of change to device
Binding: Procedure Device Action Codes (required)
.... manipulated 1..1Reference(Device)Device that was changed
... usedReference 0..*Reference(Device), Reference(Medication), Reference(Substance)Items used during procedure
... usedCode 0..*CodeableConceptCoded items used during the procedure
Binding: (unbound) (example)
... component 0..*Reference(MedicationAdministration), Reference(Procedure), Reference(Observation)Events related to the procedure

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON, CSV), Schema: XML Schematron

 

D.4.1.2 Quick Start

Below is an overview of the required search and read operations.

Summary of Argonaut Search Criteria for StructureDefinition-us-core-procedure


Clients

  • A client connected to a server and fetched all procedures for a patient, including current as well as historical Procedures GET/Procedure?patient=[id].
  • A client has connected to a server and fetched all of a patient’s procedures over a specified time period using GET /Procedure?patient=[id]&date=[date]{&date=[date]}.

Servers

  • A server is capable of returning a patient’s procedures using GET/Procedure?patient=[id].
  • A server is capable of returning all of all of a patient’s procedures over a specified time period using GET /Procedure?patient=[id]&date=[date]{&date=[date]}.

  • A server has ensured that every API request includes a valid Authorization token, supplied via:Authorization: Bearer {server-specific-token-here}
  • A server has rejected any unauthorized requests by returning an HTTP 401 Unauthorized response code.

GET /Procedure?patient=[id][edit]

Support: Mandatory to support search by patient.

Implementation Notes: Search for all Procedures for a patient. Fetches a bundle of all Procedure resources for the specified patient. (how to search by reference).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Procedure?patient=1291938

GET /Procedure?patient=[id]&date=[date]{&date=[date]}

Support: Mandatory to support search by patient and date or period.

Implementation Notes: Search based on date. Fetches a bundle of all Procedure resources for the specified patient for a specified time period (how to search by reference) and (how to search by date).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope

Example:

GET http://fhir2.healthintersections.com.au/open/Procedure?example&date=ge2002

GET http://fhir2.healthintersections.com.au/open/Procedure?example&date=ge2010$date=le2015