Support for using pounds and ounces on the vitals form.
authorKevin Yeh <kevinyeh@alum.mit.edu>
Fri, 2 Nov 2012 15:15:59 +0000 (2 11:15 -0400)
committerunknown <kevinyeh@alum.mit.edu>
Fri, 9 Nov 2012 14:19:07 +0000 (9 09:19 -0500)
Introduced global 'us_weight_format' to choose display type. (decimal pounds or pounds and ounces)
Added short hand using '#' for vitals input to denote pounds and ounces

interface/forms/vitals/FormVitals.class.php
interface/forms/vitals/report.php
interface/forms/vitals/templates/vitals/general_new.html
library/globals.inc.php

index 6beb930..733e90e 100644 (file)
@@ -159,6 +159,21 @@ class FormVitals extends ORDataObject {
                        $this->weight = $w;
                }
        }
+        function display_weight($pounds)
+        {
+            if($pounds!=0)
+            {
+                if($GLOBALS['us_weight_format']==2)
+                {
+                    $pounds_int=floor($pounds);
+                    return $pounds_int." ".xl('lb') ." " .round(($pounds-$pounds_int)*16)." ".xl('oz');
+                }
+                else
+                {
+                    return $pounds;
+                }
+            }
+        }
        function get_height() {
                return $this->height;
        }
index a36541c..873bf13 100644 (file)
@@ -3,6 +3,22 @@ include_once("../../globals.php");
 include_once($GLOBALS["srcdir"]."/api.inc");
 include_once ($GLOBALS['fileroot']."/library/patient.inc");
 
+
+function US_weight($pounds,$mode=1)
+{
+
+    if($mode==1)
+    {
+        return $pounds . " " . xl('lb') ;
+    }
+    else
+    {
+        $pounds_int=floor($pounds);
+        $ounces=round(($pounds-$pounds_int)*16);
+        return $pounds_int . " " . xl('lb') . " " . $ounces . " " . xl('oz');
+    }
+}
+
 function vitals_report( $pid, $encounter, $cols, $id, $print = true) {
   $count = 0;
   $data = formFetch("form_vitals", $id);
@@ -57,19 +73,22 @@ function vitals_report( $pid, $encounter, $cols, $id, $print = true) {
       }
       elseif ($key == "Weight") {
         $convValue = number_format($value*0.45359237,2);
+        $vitals.="<td><span class=bold>" . xl($key) . ": </span><span class=text>";
         // show appropriate units
+        $mode=$GLOBALS['us_weight_format'];
         if ($GLOBALS['units_of_measurement'] == 2) {
-          $vitals .= "<td><span class=bold>" . xl($key) . ": </span><span class=text>" . $convValue . " " . xl('kg') . " (" . $value . " " . xl('lb')  . ")</span></td>";
+          $vitals .=  $convValue . " " . xl('kg') . " (" . US_weight($value,$mode) . ")";
         }
         elseif ($GLOBALS['units_of_measurement'] == 3) {
-          $vitals .= "<td><span class=bold>" . xl($key) . ": </span><span class=text>" . $value . " " . xl('lb') . "</span></td>";
+          $vitals .=  US_weight($value,$mode) ;
         }
         elseif ($GLOBALS['units_of_measurement'] == 4) {
-          $vitals .= "<td><span class=bold>" . xl($key) . ": </span><span class=text>" . $convValue . " " . xl('kg') . "</span></td>";
+          $vitals .= $convValue . " " . xl('kg') ;
         }
         else { // = 1 or not set
-          $vitals .= "<td><span class=bold>" . xl($key) . ": </span><span class=text>" . $value . " " . xl('lb') . " (" . $convValue . " " . xl('kg')  . ")</span></td>";
+          $vitals .= US_weight($value,$mode) . " (" . $convValue . " " . xl('kg')  . ")";
         }
+        $vitals.= "</span></td>";
       }
       elseif ($key == "Height" || $key == "Waist Circ"  || $key == "Head Circ") {
         $convValue = number_format($value*2.54,2);
index 25c661f..5ef75f3 100644 (file)
@@ -82,10 +82,10 @@ td,th {
                {if $units_of_measurement == 2}<td class="unfocus graph" id="weight">{else}<td class="graph" id="weight">{/if}{xl t="Weight"}</td>
                {if $units_of_measurement == 2}<td class="unfocus">{else}<td>{/if}{xl t="lbs"}</td>
                {if $units_of_measurement == 2}<td class="valuesunfocus">{else}<td class='currentvalues'>{/if}
-                <input type="text" size='5' name='weight' id='weight_input' value="{if $vitals->get_weight() != 0}{$vitals->get_weight()}{/if}" onChange="convLbtoKg('weight_input');"/>
+                <input type="text" size='5' name='weight' id='weight_input' value="{if $vitals->get_weight() != 0}{$vitals->get_weight()}{/if}" onChange="convLbtoKg('weight_input');" title='{xl t="Decimal pounds or pounds and ounces separated by #(e.g. 5#4)"}'/>
                 </td>          
        {foreach item=result from=$results}
-               <td  class='historicalvalues'>{if $result.weight != 0}{$result.weight}{/if}</td>
+               <td  class='historicalvalues'>{$vitals->display_weight($result.weight)}</td>
        {/foreach}</tr>
        
        {if $units_of_measurement == 3}<tr class="hide">{else}<tr>{/if}
@@ -313,7 +313,15 @@ function ShowGrowthchart(doPDF) {
 
 function convLbtoKg(name) {
     var lb = $("#"+name).val();
-
+    var hash_loc=lb.indexOf("#");
+    if(hash_loc>=0)
+    {
+        var pounds=lb.substr(0,hash_loc);
+        var ounces=lb.substr(hash_loc+1);
+        var num=parseInt(pounds)+parseInt(ounces)/16;
+        lb=num;
+        $("#"+name).val(lb);
+    }
     if (lb == "0") {
         $("#"+name+"_metric").val("0");
     }          
index 0e198ac..2d22b05 100644 (file)
@@ -89,6 +89,7 @@ $USER_SPECIFIC_GLOBALS = array('default_top_pane',
                                'gbl_pt_list_page_size',
                                'gbl_pt_list_new_window',
                                'units_of_measurement',
+                               'us_weight_format',
                                'date_display_format',
                                'time_display_format',
                                'event_color',
@@ -350,7 +351,17 @@ $GLOBALS_METADATA = array(
       '1',                              // default = Both/US
       xl('Applies to the Vitals form and Growth Chart')
     ),
-
+    
+    'us_weight_format' => array(
+        xl('Display Format for US Weights'),
+        array(
+            '1'=>xl('Show pounds as decimal value'),
+            '2'=>xl('Show pounds and ounces')
+        ),
+        '1',
+        xl('Applies to Vitals form')
+    )
+      ,
     'disable_deprecated_metrics_form' => array(
       xl('Disable Old Metric Vitals Form'),
       'bool',                           // data type