Related Artifacts depends-on FHIR model information http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1 depends-on Library FHIRHelpers http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1 depends-on Library IMMZCom IMMZCommon depends-on Library IMMZc IMMZConcepts depends-on Library IMMZCon IMMZConfig depends-on Library IMMZvl IMMZVaccineLibrary depends-on Library FC FHIRCommon depends-on Code system IMMZ.D IMMZ.D CodeSystem for Data Elements depends-on Value set Polio Vaccine IMMZ.Z.DE14 Polio containing vaccines depends-on Value set Polio Vaccine - bOPV IMMZ.Z.DE30 Oral Polio containing vaccines depends-on Value set Polio Vaccine - IPV IMMZ.Z.DE31 Inactiviated Polio containing vaccines Parameters Patient out 0 1 Patient Polio Doses Administered to Patient out 0 * Immunization Primary Series Polio Doses Administered to Patient out 0 * Immunization bOPV Polio Doses Administered to Patient out 0 * Immunization IPV Polio Doses Administered to Patient out 0 * Immunization Date of latest Primary Series Polio Vaccine out 0 1 dateTime Date of first Primary Series Polio Vaccine out 0 1 dateTime Date of latest bOPV Polio Vaccine out 0 1 dateTime Date of latest IPV Polio Vaccine out 0 1 dateTime bOPV birth dose (a zero dose) was administered out 0 1 boolean bOPV birth dose (a zero dose) was not administered out 0 1 boolean No polio primary series doses were administered out 0 1 boolean One polio primary series dose was administered out 0 1 boolean Two polio primary series doses were administered out 0 1 boolean Three polio primary series doses were administered out 0 1 boolean Four polio primary series doses were administered out 0 1 boolean Five polio primary series doses were administered out 0 1 boolean The polio dose administered is bOPV out 0 1 boolean The polio dose administered is IPV out 0 1 boolean The two doses administered are bOPV out 0 1 boolean From the two doses administered one is bOPV and one is IPV out 0 1 boolean The two doses administered are IPV out 0 1 boolean The three doses administered are bOPV out 0 1 boolean From the three doses administered one is IPV and two are bOPV out 0 1 boolean From the three doses administered one is bOPV and two are IPV out 0 1 boolean From the four doses administered one is IPV and three are bOPV out 0 1 boolean From the four doses administered two are IPV and two are bOPV out 0 1 boolean Client's age is less than 1 week out 0 1 boolean Client's age is more or equal to 1 week out 0 1 boolean Client's age is less than 6 weeks out 0 1 boolean Client's age is more than or equal to 6 weeks out 0 1 boolean Client's age is more than 3 months out 0 1 boolean Client's age is between 6 weeks and 3 months out 0 1 boolean Client's age is less than 8 weeks out 0 1 boolean Client's age is more than or equal to 8 weeks out 0 1 boolean Client's age is less than 14 weeks out 0 1 boolean Client's age is between 6 weeks and 14 weeks out 0 1 boolean Client's age is more than or equal to 14 weeks out 0 1 boolean Client's age was more than 6 weeks when the primary series was started out 0 1 boolean Client's age was 6 weeks when the primary series was started out 0 1 boolean The latest bOPV dose was administered less than 4 weeks ago out 0 1 boolean The latest bOPV dose was administered more than 4 weeks ago out 0 1 boolean The latest IPV dose was administered less than 4 months ago out 0 1 boolean The latest IPV dose was administered more than 4 months ago out 0 1 boolean The latest polio dose was administered less than 4 weeks ago out 0 1 boolean The latest polio dose was administered more than 4 weeks ago out 0 1 boolean The latest polio dose was administered less than 6 months ago out 0 1 boolean The latest polio dose was administered more than 6 months ago out 0 1 boolean Polio booster dose was administered out 0 1 boolean No polio booster dose was administered out 0 1 boolean The client has history of severe allergic reactions out 0 1 boolean The client is severely immunocompromised out 0 1 boolean The client has immunodeficiency syndromes out 0 1 boolean Data Requirements Type: Patient (Patient) Type: Immunization (Immunization) Type: Condition (Condition) Filter Value code One of these codes: IMMZ.D CodeSystem for Data Elements DE167: Severe allergic reactions Type: Condition (Condition) Filter Value code One of these codes: IMMZ.D CodeSystem for Data Elements DE200: Severely immunocompromised Type: Condition (Condition) Filter Value code One of these codes: IMMZ.D CodeSystem for Data Elements DE187: Immunodeficiency syndromes Contents text/cql /* * Library: IMMZD2DTPolioInput (IMMZ.D2.DT.PolioInput) */ library IMMZD2DTPolioInput // 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 IMMZVaccineLibrary called IMMZvl include FHIRCommon called FC // End Skeleton CQL context Patient /* @internal: Polio containing Doses Administered to Patient */ define "Polio Doses Administered to Patient": IMMZCom."Doses Administered to Patient" I where I.vaccineCode in IMMZc."Polio Vaccine" /* @internal: Primary series polio containing doses administered to patient */ define "Primary Series Polio Doses Administered to Patient": "Polio Doses Administered to Patient" I where duration in days between I.occurrence and Patient.birthDate + 6 weeks <= 0 /* @internal: Polio containing bOPV Doses Administered to Patient */ define "bOPV Polio Doses Administered to Patient": "Primary Series Polio Doses Administered to Patient" I where I.vaccineCode in IMMZc."Polio Vaccine - bOPV" /* @internal: Polio containing IPV Doses Administered to Patient */ define "IPV Polio Doses Administered to Patient": "Primary Series Polio Doses Administered to Patient" I where I.vaccineCode in IMMZc."Polio Vaccine - IPV" /* @internal: Date of latest primary series Polio Vaccine */ define "Date of latest Primary Series Polio Vaccine": First("Primary Series Polio Doses Administered to Patient").occurrence as dateTime /* @internal: Date of first primary series Polio Vaccine */ define "Date of first Primary Series Polio Vaccine": Last("Primary Series Polio Doses Administered to Patient").occurrence as dateTime /* @internal: Date of latest bOPV Polio Vaccine */ define "Date of latest bOPV Polio Vaccine": First("bOPV Polio Doses Administered to Patient").occurrence as dateTime /* @internal: Date of latest bIPVOPV Polio Vaccine */ define "Date of latest IPV Polio Vaccine": First("IPV Polio Doses Administered to Patient").occurrence as dateTime /* @input: bOPV birth dose (a zero dose) was not administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = 'Dose 0' AND "Birth Dose" = TRUE) = 0 */ define "bOPV birth dose (a zero dose) was not administered": not "bOPV birth dose (a zero dose) was administered" /* @input: bOPV birth dose (a zero dose) was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = 'Dose 0' AND "Birth Dose" = TRUE) = 1 */ define "bOPV birth dose (a zero dose) was administered": exists("Polio Doses Administered to Patient" I where duration in days between I.occurrence and Patient.birthDate + 1 week > 0) /* @input: No polio primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = "Primary series") = 0 */ define "No polio primary series doses were administered": not exists("Primary Series Polio Doses Administered to Patient") /* @input: One polio primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = "Primary series") = 1 */ define "One polio primary series dose was administered": Count("Primary Series Polio Doses Administered to Patient") = 1 /* @input: Two polio primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = "Primary series") = 2 */ define "Two polio primary series doses were administered": Count("Primary Series Polio Doses Administered to Patient") = 2 /* @input: Three polio primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = "Primary series") = 3 */ define "Three polio primary series doses were administered": Count("Primary Series Polio Doses Administered to Patient") = 3 /* @input: Four polio primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = "Primary series") = 4 */ define "Four polio primary series doses were administered": Count("Primary Series Polio Doses Administered to Patient") = 4 /* @input: Five polio primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = "Primary series") = 5 */ define "Five polio primary series doses were administered": Count("Primary Series Polio Doses Administered to Patient") = 5 /* @input: The polio dose administered is bOPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 1 */ define "The polio dose administered is bOPV": Count("bOPV Polio Doses Administered to Patient") = 1 /* @input: The polio dose administered is IPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 0 */ define "The polio dose administered is IPV": Count("IPV Polio Doses Administered to Patient") = 1 /* @input: The two doses administered are bOPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 2 */ define "The two doses administered are bOPV": Count("bOPV Polio Doses Administered to Patient") = 2 /* @input: From the two doses administered one is bOPV and one is IPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 1 */ define "From the two doses administered one is bOPV and one is IPV": Count("bOPV Polio Doses Administered to Patient") = 1 and Count("IPV Polio Doses Administered to Patient") = 1 /* @input: The two doses administered are IPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 0 */ define "The two doses administered are IPV": Count("IPV Polio Doses Administered to Patient") = 2 /* @input: The three doses administered are bOPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 3 */ define "The three doses administered are bOPV": Count("bOPV Polio Doses Administered to Patient") = 3 /* @input: From the three doses administered one is IPV and two are bOPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 2 */ define "From the three doses administered one is IPV and two are bOPV": Count("IPV Polio Doses Administered to Patient") = 1 and Count("bOPV Polio Doses Administered to Patient") = 2 /* @input: From the three doses administered one is bOPV and two are IPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 1 */ define "From the three doses administered one is bOPV and two are IPV": Count("bOPV Polio Doses Administered to Patient") = 1 and Count("IPV Polio Doses Administered to Patient") = 2 /* @input: From the four doses administered one is IPV and three are bOPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 3 */ define "From the four doses administered one is IPV and three are bOPV": Count("IPV Polio Doses Administered to Patient") = 1 and Count("bOPV Polio Doses Administered to Patient") = 3 /* @input: From the four doses administered two are IPV and two are bOPV @pseudocode: Count of vaccines administered (where "Type of polio dose" = 'bOPV' and "Type of dose" = "Primary series") = 2 */ define "From the four doses administered two are IPV and two are bOPV": Count("IPV Polio Doses Administered to Patient") = 2 and Count("bOPV Polio Doses Administered to Patient") = 2 /* @input: Client's age is less than 1 week @pseudocode: Today's date - "Date of birth" < 1 'week' */ define "Client's age is less than 1 week": IMMZCom."Current Patient Age In Weeks" < 1 /* @input: Client's age is more or equal to 1 week @pseudocode: Today's date - "Date of birth" ≥ 1 'week' */ define "Client's age is more or equal to 1 week": not "Client's age is less than 1 week" /* @input: Client's age is less than 6 weeks @pseudocode: Today's date - "Date of birth" < 6 'week' */ define "Client's age is less than 6 weeks": IMMZCom."Current Patient Age In Weeks" < 6 /* @input: Client's age is more than or equal to 6 weeks @pseudocode: Today's date - "Date of birth" ≥ 6 'week' */ define "Client's age is more than or equal to 6 weeks": Not( "Client's age is less than 6 weeks" ) /* @input: Client's age is between 6 weeks and 3 months @pseudocode: 6 'week' ≤ Today's date - "Date of birth" ≤ 3 'month' */ define "Client's age is between 6 weeks and 3 months": not( "Client's age is less than 6 weeks" ) and not( "Client's age is more than 3 months" ) /* @input: Client's age is less than 8 weeks @pseudocode: Today's date - "Date of birth" < 8 'week' */ define "Client's age is less than 8 weeks": IMMZCom."Current Patient Age In Weeks" < 8 /* @input: Client's age is more than or equal to 8 weeks @pseudocode: Today's date - "Date of birth" ≥ 8 'week' */ define "Client's age is more than or equal to 8 weeks": not("Client's age is less than 8 weeks") /* @input: Client's age is more than 3 months @pseudocode: Today's date - "Date of birth" > 3 'month' */ define "Client's age is more than 3 months": IMMZCom."Current Patient Age In Months" > 3 /* @input: Client's age is between 6 weeks and 14 weeks @pseudocode: 6 'week' '≤ 'Today's date - "Date of birth" < 14 'week' */ define "Client's age is between 6 weeks and 14 weeks": not( "Client's age is less than 6 weeks" ) and "Client's age is less than 14 weeks" /* @input: Client's age is more than or equal to 14 weeks @pseudocode: Today's date - "Date of birth" ≥ 14 'week' */ define "Client's age is more than or equal to 14 weeks": not( "Client's age is less than 14 weeks" ) /* @input: Client's age is less than 14 weeks @pseudocode: Today's date - "Date of birth" < 14 'week' */ define "Client's age is less than 14 weeks": IMMZCom."Current Patient Age In Weeks" < 14 /* @input: Client's age was more than 6 weeks when the primary series was started @pseudocode: "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines' AND "Dose number" = 1) - "Date of birth" > 6 'week' */ define "Client's age was more than 6 weeks when the primary series was started": AgeInWeeksAt("Date of first Primary Series Polio Vaccine") > 6 /* @input: Client's age was 6 weeks when the primary series was started @pseudocode: "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines' AND "Dose number" = 1) - "Date of birth" = 6 'week' */ define "Client's age was 6 weeks when the primary series was started": AgeInWeeksAt("Date of first Primary Series Polio Vaccine") = 6 /* @input: The latest bOPV dose was administered less than 4 weeks ago @pseudocode: Today's date - Latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines' and "Type of Polio dose" = 'bOPV') < 4 'week' */ define "The latest bOPV dose was administered less than 4 weeks ago": //"Date of latest bOPV Polio Vaccine" is not null and "Date of latest bOPV Polio Vaccine" + 4 weeks > Now() "Date of latest bOPV Polio Vaccine" is not null and duration in weeks between "Date of latest bOPV Polio Vaccine" and Now() < 4 /* @input: The latest bOPV dose was administered more than 4 weeks ago @pseudocode: Today's date - Latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines' and "Type of Polio dose" = 'bOPV') ≥ 4 'week' */ define "The latest bOPV dose was administered more than 4 weeks ago": //"Date of latest bOPV Polio Vaccine" is not null and "Date of latest bOPV Polio Vaccine" + 4 weeks <= Now() "Date of latest bOPV Polio Vaccine" is not null and duration in weeks between "Date of latest bOPV Polio Vaccine" and Now() >= 4 /* @input: The latest IPV dose was administered less than 4 months ago @pseudocode: Today's date - Latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines' and "Type of polio dose" = 'IPV') < 4 'month' */ define "The latest IPV dose was administered less than 4 months ago": //"Date of latest IPV Polio Vaccine" is not null and "Date of latest IPV Polio Vaccine" + 4 months > Now() "Date of latest IPV Polio Vaccine" is not null and duration in months between "Date of latest IPV Polio Vaccine" and Now() < 4 /* @input: The latest IPV dose was administered more than 4 months ago @pseudocode: Today's date - Latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines' and "Type of polio dose" = 'IPV') ≥ 4 'month' */ define "The latest IPV dose was administered more than 4 months ago": //"Date of latest IPV Polio Vaccine" is not null and "Date of latest IPV Polio Vaccine" + 4 months <= Now() "Date of latest IPV Polio Vaccine" is not null and duration in months between "Date of latest IPV Polio Vaccine" and Now() >= 4 /* @input: The latest polio dose was administered less than 4 weeks ago @pseudocode: Today's date - latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines') < 4 'week' */ define "The latest polio dose was administered less than 4 weeks ago": //"Date of latest Polio Vaccine" is not null and "Date of latest Polio Vaccine" + 4 weeks > Now() "Date of latest Primary Series Polio Vaccine" is not null and duration in weeks between "Date of latest Primary Series Polio Vaccine" and Now() < 4 /* @input: The latest polio dose was administered more than 4 weeks ago @pseudocode: Today's date - Latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines') ≥ 4 'week' */ define "The latest polio dose was administered more than 4 weeks ago": //"Date of latest Polio Vaccine" is not null and "Date of latest Polio Vaccine" + 4 weeks <= Now() "Date of latest Primary Series Polio Vaccine" is not null and duration in weeks between "Date of latest Primary Series Polio Vaccine" and Now() >= 4 /* @input: The latest polio dose was administered less than 6 months ago @pseudocode: Today's date - Latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines') < 6 'month' */ define "The latest polio dose was administered less than 6 months ago": //"Date of latest Polio Vaccine" is not null and "Date of latest Polio Vaccine" + 6 months > Now() "Date of latest Primary Series Polio Vaccine" is not null and duration in months between "Date of latest Primary Series Polio Vaccine" and Now() < 6 /* @input: The latest polio dose was administered more than 6 months ago @pseudocode: Today's date - Latest "Date and time of vaccination" (where "Vaccine type" = 'Polio containing vaccines') ≥ 6 'month' */ define "The latest polio dose was administered more than 6 months ago": //"Date of latest Polio Vaccine" is not null and "Date of latest Polio Vaccine" + 6 months <= Now() "Date of latest Primary Series Polio Vaccine" is not null and duration in months between "Date of latest Primary Series Polio Vaccine" and Now() >= 6 /* @input: No polio booster dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = 'Booster dose') = 0 */ define "No polio booster dose was administered": Not( "Polio booster dose was administered" ) /* @input: Polio booster dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = 'Polio containing vaccines' and "Type of dose" = 'Booster dose') = 1 */ define "Polio booster dose was administered": Count("Polio Doses Administered to Patient") > 3 or exists("Polio Doses Administered to Patient" I where (First(I.protocolApplied.doseNumber) as string) = 'booster') /* @input: The client has history of severe allergic reactions @pseudocode: "Potential contraindications" = 'Severe allergic reactions' */ define "The client has history of severe allergic reactions": exists(IMMZCom."Severe Allergic Reactions Condition") /* @input: The client is severely immunocompromised @pseudocode: "Potential contraindications" = 'Severely immunocompromised' */ define "The client is severely immunocompromised": exists(IMMZCom."Severely immunocompromised Condition") /* @input: The client has immunodeficiency syndromes @pseudocode: "Potential contraindications" = 'Immunodeficiency syndromes' */ define "The client has immunodeficiency syndromes": exists(IMMZCom."Immunodeficiency syndromes Condition") Content not shown - (application/elm+xml, size = 125Kb) Content not shown - (application/elm+json, size = 215Kb)
Primary Series Polio Doses Administered to Patient
bOPV Polio Doses Administered to Patient
Date of latest Primary Series Polio Vaccine
Date of first Primary Series Polio Vaccine
bOPV birth dose (a zero dose) was administered
bOPV birth dose (a zero dose) was not administered
No polio primary series doses were administered
One polio primary series dose was administered
Two polio primary series doses were administered
Three polio primary series doses were administered
Four polio primary series doses were administered
Five polio primary series doses were administered
From the two doses administered one is bOPV and one is IPV
From the three doses administered one is IPV and two are bOPV
From the three doses administered one is bOPV and two are IPV
From the four doses administered one is IPV and three are bOPV
From the four doses administered two are IPV and two are bOPV
Client's age is more than or equal to 6 weeks
Client's age is between 6 weeks and 3 months
Client's age is more than or equal to 8 weeks
Client's age is between 6 weeks and 14 weeks
Client's age is more than or equal to 14 weeks
Client's age was more than 6 weeks when the primary series was started
Client's age was 6 weeks when the primary series was started
The latest bOPV dose was administered less than 4 weeks ago
The latest bOPV dose was administered more than 4 weeks ago
The latest IPV dose was administered less than 4 months ago
The latest IPV dose was administered more than 4 months ago
The latest polio dose was administered less than 4 weeks ago
The latest polio dose was administered more than 4 weeks ago
The latest polio dose was administered less than 6 months ago
The latest polio dose was administered more than 6 months ago
The client has history of severe allergic reactions
The client is severely immunocompromised
The client has immunodeficiency syndromes