2 class NFQ_0421_Numerator1
implements CqmFilterIF
4 public function getTitle()
9 public function test( CqmPatient
$patient, $dateBegin, $dateEnd )
11 // Flow of control loop
14 // See if BMI has been recorded between >=22kg/m2 and <30kg/m2 6 months before, or simultanious to the encounter
15 $query = "SELECT form_vitals.BMI " .
16 "FROM `form_vitals` " .
17 "LEFT JOIN `form_encounter` " .
18 "ON ( form_vitals.pid = form_encounter.pid ) " .
19 "LEFT JOIN `enc_category_map` " .
20 "ON (enc_category_map.main_cat_id = form_encounter.pc_catid) " .
21 "WHERE form_vitals.BMI IS NOT NULL " .
22 "AND form_vitals.BMI IS NOT NULL " .
23 "AND form_vitals.pid = ? AND form_vitals.BMI >= 22 AND form_vitals.BMI < 30 " .
24 "AND DATE( form_vitals.date ) >= DATE_ADD( form_encounter.date, INTERVAL -6 MONTH ) " .
25 "AND DATE( form_vitals.date ) <= DATE( form_encounter.date ) " .
26 "AND ( enc_category_map.rule_enc_id = 'enc_outpatient' )";
27 $res = sqlStatement( $query, array( $patient->id
) );
28 $number = sqlNumRows($res);
34 // See if BMI has been recorded >=30kg/m2 6 months before, or simultanious to the encounter
35 // AND ÒCare goal: follow-up plan BMI managementÓ OR ÒCommunication provider to provider: dietary consultation orderÓ
36 $query = "SELECT form_vitals.BMI " .
37 "FROM `form_vitals` " .
38 "LEFT JOIN `form_encounter` " .
39 "ON ( form_vitals.pid = form_encounter.pid ) " .
40 "LEFT JOIN `enc_category_map` " .
41 "ON (enc_category_map.main_cat_id = form_encounter.pc_catid) " .
42 "WHERE form_vitals.BMI IS NOT NULL " .
43 "AND form_vitals.BMI IS NOT NULL " .
44 "AND form_vitals.pid = ? AND form_vitals.BMI >= 30 " .
45 "AND ( DATE( form_vitals.date ) >= DATE_ADD( form_encounter.date, INTERVAL -6 MONTH ) ) " .
46 "AND ( DATE( form_vitals.date ) <= DATE( form_encounter.date ) ) " .
47 "AND ( enc_category_map.rule_enc_id = 'enc_outpatient' )";
48 $res = sqlStatement( $query, array( $patient->id
) );
49 $number = sqlNumRows($res);
51 ( Helper
::check( ClinicalType
::CARE_GOAL
, CareGoal
::FOLLOW_UP_PLAN_BMI_MGMT
) ||
52 Helper
::check( ClinicalType
::COMMUNICATION
, Communication
::DIET_CNSLT
) ) ) {
57 // See if BMI has been recorded <22kg/m2 6 months before, or simultanious to the encounter
58 // AND ÒCare goal: follow-up plan BMI managementÓ OR ÒCommunication provider to provider: dietary consultation orderÓ
59 $query = "SELECT form_vitals.BMI " .
60 "FROM `form_vitals` " .
61 "LEFT JOIN `form_encounter` " .
62 "ON ( form_vitals.pid = form_encounter.pid ) " .
63 "LEFT JOIN `enc_category_map` " .
64 "ON (enc_category_map.main_cat_id = form_encounter.pc_catid) " .
65 "WHERE form_vitals.BMI IS NOT NULL " .
66 "AND form_vitals.BMI IS NOT NULL " .
67 "AND form_vitals.pid = ? AND form_vitals.BMI < 22 " .
68 "AND ( DATE( form_vitals.date ) >= DATE_ADD( form_encounter.date, INTERVAL -6 MONTH ) ) " .
69 "AND ( DATE( form_vitals.date ) <= DATE( form_encounter.date ) ) " .
70 "AND ( enc_category_map.rule_enc_id = 'enc_outpatient' )";
71 $res = sqlStatement( $query, array( $patient->id
) );
72 $number = sqlNumRows($res);
74 ( Helper
::check( ClinicalType
::CARE_GOAL
, CareGoal
::FOLLOW_UP_PLAN_BMI_MGMT
) ||
75 Helper
::check( ClinicalType
::COMMUNICATION
, Communication
::DIET_CNSLT
) ) ) {