Canadian Core
0.1.0 - CI Build

Canadian Core, published by Canadian FHIR Implementor Working Group. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/scratch-fhir-profiles/CA-Core/ and changes regularly. See the Directory of published versions

Resource Profile: Procedure Profile

Defining URL:http://hl7.org/fhir/ca/core/StructureDefinition/profile-procedure
Version:0.1.0
Name:ProcedureProfile
Title:Procedure Profile
Status:Draft as of 2020-07-21
Definition:

Proposed constraints and extensions on the Procedure Resource

Publisher:Canadian FHIR Implementor Working Group
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/ca/core/StructureDefinition/profile-procedure

CA Baseline Procedure Profile

This profile sets minimum expectations for the Procedure resource to record, search and fetch current or historical procedures performed on or for a patient. It identifies which elements and value sets SHALL be present in the resource when using this profile.

This profile defines localization concepts for use in an Canadian context.

Mandatory Data Elements

All elements or attributes defined in FHIR have cardinality as part of their definition - a minimum number of required appearances and a maximum number.

Most elements in FHIR specification have a minimum cardinality of 0, which means that they may be missing from a resource when it is exchanged between systems.

Required elements:

  • status specifying the state of the procedure
  • code to classify the procedure that is performed
  • reference to a subject
  • performer of the procedure

Must Support Data Elements

Some elements are labeled as MustSupport meaning that implementations that produce or consume resources SHALL provide “support” for the element in some meaningful way (see Must Support definition).

Following elements are marked as Must Support in the Procedure profile to aid record matching in databases with many pediatric records.

Must Support elements:

  • status
  • code
  • reference to a subject
  • performed date
  • body site

Usage Note

This Procedure profile is used to provide summary information about the occurrence of current or historical procedures performed on or for a patient, and is not intended to provide real-time snapshots of a procedure as it unfolds. Examples include surgical procedures, diagnostic procedures, endoscopic procedures, biopsies, counseling, physiotherapy, personal support services, adult day care services, non-emergency transportation, home modification, exercise and so on.

Formal Views of Profile Content

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

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure 0..*ProcedureProcedure Profile
... partOf 0..*Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile)Part of referenced event
... status S1..1codepreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
... code S1..1CodeableConceptIdentification of the procedure
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetoperatingroomprocedure (example): Represents the Operating Room procedures performed by a Provider

... encounter 0..1Reference(Encounter Profile)Encounter created as part of
... performed[x] S1..1When the procedure was performed
.... performedDateTimedateTime
.... performedPeriodPeriod
... recorder 0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General))Who recorded the procedure
... asserter 0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole)Person who asserts this procedure
... performer
.... actor 1..1Reference(Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole | Organization Profile | Patient Profile | RelatedPerson | Device Profile)The reference to the practitioner
... location 0..1Reference(Location Profile)Where the procedure happened
... reasonReference 0..*Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Results Reporting | DocumentReference Profile for metadata about the document)The justification that the procedure was performed
... bodySite S0..*CodeableConceptTarget body sites
... complicationDetail 0..*Reference(Condition Profile)A condition that is a result of the procedure
... usedReference 0..*Reference(Device Profile | Medication Profile | Substance)Items used during procedure

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure 0..*ProcedureProcedure Profile
... id Σ0..1stringLogical 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: A human language.

... text 0..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
... 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 Profile | Observation Profile (General Use) | MedicationAdministration Profile)Part of referenced event
... status ?!SΣ1..1codepreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.

... statusReason Σ0..1CodeableConceptReason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.

... category Σ0..1CodeableConceptClassification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.

... code SΣ1..1CodeableConceptIdentification of the procedure
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetoperatingroomprocedure (example): Represents the Operating Room procedures performed by a Provider

... subject SΣ1..1Reference(Patient Profile)Who the procedure was performed on
... encounter Σ0..1Reference(Encounter Profile)Encounter created as part of
... performed[x] SΣ1..1When the procedure was performed
.... performedDateTimedateTime
.... performedPeriodPeriod
... recorder Σ0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General))Who recorded the procedure
... asserter Σ0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole)Person who asserts this procedure
... performer Σ0..*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): A code that identifies the role of a performer of the procedure.

.... actor Σ1..1Reference(Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole | Organization Profile | Patient Profile | RelatedPerson | Device Profile)The reference to the practitioner
.... onBehalfOf 0..1Reference(Organization)Organization the device or practitioner was acting for
... location Σ0..1Reference(Location Profile)Where the procedure happened
... reasonCode Σ0..*CodeableConceptCoded reason procedure performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.


... reasonReference Σ0..*Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Results Reporting | DocumentReference Profile for metadata about the document)The justification that the procedure was performed
... bodySite SΣ0..*CodeableConceptTarget body sites
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.


... outcome Σ0..1CodeableConceptThe 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..*CodeableConceptComplication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.


... complicationDetail 0..*Reference(Condition Profile)A condition that is a result of the procedure
... followUp 0..*CodeableConceptInstructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.


... note 0..*AnnotationAdditional information about the procedure
... focalDevice 0..*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): A kind of change that happened to the device during the procedure.

.... manipulated 1..1Reference(Device)Device that was changed
... usedReference 0..*Reference(Device Profile | Medication Profile | Substance)Items used during procedure
... usedCode 0..*CodeableConceptCoded items used during the procedure
Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.



doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure 0..*ProcedureProcedure Profile
... status ?!Σ1..1codepreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.

... code Σ1..1CodeableConceptIdentification of the procedure
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetoperatingroomprocedure (example): Represents the Operating Room procedures performed by a Provider

