2 /********************************************************************************\
3 * Copyright (C) ViCarePlus, Visolve (vicareplus_engg@visolve.com) *
5 * This program is free software; you can redistribute it and/or *
6 * modify it under the terms of the GNU General Public License *
7 * as published by the Free Software Foundation; either version 2 *
8 * of the License, or (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the Free Software *
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
18 \********************************************************************************/
19 require_once("../globals.php");
20 require_once("$srcdir/lists.inc");
21 require_once("$srcdir/patient.inc");
22 require_once("$srcdir/acl.inc");
23 require_once("$srcdir/options.inc.php");
26 /*executes the De Identification process, using the parameters chosen from the
27 de_identification_screen1.php */
28 $begin_date = $_POST["begin_date"];
29 $end_date = $_POST["end_date"];
31 if ($_POST["unstructured"])
32 $include_unstructured = 1;
34 $include_unstructured = 0;
37 $include_tables = "all";
40 if ($_POST["history_data"])
41 $include_tables = $include_tables . $_POST["history_data"]. "#";
42 if ($_POST["prescriptions"])
43 $include_tables = $include_tables . $_POST["prescriptions"]. "#";
44 if ($_POST["immunization"])
45 $include_tables = $include_tables . $_POST["immunization"]. "#";
47 $include_tables = $include_tables . $_POST["lists"]. "#";
48 if ($_POST["transactions"])
49 $include_tables = $include_tables . $_POST["transactions"]. "#";
50 if ($_POST["insurance_data"])
51 $include_tables = $include_tables . $_POST["insurance_data"]. "#";
52 if ($_POST["billing_data"])
53 $include_tables = $include_tables . "billing#payments";
56 $diagnosis_text = $_POST["diagnosis_text"];
57 $drug_text = $_POST["drug_text"];
58 $immunization_text = $_POST["immunization_text"];
60 $query = "select status from de_identification_status";
61 $res = sqlStatement($query);
62 if ($row = sqlFetchArray($res))
64 $deIdentificationStatus = addslashes($row['status']);
65 /* $deIdentificationStatus:
66 * 0 - There is no De Identification in progress. (start new De Identification process)
67 * 1 - A De Identification process is currently in progress.
68 * 2 - The De Identification process completed and xls file is ready to download
69 * 3 - The De Identification process completed with error
73 if($deIdentificationStatus == 0)
75 //0 - There is no De Identification in progress. (start new De Identification process)
79 <title
>De Identification
</title
>
80 <link rel
="stylesheet" href
='<?php echo $css_header ?>' type
='text/css'>
81 <link rel
="stylesheet"
82 href
='<?php echo $GLOBALS['webroot
'] ?>/library/dynarch_calendar.css'
84 <script type
="text/javascript" src
="<?php echo $GLOBALS['webroot'] ?>/library/dialog.js?v=<?php echo $v_js_includes; ?>"></script
>
85 <style type
="text/css">
91 <body
class="body_top">
92 <strong
>De Identification
</strong
>
93 <form name
="De Identification1" id
="De Identification1" method
="post"><br
/>
96 $query = "SELECT count(*) as count FROM metadata_de_identification";
97 $res = sqlStatement($query);
98 if ($row = sqlFetchArray($res))
100 $no_of_items = addslashes($row['count']);
101 if($no_of_items == 0)
103 $cmd="cp ".$GLOBALS['webserver_root']."/sql/metadata_de_identification.txt ".$GLOBALS['temporary_files_dir']."/metadata_de_identification.txt";
104 $output3=shell_exec($cmd);
105 $query = "LOAD DATA INFILE '".$GLOBALS['temporary_files_dir']."/metadata_de_identification.txt' INTO TABLE metadata_de_identification FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'";
106 $res = sqlStatement($query);
109 //create transaction tables
110 $query = "call create_transaction_tables()";
111 $res = sqlStatement($query);
113 //write input to data base
114 $query = "delete from param_include_tables";
115 $res = sqlStatement($query);
117 $query = "insert into param_include_tables values ('$include_tables','$include_unstructured')";
118 $res = sqlStatement($query);
120 $query = "delete from param_filter_pid";
121 $res = sqlStatement($query);
123 $query = "insert into param_filter_pid values ('$begin_date', '$end_date', '$diagnosis_text', '$drug_text', '$immunization_text')";
124 $res = sqlStatement($query);
127 $query = "update de_identification_status set status = 1";
128 $res = sqlStatement($query);
132 //call procedure - execute in background
133 $sh_cmd='./de_identification_procedure.sh '.$sqlconf["host"].' '.$sqlconf["login"].' '.$sqlconf["pass"].' '.$sqlconf["dbase"].' &';
137 $query = "SELECT status FROM de_identification_status ";
138 $res = sqlStatement($query);
139 if ($row = sqlFetchArray($res))
141 $de_identification_status = addslashes($row['status']);
142 if($de_identification_status == 2 ||
$de_identification_status == 3)
144 //2 - The De Identification process completed and xls file is ready to download
145 //3 - The De Identification process completed with error
146 $query = "SELECT count(*) as count FROM de_identified_data ";
147 $res = sqlStatement($query);
148 if ($row = sqlFetchArray($res))
150 $no_of_items = addslashes($row['count']);
151 if($no_of_items <= 1)
164 <table
class="de_identification_status_message" align
="center">
169 <?php
echo xl('No Patient record found for given Selection criteria');
171 echo xl('Please start new De Identification process');
172 echo "</br>"; ?
> </br
>
185 <table align
="center">
195 { //delete old de_identified_data.xls file
197 $query = "select now() as timestamp";
198 $res = sqlStatement($query);
199 if ($row = sqlFetchArray($res))
201 $timestamp = addslashes($row['timestamp']);
203 $timestamp = str_replace(" ","_",$timestamp);
204 $de_identified_file = $GLOBALS['temporary_files_dir']."/de_identified_data".$timestamp.".xls";
205 $query = "update de_identification_status set last_available_de_identified_data_file = '" . $de_identified_file . "'";
206 $res = sqlStatement($query);
207 $query = "select * from de_identified_data into outfile '$de_identified_file' ";
208 $res = sqlStatement($query);
220 <table
class="de_identification_status_message" align
="center">
224 <?php
echo xl('De Identification Process is ongoing');
226 echo xl('Please visit De Identification screen after some time');
227 echo "</br>"; ?
> </br
>
240 <table align
="center">
255 $query = "update de_identification_status set status = 3";
256 $res = sqlStatement($query);
259 else if($deIdentificationStatus == 2 or $deIdentificationStatus == 3)
261 //2 - The De Identification process completed and xls file is ready to download
262 //3 - The De Identification process completed with error
263 $query = "select last_available_de_identified_data_file from de_identification_status";
264 $res = sqlStatement($query);
265 if ($row = sqlFetchArray($res))
267 $filename = addslashes($row['last_available_de_identified_data_file']);
270 if (file_exists($filename)) {
272 header('Content-Description: File Transfer');
273 header('Content-Type: application/octet-stream');
274 header('Content-Disposition: attachment; filename='.basename($filename));
275 header('Content-Transfer-Encoding: binary');
276 header('Content-Type: application/vnd.ms-excel;'); // This should work for IE & Opera
277 header("Content-type: application/x-msexcel"); // This should work for the rest
278 header('Expires: 0');
279 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
280 header('Pragma: public');
281 header('Content-Length: ' . filesize($filename));
288 //xls file downloaded complete
289 $query = "update de_identification_status set status = 0";
290 $res = sqlStatement($query);