Assorted minor corrections per code review.
authorRod Roark <rod@sunsetsystems.com>
Tue, 8 Jan 2013 17:27:03 +0000 (8 09:27 -0800)
committerRod Roark <rod@sunsetsystems.com>
Tue, 29 Jan 2013 18:17:09 +0000 (29 10:17 -0800)
interface/forms/procedure_order/new.php
interface/forms/procedure_order/report.php
interface/forms/procedure_order/table.sql
interface/orders/gen_hl7_order.inc.php
interface/orders/list_reports.php
interface/orders/load_compendium.php
interface/orders/orders_results.php
interface/orders/procedure_provider_edit.php
interface/orders/qoe.inc.php
interface/orders/single_order_results.php
sql/database.sql

index c2737ed..a97ae78 100644 (file)
@@ -220,7 +220,7 @@ var gbl_formseq;
 function sel_proc_type(formseq) {
  var f = document.forms[0];
  // if (!f.form_lab_id.value) {
- //  alert('<?php echo addslashes(xl('Please select a procedure provider')); ?>');
+ //  alert('<?php echo xls('Please select a procedure provider'); ?>');
  //  return;
  // }
  gbl_formseq = formseq;
@@ -272,7 +272,7 @@ function addProcLine() {
  var row = table.insertRow(table.rows.length);
  var cell = row.insertCell(0);
  cell.vAlign = 'top';
- cell.innerHTML = "<b><?php echo addslashes(xl('Procedure')) ?> " + (i + 1) + ":</b>";
+ cell.innerHTML = "<b><?php echo xls('Procedure'); ?> " + (i + 1) + ":</b>";
  var cell = row.insertCell(1);
  cell.vAlign = 'top';
  cell.innerHTML =
@@ -479,10 +479,10 @@ generate_form_field(array('data_type'=>1,'field_id'=>'order_status',
   <td width='1%' valign='top'><b><?php echo xl('Procedure') . ' ' . ($i + 1); ?>:</b></td>
   <td valign='top'>
    <input type='text' size='50' name='form_proc_type_desc[<?php echo $i; ?>]'
-    value='<?php echo addslashes($oprow['procedure_name']) ?>'
+    value='<?php echo attr($oprow['procedure_name']) ?>'
     onclick="sel_proc_type(<?php echo $i; ?>)"
     onfocus='this.blur()'
-    title='<?php xl('Click to select the desired procedure','e'); ?>'
+    title='<?php xla('Click to select the desired procedure','e'); ?>'
     style='width:100%;cursor:pointer;cursor:hand' readonly />
    <input type='hidden' name='form_proc_type[<?php echo $i; ?>]' value='<?php echo $ptid ?>' />
    <!-- MSIE innerHTML property for a TABLE element is read-only, so using a DIV here. -->
index 9808d7e..ea4b3f5 100644 (file)
@@ -28,26 +28,26 @@ function procedure_order_report($pid, $encounter, $cols, $id) {
     echo "<table cellpadding='2' cellspacing='0'>\n";
     echo " <tr>\n";
     echo "  <td class='bold'>" . xlt('Order ID') . ": </td>\n";
-    echo "  <td class='text'>" . xlt($data['procedure_order_id']) . "</td>\n";
+    echo "  <td class='text'>" . text($data['procedure_order_id']) . "</td>\n";
     echo " </tr>\n";
     echo " <tr>\n";
     echo "  <td class='bold'>" . xlt('Order Date') . ": </td>\n";
-    echo "  <td class='text'>" . xlt(oeFormatShortDate($data['date_ordered'])) . "</td>\n";
+    echo "  <td class='text'>" . text(oeFormatShortDate($data['date_ordered'])) . "</td>\n";
     echo " </tr>\n";
     echo " <tr>\n";
     echo "  <td class='bold'>" . xlt('Ordered By') . ": </td>\n";
-    echo "  <td class='text'>" . xlt($data['ulname'] . ', ' . $data['ufname'] . ' ' . $data['umname']) . "</td>\n";
+    echo "  <td class='text'>" . text($data['ulname'] . ', ' . $data['ufname'] . ' ' . $data['umname']) . "</td>\n";
     echo " </tr>\n";
     echo " <tr>\n";
     echo "  <td class='bold'>" . xlt('Lab') . ": </td>\n";
-    echo "  <td class='text'>" . xlt($data['labname']) . "</td>\n";
+    echo "  <td class='text'>" . text($data['labname']) . "</td>\n";
     echo " </tr>\n";
     if (!empty($data['procedure_report_id'])) {
       echo " <tr>\n";
       echo "  <td>&nbsp;</td>\n";
       echo "  <td class='bold'><a href='#' onclick=\"" .
         "top.restoreSession();" .
-        "window.open('" . $GLOBALS['web_root'] . "/interface/orders/single_order_results.php?orderid=" . $id . "');" .
+        "window.open('" . $GLOBALS['web_root'] . "/interface/orders/single_order_results.php?orderid=" . text($id) . "');" .
         "return false;" .
         "\">[" . xlt('View Results') . "]</a></td>\n";
       echo " </tr>\n";
dissimilarity index 99%
index 9d59551..ed66447 100644 (file)
@@ -1,15 +1,2 @@
-CREATE TABLE IF NOT EXISTS procedure_order (
-  `procedure_order_id`     bigint(20)   NOT NULL AUTO_INCREMENT,
-  `procedure_type_id`      bigint(20)   NOT NULL            COMMENT 'references procedure_type.procedure_type_id',
-  `provider_id`            bigint(20)   NOT NULL DEFAULT 0  COMMENT 'references users.id',
-  `patient_id`             bigint(20)   NOT NULL            COMMENT 'references patient_data.pid',
-  `encounter_id`           bigint(20)   NOT NULL DEFAULT 0  COMMENT 'references form_encounter.encounter',
-  `date_collected`         datetime     DEFAULT NULL        COMMENT 'time specimen collected',
-  `date_ordered`           date         DEFAULT NULL,
-  `order_priority`         varchar(31)  NOT NULL DEFAULT '',
-  `order_status`           varchar(31)  NOT NULL DEFAULT '' COMMENT 'pending,routed,complete,canceled',
-  `patient_instructions`   text         NOT NULL DEFAULT '',
-  `activity`               tinyint(1)   NOT NULL DEFAULT 1  COMMENT '0 if deleted',
-  PRIMARY KEY (`procedure_order_id`)
-) ENGINE=MyISAM;
-
+-- Tables supporting procedure orders are already defined at installation.
+
index 56e1243..256325b 100644 (file)
@@ -435,17 +435,17 @@ function send_hl7_order($ppid, $out) {
     // Connect to the server and write the file.
     $sftp = new Net_SFTP($remote_host);
     if (!$sftp->login($pprow['login'], $pprow['password'])) {
-      return xl('Login to remote host') . " '$remote_host' " . xl('failed');
+      return xl('Login to this remote host failed') . ": '$remote_host'";
     }
     if (!$sftp->put($filename, $out)) {
-      return xl('Creating file') . " '$filename' " . xl('on remote host failed');
+      return xl('Creating this file on remote host failed') . ": '$filename'";
     }
   }
 
   // TBD: Insert "else if ($protocol == '???') {...}" to support other protocols.
 
   else {
-    return xl('Protocol') . " '$protocol' " . xl('not implemented');
+    return xl('This protocol is not implemented') . ": '$protocol'";
   }
 
   // Falling through to here indicates success.
index 1b60d44..a0dcf27 100644 (file)
@@ -19,6 +19,9 @@
 * @author    Rod Roark <rod@sunsetsystems.com>
 */
 
+$sanitize_all_escapes = true;
+$fake_register_globals = false;
+
 require_once("../globals.php");
 require_once("$srcdir/acl.inc");
 require_once("$srcdir/formdata.inc.php");
@@ -26,6 +29,13 @@ require_once("$srcdir/options.inc.php");
 require_once("$srcdir/formatting.inc.php");
 require_once("./receive_hl7_results.inc.php");
 
+/**
+ * Get a list item title, translating if required.
+ *
+ * @param  string  $listid  List identifier.
+ * @param  string  $value   List item identifier.
+ * @return string  The item's title.
+ */
 function getListItem($listid, $value) {
   $lrow = sqlQuery("SELECT title FROM list_options " .
     "WHERE list_id = ? AND option_id = ?",
@@ -35,6 +45,12 @@ function getListItem($listid, $value) {
   return $tmp;
 }
 
+/**
+ * Adapt text to be suitable as the contents of a table cell.
+ *
+ * @param  string  $s  Input text.
+ * @return string  Output text.
+ */
 function myCellText($s) {
   if ($s === '') return '&nbsp;';
   return text($s);
@@ -42,14 +58,14 @@ function myCellText($s) {
 
 // Check authorization.
 $thisauth = acl_check('patients', 'med');
-if (!$thisauth) die(xl('Not authorized'));
+if (!$thisauth) die(xlt('Not authorized'));
 ?>
 <html>
 <head>
 <?php html_header_show();?>
 
 <link rel="stylesheet" href='<?php  echo $css_header ?>' type='text/css'>
-<title><?php  xl('Procedure Orders and Reports','e'); ?></title>
+<title><?php echo xlt('Procedure Orders and Reports'); ?></title>
 
 <style>
 
@@ -94,12 +110,11 @@ if ($errmsg) {
   echo "<font color='red'>" . text($errmsg) . "</font><br />\n";
 }
 
-$form_from_date = formData('form_from_date','P',true);
-$form_to_date   = formData('form_to_date','P',true);
-if (empty($form_to_date)) $form_to_date = $form_from_date;
+$form_from_date = empty($_POST['form_from_date']) ? '' : trim($_POST['form_from_date']);
+$form_to_date = empty($_POST['form_to_date']) ? '' : trim($_POST['form_to_date']);
+// if (empty($form_to_date)) $form_to_date = $form_from_date;
 
-$form_reviewed = 0 + formData('form_reviewed');
-if (!$form_reviewed) $form_reviewed = 3;
+$form_reviewed = empty($_POST['form_reviewed']) ? 3 : intval($_POST['form_reviewed']);
 
 $form_patient = !empty($_POST['form_patient']);
 ?>
@@ -107,32 +122,32 @@ $form_patient = !empty($_POST['form_patient']);
 <table>
  <tr>
   <td class='text'>
-   &nbsp;<?php xl('From','e'); ?>:
+   &nbsp;<?php echo xlt('From'); ?>:
    <input type='text' size='10' name='form_from_date' id='form_from_date'
-    value='<?php echo $form_from_date ?>'
-    title='<?php xl('yyyy-mm-dd','e'); ?>'
+    value='<?php echo attr($form_from_date); ?>'
+    title='<?php echo xla('yyyy-mm-dd'); ?>'
     onkeyup='datekeyup(this,mypcc)' onblur='dateblur(this,mypcc)' />
    <img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22'
     id='img_from_date' border='0' alt='[?]' style='cursor:pointer'
-    title='<?php xl('Click here to choose a date','e'); ?>' />
+    title='<?php echo xla('Click here to choose a date'); ?>' />
 
-   &nbsp;<?php xl('To','e'); ?>:
+   &nbsp;<?php echo xlt('To'); ?>:
    <input type='text' size='10' name='form_to_date' id='form_to_date'
-    value='<?php echo $form_to_date ?>'
-    title='<?php xl('yyyy-mm-dd','e'); ?>'
+    value='<?php echo attr($form_to_date); ?>'
+    title='<?php echo xla('yyyy-mm-dd'); ?>'
     onkeyup='datekeyup(this,mypcc)' onblur='dateblur(this,mypcc)' />
    <img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22'
     id='img_to_date' border='0' alt='[?]' style='cursor:pointer'
-    title='<?php xl('Click here to choose a date','e'); ?>' />
+    title='<?php echo xla('Click here to choose a date'); ?>' />
 
    &nbsp;
    <select name='form_reviewed'>
 <?php
-foreach (array('1' => xlt('All'), '2' => xlt('Reviewed'), '3' => xlt('Unreviewed'),
-  '4' => xlt('Unreceived')) as $key => $value) {
+foreach (array('1' => xl('All'), '2' => xl('Reviewed'), '3' => xl('Unreviewed'),
+  '4' => xl('Unreceived')) as $key => $value) {
   echo "<option value='$key'";
   if ($key == $form_reviewed) echo " selected";
-  echo ">$value</option>\n";
+  echo ">" . text($value) . "</option>\n";
 }
 ?>
    </select>
@@ -142,7 +157,7 @@ foreach (array('1' => xlt('All'), '2' => xlt('Reviewed'), '3' => xlt('Unreviewed
     <?php if ($form_patient) echo 'checked '; ?>/>Current Patient Only
 
    &nbsp;
-   <input type='submit' name='form_refresh' value=<?php xl('Refresh','e'); ?>>
+   <input type='submit' name='form_refresh' value=<?php echo xla('Refresh'); ?>>
   </td>
  </tr>
 </table>
@@ -183,15 +198,20 @@ $orderby =
   "pc.procedure_order_seq, pr.procedure_report_id";
 
 $where = "1 = 1";
+$sqlBindArray = array();
+
 if (!empty($form_from_date)) {
-  $where .= " AND po.date_ordered >= '$form_from_date'";
+  $where .= " AND po.date_ordered >= ?";
+  $sqlBindArray[] = $form_from_date;
 }
 if (!empty($form_to_date)) {
-  $where .= " AND po.date_ordered <= '$form_to_date'";
+  $where .= " AND po.date_ordered <= ?";
+  $sqlBindArray[] = $form_to_date;
 }
 
 if ($form_patient) {
-  $where .= " AND po.patient_id = '$pid'";
+  $where .= " AND po.patient_id = ?";
+  $sqlBindArray[] = $pid;
 }
 
 if ($form_reviewed == 2) {
@@ -212,7 +232,7 @@ $query = "SELECT po.patient_id, " .
   "WHERE $where " .
   "ORDER BY pd.lname, pd.fname, pd.mname, po.patient_id, $orderby";
 
-$res = sqlStatement($query);
+$res = sqlStatement($query, $sqlBindArray);
 
 $lastptid = -1;
 $lastpoid = -1;
index a0d3dde..5132d17 100644 (file)
@@ -125,7 +125,7 @@ if ($form_step == 0) {
 
   echo " <tr>\n";
   echo "  <td nowrap>&nbsp;</td>\n";
-  echo "  <td><input type='submit' value='" . xlt('Submit') . "' /></td>\n";
+  echo "  <td><input type='submit' value='" . xla('Submit') . "' /></td>\n";
   echo " </tr>\n";
 }
 
index d0836a0..f701935 100644 (file)
@@ -519,8 +519,8 @@ while ($row = sqlFetchArray($res)) {
           $tmp = $row['lname'];
           if ($row['fname'] || $row['mname'])
             $tmp .= ', ' . $row['fname'] . ' ' . $row['mname'];
-          echo "  <td>" . htmlentities($tmp) . "</td>\n";
-          echo "  <td>" . htmlentities($row['pubpid']) . "</td>\n";
+          echo "  <td>" . text($tmp) . "</td>\n";
+          echo "  <td>" . text($row['pubpid']) . "</td>\n";
         }
         else {
           echo "  <td colspan='2' style='background-color:transparent'>&nbsp;</td>";
@@ -533,7 +533,7 @@ while ($row = sqlFetchArray($res)) {
         else {
           echo "  <td style='background-color:transparent'>&nbsp;</td>";
         }
-        echo "  <td>" . htmlentities($row['procedure_name']) . "</td>\n";
+        echo "  <td>" . text($row['procedure_name']) . "</td>\n";
       }
     }
     else {
index 4b9d513..58576cc 100644 (file)
@@ -175,13 +175,13 @@ if ($ppid) {
    <select name='form_DorP' title='<?php echo xla('MSH-11'); ?>'>
 <?php
 foreach(array(
-  'D' => 'Debugging',
-  'P' => 'Production',
+  'D' => xl('Debugging'),
+  'P' => xl('Production'),
   ) as $key => $value)
 {
   echo "    <option value='" . attr($key) . "'";
   if ($key == $row['DorP']) echo " selected";
-  echo ">" . xlt($value) . "</option>\n";
+  echo ">" . text($value) . "</option>\n";
 }
 ?>
    </select>
@@ -195,13 +195,13 @@ foreach(array(
 <?php
 foreach(array(
   // Add to this list as more protocols are supported.
-  'DL' => 'Download',
-  'SFTP' => 'SFTP',
+  'DL' => xl('Download'),
+  'SFTP' => xl('SFTP'),
   ) as $key => $value)
 {
   echo "    <option value='" . attr($key) . "'";
   if ($key == $row['protocol']) echo " selected";
-  echo ">" . xlt($value) . "</option>\n";
+  echo ">" . text($value) . "</option>\n";
 }
 ?>
    </select>
index 6fb629c..3a8e593 100644 (file)
@@ -118,7 +118,7 @@ function generate_qoe_html($ptid=0, $orderid=0, $dbseq=0, $formseq=0) {
         $s .= ">$i</option>";
       }
       $s .= "</select>";
-      $s .= " " . xl('weeks') . " &nbsp;";
+      $s .= " " . xlt('weeks') . " &nbsp;";
       $s .= "<select name='G2_$qfieldid'>";
       $s .= "<option value=''></option>";
       for ($i = 0; $i <= 6; ++$i) {
@@ -127,7 +127,7 @@ function generate_qoe_html($ptid=0, $orderid=0, $dbseq=0, $formseq=0) {
         $s .= ">$i</option>";
       }
       $s .= "</select>";
-      $s .= " " . xl('days');
+      $s .= " " . xlt('days');
     }
 
     // Possible alternative code instead of radio buttons and checkboxes.
index ed0360b..94ca84d 100644 (file)
@@ -19,6 +19,9 @@
 * @author    Rod Roark <rod@sunsetsystems.com>
 */
 
+$sanitize_all_escapes = true;
+$fake_register_globals = false;
+
 require_once("../globals.php");
 require_once("$srcdir/acl.inc");
 require_once("$srcdir/formdata.inc.php");
@@ -92,8 +95,8 @@ $orow = sqlQuery("SELECT " .
 <head>
 <?php html_header_show(); ?>
 
-<link rel="stylesheet" href='<?php  echo $css_header ?>' type='text/css'>
-<title><?php  xl('Order Results','e'); ?></title>
+<link rel="stylesheet" href='<?php echo $css_header; ?>' type='text/css'>
+<title><?php echo xlt('Order Results'); ?></title>
 
 <style>
 
@@ -233,7 +236,7 @@ while ($row = sqlFetchArray($res)) {
     $sign_list .= $report_id;
   }
 
-  $report_noteid ='&nbsp;';
+  $report_noteid ='';
   if (!empty($row['report_notes'])) {
     $report_noteid = 1 + storeNote($row['report_notes']);
   }
@@ -266,7 +269,7 @@ while ($row = sqlFetchArray($res)) {
     $result_status    = empty($rrow['result_status'   ]) ? '' : $rrow['result_status'];
 
     $result_comments = trim($result_comments);
-    $result_noteid = '&nbsp;';
+    $result_noteid = '';
     if (!empty($result_comments)) {
       $result_noteid = 1 + storeNote($result_comments);
     }
@@ -280,7 +283,7 @@ while ($row = sqlFetchArray($res)) {
 
     if ($lastpcid != $order_seq) {
       $lastprid = -1; // force report fields on first line of each procedure
-      echo "  <td>" . htmlentities("$procedure_code: $procedure_name") . "</td>\n";
+      echo "  <td>" . text("$procedure_code: $procedure_name") . "</td>\n";
     }
     else {
       echo "  <td style='background-color:transparent'>&nbsp;</td>";
@@ -304,7 +307,7 @@ while ($row = sqlFetchArray($res)) {
       echo "</td>\n";
 
       echo "  <td align='center'>";
-      echo $report_noteid;
+      echo myCellText($report_noteid);
       echo "</td>\n";
     }
     else {
@@ -331,7 +334,7 @@ while ($row = sqlFetchArray($res)) {
       echo myCellText($result_units);
       echo "</td>\n";
       echo "  <td align='center'>";
-      echo $result_noteid;
+      echo myCellText($result_noteid);
       echo "</td>\n";
     }
     else {
index 280f472..b2642b9 100644 (file)
@@ -5405,7 +5405,7 @@ CREATE TABLE `procedure_order` (
   `lab_id`                 bigint(20)   NOT NULL DEFAULT 0  COMMENT 'references procedure_providers.ppid',
   `specimen_type`          varchar(31)  NOT NULL DEFAULT '' COMMENT 'from the Specimen_Type list',
   `specimen_location`      varchar(31)  NOT NULL DEFAULT '' COMMENT 'from the Specimen_Location list',
-  `specimen_volume`        varchar(30)  NOT NULL DEFAULT '' COMMENT 'from a text input field';
+  `specimen_volume`        varchar(30)  NOT NULL DEFAULT '' COMMENT 'from a text input field',
   PRIMARY KEY (`procedure_order_id`),
   KEY datepid (date_ordered, patient_id),
   KEY `patient_id` (`patient_id`)