// Declare the name and version of the Library of functions
library AnyDosePass version '1.0.0'
// The version of FHIR we are using
using FHIR version '4.0.1'
// Execute all business rules relative to a specific Patient content
context Patient
// Define boolean valued business rule to check if there is an immunization that was completed
define "Completed Immunization": exists ("Completed Immunizations") or exists("Get Single Dose")
// Define a list of completed immunizations for which the dose number is the same as the series dose
// Immunization resources are queried from those that reference the Patient we are executing against
define "Completed Immunizations":
[Immunization] I
where ( I.protocolApplied.doseNumber.value = I.protocolApplied.seriesDoses.value )
// Define a list of immunizations that were provided once and do not have a predefined dose number
// Assumes a single vaccination to be enough for full immunization.
define "Get Single Dose":
[Immunization] I
where exists(I.protocolApplied)
and exists(I.protocolApplied.doseNumber.value)
and not exists(I.protocolApplied.seriesDoses.value)