QI-Core Implementation Guide - This is the current published version.. See the Directory of published versions
// connectathon/fhir3/cql/EXM117_FHIR3-1.0.1.cql
define "Polio Immunizations or Procedures":
( ["Immunization": "Inactivated Polio Vaccine (IPV)"] PolioVaccination
where PolioVaccination.status = 'completed' )
Example of Influenza immunization shot |
The official URL for this profile is:
http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-immunization
Profile of Immunization for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.
This profile builds on USCoreImmunizationProfile.
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.
Summary
Mandatory: 2 elements
Must-Support: 6 elements
Structures
This structure refers to these other structures:
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Immunization | I | 0..* | USCoreImmunizationProfile | Immunization event information |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
identifier | I | 0..* | Identifier | Business identifier |
status | ?!SΣI | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required) |
statusReason | SI | 0..1 | CodeableConcept | Reason not done Binding: ImmunizationStatusReasonCodes (example) |
vaccineCode | SΣI | 1..1 | CodeableConcept | Vaccine Product Type (bind to CVX) Binding: US Core Vaccine Administered Value Set (CVX) (extensible) |
patient | SΣI | 1..1 | Reference(QICorePatient) | Who was immunized |
encounter | I | 0..1 | Reference(QICoreEncounter) | Encounter immunization was part of |
occurrence[x] | SΣI | 1..1 | Vaccine administration date | |
occurrenceDateTime | dateTime | |||
occurrenceString | string | |||
recorded | SI | 1..1 | dateTime | When the immunization was first captured in the subject's record |
primarySource | SΣI | 1..1 | boolean | Indicates context the data was recorded in |
reportOrigin | I | 0..1 | CodeableConcept | Indicates the source of a secondarily reported record Binding: ImmunizationOriginCodes (example) |
location | I | 0..1 | Reference(QICoreLocation) | Where immunization occurred |
manufacturer | I | 0..1 | Reference(QICoreOrganization) | Vaccine manufacturer |
lotNumber | I | 0..1 | string | Vaccine lot number |
expirationDate | I | 0..1 | date | Vaccine expiration date |
site | I | 0..1 | CodeableConcept | Body site vaccine was administered Binding: CodesForImmunizationSiteOfAdministration (example) |
route | I | 0..1 | CodeableConcept | How vaccine entered body Binding: ImmunizationRouteCodes (example) |
doseQuantity | I | 0..1 | SimpleQuantity | Amount of vaccine administered |
performer | ΣI | 0..* | BackboneElement | Who performed event |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
function | ΣI | 0..1 | CodeableConcept | What type of performance was done Binding: ImmunizationFunctionCodes (extensible) |
actor | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | Organization) | Individual or organization who was performing |
note | ΣI | 0..* | Annotation | Additional immunization notes |
reasonCode | I | 0..* | CodeableConcept | Why immunization occurred Binding: ImmunizationReasonCodes (example) |
reasonReference | I | 0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred |
isSubpotent | ?!ΣI | 0..1 | boolean | Dose potency |
subpotentReason | I | 0..* | CodeableConcept | Reason for being subpotent Binding: ImmunizationSubpotentReason (example) |
education | I | 0..* | BackboneElement | Educational material presented to patient imm-1: One of documentType or reference SHALL be present |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
documentType | I | 0..1 | string | Educational material document identifier |
reference | I | 0..1 | uri | Educational material reference pointer |
publicationDate | I | 0..1 | dateTime | Educational material publication date |
presentationDate | I | 0..1 | dateTime | Educational material presentation date |
programEligibility | I | 0..* | CodeableConcept | Patient eligibility for a vaccination program Binding: ImmunizationProgramEligibility (example) |
fundingSource | I | 0..1 | CodeableConcept | Funding source for the vaccine Binding: ImmunizationFundingSource (example) |
reaction | I | 0..* | BackboneElement | Details of a reaction that follows immunization |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
date | I | 0..1 | dateTime | When reaction started |
detail | I | 0..1 | Reference(QICoreObservation) | Additional information on reaction |
reported | I | 0..1 | boolean | Indicates self-reported reaction |
protocolApplied | I | 0..* | BackboneElement | Protocol followed by the provider |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
series | I | 0..1 | string | Name of vaccine series |
authority | I | 0..1 | Reference(QICoreOrganization) | Who is responsible for publishing the recommendations |
targetDisease | I | 0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example) |
doseNumber[x] | I | 1..1 | Dose number within series | |
doseNumberPositiveInt | positiveInt | |||
doseNumberString | string | |||
seriesDoses[x] | I | 0..1 | Recommended number of doses for immunity | |
seriesDosesPositiveInt | positiveInt | |||
seriesDosesString | string | |||
Documentation for this format |
Summary
Mandatory: 2 elements
Must-Support: 6 elements
Structures
This structure refers to these other structures:
Differential View
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Immunization | I | 0..* | USCoreImmunizationProfile | Immunization event information |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
identifier | I | 0..* | Identifier | Business identifier |
status | ?!SΣI | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required) |
statusReason | SI | 0..1 | CodeableConcept | Reason not done Binding: ImmunizationStatusReasonCodes (example) |
vaccineCode | SΣI | 1..1 | CodeableConcept | Vaccine Product Type (bind to CVX) Binding: US Core Vaccine Administered Value Set (CVX) (extensible) |
patient | SΣI | 1..1 | Reference(QICorePatient) | Who was immunized |
encounter | I | 0..1 | Reference(QICoreEncounter) | Encounter immunization was part of |
occurrence[x] | SΣI | 1..1 | Vaccine administration date | |
occurrenceDateTime | dateTime | |||
occurrenceString | string | |||
recorded | SI | 1..1 | dateTime | When the immunization was first captured in the subject's record |
primarySource | SΣI | 1..1 | boolean | Indicates context the data was recorded in |
reportOrigin | I | 0..1 | CodeableConcept | Indicates the source of a secondarily reported record Binding: ImmunizationOriginCodes (example) |
location | I | 0..1 | Reference(QICoreLocation) | Where immunization occurred |
manufacturer | I | 0..1 | Reference(QICoreOrganization) | Vaccine manufacturer |
lotNumber | I | 0..1 | string | Vaccine lot number |
expirationDate | I | 0..1 | date | Vaccine expiration date |
site | I | 0..1 | CodeableConcept | Body site vaccine was administered Binding: CodesForImmunizationSiteOfAdministration (example) |
route | I | 0..1 | CodeableConcept | How vaccine entered body Binding: ImmunizationRouteCodes (example) |
doseQuantity | I | 0..1 | SimpleQuantity | Amount of vaccine administered |
performer | ΣI | 0..* | BackboneElement | Who performed event |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
function | ΣI | 0..1 | CodeableConcept | What type of performance was done Binding: ImmunizationFunctionCodes (extensible) |
actor | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | Organization) | Individual or organization who was performing |
note | ΣI | 0..* | Annotation | Additional immunization notes |
reasonCode | I | 0..* | CodeableConcept | Why immunization occurred Binding: ImmunizationReasonCodes (example) |
reasonReference | I | 0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred |
isSubpotent | ?!ΣI | 0..1 | boolean | Dose potency |
subpotentReason | I | 0..* | CodeableConcept | Reason for being subpotent Binding: ImmunizationSubpotentReason (example) |
education | I | 0..* | BackboneElement | Educational material presented to patient imm-1: One of documentType or reference SHALL be present |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
documentType | I | 0..1 | string | Educational material document identifier |
reference | I | 0..1 | uri | Educational material reference pointer |
publicationDate | I | 0..1 | dateTime | Educational material publication date |
presentationDate | I | 0..1 | dateTime | Educational material presentation date |
programEligibility | I | 0..* | CodeableConcept | Patient eligibility for a vaccination program Binding: ImmunizationProgramEligibility (example) |
fundingSource | I | 0..1 | CodeableConcept | Funding source for the vaccine Binding: ImmunizationFundingSource (example) |
reaction | I | 0..* | BackboneElement | Details of a reaction that follows immunization |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
date | I | 0..1 | dateTime | When reaction started |
detail | I | 0..1 | Reference(QICoreObservation) | Additional information on reaction |
reported | I | 0..1 | boolean | Indicates self-reported reaction |
protocolApplied | I | 0..* | BackboneElement | Protocol followed by the provider |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
series | I | 0..1 | string | Name of vaccine series |
authority | I | 0..1 | Reference(QICoreOrganization) | Who is responsible for publishing the recommendations |
targetDisease | I | 0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example) |
doseNumber[x] | I | 1..1 | Dose number within series | |
doseNumberPositiveInt | positiveInt | |||
doseNumberString | string | |||
seriesDoses[x] | I | 0..1 | Recommended number of doses for immunity | |
seriesDosesPositiveInt | positiveInt | |||
seriesDosesString | string | |||
Documentation for this format |
Path | Conformance | ValueSet |
Immunization.language | preferred | CommonLanguages Max Binding: AllLanguages |
Immunization.status | required | ImmunizationStatusCodes |
Immunization.statusReason | example | ImmunizationStatusReasonCodes |
Immunization.vaccineCode | extensible | USCoreVaccineAdministeredValueSetCvx |
Immunization.reportOrigin | example | ImmunizationOriginCodes |
Immunization.site | example | CodesForImmunizationSiteOfAdministration |
Immunization.route | example | ImmunizationRouteCodes |
Immunization.performer.function | extensible | ImmunizationFunctionCodes |
Immunization.reasonCode | example | ImmunizationReasonCodes |
Immunization.subpotentReason | example | ImmunizationSubpotentReason |
Immunization.programEligibility | example | ImmunizationProgramEligibility |
Immunization.fundingSource | example | ImmunizationFundingSource |
Immunization.protocolApplied.targetDisease | example | ImmunizationTargetDiseaseCodes |
Id | Path | Details | Requirements |
dom-2 | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | Immunization | If 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-4 | Immunization | If 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-5 | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Immunization | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | Immunization.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.statusReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.vaccineCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
us-core-1 | Immunization.vaccineCode | SHOULD have a translation to the NDC value set : coding.where(system='http://hl7.org/fhir/sid/ndc').empty() | |
ele-1 | Immunization.patient | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.occurrence[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.recorded | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.primarySource | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.reportOrigin | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.location | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.manufacturer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.lotNumber | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.expirationDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.site | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.route | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.doseQuantity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.performer.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.performer.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.performer.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.performer.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.performer.function | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.performer.actor | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.reasonCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.reasonReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.isSubpotent | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.subpotentReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.education | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
imm-1 | Immunization.education | One of documentType or reference SHALL be present : documentType.exists() or reference.exists() | |
ele-1 | Immunization.education.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.education.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.education.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.education.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.education.documentType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.education.reference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.education.publicationDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.education.presentationDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.programEligibility | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.fundingSource | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.reaction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.reaction.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.reaction.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.reaction.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.reaction.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.reaction.date | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.reaction.detail | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.reaction.reported | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.protocolApplied | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.protocolApplied.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.protocolApplied.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.protocolApplied.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Immunization.protocolApplied.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Immunization.protocolApplied.series | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.protocolApplied.authority | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.protocolApplied.targetDisease | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.protocolApplied.doseNumber[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Immunization.protocolApplied.seriesDoses[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |