Skip to content

Commit

Permalink
Updated Hepatitis B based on latest changes. Improved tools. Updated …
Browse files Browse the repository at this point in the history
…tests.
  • Loading branch information
lukeaduncan committed Mar 11, 2024
1 parent 2eff859 commit d56594a
Show file tree
Hide file tree
Showing 154 changed files with 1,843 additions and 1,841 deletions.
49 changes: 26 additions & 23 deletions input/cql/IMMZD2DTHepatitisB3Delayed.cql
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/*
* Library: IMMZD2DTHepatitisB3Delayed (IMMZ.D2.DT.Hepatitis B.Delayed start)
* Rule: Determine if the client is due for a hepatitis B vaccination according to the national immunization schedule
* Decision Table: 3-dose schedule, delayed start
* Decision Table: 3-dose schedule (no birth dose + 3 doses), delayed start
* Trigger: IMMZ.D2 Determine required vaccination(s) if any
*/
library IMMZD2DTHepatitisB3Delayed
Expand All @@ -19,20 +19,8 @@ include IMMZD2DTHepatitisBInput called input
// End Skeleton CQL
context Patient

/*
@test: Test expected results based on example patients
*/
define "Test Validation":
case
when Patient.id = '43.D0Amt4w' then "Client is due for hepatitis B vaccination" and "Guidance" = 'Should vaccinate client for first hepatitis B dose as hepatitis B birth dose was not administered. The first hepatitis B dose should be administered as soon as possible. Check for contraindications.'
when Patient.id = '44.D1Hlt4w' then "Client is not due for a hepatitis B vaccination Case 1" and "Guidance" = 'Should not vaccinate client for second hepatitis B dose as the latest hepatitis B dose was administered less than 4 weeks ago. Check for any other vaccines due, and inform the caregiver of when to come back for the next dose.'
when Patient.id = '45.D1Hgt4w' then "Client is due for a hepatitis B vaccination Case 1" and "Guidance" = 'Should vaccinate client for second hepatitis B dose as the latest hepatitis B dose was administered less than 4 weeks ago. Check for contraindications.'
when Patient.id = '46.D2Hlt4w' then "Client is not due for a hepatitis B vaccination Case 2" and "Guidance" = 'Should not vaccinate client for second hepatitis B dose as the latest hepatitis B dose was administered less than 4 weeks ago. Two hepatitis B doses have been administered to the client. Check for any other vaccines due, and inform the caregiver of when to come back for the next dose.'
when Patient.id = '47.D2Hgt4wFlt6m' then "Client is not due for a hepatitis B vaccination Case 3" and "Guidance" = 'Should not vaccinate client for third hepatitis B dose as the first hepatitis B dose was administered less than 6 months ago. Check for any other vaccines due, and inform the caregiver of when to come back for the next dose.'
when Patient.id = '48.D2Hgt4wFgt6m' then "Client is due for a hepatitis B vaccination Case 2" and "Guidance" = 'Should vaccinate client for third hepatitis B dose as the first hepatitis B dose was administered more than 6 months ago and the latest hepatitis B dose was administered more than 4 weeks ago. Check for contraindications.'
when Patient.id = '49.D3' then "Hepatitis B immunization schedule is complete" and "Guidance" = 'Hepatitis B immunization schedule is complete. Three hepatitis B primary series doses were administered. Check for any other vaccines due.'
else 'No test case set'
end


/*
@dynamicValue: Guidance
*/
Expand All @@ -50,8 +38,8 @@ define "Guidance":
@pseudocode: "Immunization recommendation status" = "Due"
*/
define "Client is due for hepatitis B vaccination":
input."No hepatitis B primary series doses were administered"
and input."Client's age is more than 4 weeks"
input."No hepatitis B doses were administered"
and input."Client's age is more than {Member States defined upper limit}"

/*
@output: Client is due for hepatitis B vaccination Guidance
Expand All @@ -65,23 +53,23 @@ define "Client is due for hepatitis B vaccination Guidance":
@pseudocode: "Immunization recommendation status" = "Not due"
*/
define "Client is not due for a hepatitis B vaccination Case 1":
input."One hepatitis B primary series dose was administered"
input."One hepatitis B dose was administered"
and input."The latest hepatitis B dose was administered less than 4 weeks ago"

