The Third Reminders email bug fix - contributed by arnabnaha
[openemr.git] / interface / new / new_comprehensive_save.php
blob247a3b9b4e41118a587d0843f3927456a3e5e528
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");
10 require_once("$srcdir/sql.inc");
12 // Validation for non-unique external patient identifier.
13 $alertmsg = '';
14 if (!empty($_POST["form_pubpid"])) {
15 $form_pubpid = trim($_POST["form_pubpid"]);
16 $result = sqlQuery("SELECT count(*) AS count FROM patient_data WHERE " .
17 "pubpid = '$form_pubpid'");
18 if ($result['count']) {
19 // Error, not unique.
20 $alertmsg = xl('Warning: Patient ID is not unique!');
24 require_once("$srcdir/pid.inc");
25 require_once("$srcdir/patient.inc");
26 require_once("$srcdir/options.inc.php");
28 // here, we lock the patient data table while we find the most recent max PID
29 // other interfaces can still read the data during this lock, however
30 // sqlStatement("lock tables patient_data read");
32 $result = sqlQuery("SELECT MAX(pid)+1 AS pid FROM patient_data");
34 $newpid = 1;
36 if ($result['pid'] > 1) $newpid = $result['pid'];
38 setpid($newpid);
40 if (empty($pid)) {
41 // sqlStatement("unlock tables");
42 die("Internal error: setpid($newpid) failed!");
45 // Update patient_data and employer_data:
47 $newdata = array();
48 $newdata['patient_data' ] = array();
49 $newdata['employer_data'] = array();
50 $fres = sqlStatement("SELECT * FROM layout_options " .
51 "WHERE form_id = 'DEM' AND uor > 0 AND field_id != '' " .
52 "ORDER BY group_name, seq");
53 while ($frow = sqlFetchArray($fres)) {
54 $data_type = $frow['data_type'];
55 $field_id = $frow['field_id'];
56 // $value = '';
57 $colname = $field_id;
58 $tblname = 'patient_data';
59 if (strpos($field_id, 'em_') === 0) {
60 $colname = substr($field_id, 3);
61 $tblname = 'employer_data';
64 $value = get_layout_form_value($frow);
66 if ($field_id == 'pubpid' && empty($value)) $value = $pid;
67 $newdata[$tblname][$colname] = $value;
69 updatePatientData($pid, $newdata['patient_data'], true);
70 updateEmployerData($pid, $newdata['employer_data'], true);
72 $i1dob = fixDate(formData("i1subscriber_DOB"));
73 $i1date = fixDate(formData("i1effective_date"));
75 // sqlStatement("unlock tables");
76 // end table lock
78 newHistoryData($pid);
79 newInsuranceData(
80 $pid,
81 "primary",
82 formData("i1provider"),
83 formData("i1policy_number"),
84 formData("i1group_number"),
85 formData("i1plan_name"),
86 formData("i1subscriber_lname"),
87 formData("i1subscriber_mname"),
88 formData("i1subscriber_fname"),
89 formData("form_i1subscriber_relationship"),
90 formData("i1subscriber_ss"),
91 $i1dob,
92 formData("i1subscriber_street"),
93 formData("i1subscriber_postal_code"),
94 formData("i1subscriber_city"),
95 formData("form_i1subscriber_state"),
96 formData("form_i1subscriber_country"),
97 formData("i1subscriber_phone"),
98 formData("i1subscriber_employer"),
99 formData("i1subscriber_employer_street"),
100 formData("i1subscriber_employer_city"),
101 formData("i1subscriber_employer_postal_code"),
102 formData("form_i1subscriber_employer_state"),
103 formData("form_i1subscriber_employer_country"),
104 formData('i1copay'),
105 formData('form_i1subscriber_sex'),
106 $i1date,
107 formData('i1accept_assignment')
111 $i2dob = fixDate(formData("i2subscriber_DOB"));
112 $i2date = fixDate(formData("i2effective_date"));
116 newInsuranceData(
117 $pid,
118 "secondary",
119 formData("i2provider"),
120 formData("i2policy_number"),
121 formData("i2group_number"),
122 formData("i2plan_name"),
123 formData("i2subscriber_lname"),
124 formData("i2subscriber_mname"),
125 formData("i2subscriber_fname"),
126 formData("form_i2subscriber_relationship"),
127 formData("i2subscriber_ss"),
128 $i2dob,
129 formData("i2subscriber_street"),
130 formData("i2subscriber_postal_code"),
131 formData("i2subscriber_city"),
132 formData("form_i2subscriber_state"),
133 formData("form_i2subscriber_country"),
134 formData("i2subscriber_phone"),
135 formData("i2subscriber_employer"),
136 formData("i2subscriber_employer_street"),
137 formData("i2subscriber_employer_city"),
138 formData("i2subscriber_employer_postal_code"),
139 formData("form_i2subscriber_employer_state"),
140 formData("form_i2subscriber_employer_country"),
141 formData('i2copay'),
142 formData('form_i2subscriber_sex'),
143 $i2date,
144 formData('i2accept_assignment')
147 $i3dob = fixDate(formData("i3subscriber_DOB"));
148 $i3date = fixDate(formData("i3effective_date"));
150 newInsuranceData(
151 $pid,
152 "tertiary",
153 formData("i3provider"),
154 formData("i3policy_number"),
155 formData("i3group_number"),
156 formData("i3plan_name"),
157 formData("i3subscriber_lname"),
158 formData("i3subscriber_mname"),
159 formData("i3subscriber_fname"),
160 formData("form_i3subscriber_relationship"),
161 formData("i3subscriber_ss"),
162 $i3dob,
163 formData("i3subscriber_street"),
164 formData("i3subscriber_postal_code"),
165 formData("i3subscriber_city"),
166 formData("form_i3subscriber_state"),
167 formData("form_i3subscriber_country"),
168 formData("i3subscriber_phone"),
169 formData("i3subscriber_employer"),
170 formData("i3subscriber_employer_street"),
171 formData("i3subscriber_employer_city"),
172 formData("i3subscriber_employer_postal_code"),
173 formData("form_i3subscriber_employer_state"),
174 formData("form_i3subscriber_employer_country"),
175 formData('i3copay'),
176 formData('form_i3subscriber_sex'),
177 $i3date,
178 formData('i3accept_assignment')
181 <html>
182 <body>
183 <script language="Javascript">
184 <?php
185 if ($alertmsg) {
186 echo "alert('$alertmsg');\n";
188 if ($GLOBALS['concurrent_layout']) {
189 echo "window.location='$rootdir/patient_file/summary/demographics.php?" .
190 "set_pid=$pid&is_new=1';\n";
191 } else {
192 echo "window.location='$rootdir/patient_file/patient_file.php?set_pid=$pid';\n";
195 </script>
197 </body>
198 </html>