3 // Copyright (C) 2011 Ken Chapple <ken@mi-squared.com>
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
12 public static function checkDtap(CqmPatient
$patient, $beginDate, $endDate)
14 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
15 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
16 $fourCount = array( Medication
::OPTION_COUNT
=> 4, Medication
::OPTION_UNIQUE_DATES
=> true );
18 Helper
::checkMed(Medication
::DTAP_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $fourCount) &&
19 !( Helper
::checkAllergy(Allergy
::DTAP_VAC
, $patient, $patient->dob
, $endDate) ||
20 Helper
::checkDiagActive(Diagnosis
::ENCEPHALOPATHY
, $patient, $beginDate, $endDate) ||
21 Helper
::checkDiagActive(Diagnosis
::PROG_NEURO_DISORDER
, $patient, $beginDate, $endDate) )
29 public static function checkIpv(CqmPatient
$patient, $beginDate, $endDate)
31 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
32 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
33 $threeCount = array( Medication
::OPTION_COUNT
=> 3 );
35 Helper
::checkMed(Medication
::IPV
, $patient, $dobPlus42Days, $dobPlus2Years, $threeCount) &&
36 !( Helper
::checkAllergy(Allergy
::IPV
, $patient, $patient->dob
, $endDate) ||
37 Helper
::checkAllergy(Allergy
::NEOMYCIN
, $patient, $patient->dob
, $endDate) ||
38 Helper
::checkAllergy(Allergy
::STREPTOMYCIN
, $patient, $patient->dob
, $endDate) )
46 public static function checkMmr(CqmPatient
$patient, $beginDate, $endDate)
48 $dobPlus1Year = date('Y-m-d 00:00:00', strtotime('+1 year', strtotime($patient->dob
)));
49 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
50 $dateMinus2Years = date('Y-m-d 00:00:00', strtotime('-2 year', strtotime($endDate)));
52 Helper
::checkMed(Medication
::MMR
, $patient, $dobPlus1Year, $dobPlus2Years) ||
53 ( Helper
::checkMed(Medication
::MUMPS_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
54 !Helper
::checkAllergy(Allergy
::MUMPS_VAC
, $patient, $patient->dob
, $endDate) &&
55 Helper
::checkMed(Medication
::MEASLES_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
56 !Helper
::checkAllergy(Allergy
::MEASLES_VAC
, $patient, $patient->dob
, $endDate) &&
57 Helper
::checkMed(Medication
::RUBELLA_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
58 !Helper
::checkAllergy(Allergy
::RUBELLA_VAC
, $patient, $patient->dob
, $endDate) ) ||
59 ( Helper
::checkDiagResolved(Diagnosis
::MEASLES
, $patient, $patient->dob
, $endDate) &&
60 Helper
::checkMed(Medication
::MUMPS_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
61 !Helper
::checkAllergy(Allergy
::MUMPS_VAC
, $patient, $patient->dob
, $endDate) &&
62 Helper
::checkMed(Medication
::RUBELLA_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
63 !Helper
::checkAllergy(Allergy
::RUBELLA_VAC
, $patient, $patient->dob
, $endDate) ) ||
64 ( Helper
::checkDiagResolved(Diagnosis
::MUMPS
, $patient, $patient->dob
, $endDate) &&
65 Helper
::checkMed(Medication
::MEASLES_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
66 !Helper
::checkAllergy(Allergy
::MEASLES_VAC
, $patient, $patient->dob
, $endDate) &&
67 Helper
::checkMed(Medication
::RUBELLA_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
68 !Helper
::checkAllergy(Allergy
::RUBELLA_VAC
, $patient, $patient->dob
, $endDate) ) ||
69 ( Helper
::checkDiagResolved(Diagnosis
::RUBELLA
, $patient, $patient->dob
, $endDate) &&
70 Helper
::checkMed(Medication
::MUMPS_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
71 !Helper
::checkAllergy(Allergy
::MUMPS_VAC
, $patient, $patient->dob
, $endDate) &&
72 Helper
::checkMed(Medication
::MEASLES_VAC
, $patient, $patient->dob
, $dobPlus2Years) &&
73 !Helper
::checkAllergy(Allergy
::MEASLES_VAC
, $patient, $patient->dob
, $endDate) ) &&
74 !( Helper
::checkDiagActive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
75 Helper
::checkDiagInactive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
76 Helper
::checkDiagActive(Diagnosis
::ASYMPTOMATIC_HIV
, $patient, $beginDate, $endDate) ||
77 Helper
::checkDiagActive(Diagnosis
::MULT_MYELOMA
, $patient, $beginDate, $endDate) ||
78 Helper
::checkDiagActive(Diagnosis
::LUKEMIA
, $patient, $beginDate, $endDate) ||
79 Helper
::checkAllergy(Allergy
::MMR
, $patient, $patient->dob
, $dateMinus2Years) ||
80 Helper
::checkDiagActive(Diagnosis
::IMMUNODEF
, $patient, $beginDate, $endDate) )
88 public static function checkHib(CqmPatient
$patient, $beginDate, $endDate)
90 $options = array( Medication
::OPTION_COUNT
=> 2 );
91 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
92 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
94 Helper
::checkMed(Medication
::HIB
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
95 !Helper
::checkAllergy(Allergy
::HIB
, $patient, $patient->dob
, $endDate)
103 public static function checkHepB(CqmPatient
$patient, $beginDate, $endDate)
105 $options = array( Medication
::OPTION_COUNT
=> 3 );
106 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
108 Helper
::checkMed(Medication
::HEP_B_VAC
, $patient, $patient->dob
, $dobPlus2Years, $options) ||
109 Helper
::checkDiagResolved(Diagnosis
::HEP_B
, $patient, $patient->dob
, $endDate) &&
110 !( Helper
::checkAllergy(Allergy
::HEP_B_VAC
, $patient, $patient->dob
, $endDate) ||
111 Helper
::checkAllergy(Allergy
::BAKERS_YEAST
, $patient, $patient->dob
, $endDate) )
119 public static function checkVzv(CqmPatient
$patient, $beginDate, $endDate)
121 $options = array( Medication
::OPTION_COUNT
=> 1 );
122 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
124 Helper
::checkMed(Medication
::VZV
, $patient, $patient->dob
, $dobPlus2Years, $options) ||
125 ( Helper
::checkDiagResolved(Diagnosis
::VZV
, $patient, $patient->dob
, $endDate) &&
126 !( Helper
::checkDiagActive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
127 Helper
::checkDiagInactive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $beginDate, $endDate) ||
128 Helper
::checkDiagActive(Diagnosis
::ASYMPTOMATIC_HIV
, $patient, $beginDate, $endDate) ||
129 Helper
::checkDiagActive(Diagnosis
::MULT_MYELOMA
, $patient, $beginDate, $endDate) ||
130 Helper
::checkDiagActive(Diagnosis
::LUKEMIA
, $patient, $beginDate, $endDate) ||
131 Helper
::checkAllergy(Allergy
::VZV
, $patient, $patient->dob
, $endDate) ||
132 Helper
::checkDiagActive(Diagnosis
::IMMUNODEF
, $patient, $beginDate, $endDate) ) )
140 public static function checkPheumococcal(CqmPatient
$patient, $beginDate, $endDate)
142 $options = array( Medication
::OPTION_COUNT
=> 4 );
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
)));
146 Helper
::checkMed(Medication
::PNEUMOCOCCAL_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
147 !Helper
::checkAllergy(Allergy
::PNEUM_VAC
, $patient)
155 public static function checkHepA(CqmPatient
$patient, $beginDate, $endDate)
157 $options = array( Medication
::OPTION_COUNT
=> 2 );
158 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
159 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
161 Helper
::checkMed(Medication
::HEP_A_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) ||
162 ( Helper
::checkDiagResolved(Diagnosis
::HEP_A
, $patient, $patient->dob
, $endDate) &&
163 !Helper
::checkAllergy(Allergy
::HEP_A_VAC
, $patient, $patient->dob
, $endDate) )
171 public static function checkRotavirus(CqmPatient
$patient, $beginDate, $endDate)
173 $options = array( Medication
::OPTION_COUNT
=> 4 );
174 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
175 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
177 Helper
::checkMed(Medication
::ROTAVIRUS_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
178 !Helper
::checkAllergy(Allergy
::ROTAVIRUS_VAC
, $patient, $patient->dob
, $endDate)
186 public static function checkInfluenza(CqmPatient
$patient, $beginDate, $endDate)
188 $options = array( Medication
::OPTION_COUNT
=> 2 );
189 $dobPlus180Days = date('Y-m-d 00:00:00', strtotime('+180 day', strtotime($patient->dob
)));
190 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
192 Helper
::checkMed(Medication
::INFLUENZA_VAC
, $patient, $dobPlus180Days, $dobPlus2Years, $options) &&
193 !( Helper
::checkAllergy(Allergy
::INFLUENZA_VAC
, $patient, $patient->dob
, $endDate) ||
194 Helper
::checkDiagActive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $patient->dob
, $endDate) ||
195 Helper
::checkDiagInactive(Diagnosis
::CANCER_LYMPH_HIST
, $patient, $patient->dob
, $endDate) ||
196 Helper
::checkDiagActive(Diagnosis
::ASYMPTOMATIC_HIV
, $patient, $patient->dob
, $endDate) ||
197 Helper
::checkDiagActive(Diagnosis
::MULT_MYELOMA
, $patient, $patient->dob
, $endDate) ||
198 Helper
::checkDiagActive(Diagnosis
::LUKEMIA
, $patient, $patient->dob
, $endDate) ||
199 Helper
::checkDiagActive(Diagnosis
::IMMUNODEF
, $patient, $patient->dob
, $endDate) )
207 public static function checkRotavirus_2014(CqmPatient
$patient, $beginDate, $endDate)
209 $options = array( Medication
::OPTION_COUNT
=> 2 );
210 $dobPlus42Days = date('Y-m-d 00:00:00', strtotime('+42 day', strtotime($patient->dob
)));
211 $dobPlus2Years = date('Y-m-d 00:00:00', strtotime('+2 year', strtotime($patient->dob
)));
213 Helper
::checkMed(Medication
::ROTAVIRUS_VAC
, $patient, $dobPlus42Days, $dobPlus2Years, $options) &&
214 !Helper
::checkAllergy(Allergy
::ROTAVIRUS_VAC
, $patient, $patient->dob
, $endDate)