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.
10 require_once('ClinicalType.php');
12 class Medication
extends ClinicalType
14 const OPTION_COUNT
= 'count';
15 const OPTION_UNIQUE_DATES
= 'unique';
17 const DTAP_VAC
= 'med_admin_dtap';
18 const HEP_A_VAC
= 'med_admin_hep_a_vac';
19 const HEP_B_VAC
= 'med_admin_hep_b_vac';
20 const HIB
= 'med_admin_hib';
21 const MEASLES_VAC
= 'med_admin_meas_vac';
22 const MMR
= 'med_admin_mmr';
23 const IPV
= 'med_admin_ipv';
24 const MUMPS_VAC
= 'med_admin_mumps_vac';
25 const PNEUMOCOCCAL_VAC
= 'med_admin_pneumococcal_vac';
26 const ROTAVIRUS_VAC
= 'med_admin_rotavirus_vac';
27 const RUBELLA_VAC
= 'med_admin_rubella_vac';
28 const VZV
= 'med_admin_vzv';
29 const INFLUENZA_VAC
= 'med_admin_influenza_vac';
31 const NO_INFLUENZA_CONTRADICTION
= 'med_not_done_flu_immun_contradiction';
32 const NO_INFLUENZA_DECLINED
= 'med_not_done_flu_immun_declined';
33 const NO_INFLUENZA_PATIENT
= 'med_not_done_flu_vac_pat_reas';
34 const NO_INFLUENZA_MEDICAL
= 'med_not_done_flu_vac_med_reas';
35 const NO_INFLUENZA_SYSTEM
= 'med_not_done_flu_vac_sys_reas';
37 const ADVERSE_EVT_FLU_IMMUN
= 'med_adverse_evt_flu_immun';
38 const INTOLERANCE_FLU_IMMUN
= 'med_intolerance_flu_immun';
40 const DISP_DIABETES
= 'med_disp_diabetes';
41 const ORDER_DIABETES
= 'med_order_diabetes';
42 const ACTIVE_DIABETES
= 'med_active_diabetes';
44 const SMOKING_CESSATION
= 'med_active_smoking_cessation';
45 const SMOKING_CESSATION_ORDER
= 'med_order_smoking_cessation';
47 const ANTIBIOTIC_FOR_PHARYNGITIS
= 'med_antibiotic_pharyngitis';
48 const INFLUENZA_VACCINE
= 'med_influenza_vaccination';
50 public function getListId()
52 return "Clinical_Rules_Med_Types";
55 public function doPatientCheck(RsPatient
$patient, $beginDate = null, $endDate = null, $options = null)
58 $listOptions = Codes
::lookup($this->getOptionId(), 'CVX');
59 if (count($listOptions) > 0) {
60 $sqlQueryBind = array();
61 $query = "SELECT * " .
62 "FROM immunizations " .
63 "WHERE patient_id = ? AND added_erroneously = '0' " .
64 "AND administered_date >= ? " .
65 "AND administered_date <= ? ";
68 array_push($sqlQueryBind, $patient->id
, $beginDate, $endDate);
69 foreach ($listOptions as $option_id) {
70 $query .= "cvx_code = ? ";
72 if ($count < count($listOptions)) {
76 array_push($sqlQueryBind, $option_id);
81 $result = sqlStatement($query, $sqlQueryBind);
83 for ($iter = 0; $row = sqlFetchArray($result); $iter++
) {
88 isset($options[self
::OPTION_COUNT
]) &&
89 count($rows) >= $options[self
::OPTION_COUNT
]
93 !isset($options[self
::OPTION_COUNT
]) &&