PageRenderTime 49ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/src/ws/lib/data_objects/Test.class.php

https://bitbucket.org/3fast1cms/mobihealt
PHP | 491 lines | 10 code | 4 blank | 477 comment | 0 complexity | f1b38442636c422ed367099896c6fec1 MD5 | raw file
  1. <?php
  2. /**
  3. * classe di test
  4. */
  5. class Test{
  6. /**
  7. * Hello world
  8. * @return string
  9. */
  10. public function hello() {
  11. return "Hello World!";
  12. }
  13. /**
  14. * print string
  15. * @param string
  16. * @return string
  17. */
  18. public function printString($in) {
  19. return $in;
  20. }
  21. }
  22. /* # include "C:\Symbian\9.2\S60_3rd_FP1\Epoc32\include\libc\netinet\tcp.h" */
  23. ?>
  24. /**
  25. * classe che definisce i web method esposti dal server
  26. //class Server{
  27. /**
  28. * Test
  29. * @param string
  30. * @return string
  31. public function printString($in) {
  32. return $in;
  33. }
  34. /*
  35. /**
  36. * Salva il file XML passato come parametro sul server
  37. * @param string id del paziente
  38. * @param string id dell'action
  39. * @param string file XML da salvare
  40. * @return boolean
  41. public function saveData($patientId, $actionId, $data) {
  42. /* costruisce il percorso del file
  43. $file = ".data/xml/".$patientId."_".$actionId."_data.xml";
  44. /* costruisce l'handler del file, scrive la stringa e chiude il file
  45. $f = fopen($file, "w") or die("can't open file"); // così però il client non sa dell'errore
  46. fwrite($f, $data);
  47. fclose($f);
  48. }
  49. /**
  50. * Salva l'immagine passata come parametro sul server (in tre versioni: normale, in versione mobile ed in versione anteprima)
  51. * @param string id del paziente
  52. * @param string l'immagine da salvere codificata in base64
  53. * @return boolean
  54. public function sendImage($patientId, $image) {
  55. /* si connette al database ed esegue la query di inserimento
  56. $username="nurse";
  57. // $password="password";
  58. $database="live_app";
  59. mysql_connect("localhost",$username);
  60. @mysql_select_db($database) or die( "Unable to select database");
  61. $insertQuery = mysql_query("insert into images (patient_id,comment,path,name,acquisition_date) values (".$patientId.", 'Nothing','Nothing','Nothing', DATE(NOW()))");
  62. $getQuery = mysql_query("select * from images where patient_id='".$patientId."' order by id desc");
  63. $imageId = mysql_result($getQuery,0,"id");
  64. $query = mysql_query("update images set path='.data/img/".$imageId."' where id=".$imgName);
  65. /* salva l'immagine sul FS
  66. $this->saveImage($image, $imageId);
  67. }
  68. /**
  69. * Esegue la ricerca di un paziente a partire da nome, cognome, comune di residenza e codice identificativo
  70. * @param string nome del paziente
  71. * @param string cognome del paziente
  72. * @param string comune di residenza del paziente
  73. * @param string codice identificativo del paziente
  74. * @return SimplePatient[]
  75. public function searchPatient($firstName, $lastName, $city, $patientCode) {
  76. /* costruisce la query di ricerca
  77. $query = "SELECT * FROM patient_registry WHERE "
  78. ."first_name like '%".$firstName."%' AND "
  79. ."last_name like '%".$lastName."%' AND "
  80. ."city like '%".$city."%' AND "
  81. ."patient_code like '".$patientCode."'";
  82. /* si connette al database ed esegue la query di ricerca
  83. $username="nurse";
  84. // $password="password";
  85. $database="live_app";
  86. mysql_connect("localhost",$username);
  87. @mysql_select_db($database) or die( "Unable to select database");
  88. $result = mysql_query($query);
  89. $num = mysql_numrows($result);
  90. mysql_close();
  91. /* cicla sui risultati e per ogni riga trovata costruisce l'oggetto SimplePatient e lo mette nell'array
  92. $patientArray = Array();
  93. for($i=0; $i<$num; $i++){
  94. $patient = new SimplePatient();
  95. $patient->patientId = mysql_result($result,$i,"id");
  96. $patient->name = mysql_result($result,$i,"first_name");
  97. $patient->lastName = mysql_result($result,$i,"last_name");
  98. $patient->city = mysql_result($result,$i,"city");
  99. $patient->patientCode = mysql_result($result,$i,"patient_code");
  100. /* aggiongo l'oggetto i-esimo all'array
  101. $patientArray[] = $patient;
  102. }
  103. /* restituisce l'array così costruito
  104. return $patientArray;
  105. }
  106. /**
  107. * Recupera tutte le informazioni di un paziente a partire dall'id
  108. * @param string id del paziente
  109. * @return Patient
  110. public function getPatientById($id) {
  111. /* costruisce l'oggetto Patient e lo restituisce
  112. $patient = new Patient();
  113. $patient->anagrafica = getAnagrafica($id);
  114. $patient->contacts = getContacts($id);
  115. $patient->medicalReport = getMedicalReport($id); // scheda medica
  116. $patient->pathologies = getPathologies($id);
  117. $patient->images = getImages($id);
  118. $patient->visitsHistory = getVisitsHistory($id); // lista delle visite effettuate
  119. return $patient;
  120. }
  121. /**
  122. * Recupera una particolare immagine a partire dal suo id (in formato mobile)
  123. * @param string id dell'immagine
  124. * @return string base64image
  125. public function getImageById($id) {
  126. /* recupera l'immagine identificata da $id, che è salvata in ../img/$idMobile.jpg
  127. $file = "../img/".$id."Mobile.jpg";
  128. $imageHandler = imagecreatefromjpeg($file);
  129. ob_start();
  130. imagejpeg($imageHandler);
  131. $contents = ob_get_contents();
  132. ob_end_clean();
  133. /* codifica l'immagine in base64 e la ritorna
  134. $encodedImage = base64_encode($contents);
  135. imagedestroy($image);
  136. return $encodedImage;
  137. }
  138. /*
  139. * FUNZIONI AUSILIARIE:
  140. * non invocabili dall'ensterno!
  141. /* restituisce l'anagrafica del paziente identificato da $id
  142. private function getAnagrafica($id) {
  143. /* si connette al database
  144. mysql_connect("localhost", "nurse");
  145. @mysql_select_db("live_app") or die( "Unable to select database");
  146. /* recupera le informazioni
  147. $select = "SELECT * FROM patient_registry WHERE id = ". $id;
  148. $result = mysql_query($select);
  149. $num = mysql_numrows($result); // sempre un solo paziente perchè id univoco
  150. mysql_close();
  151. /* costruisce l'oggetto da restituire al client e lo ritorna
  152. $anagrafica = new Anagrafica();
  153. $anagrafica->patientId = mysql_result($result,0,"id");
  154. $anagrafica->name = mysql_result($result,0,"first_name");
  155. $anagrafica->lastName = mysql_result($result,0,"last_name");
  156. $anagrafica->address = mysql_result($result,0,"address");
  157. $anagrafica->cap = mysql_result($result,0,"cap");
  158. $anagrafica->city = mysql_result($result,0,"city");
  159. $anagrafica->province = mysql_result($result,0,"province");
  160. $birth_dateObj = strtotime(mysql_result($result,0,"birth_date"));
  161. $anagrafica->birthDate = date("d", $birth_dateObj)."/".date("m", $birth_dateObj)."/".date("Y", $birth_dateObj);
  162. $anagrafica->GP = mysql_result($result,0,"GP"); // medico di base
  163. $anagrafica->CF = mysql_result($result,0,"CF"); // codice fiscale
  164. $anagrafica->profession = mysql_result($result,0,"profession");
  165. $anagrafica->birthLocation = mysql_result($result,0,"birth_location");
  166. $anagrafica->marital = mysql_result($result,0,"marital");
  167. return $anagrafica;
  168. }
  169. /* restituisce la lista contatti del paziente identificato da $id (se non ci sono contatti ritorna un array vuoto)
  170. private function getContacts($id) {
  171. /* mi connetto al database
  172. mysql_connect("localhost", "nurse");
  173. @mysql_select_db("live_app") or die( "Unable to select database");
  174. /* recupero le informazioni
  175. $select = "SELECT * FROM contacts WHERE patient_id = ". $id;
  176. $result = mysql_query($select);
  177. $num = mysql_numrows($result);
  178. mysql_close();
  179. /* scorro le righe ritornate dalla query e per ugnuna creo un oggetto Contact da mettere nell'array
  180. $contactsArray = Array();
  181. for($i=0; $i<$num; $i++){
  182. $contact = new KeyValueObject();
  183. $contact->patientId = $id;
  184. $contact->objectId = mysql_result($result,$i,"id"); //contactId
  185. $contact->key = mysql_result($result,$i,"contact_name");
  186. $contact->value = mysql_result($result,$i,"contact_value");
  187. /* aggiongo l'oggetto i-esimo all'array
  188. $contactsArray[] = $contact;
  189. }
  190. return $contactsArray;
  191. }
  192. /* restituisce la scheda medica del paziente identificato da $id
  193. private function getMedicalReport($id) {
  194. /* crea l'oggetto per la scheda medica e recupera le informazioni in essa contenute
  195. $medicalReport = new MedicalReport();
  196. $medicalReport->patientId = $id;
  197. $medicalReport->anamnesi = getAnamnesi($id);
  198. $medicalReport->currentTherapies = getTherapies($id);
  199. $medicalReport->reports = getReports($id);
  200. return $medicalReport;
  201. }
  202. /* restituisce la lista delle patologie del paziente (se non ci sono patologie ritorna un array vuoto)
  203. private function getPathologies($id) {
  204. /* si connette al database
  205. mysql_connect("localhost", "nurse");
  206. @mysql_select_db("live_app") or die( "Unable to select database");
  207. /* recupera le informazioni
  208. $select = "SELECT * FROM pathologies WHERE patient_id = ". $id;
  209. $result = mysql_query($select);
  210. $num = mysql_numrows($result);
  211. mysql_close();
  212. /* scorre le righe ritornate dalla query e per ugnuna creo un oggetto KeyValueObject da mettere nell'array
  213. $pathologiesArray = Array();
  214. for($i=0; $i<$num; $i++){
  215. $pathology = new KeyValueObject();
  216. $pathology->patientId = $id;
  217. $pathology->objectId = mysql_result($result,$i,"id"); // pathologyId
  218. $pathology->key = mysql_result($result,$i,"pathology_name");
  219. $pathology->value = mysql_result($result,$i,"pathology_description");
  220. /* aggiongo l'oggetto i-esimo all'array
  221. $pathologiesArray[] = $pathology;
  222. }
  223. return $pathologiesArray;
  224. }
  225. /* restituisce la lista delle immagini associate al paziente identificato da $id
  226. private function getImages($id) {
  227. /* si connette al database
  228. mysql_connect("localhost", "nurse");
  229. @mysql_select_db("live_app") or die( "Unable to select database");
  230. /* recupera le informazioni
  231. $select = "SELECT * FROM images WHERE patient_id = ". $id;
  232. $result = mysql_query($select);
  233. $num = mysql_numrows($result);
  234. mysql_close();
  235. /* scorre le righe ritornate dalla query e per ugnuna creo un oggetto ImageItem da mettere nell'array
  236. /* se il paziente non ha immagini associate, restituisce un array vuoto
  237. $imagesArray = Array();
  238. for($i=0; $i<$num; $i++){
  239. $image = new ImageItem();
  240. $image->imageId = mysql_result($result,$i,"id");
  241. $image->patientId = $id;
  242. $image->base64Preview = getImagePreview($image->imageId); // ritorna l'anteprima dell'immagine in base64
  243. $image->name = mysql_result($result,$i,"name");
  244. $image->imageNote = mysql_result($result,$i,"comment");
  245. /* aggiongo l'oggetto i-esimo all'array
  246. $imagesArray[] = $image;
  247. }
  248. return $imagesArray;
  249. }
  250. /* restituisce la preview dell'immagine identificata da $image_id in base64
  251. private function getImagePreview($image_id)
  252. {
  253. /* recupera l'anteprima dell'immagine, salvata nel server come in ../img/ con nome $image_idPreview.jpg
  254. $file = "../img/".$image_id."Preview.jpg";
  255. $imageHandler = imagecreatefromjpeg($file);
  256. ob_start();
  257. imagejpeg($imageHandler);
  258. $contents = ob_get_contents();
  259. ob_end_clean();
  260. /* codifica l'immagine in base64 e la ritorna
  261. $base64image = base64_encode($contents);
  262. imagedestroy($imageHandler);
  263. return $base64image;
  264. }
  265. /* restituisce la lista delle visite mediche effettuate dal paziente (se non ci sono visite ritorna un array vuoto)
  266. private function getVisitsHistory($id) {
  267. /* si connette al database
  268. mysql_connect("localhost", "nurse");
  269. @mysql_select_db("live_app") or die( "Unable to select database");
  270. /* recupera le informazioni
  271. $select = "SELECT * FROM visit_history WHERE patient_id = ". $id;
  272. $result = mysql_query($select);
  273. $num = mysql_numrows($result);
  274. mysql_close();
  275. /* scorre le righe ritornate dalla query e per ugnuna creo un oggetto KeyValueObject da mettere nell'array
  276. $visitsArray = Array();
  277. for($i=0; $i<$num; $i++){
  278. $visit = new KeyValueObject();
  279. $visit->patientId = $id;
  280. $visit->objectId = mysql_result($result,$i,"id"); // visitId
  281. $visit->key = mysql_result($result,$i,"visit_name");
  282. $visit->value = mysql_result($result,$i,"visit_description"); // ?
  283. /* aggiongo l'oggetto i-esimo all'array
  284. $visitsArray[] = $visit;
  285. }
  286. return $visitsArray;
  287. }
  288. /* ritorna la storia clinica del paziente identificato da $id
  289. private function getAnamnesi($id) {
  290. /* si connette al database
  291. mysql_connect("localhost", "nurse");
  292. @mysql_select_db("live_app") or die( "Unable to select database");
  293. /* recupera le informazioni
  294. $select = "SELECT * FROM history WHERE patient_id = ". $id;
  295. $result = mysql_query($select);
  296. $num = mysql_numrows($result);
  297. mysql_close();
  298. /* scorre le righe ritornate dalla query e per ugnuna creo un oggetto Anamnesi da mettere nell'array
  299. $anamnesiArray = Array();
  300. for($i=0; $i<$num; $i++){
  301. $anamnesi = new Anamnesi();
  302. $anamnesi->anamnesiId = mysql_result($result,$i,"id");
  303. $anamnesi->patientId = $id;
  304. $anamnesi->title = mysql_result($result,$i,"title");
  305. $anamnesi->text = mysql_result($result,$i,"text");
  306. $dateObj = strtotime(mysql_result($result,$i,"date"));
  307. $anamnesi->date = date("d", $dateObj)."/".date("m", $dateObj)."/".date("Y", $dateObj);
  308. /* aggiongo l'oggetto i-esimo all'array
  309. $anamnesiArray[] = $anamnesi;
  310. }
  311. return $anamnesiArray;
  312. }
  313. /* ritorna la lista delle terapie a cui è sottoposto attualmente il paziente
  314. private function getTherapies($id) {
  315. /* si connette al database
  316. mysql_connect("localhost", "nurse");
  317. @mysql_select_db("live_app") or die( "Unable to select database");
  318. /* recupera le informazioni
  319. $select = "SELECT * FROM therapy WHERE patient_id = ". $id;
  320. $result = mysql_query($select);
  321. $num = mysql_numrows($result);
  322. mysql_close();
  323. /* scorre le righe ritornate dalla query e per ugnuna creo un oggetto Therapy da mettere nell'array
  324. $therapiesArray = Array();
  325. for($i=0; $i<$num; $i++){
  326. $therapy = new TherapyReport();
  327. $therapy->objectId = mysql_result($result,$i,"id");
  328. $therapy->patientId = $id;
  329. $therapy->title = mysql_result($result,$i,"title");
  330. $therapy->text = mysql_result($result,$i,"text");
  331. /* aggiongo l'oggetto i-esimo all'array
  332. $therapiesArray[] = $therapy;
  333. }
  334. return $therapiesArray;
  335. }
  336. /* ritorna la lista di report del paziente identificato da $id
  337. private function getReports($id) {
  338. /* si connette al database
  339. mysql_connect("localhost", "nurse");
  340. @mysql_select_db("live_app") or die( "Unable to select database");
  341. /* recupera le informazioni
  342. $select = "SELECT * FROM report WHERE patient_id = ". $id;
  343. $result = mysql_query($select);
  344. $num = mysql_numrows($result);
  345. mysql_close();
  346. /* scorre le righe ritornate dalla query e per ugnuna creo un oggetto Report da mettere nell'array
  347. $reportsArray = Array();
  348. for($i=0; $i<$num; $i++){
  349. $report = new TherapyReport();
  350. $report->objectId = mysql_result($result,$i,"id");
  351. $report->patientId = $id;
  352. $report->title = mysql_result($result,$i,"title");
  353. $report->text = mysql_result($result,$i,"text");
  354. /* aggiongo l'oggetto i-esimo all'array
  355. $reportsArray[] = $report;
  356. }
  357. return $reportsArray;
  358. }
  359. /* salva l'immagine sul FS del server
  360. private function saveImage($image, $imageId) {
  361. $newFile="../img/".$imageId.".jpg"; // versione normale
  362. $newFileScaled="../img/".$imageId."Scaled.jpg"; // versione scalata
  363. $newFileMobile="../img/".$imageId."Mobile.jpg"; // versione mobile
  364. /* image dimension
  365. $scaled_width=320;
  366. $scaled_height=240;
  367. $mobile_width=640;
  368. $mobile_height=480;
  369. /* salva la versione normale
  370. $decodedImage=base64_decode($image);
  371. $restoredImage=imagecreatefromstring($decodedImage);
  372. imagejpeg($restoredImage,$newFile,100);
  373. /* operazioni di scaling sulle dimensioni per salvare la versione scaled e salvataggio
  374. list($image_width, $image_height) = getimagesize($newFile);
  375. if($image_width > $scaled_width || $image_height > $scaled_height){
  376. $proportions = $image_width/$image_height;
  377. if($image_width>$image_height)
  378. {
  379. $new_width = $scaled_width;
  380. $new_height = round($scaled_width/$proportions);
  381. }
  382. else
  383. {
  384. $new_height = $scaled_height;
  385. $new_width = round($scaled_height*$proportions);
  386. }
  387. $new_image = imagecreatetruecolor($new_width , $new_height);
  388. imagecopyresampled($new_image, $restoredImage, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
  389. imagejpeg($new_image,$newFileScaled,60);
  390. imagedestroy($new_image);
  391. }
  392. else
  393. {
  394. imagejpeg($restoredImage,$newFileScaled,60);
  395. }
  396. /* operazioni di scaling sulle dimensioni per salvare la versione mobile e salvataggio
  397. if($image_width > $mobile_width || $image_height > $mobile_height){
  398. $proportions = $image_width/$image_height;
  399. if($image_width>$image_height)
  400. {
  401. $new_width = $mobile_width;
  402. $new_height = round($mobile_width/$proportions);
  403. }
  404. else
  405. {
  406. $new_height = $mobile_height;
  407. $new_width = round($mobile_height*$proportions);
  408. }
  409. $new_image = imagecreatetruecolor($new_width , $new_height);
  410. imagecopyresampled($new_image, $restoredImage, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
  411. imagejpeg($new_image,$newFileMobile,50);
  412. imagedestroy($new_image);
  413. }
  414. else
  415. {
  416. imagejpeg($restoredImage,$newFileMobile,50);
  417. }
  418. }
  419. */
  420. /*}
  421. ?>*/