Moved recent v5.0.0 statement fix to current master.
[openemr.git] / interface / new / new_comprehensive_save.php
blob5467f592c382413c16d8870edea6f6e61b9c1827
1 <?php
2 // Copyright (C) 2009 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 require_once("../globals.php");
11 // Validation for non-unique external patient identifier.
12 $alertmsg = '';
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']) {
18 // Error, not unique.
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");
33 $newpid = 1;
35 if ($result['pid'] > 1) {
36 $newpid = $result['pid'];
39 setpid($newpid);
41 if (empty($pid)) {
42 // sqlStatement("unlock tables");
43 die("Internal error: setpid(" .text($newpid) . ") failed!");
46 // Update patient_data and employer_data:
48 $newdata = array();
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'];
58 // $value = '';
59 $colname = $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)) {
70 $value = $pid;
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");
84 // end table lock
86 newHistoryData($pid);
87 newInsuranceData(
88 $pid,
89 "primary",
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"),
99 $i1dob,
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'),
114 $i1date,
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"));
124 newInsuranceData(
125 $pid,
126 "secondary",
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"),
136 $i2dob,
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'),
151 $i2date,
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"));
158 newInsuranceData(
159 $pid,
160 "tertiary",
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"),
170 $i3dob,
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'),
185 $i3date,
186 filter_input(INPUT_POST, 'i3accept_assignment')
189 <html>
190 <body>
191 <script language="Javascript">
192 <?php
193 if ($alertmsg) {
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";
200 </script>
202 </body>
203 </html>