Feat openemr fix 7480 7494 email prescription (#7495)
[openemr.git] / interface / forms / observation / new.php
blob5b2a1e603acc95792fd7fd6ab9802977c2e11a1a
1 <?php
3 /**
4 * Functional cognitive status form.
6 * @package OpenEMR
7 * @link http://www.open-emr.org
8 * @author Jacob T Paul <jacob@zhservices.com>
9 * @author Vinish K <vinish@zhservices.com>
10 * @author Brady Miller <brady.g.miller@gmail.com>
11 * @copyright Copyright (c) 2015 Z&H Consultancy Services Private Limited <sam@zhservices.com>
12 * @copyright Copyright (c) 2017-2019 Brady Miller <brady.g.miller@gmail.com>
13 * @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
16 require_once(__DIR__ . "/../../globals.php");
17 require_once("$srcdir/api.inc.php");
18 require_once("$srcdir/patient.inc.php");
19 require_once("$srcdir/options.inc.php");
20 require_once($GLOBALS['fileroot'] . '/custom/code_types.inc.php');
22 use OpenEMR\Common\Csrf\CsrfUtils;
23 use OpenEMR\Common\Forms\ReasonStatusCodes;
24 use OpenEMR\Core\Header;
26 $returnurl = 'encounter_top.php';
27 $formid = (int)(isset($_GET['id']) ? $_GET['id'] : 0);
29 if ($formid) {
30 $sql = "SELECT * FROM `form_observation` WHERE id=? AND pid = ? AND encounter = ?";
31 $res = sqlStatement($sql, array($formid, $_SESSION["pid"], $_SESSION["encounter"]));
33 $all = [];
34 for ($iter = 0; $row = sqlFetchArray($res); $iter++) {
35 $all[$iter] = $row;
37 $check_res = $all;
40 $check_res = $formid ? $check_res : array();
42 $reasonCodeStatii = ReasonStatusCodes::getCodesWithDescriptions();
43 $reasonCodeStatii[ReasonStatusCodes::NONE]['description'] = xl("Select a status code");
45 $ob_types = [];
46 $res = sqlStatement("SELECT `option_id`, `title` FROM `list_options` WHERE `list_id` = 'Observation_Types' ORDER BY `seq`");
47 while ($type = sqlFetchArray($res)) {
48 $ob_types[] = $type;
51 <html>
52 <head>
53 <title><?php echo xlt("Observation"); ?></title>
55 <?php Header::setupHeader(['datetime-picker', 'reason-code-widget']); ?>
57 <script src="<?php echo attr($GLOBALS['webroot']); ?>/interface/forms/observation/observation.js?v=<?php echo attr($GLOBALS['v_js_includes']); ?>" type="text/javascript"></script>
58 <script>
59 window.addEventListener('DOMContentLoaded', function () {
60 window.observationForm.init(<?php echo js_url($GLOBALS['webroot']); ?>, <?php echo js_url(collect_codetypes("problem", "csv")) ?>);
61 });
62 $(function () {
63 // special case to deal with static and dynamic datepicker items
64 $(document).on('mouseover', '.datepicker', function () {
65 $(this).datetimepicker({
66 <?php $datetimepicker_timepicker = true; ?>
67 <?php $datetimepicker_showseconds = false; ?>
68 <?php $datetimepicker_formatInput = false; ?>
69 <?php require($GLOBALS['srcdir'] . '/js/xl/jquery-datetimepicker-2-5-4.js.php'); ?>
70 <?php // can add any additional javascript settings to datetimepicker here; need to prepend first setting with a comma ?>
71 });
72 });
73 });
74 </script>
75 </head>
76 <body>
77 <div class="container-xl mt-3">
78 <div class="row">
79 <div class="col-12">
80 <h2><?php echo xlt('Observation'); ?></h2>
81 <form method='post' name='my_form' action='<?php echo $rootdir; ?>/forms/observation/save.php?id=<?php echo attr_url($formid); ?>'>
82 <input type="hidden" name="csrf_token_form" value="<?php echo attr(CsrfUtils::collectCsrfToken()); ?>" />
83 <fieldset>
84 <legend><?php echo xlt('Enter Details'); ?></legend>
85 <div class="container-xl">
86 <?php
87 if (!empty($check_res)) {
88 foreach ($check_res as $key => $obj) { ?>
89 <div class="tb_row" id="tb_row_<?php echo attr($key) + 1; ?>">
90 <div class="form-row">
91 <div class="forms col-md-2">
92 <label for="code_<?php echo attr($key) + 1; ?>" class="h5"><?php echo xlt('Code'); ?>:</label>
93 <input type="text" id="code_<?php echo attr($key) + 1; ?>" name="code[]" class="form-control code" value="<?php echo attr($obj["code"]); ?>" onclick='sel_code(<?php echo attr_js($GLOBALS['webroot']); ?>, this.parentElement.parentElement.parentElement.id);' />
94 <span id="displaytext_<?php echo attr($key) + 1; ?>" class="displaytext help-block"></span>
95 <input type="hidden" id="description_<?php echo attr($key) + 1; ?>" name="description[]" class="description" value="<?php echo attr($obj["description"]); ?>" />
96 <input type="hidden" id="code_type_<?php echo attr($key) + 1; ?>" name="code_type[]" class="code_type" value="<?php echo attr($obj["code_type"]); ?>" />
97 <input type="hidden" id="table_code_<?php echo attr($key) + 1; ?>" name="table_code[]" class="table_code" value="<?php echo attr($obj["table_code"]); ?>" />
98 </div>
99 <div class="forms col-md-2">
100 <label for="ob_type_<?php echo attr($key) + 1; ?>" class="h5"><?php echo xlt('Type'); ?>:</label>
101 <select name="ob_type[]" id="ob_type_<?php echo attr($key) + 1; ?>" class="ob_type form-control">
102 <option value=""><?php echo xlt('Select Type'); ?></option>
103 <?php foreach ($ob_types as $type) {
104 $selected = '';
105 if ($obj["ob_type"] == $type['option_id']) {
106 $selected = 'selected';
109 <option <?php echo attr($selected); ?> value="<?php echo attr($type['option_id']); ?>"><?php echo text($type['title']); ?></option>
110 <?php } ?>
111 </select>
112 </div>
113 <div class="forms col-md-1">
114 <?php
115 $style = 'display: block;';
116 if (($obj["code"] == '21612-7' || $obj["code"] == '8661-1')) {
117 $style = 'display: block;';
118 } elseif (!empty($obj["code"]) && $obj["code"] == 'SS003') {
119 $style = 'display: none;';
122 <label id="ob_value_head_<?php echo attr($key) + 1; ?>" class="ob_value_head h5"><?php echo xlt('Value'); ?>:</label>
123 <input type="text" name="ob_value[]" id="ob_value_<?php echo attr($key) + 1; ?>" style="<?php echo $style; ?>" class="ob_value form-control" value="<?php echo attr($obj["ob_value"]); ?>" />
124 <select name="ob_value_phin[]" id="ob_value_phin_<?php echo attr($key) + 1; ?>" class="ob_value_phin" <?php echo ($obj["code"] != 'SS003') ? "style='display: none;'" : ""; ?>>
125 <option value="261QE0002X" <?php echo ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QE0002X') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Emergency Care'); ?></option>
126 <option value="261QM2500X" <?php echo ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QM2500X') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Medical Specialty'); ?></option>
127 <option value="261QP2300X" <?php echo ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QP2300X') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Primary Care'); ?></option>
128 <option value="261QU0200X" <?php echo ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QU0200X') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Urgent Care'); ?></option>
129 </select>
130 </div>
131 <div class="forms col-md-1">
132 <?php
133 $style = 'display: block';
134 if (($obj["code"] == 'SS003') || $obj["code"] == '8661-1') {
135 $style = 'display: none;';
136 } elseif ($obj["code"] == '21612-7') {
137 $style = 'display: block';
140 <label id="ob_unit_head_<?php echo attr($key) + 1; ?>" class="ob_unit_head h5" <?php echo (!$obj["ob_value"]) ? 'style="display: block;"' : ''; ?>><?php echo xlt('Units'); ?>:</label>
141 <?php if ($obj["code"] == '21612-7') { ?>
142 <select name="ob_unit[]" id="ob_unit_<?php echo attr($key) + 1; ?>" class="ob_unit">
143 <option value="d" <?php echo ($obj["ob_unit"] == 'd') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Day'); ?></option>
144 <option value="mo" <?php echo ($obj["ob_unit"] == 'mo') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Month'); ?></option>
145 <option value="UNK" <?php echo ($obj["ob_unit"] == 'UNK') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Unknown'); ?></option>
146 <option value="wk" <?php echo ($obj["ob_unit"] == 'wk') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Week'); ?></option>
147 <option value="a" <?php echo ($obj["ob_unit"] == 'a') ? 'selected = "selected"' : ''; ?>><?php echo xlt('Year'); ?></option>
148 </select>
149 <?php } else { ?>
150 <input type="text" name="ob_unit[]" id="ob_unit_<?php echo attr($key) + 1; ?>" class="ob_unit form-control" value="<?php echo attr($obj["ob_unit"]); ?>" />
151 <?php } ?>
152 </div>
153 <div class="forms col-md-2">
154 <label for="code_date_<?php echo attr($key) + 1; ?>" class="h5"><?php echo xlt('Date'); ?>:</label>
155 <input type='text' id="code_date_<?php echo attr($key) + 1; ?>" name='code_date[]' class="form-control code_date datepicker" value='<?php echo attr($obj["date"]); ?>' title='<?php echo xla('yyyy-mm-dd HH:MM Date of service'); ?>' />
156 </div>
157 <div class="forms col-md-2">
158 <label for="code_date_end_<?php echo attr($key) + 1; ?>" class="h5"><?php echo xlt('End Date'); ?>:</label>
159 <input type='text' id="code_date_end_<?php echo attr($key) + 1; ?>" name='code_date_end[]' class="form-control code_date datepicker" value='<?php echo attr($obj["date_end"]); ?>' title='<?php echo xla('yyyy-mm-dd HH:MM End Date of service'); ?>' />
160 </div>
161 <div class="forms col-md-2">
162 <label for="comments_<?php echo attr($key) + 1; ?>" class="h5"><?php echo xlt('Comments'); ?>:</label>
163 <textarea name="comments[]" id="comments_<?php echo attr($key) + 1; ?>" class="form-control comments" rows="3"><?php echo text($obj["observation"]); ?></textarea>
164 </div>
165 <div class="forms col-md-2">
166 <?php include "templates/observation_actions.php"; ?>
167 </div>
168 </div>
169 <?php include "templates/observation_reason_row.php"; ?>
170 </div>
171 <?php
173 } else {
174 $key = 1;
176 <div class="tb_row" id="tb_row_1">
177 <div class="form-row">
178 <div class="forms col-md-2">
179 <label for="code_1" class="h5"><?php echo xlt('Code'); ?>:</label>
180 <input type="text" id="code_1" name="code[]" class="form-control code" value="<?php echo attr($obj["code"] ?? ''); ?>" onclick='sel_code(<?php echo attr_js($GLOBALS['webroot']); ?>, this.parentElement.parentElement.parentElement.id);' />
181 <span id="displaytext_1" class="displaytext help-block"></span>
182 <input type="hidden" id="description_1" name="description[]" class="description" value="<?php echo attr($obj["description"] ?? ''); ?>" />
183 <input type="hidden" id="code_type_1" name="code_type[]" class="code_type" value="<?php echo attr($obj["code_type"] ?? ''); ?>" />
184 <input type="hidden" id="table_code_1" name="table_code[]" class="table_code" value="<?php echo attr($obj["table_code"] ?? ''); ?>" />
185 </div>
186 <div class="forms col-md-2">
187 <label for="ob_type_1" class="h5"><?php echo xlt('Type'); ?>:</label>
188 <select name="ob_type[]" id="ob_type_1" class="ob_type form-control">
189 <option value=""><?php echo xlt('Select Type'); ?></option>
190 <?php foreach ($ob_types as $type) {
191 $selected = '';
192 if ($obj["ob_type"] ?? null == $type['option_id']) {
193 $selected = 'selected';
196 <option <?php echo attr($selected); ?> value="<?php echo attr($type['option_id']); ?>"><?php echo text($type['title']); ?></option>
197 <?php } ?>
198 </select>
199 </div>
200 <div class="forms col-md-1">
201 <?php
202 $style = 'display: block';
203 if (!empty($obj)) {
204 if ($obj["code"] == '21612-7' || $obj["code"] == '8661-1') {
205 $style = 'display: block;';
206 } elseif ($obj["code"] == 'SS003') {
207 $style = 'display: none;';
211 <label id="ob_value_head_1" class="ob_value_head h5"><?php echo xlt('Value'); ?>:</label>
212 <input type="text" name="ob_value[]" id="ob_value_1" style="<?php echo $style; ?>" class="ob_value form-control" value="<?php echo attr($obj["ob_value"] ?? ''); ?>" />
213 <select name="ob_value_phin[]" id="ob_value_phin_1" class="ob_value_phin" <?php echo (empty($obj["code"]) || ($obj["code"] != 'SS003')) ? 'style="display: none;"' : ''; ?>>
214 <option value="261QE0002X" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_value"])) && ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QE0002X')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Emergency Care'); ?></option>
215 <option value="261QM2500X" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_value"])) && ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QM2500X')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Medical Specialty'); ?></option>
216 <option value="261QP2300X" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_value"])) && ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QP2300X')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Primary Care'); ?></option>
217 <option value="261QU0200X" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_value"])) && ($obj["code"] == 'SS003' && $obj["ob_value"] == '261QU0200X')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Urgent Care'); ?></option>
218 </select>
219 </div>
220 <div class="forms col-md-1">
221 <?php
222 $style = 'display: block';
223 if (!empty($obj)) {
224 if ((!empty($obj["code"]) && ($obj["code"] == 'SS003') || $obj["code"] == '8661-1')) {
225 $style = 'display: none;';
226 } elseif (($obj["code"] == '21612-7')) {
227 $style = 'display: block';
231 <label id="ob_unit_head_1" class="ob_unit_head h5" style="<?php echo $style; ?>"><?php echo xlt('Units'); ?>:</label>
232 <input type="text" name="ob_unit[]" id="ob_unit_1" class="ob_unit form-control" style="<?php echo $style; ?>" value="" />
233 <select <?php echo (empty($obj["code"]) || ($obj["code"] != '21612-7')) ? 'style="display: none;"' : ''; ?> name="ob_unit[]" id="ob_unit_1" class="ob_unit">
234 <option value="d" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_unit"])) && ($obj["code"] == '21612-7' && $obj["ob_unit"] == 'd')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Day'); ?></option>
235 <option value="mo" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_unit"])) && ($obj["code"] == '21612-7' && $obj["ob_unit"] == 'mo')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Month'); ?></option>
236 <option value="UNK" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_unit"])) && ($obj["code"] == '21612-7' && $obj["ob_unit"] == 'UNK')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Unknown'); ?></option>
237 <option value="wk" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_unit"])) && ($obj["code"] == '21612-7' && $obj["ob_unit"] == 'wk')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Week'); ?></option>
238 <option value="a" <?php echo ((!empty($obj["code"]) && !empty($obj["ob_unit"])) && ($obj["code"] == '21612-7' && $obj["ob_unit"] == 'a')) ? 'selected = "selected"' : ''; ?>><?php echo xlt('Year'); ?></option>
239 </select>
240 </div>
241 <div class="forms col-md-2">
242 <label for="code_date_1" class="h5"><?php echo xlt('Date'); ?>:</label>
243 <input type='text' id="code_date_1" name='code_date[]' class="form-control code_date datepicker" value='<?php echo attr($obj["date"] ?? ''); ?>' title='<?php echo xla('yyyy-mm-dd Date of service'); ?>' />
244 </div>
245 <div class="forms col-md-2">
246 <label for="code_date_end_<?php echo attr($key) + 1; ?>" class="h5"><?php echo xlt('End Date'); ?>:</label>
247 <input type='text' id="code_date_end_<?php echo attr($key) + 1; ?>" name='code_date_end[]' class="form-control code_date datepicker" value='<?php echo attr($obj["date_end"] ?? ''); ?>' title='<?php echo xla('yyyy-mm-dd HH:MM End Date of service'); ?>' />
248 </div>
249 <div class="forms col-md-2">
250 <label for="comments_1" class="h5"><?php echo xlt('Comments'); ?>:</label>
251 <textarea name="comments[]" id="comments_1" class="form-control comments" rows="3"><?php echo text($obj["observation"] ?? ''); ?></textarea>
252 </div>
253 <div class="forms col-md-2">
254 <?php include "templates/observation_actions.php"; ?>
255 </div>
256 </div>
257 <?php include "templates/observation_reason_row.php"; ?>
258 </div>
259 <?php
262 </div>
263 </fieldset>
264 <div class="form-group clearfix">
265 <div class="col-sm-12 position-override">
266 <div class="btn-group" role="group">
267 <button type="submit" onclick='top.restoreSession()' class="btn btn-primary btn-save"><?php echo xlt('Save'); ?></button>
268 <button type="button" class="btn btn-secondary btn-cancel" onclick="top.restoreSession(); parent.closeTab(window.name, false);"><?php echo xlt('Cancel'); ?></button>
269 </div>
270 <input type="hidden" id="clickId" value="" />
271 </div>
272 </div>
273 </form>
274 </div>
275 </div>
276 </div>
277 </body>
278 </html>