Separated Vitals and Body Fat form into Athletic Vitals and Athletic Body Fat.
[openemr.git] / sites / default / LBF / LBFathv.plugin.php
blob9eefa4c2566ee63dfa93197870fceda6dd835512
1 <?php
2 // Copyright (C) 2010-2011 Rod Roark <rod@sunsetsystems.com>
3 //
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
9 // This provides enhancement functions for the LBFathv visit form,
10 // "Vitals". It is invoked by interface/forms/LBF/new.php.
12 // The purpose of this function is to create JavaScript for the <head>
13 // section of the page. This in turn defines desired javaScript
14 // functions.
16 function LBFathv_javascript() {
17 global $formid;
19 echo "// Compute Body Mass Index.
20 function athvComputeBMI() {
21 var f = document.forms[0];
22 var bmi = 0;
23 var stat = '';
24 var height = parseFloat(f.form_height_in.value);
25 var weight = parseFloat(f.form_weight_lbs.value);
26 if(isNaN(height) || isNaN(weight) || height <= 0 || weight <= 0) {
27 bmi = '';
29 else {
30 bmi = weight / height / height * 703;
31 bmi = bmi.toFixed(1);
32 if (bmi > 42 ) stat = '" . xl('Obesity III') . "';
33 else if (bmi > 34 ) stat = '" . xl('Obesity II' ) . "';
34 else if (bmi > 30 ) stat = '" . xl('Obesity I' ) . "';
35 else if (bmi > 27 ) stat = '" . xl('Overweight' ) . "';
36 else if (bmi > 18.5) stat = '" . xl('Normal' ) . "';
37 else stat = '" . xl('Underweight') . "';
39 if (f.form_bmi) f.form_bmi.value = bmi;
40 if (f.form_bmi_status) f.form_bmi_status.value = stat;
44 echo "// Height in cm has changed.
45 function athv_height_cm_changed() {
46 var f = document.forms[0];
47 var cm = f.form_height_cm.value;
48 if (cm == parseFloat(cm)) {
49 inch = cm / 2.54;
50 f.form_height_in.value = inch.toFixed(2);
52 else {
53 f.form_height_in.value = '';
55 athvComputeBMI();
59 echo "// Height in inches has changed.
60 function athv_height_in_changed() {
61 var f = document.forms[0];
62 var inch = f.form_height_in.value;
63 if (inch == parseFloat(inch)) {
64 cm = inch * 2.54;
65 f.form_height_cm.value = cm.toFixed(2);
67 else {
68 f.form_height_cm.value = '';
70 athvComputeBMI();
74 echo "// Weight in kg has changed.
75 function athv_weight_kg_changed() {
76 var f = document.forms[0];
77 var kg = f.form_weight_kg.value;
78 if (kg == parseFloat(kg)) {
79 lbs = kg / 0.45359237;
80 f.form_weight_lbs.value = lbs.toFixed(2);
82 else {
83 f.form_weight_lbs.value = '';
85 athvComputeBMI();
89 echo "// Weight in lbs has changed.
90 function athv_weight_lbs_changed() {
91 var f = document.forms[0];
92 var lbs = f.form_weight_lbs.value;
93 if (lbs == parseFloat(lbs)) {
94 kg = lbs * 0.45359237;
95 f.form_weight_kg.value = kg.toFixed(2);
97 else {
98 f.form_weight_kg.value = '';
100 athvComputeBMI();
104 echo "// Temperature in centigrade has changed.
105 function athv_temperature_c_changed() {
106 var f = document.forms[0];
107 var tc = f.form_temperature_c.value;
108 if (tc == parseFloat(tc)) {
109 tf = tc * 9 / 5 + 32;
110 f.form_temperature_f.value = tf.toFixed(2);
112 else {
113 f.form_temperature_f.value = '';
118 echo "// Temperature in farenheit has changed.
119 function athv_temperature_f_changed() {
120 var f = document.forms[0];
121 var tf = f.form_temperature_f.value;
122 if (tf == parseFloat(tf)) {
123 tc = (tf - 32) * 5 / 9;
124 f.form_temperature_c.value = tc.toFixed(2);
126 else {
127 f.form_temperature_c.value = '';
134 // The purpose of this function is to create JavaScript that is run
135 // once when the page is loaded.
137 function LBFathv_javascript_onload() {
139 echo "
140 var f = document.forms[0];
141 if (f.form_weight_lbs && f.form_weight_kg) {
142 // Set onchange handlers to convert kg to lbs and vice versa.
143 f.form_weight_lbs.onchange = function () { athv_weight_lbs_changed(); };
144 f.form_weight_kg.onchange = function () { athv_weight_kg_changed() ; };
146 if (f.form_height_in && f.form_height_cm) {
147 // Set onchange handlers to convert centimeters to inches and vice versa.
148 f.form_height_in.onchange = function () { athv_height_in_changed(); };
149 f.form_height_cm.onchange = function () { athv_height_cm_changed(); };
151 if (f.form_temperature_f && f.form_temperature_c) {
152 // Set onchange handlers to convert centigrade to farenheit and vice versa.
153 f.form_temperature_f.onchange = function () { athv_temperature_f_changed(); };
154 f.form_temperature_c.onchange = function () { athv_temperature_c_changed(); };
156 // Set computed fields to be readonly.
157 if (f.form_bmi) {
158 f.form_bmi.readOnly = true;
160 if (f.form_bmi_status) {
161 f.form_bmi_status.readOnly = true;