Commit generated changelog for 7.0.2.1 (#7458)
[openemr.git] / library / classes / ClinicalTypes / Medication.php
blobc8c9b7c04fe87050eef720c353e4cdeeeced5670
1 <?php
3 // Copyright (C) 2011 Ken Chapple <ken@mi-squared.com>
4 //
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.
9 //
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)
57 $return = false;
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 <= ? ";
66 $query .= "AND ( ";
67 $count = 0;
68 array_push($sqlQueryBind, $patient->id, $beginDate, $endDate);
69 foreach ($listOptions as $option_id) {
70 $query .= "cvx_code = ? ";
71 $count++;
72 if ($count < count($listOptions)) {
73 $query .= "OR ";
76 array_push($sqlQueryBind, $option_id);
79 $query .= " ) ";
81 $result = sqlStatement($query, $sqlQueryBind);
82 $rows = array();
83 for ($iter = 0; $row = sqlFetchArray($result); $iter++) {
84 $rows[$iter] = $row;
87 if (
88 isset($options[self::OPTION_COUNT]) &&
89 count($rows) >= $options[self::OPTION_COUNT]
90 ) {
91 $return = true;
92 } elseif (
93 !isset($options[self::OPTION_COUNT]) &&
94 count($rows) > 0
95 ) {
96 $return = true;
100 return $return;