2 // Copyright (C) 2011 Ken Chapple <ken@mi-squared.com>
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
11 public static function checkDtap(CqmPatient
$patient, $beginDate, $endDate)
13 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
14 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
15 $fourCount = array( Medication
::OPTION_COUNT
=> 4, Medication
::OPTION_UNIQUE_DATES
=> true );
16 if (Helper
::checkMed(Medication
::DTAP_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $fourCount) &&
17 !( Helper
::checkAllergy(Allergy
::DTAP_VAC
, $patient, $patient->dob
, $endDate) ||
18 Helper
::checkDiagActive(Diagnosis
::ENCEPHALOPATHY
, $patient, $beginDate, $endDate) ||
19 Helper
::checkDiagActive(Diagnosis
::PROG_NEURO_DISORDER
, $patient, $beginDate, $endDate) ) ) {
26 public static function checkIpv(CqmPatient
$patient, $beginDate, $endDate)
28 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
29 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
30 $threeCount = array( Medication
::OPTION_COUNT
=> 3 );
31 if (Helper
::checkMed(Medication
::IPV
, $patient, $dobPlus42Days, $dobPlus2Years, $threeCount) &&
32 !( Helper
::checkAllergy(Allergy
::IPV
, $patient, $patient->dob
, $endDate) ||
33 Helper
::checkAllergy(Allergy
::NEOMYCIN
, $patient, $patient->dob
, $endDate) ||
34 Helper
::checkAllergy(Allergy
::STREPTOMYCIN
, $patient, $patient->dob
, $endDate) ) ) {
41 public static function checkMmr(CqmPatient
$patient, $beginDate, $endDate)
43 $dobPlus1Year = date('Y-m-d 00:00:00', strtotime('+1 year', strtotime($patient->dob
)));
44 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
45 $dateMinus2Years = date('Y-m-d 00:00:00', strtotime('-2 year', strtotime($endDate)));
46 if (Helper
::checkMed(Medication
::MMR
, $patient, $dobPlus1Year, $dobPlus2Years) ||
47 ( Helper
::checkMed(Medication
::MUMPS_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
48 !Helper
::checkAllergy(Allergy
::MUMPS_VAC
, $patient, $patient->dob
, $endDate) &&
49 Helper
::checkMed(Medication
::MEASLES_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
50 !Helper
::checkAllergy(Allergy
::MEASLES_VAC
, $patient, $patient->dob
, $endDate) &&
51 Helper
::checkMed(Medication
::RUBELLA_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
52 !Helper
::checkAllergy(Allergy
::RUBELLA_VAC
, $patient, $patient->dob
, $endDate) ) ||
53 ( Helper
::checkDiagResolved(Diagnosis
::MEASLES
, $patient, $patient->dob
, $endDate) &&
54 Helper
::checkMed(Medication
::MUMPS_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
55 !Helper
::checkAllergy(Allergy
::MUMPS_VAC
, $patient, $patient->dob
, $endDate) &&
56 Helper
::checkMed(Medication
::RUBELLA_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
57 !Helper
::checkAllergy(Allergy
::RUBELLA_VAC
, $patient, $patient->dob
, $endDate) ) ||
58 ( Helper
::checkDiagResolved(Diagnosis
::MUMPS
, $patient, $patient->dob
, $endDate) &&
59 Helper
::checkMed(Medication
::MEASLES_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
60 !Helper
::checkAllergy(Allergy
::MEASLES_VAC
, $patient, $patient->dob
, $endDate) &&
61 Helper
::checkMed(Medication
::RUBELLA_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
62 !Helper
::checkAllergy(Allergy
::RUBELLA_VAC
, $patient, $patient->dob
, $endDate) ) ||
63 ( Helper
::checkDiagResolved(Diagnosis
::RUBELLA
, $patient, $patient->dob
, $endDate) &&
64 Helper
::checkMed(Medication
::MUMPS_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
65 !Helper
::checkAllergy(Allergy
::MUMPS_VAC
, $patient, $patient->dob
, $endDate) &&
66 Helper
::checkMed(Medication
::MEASLES_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
67 !Helper
::checkAllergy(Allergy
::MEASLES_VAC
, $patient, $patient->dob
, $endDate) ) &&
68 !( Helper
::checkDiagActive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
69 Helper
::checkDiagInactive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
70 Helper
::checkDiagActive(Diagnosis
::ASYMPTOMATIC_HIV
, $patient, $beginDate, $endDate) ||
71 Helper
::checkDiagActive(Diagnosis
::MULT_MYELOMA
, $patient, $beginDate, $endDate) ||
72 Helper
::checkDiagActive(Diagnosis
::LUKEMIA
, $patient, $beginDate, $endDate) ||
73 Helper
::checkAllergy(Allergy
::MMR
, $patient, $patient->dob
, $dateMinus2Years) ||
74 Helper
::checkDiagActive(Diagnosis
::IMMUNODEF
, $patient, $beginDate, $endDate) ) ) {
81 public static function checkHib(CqmPatient
$patient, $beginDate, $endDate)
83 $options = array( Medication
::OPTION_COUNT
=> 2 );
84 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
85 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
86 if (Helper
::checkMed(Medication
::HIB
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
87 !Helper
::checkAllergy(Allergy
::HIB
, $patient, $patient->dob
, $endDate) ) {
94 public static function checkHepB(CqmPatient
$patient, $beginDate, $endDate)
96 $options = array( Medication
::OPTION_COUNT
=> 3 );
97 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
98 if (Helper
::checkMed(Medication
::HEP_B_VAC
, $patient, $patient->dob
, $dobPlus2Years, $options) ||
99 Helper
::checkDiagResolved(Diagnosis
::HEP_B
, $patient, $patient->dob
, $endDate) &&
100 !( Helper
::checkAllergy(Allergy
::HEP_B_VAC
, $patient, $patient->dob
, $endDate) ||
101 Helper
::checkAllergy(Allergy
::BAKERS_YEAST
, $patient, $patient->dob
, $endDate) ) ) {
108 public static function checkVzv(CqmPatient
$patient, $beginDate, $endDate)
110 $options = array( Medication
::OPTION_COUNT
=> 1 );
111 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
112 if (Helper
::checkMed(Medication
::VZV
, $patient, $patient->dob
, $dobPlus2Years, $options) ||
113 ( Helper
::checkDiagResolved(Diagnosis
::VZV
, $patient, $patient->dob
, $endDate) &&
114 !( Helper
::checkDiagActive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
115 Helper
::checkDiagInactive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
116 Helper
::checkDiagActive(Diagnosis
::ASYMPTOMATIC_HIV
, $patient, $beginDate, $endDate) ||
117 Helper
::checkDiagActive(Diagnosis
::MULT_MYELOMA
, $patient, $beginDate, $endDate) ||
118 Helper
::checkDiagActive(Diagnosis
::LUKEMIA
, $patient, $beginDate, $endDate) ||
119 Helper
::checkAllergy(Allergy
::VZV
, $patient, $patient->dob
, $endDate) ||
120 Helper
::checkDiagActive(Diagnosis
::IMMUNODEF
, $patient, $beginDate, $endDate) ) ) ) {
127 public static function checkPheumococcal(CqmPatient
$patient, $beginDate, $endDate)
129 $options = array( Medication
::OPTION_COUNT
=> 4 );
130 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
131 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
132 if (Helper
::checkMed(Medication
::PNEUMOCOCCAL_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
133 !Helper
::checkAllergy(Allergy
::PNEUM_VAC
, $patient) ) {
140 public static function checkHepA(CqmPatient
$patient, $beginDate, $endDate)
142 $options = array( Medication
::OPTION_COUNT
=> 2 );
143 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
144 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
145 if (Helper
::checkMed(Medication
::HEP_A_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) ||
146 ( Helper
::checkDiagResolved(Diagnosis
::HEP_A
, $patient, $patient->dob
, $endDate) &&
147 !Helper
::checkAllergy(Allergy
::HEP_A_VAC
, $patient, $patient->dob
, $endDate) ) ) {
154 public static function checkRotavirus(CqmPatient
$patient, $beginDate, $endDate)
156 $options = array( Medication
::OPTION_COUNT
=> 4 );
157 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
158 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
159 if (Helper
::checkMed(Medication
::ROTAVIRUS_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
160 !Helper
::checkAllergy(Allergy
::ROTAVIRUS_VAC
, $patient, $patient->dob
, $endDate) ) {
167 public static function checkInfluenza(CqmPatient
$patient, $beginDate, $endDate)
169 $options = array( Medication
::OPTION_COUNT
=> 2 );
170 $dobPlus180Days = date('Y-m-d 00:00:00', strtotime('+180 day', strtotime($patient->dob
)));
171 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
172 if (Helper
::checkMed(Medication
::INFLUENZA_VAC
, $patient, $dobPlus180Days, $dobPlus2Years, $options) &&
173 !( Helper
::checkAllergy(Allergy
::INFLUENZA_VAC
, $patient, $patient->dob
, $endDate) ||
174 Helper
::checkDiagActive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $patient->dob
, $endDate) ||
175 Helper
::checkDiagInactive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $patient->dob
, $endDate) ||
176 Helper
::checkDiagActive(Diagnosis
::ASYMPTOMATIC_HIV
, $patient, $patient->dob
, $endDate) ||
177 Helper
::checkDiagActive(Diagnosis
::MULT_MYELOMA
, $patient, $patient->dob
, $endDate) ||
178 Helper
::checkDiagActive(Diagnosis
::LUKEMIA
, $patient, $patient->dob
, $endDate) ||
179 Helper
::checkDiagActive(Diagnosis
::IMMUNODEF
, $patient, $patient->dob
, $endDate) ) ) {
186 public static function checkRotavirus_2014(CqmPatient
$patient, $beginDate, $endDate)
188 $options = array( Medication
::OPTION_COUNT
=> 2 );
189 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
190 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
191 if (Helper
::checkMed(Medication
::ROTAVIRUS_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
192 !Helper
::checkAllergy(Allergy
::ROTAVIRUS_VAC
, $patient, $patient->dob
, $endDate) ) {