... subject Σ1..1Reference(Patient Profile)Who the procedure was performed on
.... performedDateTimedateTime
.... performedPeriodPeriod
... bodySite Σ0..*CodeableConceptTarget body sites
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.



doco Documentation for this format

Differential View

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure 0..*ProcedureProcedure Profile
... partOf 0..*Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile)Part of referenced event
... status S1..1codepreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
... code S1..1CodeableConceptIdentification of the procedure
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetoperatingroomprocedure (example): Represents the Operating Room procedures performed by a Provider

... encounter 0..1Reference(Encounter Profile)Encounter created as part of
... performed[x] S1..1When the procedure was performed
.... performedDateTimedateTime
.... performedPeriodPeriod
... recorder 0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General))Who recorded the procedure
... asserter 0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole)Person who asserts this procedure
... performer
.... actor 1..1Reference(Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole | Organization Profile | Patient Profile | RelatedPerson | Device Profile)The reference to the practitioner
... location 0..1Reference(Location Profile)Where the procedure happened
... reasonReference 0..*Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Results Reporting | DocumentReference Profile for metadata about the document)The justification that the procedure was performed
... bodySite S0..*CodeableConceptTarget body sites
... complicationDetail 0..*Reference(Condition Profile)A condition that is a result of the procedure
... usedReference 0..*Reference(Device Profile | Medication Profile | Substance)Items used during procedure

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure 0..*ProcedureProcedure Profile
... id Σ0..1stringLogical 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: A human language.

... text 0..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
... 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 Profile | Observation Profile (General Use) | MedicationAdministration Profile)Part of referenced event
... status ?!SΣ1..1codepreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.

... statusReason Σ0..1CodeableConceptReason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.

... category Σ0..1CodeableConceptClassification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.

... code SΣ1..1CodeableConceptIdentification of the procedure
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetoperatingroomprocedure (example): Represents the Operating Room procedures performed by a Provider

... subject SΣ1..1Reference(Patient Profile)Who the procedure was performed on
... encounter Σ0..1Reference(Encounter Profile)Encounter created as part of
... performed[x] SΣ1..1When the procedure was performed
.... performedDateTimedateTime
.... performedPeriodPeriod
... recorder Σ0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General))Who recorded the procedure
... asserter Σ0..1Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole)Person who asserts this procedure
... performer Σ0..*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): A code that identifies the role of a performer of the procedure.

.... actor Σ1..1Reference(Practitioner Profile (General) | http://hl7.org/fhir/ca/core/StructureDefinition/profile-practitionerRole | Organization Profile | Patient Profile | RelatedPerson | Device Profile)The reference to the practitioner
.... onBehalfOf 0..1Reference(Organization)Organization the device or practitioner was acting for
... location Σ0..1Reference(Location Profile)Where the procedure happened
... reasonCode Σ0..*CodeableConceptCoded reason procedure performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.


... reasonReference Σ0..*Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Results Reporting | DocumentReference Profile for metadata about the document)The justification that the procedure was performed
... bodySite SΣ0..*CodeableConceptTarget body sites
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.


... outcome Σ0..1CodeableConceptThe 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..*CodeableConceptComplication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.


... complicationDetail 0..*Reference(Condition Profile)A condition that is a result of the procedure
... followUp 0..*CodeableConceptInstructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.


... note 0..*AnnotationAdditional information about the procedure
... focalDevice 0..*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): A kind of change that happened to the device during the procedure.

.... manipulated 1..1Reference(Device)Device that was changed
... usedReference 0..*Reference(Device Profile | Medication Profile | Substance)Items used during procedure
... usedCode 0..*CodeableConceptCoded items used during the procedure
Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.



doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet
Procedure.languagepreferredCommonLanguages
Max Binding: AllLanguages
Procedure.statusrequiredEventStatus
Procedure.statusReasonexampleProcedureNotPerformedReason(SNOMED-CT)
Procedure.categoryexampleProcedureCategoryCodes(SNOMEDCT)
Procedure.codeexamplehttps://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetoperatingroomprocedure
Procedure.performer.functionexampleProcedurePerformerRoleCodes
Procedure.reasonCodeexampleProcedureReasonCodes
Procedure.bodySiteexampleSNOMEDCTBodyStructures
Procedure.outcomeexampleProcedureOutcomeCodes(SNOMEDCT)
Procedure.complicationexampleCondition/Problem/DiagnosisCodes
Procedure.followUpexampleProcedureFollowUpCodes(SNOMEDCT)
Procedure.focalDevice.actionpreferredProcedureDeviceActionCodes
Procedure.usedCodeexampleFHIRDeviceTypes

Constraints

IdPathDetailsRequirements
dom-2ProcedureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.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-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-5ProcedureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6ProcedureA resource should have narrative for robust management
: text.`div`.exists()
ele-1Procedure.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
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.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.instantiatesCanonicalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.instantiatesUriAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.partOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.performed[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.recorderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.asserterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.performer.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.performer.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.performer.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.performer.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.performer.functionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.performer.actorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.performer.onBehalfOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.bodySiteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.outcomeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.reportAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.complicationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.complicationDetailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.followUpAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.noteAll 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())
ele-1Procedure.focalDevice.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.focalDevice.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.focalDevice.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Procedure.focalDevice.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Procedure.focalDevice.actionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.focalDevice.manipulatedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.usedReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Procedure.usedCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())

Notes:

Code

The Procedure.code element is used to specify a procedure that is performed.

The Procedure.code element is CodeableConcept data type meaning that more than one Coding sub-elements can be present. One of these Coding sub-elements MAY use InterventionCodeSubsetOperatingRoomProcedure value set from Canada Health Infoway.

Use text if the exact nature of the procedure cannot be coded (e.g. “Laparoscopic Appendectomy”).