4 * Functional cognitive status form.
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);
30 $sql = "SELECT * FROM `form_observation` WHERE id=? AND pid = ? AND encounter = ?";
31 $res = sqlStatement($sql, array($formid, $_SESSION["pid"], $_SESSION["encounter"]));
34 for ($iter = 0; $row = sqlFetchArray($res); $iter++
) {
40 $check_res = $formid ?
$check_res : array();
42 $reasonCodeStatii = ReasonStatusCodes
::getCodesWithDescriptions();
43 $reasonCodeStatii[ReasonStatusCodes
::NONE
]['description'] = xl("Select a status code");
46 $res = sqlStatement("SELECT `option_id`, `title` FROM `list_options` WHERE `list_id` = 'Observation_Types' ORDER BY `seq`");
47 while ($type = sqlFetchArray($res)) {
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
>
59 window
.addEventListener('DOMContentLoaded', function () {
60 window
.observationForm
.init(<?php
echo js_url($GLOBALS['webroot']); ?
>, <?php
echo js_url(collect_codetypes("problem", "csv")) ?
>);
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 ?>
77 <div
class="container-xl mt-3">
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()); ?>" />
84 <legend
><?php
echo xlt('Enter Details'); ?
></legend
>
85 <div
class="container-xl">
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
"]); ?>" />
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) {
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
>
113 <div
class="forms col-md-1">
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
>
131 <div
class="forms col-md-1">
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
>
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
"]); ?>" />
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
'); ?>' />
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
'); ?>' />
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
>
165 <div
class="forms col-md-2">
166 <?php
include "templates/observation_actions.php"; ?
>
169 <?php
include "templates/observation_reason_row.php"; ?
>
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
"] ?? ''); ?>" />
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) {
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
>
200 <div
class="forms col-md-1">
202 $style = 'display: block';
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
>
220 <div
class="forms col-md-1">
222 $style = 'display: block';
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
>
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
'); ?>' />
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
'); ?>' />
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
>
253 <div
class="forms col-md-2">
254 <?php
include "templates/observation_actions.php"; ?
>
257 <?php
include "templates/observation_reason_row.php"; ?
>
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
>
270 <input type
="hidden" id
="clickId" value
="" />