Argonaut Data Query Implementation Guide Version 1.0.0

This page is part of the Argonaut Data Query Implementation Guide (v1.0.0: Release) based on FHIR R2. This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

D.4.1 StructureDefinition-argo-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 Argonaut 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 patient
  2. a status
  3. a code that identifies the type of procedure performed on the 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://fhir.org/guides/argonaut/StructureDefinition/argo-procedure

This profile builds on Procedure.

This profile was published on Tue Oct 18 00:00:00 AEDT 2016 as a draft by Argonaut Project.

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 a required binding to:
  3. One Identification of the procedure in Procedure.code which has:
  4. A date or a time period in Procedure.performedDateTime or Procedure.performedPeriod
NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure I0..*Argonaut Procedure Profile
pro-1: Reason not performed is only permitted if notPerformed indicator is true
... 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: IETF BCP-47 (required)
... 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
... subject S1..1Reference(Argonaut Patient Profile)Who the procedure was performed on
... status ?!S1..1codein-progress | aborted | completed | entered-in-error
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: Argonaut ProcedureType (extensible)
... 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)
... reason[x] Σ0..1CodeableConcept, Reference(Condition)Reason procedure performed
Binding: Procedure Reason Codes (example)
... performer Σ0..*BackboneElementThe people who performed the procedure
.... id 0..1idxml: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)
... performed[x] S1..1dateTime, PeriodDate/Period the procedure was performed
... encounter Σ0..1Reference(Encounter)The encounter associated with the procedure
... location Σ0..1Reference(Location)Where the procedure happened
... 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(DiagnosticOrder), Reference(ProcedureRequest), Reference(ReferralRequest)A request for this procedure
... notes 0..*AnnotationAdditional information about the procedure
... focalDevice 0..*BackboneElementDevice changed in procedure
.... id 0..1idxml: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
... used 0..*Reference(Device), Reference(Medication), Reference(Substance)Items used during 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 a required binding to:
  3. One Identification of the procedure in Procedure.code which has:
  4. A date or a time period in Procedure.performedDateTime or Procedure.performedPeriod

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure I0..*Argonaut Procedure Profile
pro-1: Reason not performed is only permitted if notPerformed indicator is true
... 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: IETF BCP-47 (required)
... 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
... subject S1..1Reference(Argonaut Patient Profile)Who the procedure was performed on
... status ?!S1..1codein-progress | aborted | completed | entered-in-error
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: Argonaut ProcedureType (extensible)
... 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)
... reason[x] Σ0..1CodeableConcept, Reference(Condition)Reason procedure performed
Binding: Procedure Reason Codes (example)
... performer Σ0..*BackboneElementThe people who performed the procedure
.... id 0..1idxml: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)
... performed[x] S1..1dateTime, PeriodDate/Period the procedure was performed
... encounter Σ0..1Reference(Encounter)The encounter associated with the procedure
... location Σ0..1Reference(Location)Where the procedure happened
... 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(DiagnosticOrder), Reference(ProcedureRequest), Reference(ReferralRequest)A request for this procedure
... notes 0..*AnnotationAdditional information about the procedure
... focalDevice 0..*BackboneElementDevice changed in procedure
.... id 0..1idxml: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
... used 0..*Reference(Device), Reference(Medication), Reference(Substance)Items used during 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 for this profile. See the Conformance requirements for the Argonaut Data Query implementation guide server for a complete list of supported RESTful operations and search parameters for this IG.


GET /Procedure?patient=[id]

Example:

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

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

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

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

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