PageRenderTime 61ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 1ms

/modules/or_logbook/oploginput.php

https://github.com/timschofield/2.8
PHP | 997 lines | 801 code | 126 blank | 70 comment | 138 complexity | 70de78cfbec9de274e3a9d6016606685 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause, GPL-2.0
  1. <?php
  2. error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR);
  3. require('./roots.php');
  4. require('../../include/helpers/inc_environment_global.php');
  5. /**
  6. * CARE2X Integrated Hospital Information System Deployment 2.1 - 2004-10-02
  7. * GNU General Public License
  8. * Copyright 2002,2003,2004,2005,2003,2004,2005 Elpidio Latorilla
  9. * elpidio@care2x.org,
  10. *
  11. * See the file "copy_notice.txt" for the licence notice
  12. */
  13. # Default value for the maximum nr of rows per block displayed, define this to the value you wish
  14. # In normal cases this value is derived from the db table "care_config_global" using the "pagin_insurance_list_max_block_rows" element.
  15. define('MAX_BLOCK_ROWS',30);
  16. # Define to 1 if the search the returns single result should be automatically redirect to user input page
  17. define('REDIRECT_SINGLERESULT',1);
  18. define('MODULE','or_logbook');
  19. define('LANG_FILE_MODULAR','or_logbook.php');
  20. define('NO_2LEVEL_CHK',1);
  21. require_once($root_path.'include/helpers/inc_front_chain_lang.php');
  22. # Added intrusion trap
  23. if (!$internok&&!$_COOKIE['ck_op_pflegelogbuch_user'.$sid]) {header("Location:../language/".$lang."/lang_".$lang."_invalid-access-warning.php"); exit;};
  24. //$db->debug=true;
  25. # initializations
  26. $thisfile=basename(__FILE__);
  27. $pdata=array();
  28. if(!isset($thisday)||empty($thisday)) $thisday=date('Y-m-d');
  29. list($pyear,$pmonth,$pday)=explode('-',$thisday);
  30. $edit=true; # Set to edit mode
  31. $datafound=FALSE; # The flag for op record
  32. $patientfound=FALSE; # The flag for the patient
  33. $md=$pday;
  34. if(strlen($md)==1) $md='0'.$md;
  35. # Create the encounter object
  36. require_once($root_path.'include/core/class_encounter.php');
  37. $enc_obj=new Encounter;
  38. # Load the date formatter
  39. require_once($root_path.'include/helpers/inc_date_format_functions.php');
  40. # Consider search and paginate modes separately
  41. if($mode=='search'||$mode=='paginate'){
  42. # Initialize page's control variables
  43. if($mode=='paginate'){
  44. $sk=$_SESSION['sess_searchkey'];
  45. //$searchkey='USE_SESSION_SEARCHKEY';
  46. //$mode='search';
  47. }else{
  48. # Reset paginator variables
  49. $pgx=0;
  50. $totalcount=0;
  51. $odir='ASC';
  52. $oitem='name_last';
  53. }
  54. # Paginator object
  55. require_once($root_path.'include/core/class_paginator.php');
  56. $pagen=new Paginator($pgx,$thisfile,$_SESSION['sess_searchkey'],$root_path);
  57. $GLOBAL_CONFIG=array();
  58. require_once($root_path.'include/core/class_globalconfig.php');
  59. $glob_obj=new GlobalConfig($GLOBAL_CONFIG);
  60. # Get the max nr of rows from global config
  61. $glob_obj->getConfig('pagin_or_patient_search_max_block_rows');
  62. if(empty($GLOBAL_CONFIG['pagin_or_patient_search_max_block_rows'])) $pagen->setMaxCount(MAX_BLOCK_ROWS); # Last resort, use the default defined at the start of this page
  63. else $pagen->setMaxCount($GLOBAL_CONFIG['pagin_or_patient_search_max_block_rows']);
  64. # Save the search keyword for eventual pagination routines
  65. if($mode=='search'){
  66. if(empty($gebdatum))
  67. if(empty($pname))
  68. if(empty($enc_nr)) ;
  69. else $sk=$enc_nr;
  70. else $sk=$pname;
  71. else $sk=$gebdatum;
  72. # Save searchkey to sessin for subsequent paginations
  73. $_SESSION['sess_searchkey']=$sk;
  74. }
  75. # Convert other wildcards
  76. $sk=strtr($sk,'*?','%_');
  77. $result=&$enc_obj->searchLimitEncounterBasicInfo($sk,$pagen->MaxCount(),$pgx,$oitem,$odir);
  78. //echo $enc_obj->getLastQuery();
  79. # Get the resulting record count
  80. $linecount=$enc_obj->LastRecordCount();
  81. if($linecount==1&&$mode=='search'&&REDIRECT_SINGLERESULT){
  82. $pdata=$result->FetchRow();
  83. header("location:oploginput.php".URL_REDIRECT_APPEND."&mode=get&enc_nr=".$pdata['encounter_nr']."&dept_nr=$dept_nr&saal=$saal&op_nr=$op_nr&pday=$pday&pmonth=$pmonth&pyear=$pyear");
  84. exit;
  85. }
  86. //$linecount=$address_obj->LastRecordCount();
  87. $pagen->setTotalBlockCount($linecount);
  88. # Count total available data
  89. if(isset($totalcount)&&$totalcount){
  90. $pagen->setTotalDataCount($totalcount);
  91. }else{
  92. @$enc_obj->searchEncounterBasicInfo($sk);
  93. $totalcount=$enc_obj->LastRecordCount();
  94. $pagen->setTotalDataCount($totalcount);
  95. }
  96. $pagen->setSortItem($oitem);
  97. $pagen->setSortDirection($odir);
  98. }else{
  99. # Switch any further modes
  100. switch($mode){
  101. case 'save':
  102. {
  103. $dbtable='care_encounter_op';
  104. # check if entry is already existing
  105. $sql="SELECT nr,entry_out,cut_close,encoding FROM $dbtable
  106. WHERE encounter_nr='$enc_nr'
  107. AND op_nr='$op_nr'
  108. AND dept_nr='$dept_nr'
  109. AND op_room='$saal'";
  110. if($ergebnis=$db->Execute($sql)){
  111. $rows=$ergebnis->RecordCount();
  112. if($rows==1){
  113. $item=$ergebnis->FetchRow();
  114. // $dbuf=htmlspecialchars($dbuf);
  115. $content=$ergebnis->FetchRow();
  116. $content[encoding].=' ~e='.$encoder.'&d='.date('Y-m-d').'&t='.date('H:i:s');
  117. # create empty item update name
  118. $updateitem='';
  119. if($entry_time||$content['entry_out']){
  120. $dbuf=explode('~',$content['entry_out']);
  121. sort($dbuf,SORT_REGULAR);
  122. if(trim($entry_time)) $dbuf[0]=strtr('s='.$entry_time.'&e='.$exit_time,':','.');
  123. else array_splice($dbuf,0,1);
  124. $content['entry_out']=implode('~',$dbuf);
  125. }
  126. if($cut_time||$content['cut_close']){
  127. $dbuf=explode('~',$content['cut_close']);
  128. sort($dbuf,SORT_REGULAR);
  129. if(trim($cut_time)) $dbuf[0]=strtr('s='.$cut_time.'&e='.$close_time,':','.');
  130. else array_splice($dbuf,0,1);
  131. $content['cut_close']=implode('~',$dbuf);
  132. }
  133. $sql="UPDATE $dbtable
  134. SET encoding='".$content['encoding']."'";
  135. if(!empty($diagnosis)){
  136. $sql.=",diagnosis=".$enc_obj->ConcatFieldString('diagnosis',htmlspecialchars($diagnosis)."\n");
  137. $updateitem .= ' diagnosis;';
  138. }
  139. $sql.=",anesthesia='$anesthesia',
  140. entry_out='".$content['entry_out']."',
  141. cut_close='".$content['cut_close']."'";
  142. if(!empty($op_therapy)){
  143. $sql.=",op_therapy=".$enc_obj->ConcatFieldString('op_therapy',htmlspecialchars($op_therapy)."\n");
  144. $updateitem .=' op_therapy;';
  145. }
  146. if(!empty($result_info)){
  147. $sql.=",result_info=".$enc_obj->ConcatFieldString('result_info',htmlspecialchars($result_info)."\n");
  148. $updateitem.=' result_info;';
  149. }
  150. # Append update item names to history
  151. $sql.= ",history = ".$enc_obj->ConcatHistory("Updated ".$updateitem." ".date('Y-m-d H:i:s')." ".$_SESSION['sess_user_name']."\n");
  152. $sql.=" WHERE nr=".$item['nr'];
  153. if($ergebnis=$enc_obj->Transact($sql)){
  154. //echo $sql." new update <br>";
  155. header("location:$thisfile?sid=$sid&lang=$lang&mode=saveok&enc_nr=$enc_nr&dept_nr=$dept_nr&saal=$saal&thisday=$thisday&op_nr=$op_nr");
  156. exit;
  157. }else{
  158. echo "$sql<br>$LDDbNoSave<br>";
  159. }
  160. }else{ // Else no record yet, create new entry
  161. # first get the last op number
  162. $dbtable='care_encounter_op';
  163. $sql="SELECT op_nr FROM $dbtable WHERE dept_nr='$dept_nr' AND op_room='$saal' ORDER BY op_nr DESC";
  164. //echo $sql;
  165. if($ergebnis=$db->Execute($sql)){
  166. if($rows=$ergebnis->RecordCount()){
  167. $pdata=$ergebnis->FetchRow();
  168. $op_nr=$pdata['op_nr']+1;
  169. //echo $sql."<br>";
  170. }else{
  171. $op_nr=1;
  172. }
  173. }else{
  174. echo "$LDDbNoRead<br>";
  175. exit;
  176. }
  177. if($entry_time) $eobuf="s=$entry_time&e=$exit_time";
  178. if($cut_time) $ccbuf="s=$cut_time&e=$close_time";
  179. $sql="INSERT INTO $dbtable
  180. (
  181. year,
  182. dept_nr,
  183. op_room,
  184. op_nr,
  185. op_date,
  186. op_src_date,
  187. encounter_nr,
  188. diagnosis,
  189. anesthesia,
  190. op_therapy,
  191. result_info,
  192. entry_out,
  193. cut_close,
  194. encoding,
  195. doc_date,
  196. doc_time,
  197. history,
  198. create_id,
  199. create_time
  200. )
  201. VALUES
  202. (
  203. '$pyear',
  204. '$dept_nr',
  205. '$saal',
  206. '$op_nr',
  207. '$op_date',
  208. '".date(Ymd)."',
  209. '$enc_nr',
  210. '".htmlspecialchars($diagnosis)."\n',
  211. '$anesthesia',
  212. '".htmlspecialchars($op_therapy)."\n',
  213. '".htmlspecialchars($result_info)."\n',
  214. '".strtr($eobuf,':','.')."',
  215. '".strtr($ccbuf,':','.')."',
  216. 'e=".$encoder."&d=".date('Y-m-d')."&t=".date('H:i:s')."',
  217. '".date('Y-m-d')."',
  218. '".date('H:i:s')."',
  219. 'Create ".date('Y-m-d H:i:s')." ".$_SESSION['sess_user_name']."\n',
  220. '".$_SESSION['sess_user_name']."',
  221. '".date('YmdHis')."'
  222. )";
  223. if($ergebnis=$enc_obj->Transact($sql)){
  224. //echo $sql." new insert <br>";
  225. header("location:$thisfile?sid=$sid&lang=$lang&mode=saveok&enc_nr=$enc_nr&dept_nr=$dept_nr&saal=$saal&thisday=$thisday&op_nr=$op_nr");
  226. }else{
  227. echo "$sql<br>$LDDbNoSave<br>";
  228. }
  229. } //end of else
  230. } // end of if ergebnis
  231. break;
  232. } // end of case 'save'
  233. case 'get':
  234. {
  235. if($enc_obj->loadEncounterData($enc_nr)){
  236. $rows=$enc_obj->record_count;
  237. $pdata=$enc_obj->encounter;
  238. $lname=$pdata['name_last'];
  239. $fname=$pdata['name_first'];
  240. $bdate=$pdata['date_birth'];
  241. //$datafound=1;
  242. $patientfound=TRUE;
  243. //echo $sql."<br>";
  244. }
  245. break;// end of case search
  246. }
  247. default:
  248. {
  249. if(($mode=='saveok')||($mode=='edit')||($mode=='notimereset')){
  250. if($enc_obj->loadEncounterData($enc_nr)){
  251. $rows=$enc_obj->record_count;
  252. $pdata=$enc_obj->encounter;
  253. $lname=$pdata['name_last'];
  254. $fname=$pdata['name_first'];
  255. $bdate=$pdata['date_birth'];
  256. }
  257. $dbtable='care_encounter_op';
  258. $sql="SELECT * FROM $dbtable
  259. WHERE dept_nr='$dept_nr'
  260. AND op_room='$saal'
  261. AND encounter_nr='$enc_nr'
  262. AND op_nr='$op_nr'";
  263. if($ergebnis=$db->Execute($sql)){
  264. $rows=$ergebnis->RecordCount();
  265. if($rows==1){
  266. $arr=$ergebnis->FetchRow();
  267. $pdata=array_merge($pdata,$arr);
  268. $datafound=TRUE;
  269. $patientfound=TRUE;
  270. //echo $sql."<br>";
  271. }else{
  272. echo "<p>".$sql."<p>Multiple entries found pls notify the edv.";
  273. }
  274. }else{
  275. echo "$LDDbNoRead<br>";
  276. }
  277. }
  278. break;
  279. }
  280. } // end of switch mode
  281. }
  282. if(!isset($_SESSION['sess_comdat'])) $_SESSION['sess_comdat'] = "";
  283. # Set the user origin
  284. $_SESSION['sess_user_origin']='op_room';
  285. $_SESSION['sess_comdat']="&enc_nr=".$pdata['encounter_nr']."&dept_nr=$dept_nr&saal=$saal&thisday=$pyear-$pmonth-$pday&op_nr=$op_nr&pyear=$pyear&pmonth=$pmonth&pday=$pday";
  286. ?>
  287. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd">
  288. <html>
  289. <HEAD>
  290. <TITLE>OP Pflege Logbuch (Eingabefenster)</TITLE>
  291. <script language="javascript">
  292. <!--
  293. function resettimebars()
  294. {
  295. //window.parent.OPLOGIMGBAR.location.replace('oplogtimebar.php?filename=<?php echo $filename; ?>&rnd=<?php echo $r; ?>');
  296. window.parent.OPLOGIMGBAR.location.replace('<?php echo "oplogtimebar.php?sid=$sid&lang=$lang&internok=$internok&enc_nr=".$pdata['encounter_nr']."&op_nr=".$pdata['op_nr']."&dept_nr=$dept_nr&saal=$saal&pyear=$pyear&pmonth=$pmonth&pday=$pday";?>');
  297. }
  298. function resettimeframe()
  299. {
  300. //window.parent.OPLOGINPUT.location.replace('oplogtime.php?filename=<?php echo $filename; ?>&rnd=<?php echo $r; ?>');
  301. window.parent.OPLOGINPUT.location.replace('<?php echo "oplogtime.php?sid=$sid&lang=$lang&internok=$internok&enc_nr=".$pdata['encounter_nr']."&op_nr=".$pdata['op_nr']."&dept_nr=$dept_nr&saal=$saal&pyear=$pyear&pmonth=$pmonth&pday=$pday";?>');
  302. }
  303. function resetlogdisplays()
  304. {
  305. window.parent.OPLOGMAIN.location.replace('<?php echo "oplogmain.php?sid=$sid&lang=$lang&internok=$internok&gotoid=".$pdata['op_nr']."&dept_nr=$dept_nr&saal=$saal&thisday=$thisday"; ?>');
  306. }
  307. function cleartimeframes()
  308. {
  309. window.parent.OPLOGIMGBAR.location.replace('blank.htm');
  310. window.parent.OPLOGINPUT.location.replace('blank.htm');
  311. }
  312. function resetall()
  313. {
  314. resetlogdisplays();resettimebars();resettimeframe();
  315. }
  316. function isnum(val,idx)
  317. {
  318. xdoc=document.oppflegepatinfo;
  319. if (isNaN(val))
  320. {
  321. xval3="";
  322. for(i=0;i<val.length;i++)
  323. {
  324. xval2=val.slice(i,i+1);
  325. //if (!isNaN(xval3 + xval2)) {xval3=xval3 + xval2;}
  326. if (isNaN(xval2))
  327. {
  328. xdoc.elements[idx].value=xval2;
  329. setTime(xdoc.elements[idx]);
  330. return;
  331. }
  332. }
  333. xdoc.elements[idx].value=xval3;
  334. }
  335. else
  336. {
  337. v3=val;
  338. if((v3==24)&&(v3.length==2)) v3="00";
  339. if (v3>24)
  340. {
  341. switch(v3.length)
  342. {
  343. case 2: v1=v3.slice(0,1); v2=v3.slice(1,2);
  344. if(v2<6) v3="0"+v1+"."+v2; else v3=v3.slice(0,1); break;
  345. case 3: v1=val.slice(0,2); v2=val.slice(2,3);
  346. if(v2<6) v3=v1+"."+v2;
  347. else v3=v3.slice(0,2);
  348. break;
  349. case 4: v3=val.slice(0,3); break;
  350. }
  351. // alert("Zeitangabe ist ung'ltig! (ausserhalb des 24H Zeitrahmens)");
  352. }
  353. switch(v3.length)
  354. {
  355. case 2: v1=v3.slice(0,1);v2=v3.slice(1,2);
  356. if(v2==".") v3="0"+v3;break;
  357. case 3: v1=v3.slice(0,2);v2=v3.slice(2,3);
  358. if(v2!=".") if(v2<6) v3=v1+"."+v2; else v3=v1; break;
  359. case 4: if(v3.slice(3,4)>5) v3=v3.slice(0,3); break;
  360. }
  361. if(v3.length>5) v3=v3.slice(0,v3.length-1);
  362. xdoc.elements[idx].value=v3;
  363. }
  364. }
  365. function isvalnum(val,idx)
  366. {
  367. xdoc=document.oppflegepatinfo;
  368. xval3="";
  369. for(i=0;i<val.length;i++)
  370. {
  371. xval2=val.slice(i,i+1);
  372. if (!isNaN(xval2))
  373. {
  374. xval3=xval3 + xval2;
  375. /*
  376. if (xval3.length>8)
  377. {
  378. alert("Die Aufnahmenummer hat maximal 8 Ziffern!");
  379. xdoc.elements[idx].value=xval3.slice(0,8);
  380. return; }
  381. */
  382. }
  383. }
  384. xdoc.elements[idx].value=xval3;
  385. }
  386. function isgdatum(val,idx)
  387. {
  388. xdoc=document.oppflegepatinfo;
  389. xval3="";
  390. for(i=0;i<val.length;i++)
  391. {
  392. xval2=val.slice(i,i+1);
  393. if ((!isNaN(xval2))||(xval2=="."))
  394. {
  395. if(xval2==".")
  396. {
  397. if(val.length>1) xval3=xval3+xval2;
  398. }
  399. else
  400. {
  401. xval3=xval3+xval2;
  402. }
  403. }
  404. }
  405. switch (xval3.length)
  406. {
  407. case 2: v1=xval3.slice(0,1);
  408. v2=xval3.slice(1,2);
  409. if(v2==".")
  410. {
  411. if (v1==0) xval3=""; else xval3="0"+xval3;
  412. }
  413. else {
  414. if ((v1+v2)<1) xval3="";
  415. else if ((v1+v2)>31) xval3="0"+v1+"."+v2;
  416. }
  417. break;
  418. case 3: v1=xval3.slice(0,2);
  419. v2=xval3.slice(2,3);
  420. if (v2!=".") xval3=v1+"."+v2;
  421. break;
  422. case 4: v1=xval3.slice(0,3);
  423. v2=xval3.slice(3,4);
  424. if (v2!=".") xval3=v1+v2; else xval3=v1;
  425. break;
  426. case 5: v1=xval3.slice(0,3);
  427. v2=xval3.slice(3,4);
  428. v3=xval3.slice(4,5);
  429. if (v3==".")
  430. {
  431. if (v2==0) xval3=v1+v2;
  432. else xval3=v1+"0"+v2+v3;
  433. }
  434. else if((v2+v3)<1) xval3=v1+v2;
  435. else if((v2+v3)>12) xval3=v1+"0"+v2+"."+v3;
  436. break;
  437. case 6: v1=xval3.slice(0,5);
  438. v2=xval3.slice(5,6);
  439. if (v3!=".")
  440. {
  441. if (v2==0) xval3=v1
  442. else xval3=v1+"."+v2;
  443. }
  444. break;
  445. }
  446. if ((xval3.length>6)&&(xval3.slice(xval3.length-1,xval3.length)=="."))xval3=xval3.slice(0,xval3.length-1);
  447. if (xval3.length>10) xval3=xval3.slice(0,10);
  448. xdoc.elements[idx].value=xval3;
  449. }
  450. function checksubmit()
  451. {
  452. xdoc=document.oppflegepatinfo;
  453. if ((xdoc.pname.value=="")&&(xdoc.gebdatum.value=="")&&(xdoc.enc_nr.value==""))
  454. {
  455. xdoc.enc_nr.focus();
  456. }
  457. else
  458. {
  459. xdoc.submit();
  460. }
  461. return false;
  462. }
  463. function searchpat()
  464. {
  465. d=document.oppflegepatinfo;
  466. window.location.href="<?php echo "$thisfile?sid=$sid&mode=search&enc_nr=" ?>"+d.enc_nr.value+"&pname="+d.pname.value+"&gebdatum="+d.gebdatum.value;
  467. }
  468. function getinfo(m)
  469. {
  470. urlholder="<?php echo "op-care-log-getinfo.php?sid=$sid&lang=$lang&dept_nr=$dept_nr&saal=$saal&op_nr=$op_nr&enc_nr=$enc_nr&pday=$pday&pmonth=$pmonth&pyear=$pyear&winid=";?>"+m;
  471. getinfowin=window.open(urlholder,"getinfo","width=800,height=500,menubar=no,resizable=yes,scrollbars=yes");
  472. }
  473. function openfolder(pid,pdata){
  474. urlholder="<?php echo $root_path; ?>modules/nursing/nursing-ward-patientdata.php<?php echo URL_REDIRECT_APPEND; ?>&pn="+pid+"&patient=" + pdata + "&dept_nr=<?php echo "$dept_nr&pday=$pday&pmonth=$pmonth&pyear=$pyear&op_shortcut=".$_COOKIE['ck_op_pflegelogbuch_user'.$sid]; ?>";
  475. patientwin=window.open(urlholder,pid,"width=700,height=450,menubar=no,resizable=yes,scrollbars=yes");
  476. }
  477. function openDRGComposite()
  478. {
  479. <?php if($cfg['dhtml'])
  480. echo '
  481. w=window.parent.screen.width;
  482. h=window.parent.screen.height;';
  483. else
  484. echo '
  485. w=800;
  486. h=650;';
  487. ?>
  488. drgcomp_<?php echo $pdata[encounter_nr]."_".$op_nr."_".$dept_nr."_".$saal ?>=window.open("<?php echo $root_path ?>modules/drg/drg-composite-start.php?sid=<?php echo "$sid&lang=$lang&display=composite&pn=".$pdata['encounter_nr']."&edit=$edit&ln=$lname&fn=$fname&bd=$bdate&opnr=$op_nr&dept_nr=$dept_nr&oprm=$saal"; ?>","drgcomp_<?php echo $pdata['encounter_nr']."_".$op_nr."_".$dept_nr."_".$saal ?>","menubar=no,resizable=yes,scrollbars=yes, width=" + (w-15) + ", height=" + (h-60));
  489. window.drgcomp_<?php echo $pdata[encounter_nr]."_".$op_nr."_".$dept_nr."_".$saal ?>.moveTo(0,0);
  490. }
  491. //-->
  492. </script>
  493. <script language="javascript" src="<?php echo $root_path; ?>js/showhide-div.js"></script>
  494. <script language="javascript" src="<?php echo $root_path; ?>js/setdatetime.js"></script>
  495. <style type="text/css">
  496. .v10_n{font-family:verdana;font-size:10;color=#0000cc;}
  497. </style>
  498. <?php
  499. require($root_path.'include/helpers/include_header_css_js.php');
  500. ?>
  501. </HEAD>
  502. <BODY bgcolor="#cde1ec" topmargin=0 leftmargin=0 marginwidth=0 onLoad="
  503. <?php
  504. switch($mode)
  505. {
  506. case 'saveok': echo 'resetall();';
  507. //echo 'resettimebars();resettimeframe();reseteditmain();';
  508. break;
  509. //case 'save': echo 'resetall();';break;
  510. case "fresh": echo 'resetlogdisplays();cleartimeframes();';break;
  511. case "chgdept": break;
  512. case "notimereset": break;
  513. case 'search': break;
  514. case 'edit': echo 'resettimebars();resettimeframe();'; break;
  515. default: echo 'resetlogdisplays();';
  516. }
  517. if(!$patientfound) echo 'document.oppflegepatinfo.enc_nr.focus();';
  518. ?>
  519. " marginheight="0" bgcolor="silver" alink="#0000ff" vlink="#0000ff" link="#0000ff" >
  520. <FORM METHOD="post" ACTION="oploginput.php?mode=save" name="oppflegepatinfo" onSubmit="return checksubmit()">
  521. <TABLE CELLPADDING=0 CELLSPACING=0 border=0 width=100%>
  522. <TR class="wardlisttitlerow">
  523. <TD>
  524. <font size=1>
  525. <?php if($op_nr) : ?>
  526. <?php echo $LDOpNr ?> <FONT SIZE="3" ><b> <?php echo $op_nr; ?> </b></FONT>
  527. <?php endif ?>
  528. <?php echo $LDDate ?>:
  529. <?php
  530. echo formatDate2Local($thisday,$date_format);
  531. ?>
  532. &nbsp;
  533. <?php
  534. if($datafound||$patientfound){
  535. ?>
  536. <a href="javascript:document.oppflegepatinfo.submit()"><img <?php echo createLDImgSrc($root_path,'savedisc.gif','0') ?> width=99 height=24 align=absmiddle alt="<?php echo $LDSaveLatest ?>"></a>
  537. <?php
  538. }
  539. ?>
  540. </TD>
  541. <td align=right>
  542. <?php
  543. if($op_nr) {
  544. ?>
  545. <?php } ?>
  546. <?php
  547. if($datafound) {
  548. ?>
  549. <A onClick="document.oppflegepatinfo.xx2.value='drg'"
  550. href="javascript:openDRGComposite()"><img <?php echo createLDImgSrc($root_path,'drg.gif','0','absmiddle') ?>
  551. alt="<?php echo $LDDRG ?>"></a>
  552. <A onClick="document.oppflegepatinfo.xx2.value='material'"
  553. href="log-material-parentframe.php?sid=<?php echo "$sid&lang=$lang&op_nr=$op_nr&enc_nr=".$pdata['encounter_nr']."&dept_nr=$dept_nr&saal=$saal&pday=$pday&pmonth=$pmonth&pyear=$pyear"; ?>" target="OPLOGMAIN"><img <?php echo createLDImgSrc($root_path,'material.gif','0','absmiddle') ?>
  554. alt="<?php echo $LDUsedMaterial ?>"></a>
  555. <!-- <A onClick="document.oppflegepatinfo.xx2.value='container'"
  556. href="log-material-parentframe.php?sid=<?php echo "$sid&lang=$lang&mode=cont&op_nr=$op_nr&enc_nr=".$pdata['encounter_nr']."&dept_nr=$dept_nr&saal=$saal&pday=$pday&pmonth=$pmonth&pyear=$pyear"; ?>" target="OPLOGMAIN"><img <?php echo createLDImgSrc($root_path,'instrument.gif','0','absmiddle') ?>
  557. alt="<?php echo $LDContainer ?>"></a>--><?php } ?>
  558. <a href="javascript:gethelp('oplog.php','create','<?php echo $mode ?>')"><img <?php echo createLDImgSrc($root_path,'hilfe-r.gif','0','absmiddle') ?>
  559. alt="<?php echo $LDHelp ?>"></a>
  560. <a href="javascript:if(!window.parent.opener.closed)window.parent.opener.focus();window.parent.close();"><img <?php echo createLDImgSrc($root_path,'close2.gif','0','absmiddle') ?>
  561. alt="<?php echo $LDClose ?>"></a>
  562. <br>
  563. </td>
  564. </TR>
  565. <tr class="wardlisttitlerow">
  566. <td colspan=2 align=right>
  567. <?php
  568. if($datafound) {
  569. ?>
  570. <A href="oplogmain.php?sid=<?php echo "$sid&lang=$lang&op_nr=$op_nr&enc_nr=".$pdata['encounter_nr']."&dept_nr=$dept_nr&saal=$saal&thisday=$thisday"; ?>"
  571. target="OPLOGMAIN"><img <?php echo createLDImgSrc($root_path,'showlogbook.gif','0','absmiddle') ?>
  572. alt="<?php echo $LDClk2DropMenu ?>"></a><?php
  573. }
  574. ?><a
  575. href="oploginput.php?sid=<?php echo "$sid&lang=$lang&dept_nr=$dept_nr&saal=$saal" ?>&mode=fresh"><img <?php echo createLDImgSrc($root_path,'newpat2.gif','0','absmiddle') ?>
  576. alt="<?php echo $LDStartNewDocu ?>">
  577. </a>
  578. <A href="op-care-log-xtsuch-start.php?sid=<?php echo "$sid&lang=$lang&internok=$internok&dept_nr=$dept_nr&saal=$saal"; ?>&user=<?php echo str_replace(' ','+',$op_pflegelogbuch_user); ?>" target="_parent" class="icon search">
  579. </a>
  580. <A href="op-care-log-arch-start.php?sid=<?php echo "$sid&lang=$lang&internok=$internok&dept_nr=$dept_nr&saal=$saal"; ?>&user=<?php echo str_replace(' ','+',$op_pflegelogbuch_user); ?>"
  581. target="_parent"><img <?php echo createLDImgSrc($root_path,'archive.gif','0','absmiddle') ?>
  582. alt="<?php echo $LDArchive ?>">
  583. </a>
  584. <br>
  585. </td>
  586. </tr>
  587. </TABLE>
  588. <?php
  589. if(($mode=='search'||$mode=='paginate')&&!$datafound){
  590. echo '<center>';
  591. if($linecount){
  592. $append="&dept_nr=$dept_nr&saal=$saal&op_nr=$op_nr&pday=$pday&pmonth=$pmonth&pyear=$pyear";
  593. # Preload common icon images
  594. $img_male=createComIcon($root_path,'spm.gif','0');
  595. $img_female=createComIcon($root_path,'spf.gif','0');
  596. $bgimg='tableHeaderbg3.gif';
  597. $tbg= 'background="'.$root_path.'gui/img/common/'.$theme_com_icon.'/'.$bgimg.'"';
  598. if ($linecount) echo str_replace("~nr~",$totalcount,$LDSearchFound).' '.$LDShowing.' '.$pagen->BlockStartNr().' '.$LDTo.' '.$pagen->BlockEndNr().'.';
  599. else echo str_replace('~nr~','0',$LDSearchFound);
  600. echo ' <font class="prompt">'.$LDPlsClk1.'</font><br>';
  601. ?>
  602. <table cellpadding=0 cellspacing=0 border=0>
  603. <tr>
  604. <td valign=top>
  605. <table cellpadding=1 cellspacing=0 border=0 class="frame">
  606. <tr>
  607. <td>
  608. <table cellpadding=2 cellspacing=0 border=0 class="submenu">
  609. <tr class="wardlisttitlerow">
  610. <td><b>
  611. <?php echo $pagen->makeSortLink($LDPatientNr,'encounter_nr',$oitem,$odir,$append); ?></b></td>
  612. <td><b>
  613. <?php echo $pagen->makeSortLink($LDSex,'sex',$oitem,$odir,$append); ?></b></td>
  614. <td><b>
  615. <?php echo $pagen->makeSortLink($LDLastName,'name_last',$oitem,$odir,$append); ?></b></td>
  616. <td><b>
  617. <?php echo $pagen->makeSortLink($LDName,'name_first',$oitem,$odir,$append); ?></b></td>
  618. <td><b>
  619. <?php echo $pagen->makeSortLink($LDBday,'date_birth',$oitem,$odir,$append); ?></b></td>
  620. </tr>
  621. <?php
  622. while($pdata=$result->FetchRow()){
  623. $ahref="<a href=\"oploginput.php".URL_APPEND."&mode=get&enc_nr=".$pdata['encounter_nr']."&dept_nr=$dept_nr&saal=$saal&op_nr=$op_nr&pday=$pday&pmonth=$pmonth&pyear=$pyear\">";
  624. echo '<tr ><td><FONT SIZE=2>'.$ahref;
  625. if($sk&&stristr($pdata['encounter_nr'],$sk)) echo '<u><b><span style="background:yellow"> '.$pdata['encounter_nr'].'</span></b></u>';
  626. else echo $pdata['encounter_nr'];
  627. echo '</a></td><td>';
  628. echo $ahref;
  629. switch($pdata['sex']){
  630. case 'f': echo '<img '.$img_female.'>'; break;
  631. case 'm': echo '<img '.$img_male.'>'; break;
  632. default: echo '&nbsp;'; break;
  633. }
  634. echo '</a></td><td><FONT SIZE=2>'.$ahref;
  635. if($sk&&stristr($pdata['name_last'],$sk)) echo '<u><b><span style="background:yellow"> '.$pdata['name_last'].'</span></b></u>';
  636. else echo $pdata['name_last'];
  637. echo '</a></td><td><FONT SIZE=2>'.$ahref;
  638. if($sk&&stristr($pdata['name_first'],$sk)) echo '<u><b><span style="background:yellow"> '.$pdata['name_first'].'</span></b></u>';
  639. else echo $pdata['name_first'];
  640. echo '</a></td><td><FONT SIZE=2>';
  641. if($sk&&stristr($pdata['date_birth'],$sk)) echo '<u><b><span style="background:yellow"> '.formatDate2Local($pdata['date_birth'],$date_format).'</span></b></u>';
  642. else echo formatDate2Local($pdata['date_birth'],$date_format);
  643. echo '</td></tr> ';
  644. }
  645. echo '
  646. <tr><td colspan=4><font size=2>'.$pagen->makePrevLink($LDPrevious,$append).'</td>
  647. <td align=right><font size=2>'.$pagen->makeNextLink($LDNext,$append).'</td>
  648. </tr>';
  649. }else{
  650. echo '
  651. <font color="#800000" size=4>'.$LDPatientNotFound.'</font>
  652. <font size=2 ><br>'.$LDPlsEnoughData;
  653. }
  654. echo '
  655. </table>
  656. </td>
  657. </tr>
  658. </table>
  659. </td>
  660. </tr>
  661. </table>
  662. </center>
  663. ';
  664. }
  665. ?>
  666. <input type="hidden" name="sid" value="<?php echo $sid; ?>">
  667. <input type="hidden" name="lang" value="<?php echo $lang; ?>">
  668. <input type="hidden" name="internok" value="<?php echo $internok; ?>">
  669. <input type="hidden" name="encoder" value="<?php echo $_COOKIE['ck_op_pflegelogbuch_user'.$sid]; ?>">
  670. <input type="hidden" name="op_nr" value="<?php echo $op_nr; ?>">
  671. <input type="hidden" name="thisday" value="<?php echo $thisday; ?>">
  672. <input type="hidden" name="op_date" value="<?php echo $thisday; ?>">
  673. <input type="hidden" name="dept_nr" value="<?php echo $dept_nr; ?>">
  674. <input type="hidden" name="saal" value="<?php echo $saal; ?>">
  675. <input type="hidden" name="xx2" value="">
  676. <table border=0 bgcolor="#9c9c9c" cellpadding=0 cellspacing=0>
  677. <tr>
  678. <td>
  679. <TABLE CELLPADDING=1 CELLSPACING=1 border=0 class="v10_n">
  680. <tr bgcolor="#fefefe" height=180>
  681. <TD valign="top" width=150><font size=1>
  682. <?php
  683. if($pdata['encounter_nr']=='')
  684. {
  685. echo $LDPatientNr.': <br>
  686. <INPUT NAME="enc_nr" TYPE="text" VALUE="" onKeyUp="isvalnum(this.value,this.name)" SIZE="9" ><br>
  687. '.$LDLastName.', '.$LDName.'<br>
  688. <INPUT NAME="pname" TYPE="text" VALUE="" SIZE="20"><BR>
  689. '.$LDBday.'<br>
  690. <INPUT NAME="gebdatum" TYPE="text" VALUE="" SIZE="20" onKeyUp="isgdatum(this.value,this.name)"><p>
  691. <center><input type="submit" value="'.$LDSearchPatient.'"></center>
  692. <input type="hidden" name="mode" value="search">
  693. ';
  694. }
  695. else
  696. { echo '
  697. <a href="javascript:openfolder(\''.$pdata['encounter_nr'].'\')">
  698. <img '.createComIcon($root_path,'info2.gif','0').' alt="'.str_replace("~tagword~",$lname,$LDOpenPatientFolder).'"></a>
  699. <font color="#000000" size=2>';
  700. //echo ($pdata['encounter_class_nr']==1)?($pdata['encounter_nr']+$GLOBAL_CONFIG['patient_inpatient_nr_adder']) : ($pdata['encounter_nr']+$GLOBAL_CONFIG['patient_outpatient_nr_adder']);
  701. echo $pdata['encounter_nr'];
  702. echo '</font><br>
  703. <font size=2>'.strtr($lname,"+"," ").', '.strtr($fname,"+"," ").'</font><br>
  704. <font color="#000000" >'.formatDate2Local($bdate,$date_format).'</font><p>
  705. <font color="#000000">'.$pdata['addr_str'].' '.$pdata['addr_str_nr'].'<br>'.$pdata['addr_zip'].' '.$pdata['citytown_name'].'</font>
  706. <input type="hidden" name="enc_nr" value="'.$pdata['encounter_nr'].'">
  707. <input type="hidden" name="mode" value="save">';
  708. }
  709. ?>
  710. </TD>
  711. <TD valign="top" width=130><font size=1 color="<?php if($datafound) echo "#0000cc"; else echo "#3f3f3f"; ?>">
  712. <?php
  713. if($datafound){
  714. echo '<a href="'.$root_path.'modules/drg/drg-icd10.php?sid='.$sid.'&lang='.$lang;
  715. echo "&pn=".$pdata['encounter_nr']."&ln=$lname&fn=$fname&bd=$bdate&opnr=$op_nr&dept_nr=$dept_nr&oprm=$saal";
  716. echo '" target="OPLOGMAIN">'.$LDDiagnosis.':</a><br>
  717. <textarea name="diagnosis" cols=16 rows=8 wrap="physical" ></textarea>';
  718. }else{
  719. echo $LDDiagnosis;
  720. }
  721. ?>
  722. </TD>
  723. <TD valign=top width=140 >
  724. <?php
  725. if($datafound)
  726. {
  727. echo'
  728. <font size=1 color="#000000">';
  729. $ebuf=array("operator","assistant","scrub_nurse","rotating_nurse");
  730. $jbuf=array("operator","assist","scrub","rotating");
  731. $tbuf=array("O","A","I","S");
  732. //$cbuf=array("Operateur","Assistent","Instrumenteur","Springer");
  733. for($n=0;$n<sizeof($ebuf);$n++)
  734. {
  735. echo '<a href="javascript:getinfo(\''.$jbuf[$n].'\')">'.$cbuf[$n].'</a><br>';
  736. if(!$pdata[$ebuf[$n]])
  737. { echo "<br>"; continue;}
  738. $dbuf=explode("~",$pdata[$ebuf[$n]]);
  739. for($i=0;$i<sizeof($dbuf);$i++)
  740. {
  741. parse_str(trim($dbuf[$i]),$elems);
  742. if($elems[n]=='') continue;
  743. else echo '&nbsp;'.$elems[n]." ".$tbuf[$n].$elems[x]."<br>";
  744. }
  745. }
  746. }
  747. else
  748. {
  749. echo '
  750. <font size=1 color="#3f3f3f">';
  751. while(list($x,$v)=each($cbuf)) echo "$v<p>";
  752. }
  753. ?>
  754. </TD>
  755. <TD valign=top width=150>
  756. <font size=1 color="<?php if($datafound) echo "#0000cc"; else echo "#3f3f3f"; ?>">
  757. <?php if($datafound) : ?>
  758. <?php echo $LDAna ?><br>
  759. <select NAME="anesthesia" SIZE="1">
  760. <?php
  761. /* Print anesthesia types */
  762. while(list($x,$v)=each($LDAnaTypes))
  763. {
  764. echo '
  765. <option value="'.$x.'"';
  766. if($pdata['anesthesia']==$x) echo ' selected';
  767. echo '>'.$v.'</option>';
  768. }
  769. ?>
  770. </select>
  771. <BR>
  772. <a href="javascript:getinfo('ana')"><?php echo $LDAnaDoc ?></a><br>
  773. <?php
  774. /* Print anesthesia doctor */
  775. if($pdata['an_doctor'])
  776. {
  777. echo '<font color="#000000">';
  778. $dbuf=explode('~',$pdata['an_doctor']);
  779. for($i=0;$i<sizeof($dbuf);$i++)
  780. {
  781. parse_str(trim($dbuf[$i]),$elems);
  782. if($elems['n']=='') continue;
  783. else echo '&nbsp;'.$elems['n'].' N'.$elems['x'].'<br>';
  784. }
  785. echo '</font>';
  786. }
  787. ?>
  788. <?php else : ?>
  789. <?php echo "$LDAna<p>$LDAnaDoc" ?>
  790. <?php endif ?>
  791. <p>
  792. <table cellpadding="0" cellspacing="0" border=0 width=100% class="v10_n">
  793. <tr>
  794. <td>
  795. <?php
  796. /*
  797. $eo=explode("~",$pdata['entry_out']);
  798. parse_str($eo[0],$eobuf);
  799. $cc=explode("~",$pdata['cut_close']);
  800. parse_str($cc[0],$ccbuf);
  801. */
  802. $eo=explode("~",$pdata['entry_out']);
  803. for($i=0;$i<sizeof($eo);$i++)
  804. {
  805. parse_str($eo[$i],$eobuf);
  806. if(trim($eobuf['s'])) break;
  807. }
  808. $cc=explode("~",$pdata['cut_close']);
  809. for($i=0;$i<sizeof($cc);$i++)
  810. {
  811. parse_str($cc[$i],$ccbuf);
  812. if(trim($ccbuf['s'])) break;
  813. }
  814. ?>
  815. <font size=1 color="<?php if($datafound) echo "#0000cc"; else echo "#3f3f3f"; ?>">
  816. <?php echo $LDOpCut ?>:
  817. <?php if($datafound) : ?>
  818. <br><INPUT NAME="cut_time" TYPE="text" VALUE="<?php echo strtr($ccbuf['s'],':','.'); ?>" SIZE="6" onKeyUp="isnum(this.value,this.name)">
  819. <?php else : ?>
  820. <p>
  821. <?php endif ?>
  822. <BR>
  823. <?php echo $LDOpClose ?>:
  824. <?php if($datafound) : ?>
  825. <br><INPUT NAME="close_time" TYPE="text" VALUE="<?php echo strtr($ccbuf['e'],':','.'); ?>" SIZE="6" onKeyUp="isnum(this.value,this.name)">
  826. <?php endif ?>
  827. </td>
  828. <td><font size=1 color="<?php if($datafound) echo "#0000cc"; else echo "#3f3f3f"; ?>">
  829. <?php echo $LDOpInFull ?>:
  830. <?php if($datafound) : ?>
  831. <br><INPUT NAME="entry_time" TYPE="text" VALUE="<?php echo strtr($eobuf['s'],':','.'); ?>" SIZE="6" onKeyUp="isnum(this.value,this.name)">
  832. <?php else : ?>
  833. <p>
  834. <?php endif ?>
  835. <BR>
  836. <?php echo $LDOpOutFull ?>:
  837. <?php if($datafound) : ?>
  838. <br><INPUT NAME="exit_time" TYPE="text" VALUE="<?php echo strtr($eobuf['e'],':','.'); ?>" SIZE="6" onKeyUp="isnum(this.value,this.name)">
  839. <?php endif ?>
  840. </td>
  841. </tr>
  842. </table>
  843. </TD>
  844. <TD valign="top" width=160><font size=1
  845. color="<?php if($datafound) echo "#0000cc"; else echo "#3f3f3f"; ?>">
  846. <?php if($datafound)
  847. {
  848. echo '<a href="'.$root_path.'modules/drg/drg-ops301.php?sid='.$sid.'&lang='.$lang;
  849. echo "&pn=".$pdata['encounter_nr']."&ln=$lname&fn=$fname&bd=$bdate&opnr=$op_nr&dept_nr=$dept_nr&oprm=$saal";
  850. echo '" target="OPLOGMAIN">'.$LDTherapy.'/'.$LDOperation.'</a><br>
  851. <TEXTAREA NAME="op_therapy" COLS="18" ROWS="8"></TEXTAREA>';
  852. }
  853. else echo $LDTherapy.'/'.$LDOperation;
  854. ?>
  855. </TD>
  856. <TD valign="top" width=140><font size=1 color="<?php if($datafound) echo "#0000cc"; else echo "#3f3f3f"; ?>"><?php echo $LDOpMainElements[result] ?><br>
  857. <?php if($datafound) echo '
  858. <TEXTAREA NAME="result_info" Content-Type="text/html"
  859. COLS="18" ROWS="8"></TEXTAREA>';
  860. ?>
  861. </TD>
  862. </TR>
  863. </TABLE>
  864. </td>
  865. </tr>
  866. </table>
  867. </FORM>
  868. </BODY>
  869. </HTML>