/*
@output: Client is not due for a hepatitis B vaccination Case 2
@pseudocode: "Immunization recommendation status" = "Not due"
*/
define "Client is not due for a hepatitis B vaccination Case 2":
input."Two hepatitis B primary series doses were administered"
input."Two hepatitis B doses were administered"
and input."The latest hepatitis B dose was administered less than 4 weeks ago"

/*
@output: Client is not due for a hepatitis B vaccination Case 3
@pseudocode: "Immunization recommendation status" = "Not due"
*/
define "Client is not due for a hepatitis B vaccination Case 3":
input."Two hepatitis B primary series doses were administered"
input."Two hepatitis B doses were administered"
and input."The latest hepatitis B dose was administered more than 4 weeks ago"
and input."The first hepatitis B dose was administered less than 6 months ago"

Expand Down Expand Up @@ -113,15 +101,15 @@ define "Client is not due for a hepatitis B vaccination Guidance":
@pseudocode: "Immunization recommendation status" = "Due"
*/
define "Client is due for a hepatitis B vaccination Case 1":
input."One hepatitis B primary series dose was administered"
input."One hepatitis B dose was administered"
and input."The latest hepatitis B dose was administered more than 4 weeks ago"

/*
@output: Client is due for a hepatitis B vaccination Case 2
@pseudocode: "Immunization recommendation status" = "Due"
*/
define "Client is due for a hepatitis B vaccination Case 2":
input."Two hepatitis B primary series doses were administered"
input."Two hepatitis B doses were administered"
and input."The latest hepatitis B dose was administered more than 4 weeks ago"
and input."The first hepatitis B dose was administered more than 6 months ago"

Expand Down Expand Up @@ -150,7 +138,7 @@ define "Client is due for a hepatitis B vaccination Guidance":
@pseudocode:
*/
define "Hepatitis B immunization schedule is complete":
input."Three hepatitis B primary series doses were administered"
input."Three hepatitis B doses were administered"

/*
@output: Hepatitis B immunization schedule is complete Guidance
Expand All @@ -159,3 +147,18 @@ define "Hepatitis B immunization schedule is complete":
define "Hepatitis B immunization schedule is complete Guidance":
'Hepatitis B immunization schedule is complete. Three hepatitis B primary series doses were administered. Check for any other vaccines due.'


/*
@test: Test expected results based on example patients
*/
define "Test Validation":
case
when Patient.id = '54.D0Amt4w' then "Client is due for hepatitis B vaccination" and "Guidance" = 'Should vaccinate client for first hepatitis B dose as hepatitis B birth dose was not administered. The first hepatitis B dose should be administered as soon as possible. Check for contraindications.'
when Patient.id = '55.D1Hlt4w' then "Client is not due for a hepatitis B vaccination Case 1" and "Guidance" = 'Should not vaccinate client for second hepatitis B dose as the latest hepatitis B dose was administered less than 4 weeks ago. Check for any other vaccines due, and inform the caregiver of when to come back for the next dose.'
when Patient.id = '56.D1Hgt4w' then "Client is due for a hepatitis B vaccination Case 1" and "Guidance" = 'Should vaccinate client for second hepatitis B dose as the latest hepatitis B dose was administered less than 4 weeks ago. Check for contraindications.'
when Patient.id = '57.D2Hlt4w' then "Client is not due for a hepatitis B vaccination Case 2" and "Guidance" = 'Should not vaccinate client for second hepatitis B dose as the latest hepatitis B dose was administered less than 4 weeks ago. Two hepatitis B doses have been administered to the client. Check for any other vaccines due, and inform the caregiver of when to come back for the next dose.'
when Patient.id = '58.D2Hgt4wFlt6m' then "Client is not due for a hepatitis B vaccination Case 3" and "Guidance" = 'Should not vaccinate client for third hepatitis B dose as the first hepatitis B dose was administered less than 6 months ago. Check for any other vaccines due, and inform the caregiver of when to come back for the next dose.'
when Patient.id = '59.D2Hgt4wFgt6m' then "Client is due for a hepatitis B vaccination Case 2" and "Guidance" = 'Should vaccinate client for third hepatitis B dose as the first hepatitis B dose was administered more than 6 months ago and the latest hepatitis B dose was administered more than 4 weeks ago. Check for contraindications.'
when Patient.id = '60.D3' then "Hepatitis B immunization schedule is complete" and "Guidance" = 'Hepatitis B immunization schedule is complete. Three hepatitis B primary series doses were administered. Check for any other vaccines due.'
else 'No test case set'
end
Loading

0 comments on commit d56594a

Please sign in to comment.