Related Artifacts depends-on FHIR model information http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1 depends-on Library FHIRHelpers http://fhir.org/guides/who/smart-immunization/Library/FHIRHelpers|4.0.1 depends-on Library IMMZCom IMMZCommon depends-on Library IMMZc IMMZConcepts depends-on Library IMMZCon IMMZConfig depends-on Library IMMZIndCom IMMZIndicatorCommon depends-on Library IMMZvl IMMZVaccineLibrary depends-on Library FC FHIRCommon depends-on Library WC WHOConcepts depends-on Code system SNOMED-CT SNOMED CT (all versions) depends-on Value set Adverse Events SNOMED CT Clinical Findings Parameters Measurement Period in 0 1 Period Patient out 0 1 Patient numerator out 0 1 boolean denominator out 0 1 boolean Vaccine Stratifier out 0 * CodeableConcept Product/Manufacturer Stratifier out 0 * Resource Severity Stratifier out 0 * CodeableConcept Geographic Region Stratifier out 0 1 string Manifestation / Event Stratifier out 0 * CodeableConcept Data Requirements Type: Patient (Patient) Type: Immunization (Immunization) Type: Observation (Observation) Filter Value code In ValueSet http://hl7.org/fhir/ValueSet/adverse-event-type Type: Organization (Organization) Contents text/cql /* * Library: IMMZ.IND.30 * Adverse Event Following Immunization (AEFI) case rate. * Clinics should report adverse events (reported and confirmed) to the central authority. This should be tracked as an aggregate tally (which should indicate the severity, and optionally the manifestation such as rash, vomiting, etc.), with severe cases being reported using case reporting forms, and should include an analysis of whether the AEFI was a direct result (confirmed) of vaccination or not (suspected). Serious cases are those which involved hospitalization, disability, or death. Investigation of AEFI events can lead to withdrawal of the vaccine from the market, or inform further guidance on administration of a particular antigen/product. * * Numerator: Number of persons which have received a vaccine dose, and have reported an adverse event * Numerator Computation: COUNT immunization HAVING reaction reported during reporting period * Denominator: The total number of doses administered to patients of the product. * Denominator Computation: COUNT number of doses administered during reporting period * * Disaggregation: * - Vaccine (BCG, OPV, etc.) * - Product/Manufacturer * - Severity (Severe, Non-Severe) * - Geographic Region * - Manifestation / Event (optional - Rash, Vomiting, etc.) * * References: WHO Immunization Facility Analysis Guide (1) */ library IMMZIND30 // Start Skeleton CQL using FHIR version '4.0.1' include FHIRHelpers version '4.0.1' include IMMZCommon called IMMZCom include IMMZConcepts called IMMZc include IMMZConfig called IMMZCon include IMMZIndicatorCommon called IMMZIndCom include IMMZVaccineLibrary called IMMZvl include FHIRCommon called FC // End Skeleton CQL parameter "Measurement Period" Interval<Date> context Patient /* * Numerator: Number of persons which have received a vaccine dose, and have reported an adverse event * Numerator Computation: COUNT immunization HAVING reaction reported during reporting period */ define "numerator": exists(IMMZIndCom."Immunizations with Adverse Events During Measurement Period") /* * Denominator: The total number of doses administered to patients of the product. * Denominator Computation: COUNT number of doses administered during reporting period */ define "denominator": exists(IMMZIndCom."Doses Administered to Patient During Measurement Period") /* * Disaggregator: Vaccine (BCG, OPV, etc.) */ define "Vaccine Stratifier": IMMZIndCom."Immunizations with Adverse Events During Measurement Period" A return A.vaccineCode /* * Disaggregator: Product/Manufacturer */ define "Product/Manufacturer Stratifier": IMMZIndCom."Immunizations with Adverse Events During Measurement Period" A // TODO: Find a better way to do this return Tuple { Manufacturer : First([Organization] O where O.id = Last(Split(A.manufacturer.reference, '/'))), LotNumber : A.lotNumber, VaccineType: A.vaccineCode } /* * Disaggregator: Severity (Severe, Non-Severe) */ define "Severity Stratifier": IMMZIndCom."Adverse Event Reactions During Measurement Period" A return First(A.component C where C.code = IMMZc."Adverse Event Severity").value as FHIR.CodeableConcept /* * Disaggregator: Geographic Region */ define "Geographic Region Stratifier": IMMZIndCom."By Geographic Region Stratifier" /* * Disaggregator: Manifestation / Event (optional - Rash, Vomiting, etc.) */ define "Manifestation / Event Stratifier": IMMZIndCom."Adverse Event Reactions During Measurement Period" A return A.value as FHIR.CodeableConcept /* End of IMMZ.IND.30 */ Content not shown - (application/elm+xml, size = 28Kb) Content not shown - (application/elm+json, size = 150Kb)