WHO SMART Guidelines - Example Workshop IG
0.1.0 - ci-build
WHO SMART Guidelines - Example Workshop IG, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/brynrhodes/smart-workshop/ and changes regularly. See the Directory of published versions
Official URL: http://smart.who.int/example-workshop/Library/IMMZD2DTMeaslesLTLogic | Version: 0.1.0 | |||
Draft as of 2024-12-02 | Computable Name: IMMZD2DTMeaslesLTLogic |
This library defines decision support logic for the D2.DT.Measles Dose 0 decision table in the Immunization CPG
Generated Narrative: Library IMMZD2DTMeaslesLTLogic
Depends On | Library WC | http://smart.who.int/example-workshop/Library/WHOCommon |
Depends On | Library Logic | IMMZD2DTMeaslesLogic |
Today | in | 0 | 1 | date |
Patient | out | 0 | 1 | Patient |
Measles Routine Immunization Schedule Incomplete | out | 0 | 1 | boolean |
No Primary Series Doses Administered | out | 0 | 1 | boolean |
One Primary Series Dose Administered | out | 0 | 1 | boolean |
Two Primary Series Doses Administered | out | 0 | 1 | boolean |
Client Age Less Than 12 Months | out | 0 | 1 | boolean |
Client Age Less Than 15 Months | out | 0 | 1 | boolean |
Last Live Vaccine Administered Within 4 Weeks | out | 0 | 1 | boolean |
MCV1 Status | out | 0 | 1 | string |
MCV1 Schedule Date | out | 0 | 1 | date |
MCV1 Due Date | out | 0 | 1 | date |
Client Is Due For MCV1 | out | 0 | 1 | boolean |
MCV2 Status | out | 0 | 1 | string |
MCV2 Schedule Date | out | 0 | 1 | date |
MCV2 Due Date | out | 0 | 1 | date |
Client Is Due For MCV2 | out | 0 | 1 | boolean |
MCV1 Expiration Date | out | 0 | 1 | date |
MCV2 Expiration Date | out | 0 | 1 | date |
text/cql
/*
@DecisionID: IMMZ.D2.DT.Measles.Low transmission
@BusinessRule: Determine if the client is due for a measles vaccination according to the national immunization schedule
@Trigger: IMMZ.D2 Determine required vaccination(s) if any
@Description: Countries with low levels of measles transmission (countries that provide first dose of MCV at 12 months and second dose of MCV at 15 months)
*/
library IMMZD2DTMeaslesLTLogic
using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'
include WHOCommon called WC
include IMMZD2DTMeaslesLogic called Logic
parameter Today default Today()
context Patient
/*
PlanDefinition Applicability Expressions
*/
define "Measles Routine Immunization Schedule Incomplete":
Logic."Measles Routine Immunization Schedule Incomplete"
define "No Primary Series Doses Administered":
Logic."Number Of Primary Series Doses Administered" = 0
define "One Primary Series Dose Administered":
Logic."Number Of Primary Series Doses Administered" = 1
define "Two Primary Series Doses Administered":
Logic."Number Of Primary Series Doses Administered" = 2
define "Client Age Less Than 12 Months":
AgeInMonthsAt(Today) < 12
define "Client Age Less Than 15 Months":
AgeInMonthsAt(Today) < 15
define "Last Live Vaccine Administered Within 4 Weeks":
Logic."Date Last Live Vaccine Administered" + 4 weeks on or before Today
define "Client Is Due For MCV1":
"MCV1 Status" = 'Needed'
and "MCV1 Due Date" on or before Today
define "Client Is Due For MCV2":
"MCV2 Status" = 'Needed'
and "MCV2 Due Date" on or before Today
/*
Supporting Logic
*/
define "MCV1 Status":
if Logic."Number Of Primary Series Doses Administered" = 0 then
'Needed'
else
'Complete'
define "MCV1 Schedule Date":
Patient.birthDate + 12 months
define "MCV1 Expiration Date":
Patient.birthDate + 15 months
define "MCV1 Due Date":
if "MCV1 Status" = 'Needed' then
WC.LatestOf({
"MCV1 Schedule Date",
Logic."Date Last Live Vaccine Administered" + 4 weeks,
Today
})
else
null
define "MCV2 Status":
if Logic."Number Of Primary Series Doses Administered" = 1 then
'Needed'
else
'Complete'
define "MCV2 Schedule Date":
Patient.birthDate + 15 months
define "MCV2 Expiration Date":
null as Date
define "MCV2 Due Date":
if "MCV2 Status" = 'Needed' then
WC.LatestOf({
"MCV2 Schedule Date",
Logic."Date Last Live Vaccine Administered" + 4 weeks,
Today
})
else
null
Content not shown - (
application/elm+xml
, size = 34Kb )
Content not shown - (
application/elm+json
, size = 61Kb )