QI-Core Implementation Guide
4.1.0 - release

Publication Build: This will be filled in by the publication tooling

## Extension: EncounterProcedureExtension

Procedures performed during the encounter, or as the primary reason for the encounter.

The official URL for this extension is:

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

Status: draft
Extension maintained by: http://www.hl7.org/Special/committees/cqi/index.cfm

Context of Use

This extension may be used on the following element(s):

- Encounter

Usage

See the patterns page for implementation and usage patterns.

### Examples

Inpatient Admission for Appendicitis

Usage info

Usage:

- Use this Extension: QICoreEncounter
- Examples for this Extension: Encounter/example

### Formal Views of Extension Content

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

- Text Summary
- Differential Table
- Snapshot Table
- All

This structure is derived from Extension

Summary

Mandatory: 3 elements
Fixed Value: 4 elements
Prohibited: 1 element

Structures

This structure refers to these other structures:

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

This structure is derived from Extension

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Encounter Procedure Extension
extension:type |  | 1..1 | Extension | type
url |  | 1..1 | uri | "type"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: QICoreProcedureType (extensible): Whether the procedure was primary or secondary
extension:rank |  | 1..1 | Extension | rank
url |  | 1..1 | uri | "rank"
value[x] |  | 0..1 | positiveInt | Value of extension
extension:procedure |  | 1..1 | Extension | procedure
url |  | 1..1 | uri | "procedure"
value[x] |  | 0..1 | Reference(QICoreProcedure) | Value of extension
url |  | 1..1 | uri | "http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter-procedure"
value[x] |  | 0..0 |  |
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Encounter Procedure Extension
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:type |  | 1..1 | Extension | type
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | identifies the meaning of the extension
value[x] |  | 0..1 |  | Value of extension
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueContributor |  |  | Contributor |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "type"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: QICoreProcedureType (extensible): Whether the procedure was primary or secondary
extension:rank |  | 1..1 | Extension | rank
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | identifies the meaning of the extension
value[x] |  | 0..1 |  | Value of extension
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueContributor |  |  | Contributor |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "rank"
value[x] |  | 0..1 | positiveInt | Value of extension
extension:procedure |  | 1..1 | Extension | procedure
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | identifies the meaning of the extension
value[x] |  | 0..1 |  | Value of extension
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueContributor |  |  | Contributor |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "procedure"
value[x] |  | 0..1 | Reference(QICoreProcedure) | Value of extension
url |  | 1..1 | uri | "http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter-procedure"
Documentation for this format

This structure is derived from Extension

Summary

Mandatory: 3 elements
Fixed Value: 4 elements
Prohibited: 1 element

Structures

This structure refers to these other structures:

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

Differential View

This structure is derived from Extension

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Encounter Procedure Extension
extension:type |  | 1..1 | Extension | type
url |  | 1..1 | uri | "type"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: QICoreProcedureType (extensible): Whether the procedure was primary or secondary
extension:rank |  | 1..1 | Extension | rank
url |  | 1..1 | uri | "rank"
value[x] |  | 0..1 | positiveInt | Value of extension
extension:procedure |  | 1..1 | Extension | procedure
url |  | 1..1 | uri | "procedure"
value[x] |  | 0..1 | Reference(QICoreProcedure) | Value of extension
url |  | 1..1 | uri | "http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter-procedure"
value[x] |  | 0..0 |  |
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Encounter Procedure Extension
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:type |  | 1..1 | Extension | type
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | identifies the meaning of the extension
value[x] |  | 0..1 |  | Value of extension
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueContributor |  |  | Contributor |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "type"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: QICoreProcedureType (extensible): Whether the procedure was primary or secondary
extension:rank |  | 1..1 | Extension | rank
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | identifies the meaning of the extension
value[x] |  | 0..1 |  | Value of extension
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueContributor |  |  | Contributor |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "rank"
value[x] |  | 0..1 | positiveInt | Value of extension
extension:procedure |  | 1..1 | Extension | procedure
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | identifies the meaning of the extension
value[x] |  | 0..1 |  | Value of extension
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueContributor |  |  | Contributor |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "procedure"
value[x] |  | 0..1 | Reference(QICoreProcedure) | Value of extension
url |  | 1..1 | uri | "http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter-procedure"
Documentation for this format

Other representations of profile: CSV, Excel, Schematron

#### Terminology Bindings

Path | Conformance | ValueSet
Extension.extension:type.value[x] | extensible | QICoreProcedureType

#### Constraints

Id | Grade | Path | Details | Requirements
ele-1 | error | Extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:type | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:type.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:type.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:type.extension.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:type.extension.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:type.extension.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | Extension.extension:type.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | Extension.extension:rank | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:rank | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:rank.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:rank.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:rank.extension.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:rank.extension.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:rank.extension.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | Extension.extension:rank.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | Extension.extension:procedure | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:procedure | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:procedure.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:procedure.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:procedure.extension.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | Extension.extension:procedure.extension.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | Extension.extension:procedure.extension.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | Extension.extension:procedure.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |