2 // Copyright (C) 2009 Rod Roark <rod@sunsetsystems.com>
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 require_once("../globals.php");
11 // Validation for non-unique external patient identifier.
13 if (!empty($_POST["form_pubpid"])) {
14 $form_pubpid = trim($_POST["form_pubpid"]);
15 $result = sqlQuery("SELECT count(*) AS count FROM patient_data WHERE " .
16 "pubpid = ?", array($form_pubpid));
17 if ($result['count']) {
19 $alertmsg = xl('Warning: Patient ID is not unique!');
23 require_once("$srcdir/pid.inc");
24 require_once("$srcdir/patient.inc");
25 require_once("$srcdir/options.inc.php");
27 // here, we lock the patient data table while we find the most recent max PID
28 // other interfaces can still read the data during this lock, however
29 // sqlStatement("lock tables patient_data read");
31 $result = sqlQuery("SELECT MAX(pid)+1 AS pid FROM patient_data");
35 if ($result['pid'] > 1) {
36 $newpid = $result['pid'];
42 // sqlStatement("unlock tables");
43 die("Internal error: setpid(" .text($newpid) . ") failed!");
46 // Update patient_data and employer_data:
49 $newdata['patient_data' ] = array();
50 $newdata['employer_data'] = array();
51 $fres = sqlStatement("SELECT * FROM layout_options " .
52 "WHERE form_id = 'DEM' AND uor > 0 AND field_id != '' " .
53 "OR field_id = 'pubpid' " .
54 "ORDER BY group_name, seq");
55 while ($frow = sqlFetchArray($fres)) {
56 $data_type = $frow['data_type'];
57 $field_id = $frow['field_id'];
60 $tblname = 'patient_data';
61 if (strpos($field_id, 'em_') === 0) {
62 $colname = substr($field_id, 3);
63 $tblname = 'employer_data';
66 //get value only if field exist in $_POST (prevent deleting of field with disabled attribute)
67 if (isset($_POST["form_$field_id"]) ||
$field_id == "pubpid") {
68 $value = get_layout_form_value($frow);
69 if ($field_id == 'pubpid' && empty($value)) {
73 $newdata[$tblname][$colname] = $value;
77 updatePatientData($pid, $newdata['patient_data'], true);
78 updateEmployerData($pid, $newdata['employer_data'], true);
80 $i1dob = fixDate(filter_input(INPUT_POST
, "i1subscriber_DOB"));
81 $i1date = fixDate(filter_input(INPUT_POST
, "i1effective_date"));
83 // sqlStatement("unlock tables");
90 filter_input(INPUT_POST
, "i1provider"),
91 filter_input(INPUT_POST
, "i1policy_number"),
92 filter_input(INPUT_POST
, "i1group_number"),
93 filter_input(INPUT_POST
, "i1plan_name"),
94 filter_input(INPUT_POST
, "i1subscriber_lname"),
95 filter_input(INPUT_POST
, "i1subscriber_mname"),
96 filter_input(INPUT_POST
, "i1subscriber_fname"),
97 filter_input(INPUT_POST
, "form_i1subscriber_relationship"),
98 filter_input(INPUT_POST
, "i1subscriber_ss"),
100 filter_input(INPUT_POST
, "i1subscriber_street"),
101 filter_input(INPUT_POST
, "i1subscriber_postal_code"),
102 filter_input(INPUT_POST
, "i1subscriber_city"),
103 filter_input(INPUT_POST
, "form_i1subscriber_state"),
104 filter_input(INPUT_POST
, "form_i1subscriber_country"),
105 filter_input(INPUT_POST
, "i1subscriber_phone"),
106 filter_input(INPUT_POST
, "i1subscriber_employer"),
107 filter_input(INPUT_POST
, "i1subscriber_employer_street"),
108 filter_input(INPUT_POST
, "i1subscriber_employer_city"),
109 filter_input(INPUT_POST
, "i1subscriber_employer_postal_code"),
110 filter_input(INPUT_POST
, "form_i1subscriber_employer_state"),
111 filter_input(INPUT_POST
, "form_i1subscriber_employer_country"),
112 filter_input(INPUT_POST
, 'i1copay'),
113 filter_input(INPUT_POST
, 'form_i1subscriber_sex'),
115 filter_input(INPUT_POST
, 'i1accept_assignment')
119 $i2dob = fixDate(filter_input(INPUT_POST
, "i2subscriber_DOB"));
120 $i2date = fixDate(filter_input(INPUT_POST
, "i2effective_date"));
127 filter_input(INPUT_POST
, "i2provider"),
128 filter_input(INPUT_POST
, "i2policy_number"),
129 filter_input(INPUT_POST
, "i2group_number"),
130 filter_input(INPUT_POST
, "i2plan_name"),
131 filter_input(INPUT_POST
, "i2subscriber_lname"),
132 filter_input(INPUT_POST
, "i2subscriber_mname"),
133 filter_input(INPUT_POST
, "i2subscriber_fname"),
134 filter_input(INPUT_POST
, "form_i2subscriber_relationship"),
135 filter_input(INPUT_POST
, "i2subscriber_ss"),
137 filter_input(INPUT_POST
, "i2subscriber_street"),
138 filter_input(INPUT_POST
, "i2subscriber_postal_code"),
139 filter_input(INPUT_POST
, "i2subscriber_city"),
140 filter_input(INPUT_POST
, "form_i2subscriber_state"),
141 filter_input(INPUT_POST
, "form_i2subscriber_country"),
142 filter_input(INPUT_POST
, "i2subscriber_phone"),
143 filter_input(INPUT_POST
, "i2subscriber_employer"),
144 filter_input(INPUT_POST
, "i2subscriber_employer_street"),
145 filter_input(INPUT_POST
, "i2subscriber_employer_city"),
146 filter_input(INPUT_POST
, "i2subscriber_employer_postal_code"),
147 filter_input(INPUT_POST
, "form_i2subscriber_employer_state"),
148 filter_input(INPUT_POST
, "form_i2subscriber_employer_country"),
149 filter_input(INPUT_POST
, 'i2copay'),
150 filter_input(INPUT_POST
, 'form_i2subscriber_sex'),
152 filter_input(INPUT_POST
, 'i2accept_assignment')
155 $i3dob = fixDate(filter_input(INPUT_POST
, "i3subscriber_DOB"));
156 $i3date = fixDate(filter_input(INPUT_POST
, "i3effective_date"));
161 filter_input(INPUT_POST
, "i3provider"),
162 filter_input(INPUT_POST
, "i3policy_number"),
163 filter_input(INPUT_POST
, "i3group_number"),
164 filter_input(INPUT_POST
, "i3plan_name"),
165 filter_input(INPUT_POST
, "i3subscriber_lname"),
166 filter_input(INPUT_POST
, "i3subscriber_mname"),
167 filter_input(INPUT_POST
, "i3subscriber_fname"),
168 filter_input(INPUT_POST
, "form_i3subscriber_relationship"),
169 filter_input(INPUT_POST
, "i3subscriber_ss"),
171 filter_input(INPUT_POST
, "i3subscriber_street"),
172 filter_input(INPUT_POST
, "i3subscriber_postal_code"),
173 filter_input(INPUT_POST
, "i3subscriber_city"),
174 filter_input(INPUT_POST
, "form_i3subscriber_state"),
175 filter_input(INPUT_POST
, "form_i3subscriber_country"),
176 filter_input(INPUT_POST
, "i3subscriber_phone"),
177 filter_input(INPUT_POST
, "i3subscriber_employer"),
178 filter_input(INPUT_POST
, "i3subscriber_employer_street"),
179 filter_input(INPUT_POST
, "i3subscriber_employer_city"),
180 filter_input(INPUT_POST
, "i3subscriber_employer_postal_code"),
181 filter_input(INPUT_POST
, "form_i3subscriber_employer_state"),
182 filter_input(INPUT_POST
, "form_i3subscriber_employer_country"),
183 filter_input(INPUT_POST
, 'i3copay'),
184 filter_input(INPUT_POST
, 'form_i3subscriber_sex'),
186 filter_input(INPUT_POST
, 'i3accept_assignment')
191 <script language
="Javascript">
194 echo "alert('" . addslashes($alertmsg) . "');\n";
197 echo "window.location='$rootdir/patient_file/summary/demographics.php?" .
198 "set_pid=" . attr($pid) . "&is_new=1';\n";