QI-Core Implementation Guide: STU 4 (v4.0.0 for FHIR 4.0.0)

QI-Core Implementation Guide, Clinical Quality Improvement WG - CI build for vesion 4.0.0). This version is based on the current content of https://github.com/cqframework/qi-core/ and changes regularly. See the Directory of published versions

D.4.1 StructureDefinition-qicore-procedure

Introduction:

See the patterns page for implementation and usage patterns.

Examples:

Appendectomy Example

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

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

Profile of Procedure for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on USCoreProcedureProfile.

This profile was published on Wed Aug 22 00:00:00 UTC 2018 as a draft by Health Level Seven, Inc. - CQI WG.

Description of Profiles, Differentials, and Snapshots.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure I0..*An action that is being or was performed on a patient
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... procedure-approachBodyStructure I0..*Reference(BodyStructure)The access point or points used for this procedure
URL: http://hl7.org/fhir/StructureDefinition/procedure-approachBodyStructure
... procedure-incisionDateTime I0..1dateTimeThe first incision time
URL: http://hl7.org/fhir/StructureDefinition/procedure-incisionDateTime
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Identifiers for this procedure
... instantiatesCanonical Σ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)Instantiates FHIR protocol or definition
... instantiatesUri Σ0..*uriInstantiates 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..1codepreparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown
Binding: EventStatus (required)
... statusReason Σ0..1CodeableConceptReason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example)
... category Σ0..1CodeableConceptClassification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example)
... code SΣ1..1CodeableConceptSNOMED-CT | ICD-10 | CPT-4
Binding: US Core Procedure Codes (preferred)
... subject SΣ1..1Reference(QICorePatient)Who the procedure was performed on
... encounter SΣ0..1Reference(QICoreEncounter | Group)Encounter created as part of
... performed[x] SΣ1..1When the procedure was performed
.... performedDateTimedateTime
.... performedPeriodPeriod
... recorder Σ0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)Who recorded the procedure
... asserter Σ0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)Person who asserts this procedure
... performer SΣI0..*BackboneElementThe people who performed the procedure
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function Σ0..1CodeableConceptType of performance
Binding: ProcedurePerformerRoleCodes (example)
.... actor Σ1..1Reference(QICorePractitioner | QICoreOrganization | QICorePatient | QICoreRelatedPerson)The reference to the practitioner
.... onBehalfOf 0..1Reference(Organization)Organization the device or practitioner was acting for
... location Σ0..1Reference(QICoreLocation)Where the procedure happened
... reasonCode SΣ0..*CodeableConceptCoded reason procedure performed
Binding: ProcedureReasonCodes (example)
... reasonReference Σ0..*Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference)The justification that the procedure was performed
... bodySite SΣ0..*CodeableConceptTarget body sites
Binding: SNOMEDCTBodyStructures (example)
... outcome Σ0..1CodeableConceptThe result of procedure
Binding: ProcedureOutcomeCodes(SNOMEDCT) (example)
... report S0..*Reference(QICoreDiagnosticReportNote)Any report resulting from the procedure
... complication 0..*CodeableConceptComplication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example)
... complicationDetail 0..*Reference(Condition)A condition that is a result of the procedure
... followUp 0..*CodeableConceptInstructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example)
... note 0..*AnnotationAdditional information about the procedure
... focalDevice I0..*BackboneElementManipulated, implanted, or removed device
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... action 0..1CodeableConceptKind of change to device
Binding: ProcedureDeviceActionCodes (preferred)
.... manipulated 1..1Reference(QICoreDevice)Device that was changed
... usedReference 0..*Reference(Device | Medication | Substance)Items used during procedure
... usedCode 0..*CodeableConceptCoded items used during the procedure
Binding: FHIRDeviceTypes (example)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure I0..*An action that is being or was performed on a patient
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... procedure-approachBodyStructure I0..*Reference(BodyStructure)The access point or points used for this procedure
URL: http://hl7.org/fhir/StructureDefinition/procedure-approachBodyStructure
... procedure-incisionDateTime I0..1dateTimeThe first incision time
URL: http://hl7.org/fhir/StructureDefinition/procedure-incisionDateTime
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Identifiers for this procedure
... instantiatesCanonical Σ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)Instantiates FHIR protocol or definition
... instantiatesUri Σ0..*uriInstantiates 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..1codepreparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown
Binding: EventStatus (required)
... statusReason Σ0..1CodeableConceptReason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example)
... category Σ0..1CodeableConceptClassification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example)
... code SΣ1..1CodeableConceptSNOMED-CT | ICD-10 | CPT-4
Binding: US Core Procedure Codes (preferred)
... subject SΣ1..1Reference(QICorePatient)Who the procedure was performed on
... encounter SΣ0..1Reference(QICoreEncounter | Group)Encounter created as part of
... performed[x] SΣ1..1When the procedure was performed
.... performedDateTimedateTime
.... performedPeriodPeriod
... recorder Σ0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)Who recorded the procedure
... asserter Σ0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)Person who asserts this procedure
... performer SΣI0..*BackboneElementThe people who performed the procedure
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function Σ0..1CodeableConceptType of performance
Binding: ProcedurePerformerRoleCodes (example)
.... actor Σ1..1Reference(QICorePractitioner | QICoreOrganization | QICorePatient | QICoreRelatedPerson)The reference to the practitioner
.... onBehalfOf 0..1Reference(Organization)Organization the device or practitioner was acting for
... location Σ0..1Reference(QICoreLocation)Where the procedure happened
... reasonCode SΣ0..*CodeableConceptCoded reason procedure performed
Binding: ProcedureReasonCodes (example)
... reasonReference Σ0..*Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference)The justification that the procedure was performed
... bodySite SΣ0..*CodeableConceptTarget body sites
Binding: SNOMEDCTBodyStructures (example)
... outcome Σ0..1CodeableConceptThe result of procedure
Binding: ProcedureOutcomeCodes(SNOMEDCT) (example)
... report S0..*Reference(QICoreDiagnosticReportNote)Any report resulting from the procedure
... complication 0..*CodeableConceptComplication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example)
... complicationDetail 0..*Reference(Condition)A condition that is a result of the procedure
... followUp 0..*CodeableConceptInstructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example)
... note 0..*AnnotationAdditional information about the procedure
... focalDevice I0..*BackboneElementManipulated, implanted, or removed device
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... action 0..1CodeableConceptKind of change to device
Binding: ProcedureDeviceActionCodes (preferred)
.... manipulated 1..1Reference(QICoreDevice)Device that was changed
... usedReference 0..*Reference(Device | Medication | Substance)Items used during procedure
... usedCode 0..*CodeableConceptCoded items used during the procedure
Binding: FHIRDeviceTypes (example)

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Procedure.languagepreferredCommonLanguages
Max Binding: AllLanguages
Procedure.statusrequiredEventStatus
Procedure.statusReasonexampleProcedureNotPerformedReason(SNOMED-CT)
Procedure.categoryexampleProcedureCategoryCodes(SNOMEDCT)
Procedure.codepreferredUSCoreProcedureCodes
Procedure.performer.functionexampleProcedurePerformerRoleCodes
Procedure.reasonCodeexampleProcedureReasonCodes
Procedure.bodySiteexampleSNOMEDCTBodyStructures
Procedure.outcomeexampleProcedureOutcomeCodes(SNOMEDCT)
Procedure.complicationexampleCondition/Problem/DiagnosisCodes
Procedure.followUpexampleProcedureFollowUpCodes(SNOMEDCT)
Procedure.focalDevice.actionpreferredProcedureDeviceActionCodes
Procedure.usedCodeexampleFHIRDeviceTypes

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2ProcedureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-4ProcedureIf 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-3ProcedureIf 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-6ProcedureA resource should have narrative for robust management
: text.div.exists()
dom-5ProcedureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
ele-1Procedure.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.focalDeviceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())