eRx captured and displayed in AMC report,
authorvinish <vinish@zhservices.com>
Tue, 18 Dec 2012 18:58:56 +0000 (19 00:28 +0530)
committerbradymiller <bradymiller@users.sourceforge.net>
Wed, 19 Dec 2012 21:30:48 +0000 (19 13:30 -0800)
Some changes by brady:
 -Change token from 'prescription' to 'prescription_erx'
 -Added some comments

Signed-off-by: vinish <vinish@zhservices.com>
interface/soap_functions/soap_patientfullmedication.php
library/classes/rulesets/Amc/reports/AMC_302d/Numerator.php
library/lists.inc

index fc6f970..c99ac99 100644 (file)
@@ -35,6 +35,7 @@ require_once('../globals.php');
 require_once('../eRx_xml.php');
 require_once('../../library/xmltoarray_parser_htmlfix.php');
 require_once($GLOBALS['fileroot'] . "/library/amc.php");
+require_once("{$GLOBALS['srcdir']}/lists.inc");
 set_time_limit(0);
 
 function number($str)
@@ -155,6 +156,7 @@ for($i=0;$i<sizeof($medArray);$i++)
         $rroute['option_id'], $rint['option_id'], $medArray[$i]['Refills'], $medArray[$i]['PrescriptionNotes'], 
         $_SESSION['authUserID'], $medArray[$i]['SiteID'], $medArray[$i]['PrescriptionGuid'], $medArray[$i]['rxcui']));
         $j++;
+        setListTouch ($patientid,'prescription_erx');
     }
     else
     {
index 1de0736..d870ff8 100644 (file)
@@ -19,9 +19,12 @@ class AMC_302d_Numerator implements AmcFilterIF
     {
         // Have at least one entry or an indication that no medications are known for the 
         // patient recorded as structured data.
-        //  (true if an entry in lists_touch or an active entry in lists preceding the date-end)
-        $firstCheck = sqlQuery("SELECT * FROM `lists_touch` WHERE `pid`=? AND `type`=? AND `date`<=?", array($patient->id,'medication',$endDate) );
-        $secondCheck = sqlQuery("SELECT * FROM `lists` WHERE `activity`='1' AND `pid`=? AND `type`=? AND `date`<=?", array($patient->id,'medication',$endDate) );
+        //  (true if an entry in lists_touch(medication token) or an active entry in lists preceding the date-end)
+        //  (In the lists_touch, theres is also a special case entry to support the NewCropRx module
+        //   since that module also manages medications. These special case entries use the prescription_erx
+        //   token.)
+        $firstCheck = sqlQuery("SELECT * FROM `lists_touch` WHERE `pid`=? AND (`type`=? OR type=?) AND `date`<=?", array($patient->id,'medication','prescription_erx',$endDate) );
+        $secondCheck = sqlQuery("SELECT * FROM `lists` WHERE `activity`='1' AND `pid`=? AND `type`=? AND `date`<=?", array($patient->id,'medication',$endDate) );        
         if ( !(empty($firstCheck)) || !(empty($secondCheck)) ) {
           return true;
         }
index 9a5806b..8170a7e 100644 (file)
@@ -1,4 +1,14 @@
 <?php
+// Note there is a mechanism to show whether a category is explicitly set to 
+// 'Nothing' via the getListTouch() and setListTouch() functions that store
+// applicable information in the lists_touch sql table.
+//
+// Do not create a category id with the token 'prescription_erx', since this
+// has been reserved by the NewCropRx Module (it requires use of the lists_touch
+// table to support Meaningful Use Reporting). (if you do this, then you would
+// break the calculations and support for setting the category to 'Nothing')
+//
+
 require_once("{$GLOBALS['srcdir']}/sql.inc");
 
 if (!empty($GLOBALS['ippf_specific'])) {