PhysicianStats.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. <?php
  2. require_once('vo/com/imt/intimamedia/vo/UserVo.php');
  3. require_once('vo/com/imt/intimamedia/vo/PersonVo.php');
  4. require_once('vo/com/imt/intimamedia/vo/PatientVo.php');
  5. require_once('vo/com/imt/intimamedia/vo/HospitalVo.php');
  6. require_once('vo/com/imt/intimamedia/vo/UltraSoundScannerVo.php');
  7. require_once('vo/com/imt/intimamedia/vo/ProbeVo.php');
  8. require_once('vo/com/imt/intimamedia/vo/MailVo.php');
  9. require_once('vo/com/imt/intimamedia/vo/TermsVo.php');
  10. require_once('vo/com/imt/intimamedia/vo/MeasuresVo.php');
  11. require_once('vo/com/imt/intimamedia/vo/MessageVo.php');
  12. require_once('vo/com/imt/intimamedia/vo/AppointmentVo.php');
  13. require_once('vo/com/imt/intimamedia/vo/TobaccoVo.php');
  14. require_once('vo/com/imt/intimamedia/vo/AtsVo.php');
  15. require_once('vo/com/imt/intimamedia/vo/ReturnObjectVo.php');
  16. require_once('vo/com/imt/intimamedia/vo/PersonalHistoryVo.php');
  17. require_once('vo/com/imt/intimamedia/vo/FamilyHistoryVo.php');
  18. require_once('vo/com/imt/intimamedia/vo/CvExaminatorVo.php');
  19. require_once('vo/com/imt/intimamedia/vo/TreatmentVo.php');
  20. require_once('common/SQLServerManager.php');
  21. require_once('common/SecurityManager.php');
  22. require_once('common/ImtMail.php');
  23. require_once('PatientService.php');
  24. require_once('AcquisitionService.php');
  25. require_once('MeasureService.php');
  26. require_once('backoffice/Physician.php');
  27. define ('INTIMAMEDIA_APPLICATION', 'INTIMA');
  28. function getPhysiciansStats()
  29. {
  30. $token = time() + 1000;
  31. $patientNumber = 0;
  32. $imtf = 0;
  33. $imtn = 0;
  34. $distance = 0;
  35. $area = 0;
  36. $area2 = 0;
  37. $appointmentNumber = 0;
  38. // valeurs prises en compte Damour anciennes valeurs de ref perdues lors de manip par JD, et prise en compte nouvelles valeurs cr��es par PJT le 26/06/2012 //
  39. $Ameans = array('0.5107231011','0.5042054049','0.5550256430','0.6296659975','0.7842889045','0.7382287744','0.6338284859');
  40. $Adistance = array('3.6142263811025','3.6548746526851','3.7622849048009','4.1618385180629','4.5708662011987','4.7332259254944','7.2769521912992','19.985023064405');
  41. $Aarea = array('61.985178608019');
  42. //---------------------------------------------------------------------------------------------------------------------------------//
  43. $physicianArray = getPhysicians();
  44. foreach ($physicianArray as $physician)
  45. {
  46. $patientArray = getPatients($physician->personId);
  47. $patientNumber = 0;
  48. $imtf = 0;
  49. $imtn = 0;
  50. $distance = 0;
  51. $area = 0;
  52. $area2 = 0;
  53. $appointmentNumber = 0;
  54. foreach ($patientArray as $patient)
  55. {
  56. $patientNumber++;
  57. $appointmentArray = getAppointments($patient->id);
  58. foreach ($appointmentArray as $appointment)
  59. {
  60. $appointmentNumber++;
  61. $measuresArray = getMeasures($appointment->id);
  62. foreach ($measuresArray as $measure)
  63. {
  64. if ($measure->fwImt && !in_array($measure->fwImt->mean, $Ameans))
  65. {
  66. $imtf++;
  67. }
  68. if ($measure->nwImt && !in_array($measure->nwImt->mean, $Ameans))
  69. {
  70. $imtn++;
  71. }
  72. if ($measure->distance && !in_array($measure->distance->value, $Adistance))
  73. {
  74. $distance++;
  75. }
  76. if ($measure->area && !in_array($measure->area->value, $Aarea))
  77. {
  78. $area++;
  79. }
  80. }
  81. }
  82. }
  83. $res='';
  84. $css='';
  85. if ($appointmentNumber > 0 && !$imtf && !$imtn && !$distance && !$area)
  86. { $res='<div id="measures">Aucune Mesure</div>';
  87. $css='';
  88. }
  89. else
  90. { $res= '<div id="measures">IMT Far Wall = ' . $imtf . ', IMT Near Wall = ' . $imtn . ', distance = ' . $distance . ', surface = ' . $area.'</div>';
  91. $css='haveMeasure';
  92. }
  93. echo '<div id="physician" class="'.$css.'"><div id="login">'.$physician->login.'</div>';
  94. echo '<div id="patient">'.$patientNumber.' patient(s), '.$appointmentNumber.'appointment(s)</div>';
  95. echo $res;
  96. echo "</div><hr />";
  97. $css="";
  98. }
  99. }
  100. function getPhysicians()
  101. {
  102. $query = "SELECT u.[id] as userId, u.[login], u.[last_connection], ".
  103. "p.[id] as personId, p.[first_name], p.[last_name], p.[creation] ".
  104. "FROM [evolucare].[dbo].[tj_user] u ".
  105. "LEFT JOIN [evolucare].[dbo].[t_person] p on p.id = u.fk_person ".
  106. "WHERE u.[login] not like 'pjt%@%' and u.[login] not like 'rogerdunyk%' ".
  107. "and u.[login] not like '%evolucare%' and u.[login] not like '%@iimt.fr' ".
  108. "and u.[login] not like 'chjac%' and u.[login] not like '%rbb%' and u.[login] not like '%rb2conseil%' ".
  109. "and u.[last_connection] <> '';";
  110. $results = SQLServerManager::queryOnDatabase( $query );
  111. $physicianArray = array();
  112. foreach( $results as $value )
  113. {
  114. $physician = new Physician();
  115. $physician->userId = $value->userId;
  116. $physician->personId = $value->personId;
  117. $physician->login = trim($value->login);
  118. $physician->first_name = trim($value->first_name);
  119. $physician->last_name = trim($value->last_name);
  120. $physician->creation = $value->creation;
  121. $physician->last_connection = $value->last_connection;
  122. array_push( $physicianArray, $physician );
  123. }
  124. return $physicianArray;
  125. }
  126. function getPatients($personId)
  127. {
  128. $query = "SELECT * FROM [evolucare].[dbo].[t_patient] ".
  129. "WHERE fk_physician = ". $personId . ";";
  130. $results = SQLServerManager::queryOnDatabase( $query );
  131. $patientArray = array();
  132. foreach( $results as $value )
  133. {
  134. $patientVo = new PatientVo();
  135. $patientVo->id = $value->id;
  136. $patientVo->uid = $value->uid;
  137. array_push($patientArray, $patientVo);
  138. }
  139. return $patientArray;
  140. }
  141. function getAppointments($patientId)
  142. {
  143. $query = "SELECT * FROM [intimamedia_physician].[dbo].[tj_appointment] ".
  144. "WHERE fk_patient = ". $patientId . ";";
  145. $results = SQLServerManager::queryOnDatabase( $query );
  146. $appointmentArray = array();
  147. foreach( $results as $value )
  148. {
  149. $appointmentVo = new AppointmentVo();
  150. $appointmentVo->id = $value->id;
  151. $appointmentVo->number = $value->number;
  152. $appointmentVo->date = $value->date;
  153. array_push($appointmentArray, $appointmentVo);
  154. }
  155. return $appointmentArray;
  156. }
  157. function getMeasures($appointmentId)
  158. {
  159. $query = "SELECT * "
  160. ."FROM [intimamedia_physician].[dbo].[tj_measure] m "
  161. ."LEFT JOIN [intimamedia_physician].[dbo].[t_image] im on im.id = m.fk_image "
  162. ."WHERE im.fk_appointment = ".$appointmentId.";";
  163. $results = SQLServerManager::queryOnDatabase( $query );
  164. if( count($results) == 0 )
  165. {
  166. //echo 'error 023 - resultats mesures vide';
  167. }
  168. $resultArray = array();
  169. foreach( $results as $value )
  170. {
  171. $measuresVo = new MeasuresVo();
  172. $measuresVo->id = $value->id;
  173. $measuresVo->imageId = $value->fk_image;
  174. $measuresVo->measureUnit = $value->fk_measure_unit;
  175. if ($value->fk_scale)
  176. {
  177. $scaleQuery = "SELECT * FROM [intimamedia_physician].[dbo].[t_scale]"
  178. ." WHERE id = '" . $value->fk_scale . "'";
  179. $scaleExecQuery = SQLServerManager::queryOnDatabase( $scaleQuery );
  180. $scaleVo = new ScaleVo();
  181. foreach( $scaleExecQuery as $scaleResult )
  182. {
  183. $scaleVo->id = $scaleResult->id;
  184. $scaleVo->value = $scaleResult->value;
  185. $scaleVo->length = $scaleResult->length;
  186. $scaleVo->xFirstPoint = $scaleResult->x_first_point;
  187. $scaleVo->yFirstPoint = $scaleResult->y_first_point;
  188. $scaleVo->xLastPoint = $scaleResult->x_last_point;
  189. $scaleVo->yLastPoint = $scaleResult->y_last_point;
  190. }
  191. $measuresVo->scale = $scaleVo;
  192. }
  193. if ($value->fk_distance)
  194. {
  195. $distanceQuery = "SELECT id,value,type FROM [intimamedia_physician].[dbo].[t_distance]"
  196. ." WHERE id = '" . $value->fk_distance . "'";
  197. $distanceExecQuery = SQLServerManager::queryOnDatabase( $distanceQuery );
  198. $distanceVo = new DistanceVo();
  199. foreach( $distanceExecQuery as $distanceResult )
  200. {
  201. $distanceVo->id = $distanceResult->id;
  202. $distanceVo->value = $distanceResult->value;
  203. $distanceVo->type = $distanceResult->type;
  204. }
  205. $measuresVo->distance = $distanceVo;
  206. }
  207. if ($value->fk_area)
  208. {
  209. $areaQuery = "SELECT * FROM [intimamedia_physician].[dbo].[t_area]"
  210. ." WHERE id = '" . $value->fk_area . "'";
  211. $areaExecQuery = SQLServerManager::queryOnDatabase( $areaQuery );
  212. $areaVo = new AreaVo();
  213. foreach( $areaExecQuery as $areaResult )
  214. {
  215. $areaVo->id = $areaResult->id;
  216. $areaVo->value = $areaResult->value;
  217. $areaVo->points = unserialize($areaResult->points);
  218. }
  219. $measuresVo->area = $areaVo;
  220. }
  221. if ($value->fk_area2)
  222. {
  223. $area2Query = "SELECT * FROM [intimamedia_physician].[dbo].[t_area]"
  224. ." WHERE id = '" . $value->fk_area2 . "'";
  225. $area2ExecQuery = SQLServerManager::queryOnDatabase( $area2Query );
  226. $area2Vo = new AreaVo();
  227. foreach( $area2ExecQuery as $areaResult )
  228. {
  229. $area2Vo->id = $areaResult->id;
  230. $area2Vo->value = $areaResult->value;
  231. $area2Vo->points = unserialize($areaResult->points);
  232. }
  233. $measuresVo->area = $area2Vo;
  234. }
  235. if ($value->fk_imtf)
  236. {
  237. $imtfQuery = "SELECT *, CONVERT(varchar(max), intima) as intimaString, CONVERT(varchar(max), adventitia) as adventitiaString "
  238. ."FROM [intimamedia_physician].[dbo].[t_imt] "
  239. ."WHERE id = '" . $value->fk_imtf . "'";
  240. $imtfResults = SQLServerManager::queryOnDatabase( $imtfQuery );
  241. foreach( $imtfResults as $imtfValue )
  242. {
  243. $imtfResultVo = new ImtResultVo();
  244. // $imtfResultVo->id = $imtfValue->id;
  245. $imtfResultVo->name = "F";
  246. // $imtfResultVo->max = $imtfValue->max;
  247. $imtfResultVo->mean = $imtfValue->mean;
  248. /* $imtfResultVo->standardDeviation = $imtfValue->standard_deviation;
  249. $imtfResultVo->qualityIndex = $imtfValue->iq;
  250. $imtfResultVo->distance = $imtfValue->distance;
  251. $imtfResultVo->numberOfPoints = $imtfValue->number_of_point;
  252. $imtfResultVo->iStartx = $imtfValue->i_startx;
  253. $imtfResultVo->iStarty = $imtfValue->i_starty;
  254. $imtfResultVo->iEndx = $imtfValue->i_endx;
  255. $imtfResultVo->iEndy = $imtfValue->i_endy;
  256. $imtfResultVo->aStartx = $imtfValue->a_startx;
  257. $imtfResultVo->aStarty = $imtfValue->a_starty;
  258. $imtfResultVo->aEndx = $imtfValue->a_endx;
  259. $imtfResultVo->aEndy = $imtfValue->a_endy;
  260. $imtfResultVo->intima = unserialize($imtfValue->intimaString);
  261. $imtfResultVo->adventitia = unserialize($imtfValue->adventitiaString); */
  262. }
  263. $measuresVo->fwImt = $imtfResultVo;
  264. }
  265. if ($value->fk_imtn)
  266. {
  267. $imtnQuery = "SELECT *, CONVERT(varchar(max), intima) as intimaString, CONVERT(varchar(max), adventitia) as adventitiaString "
  268. ."FROM [intimamedia_physician].[dbo].[t_imt] "
  269. ."WHERE id = '" . $value->fk_imtn . "'";
  270. $imtnResults = SQLServerManager::queryOnDatabase( $imtnQuery );
  271. foreach( $imtnResults as $imtnValue )
  272. {
  273. $imtnResultVo = new ImtResultVo();
  274. $imtnResultVo->id = $imtnValue->id;
  275. $imtnResultVo->name = "N";
  276. // $imtnResultVo->max = $imtnValue->max;
  277. $imtnResultVo->mean = $imtnValue->mean;
  278. /*$imtnResultVo->standardDeviation = $imtnValue->standard_deviation;
  279. $imtnResultVo->qualityIndex = $imtnValue->iq;
  280. $imtnResultVo->distance = $imtnValue->distance;
  281. $imtnResultVo->numberOfPoints = $imtnValue->number_of_point;
  282. $imtnResultVo->iStartx = $imtnValue->i_startx;
  283. $imtnResultVo->iStarty = $imtnValue->i_starty;
  284. $imtnResultVo->iEndx = $imtnValue->i_endx;
  285. $imtnResultVo->iEndy = $imtnValue->i_endy;
  286. $imtnResultVo->aStartx = $imtnValue->a_startx;
  287. $imtnResultVo->aStarty = $imtnValue->a_starty;
  288. $imtnResultVo->aEndx = $imtnValue->a_endx;
  289. $imtnResultVo->aEndy = $imtnValue->a_endy;
  290. $imtnResultVo->intima = unserialize($imtnValue->intimaString);
  291. $imtnResultVo->adventitia = unserialize($imtnValue->adventitiaString); */
  292. }
  293. $measuresVo->nwImt = $imtnResultVo;
  294. }
  295. array_push( $resultArray, $measuresVo );
  296. }
  297. return $resultArray;
  298. }
  299. ?>
  300. <!doctype html>
  301. <html>
  302. <head>
  303. <link rel="stylesheet" href="backoffice/style.css" type="text/css">
  304. </head>
  305. <body>
  306. <div id="leftColumn">
  307. <div id="intimamediaLogo"><img src="../images/general/intimamedia.png" /></div>
  308. </div>
  309. <div id="rightColumn">
  310. <div id="onlinePng"><img src="../images/general/online.png" /></div>
  311. </div>
  312. <div id="centerColumn">
  313. <div id="liststat">
  314. <h2 class="redIntima"> Stats </h2>
  315. <?php getPhysiciansStats(); ?>
  316. </div>
  317. </div>
  318. <div id="footer">&copy;2020 IntimaMedia.com - &reg;Tous droits r&eacute;serv&eacute;s</div>
  319. </body>
  320. </html>