2 error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
);
3 require('./roots.php');
4 require($root_path.'include/inc_environment_global.php');
6 * CARE2X Integrated Hospital Information System Deployment 2.1 - 2004-10-02
7 * GNU General Public License
8 * Copyright 2002,2003,2004,2005 Elpidio Latorilla
11 * See the file "copy_notice.txt" for the licence notice
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);
17 $lang_tables[]='departments.php';
18 $lang_tables[]='doctors.php';
19 $lang_tables[]='search.php';
20 $lang_tables[]='actions.php';
21 define('LANG_FILE','or.php');
22 $local_user='ck_opdoku_user';
23 require_once($root_path.'include/inc_front_chain_lang.php');
25 # Check if department nr and OR nr are available from user config
26 if(!isset($dept_nr)||
!$dept_nr){
27 if(isset($cfg['thispc_dept_nr'])&&!empty($cfg['thispc_dept_nr'])){
28 $dept_nr=$cfg['thispc_dept_nr'];
31 header('Location:op-doku-select-dept.php'.URL_REDIRECT_APPEND
.'&target=entry');
38 # Init as no patient found
39 $patientselected=FALSE;
42 /*if ((substr($matchcode,0,1)=="%")||(substr($matchcode,0,1)=="&")) {
47 /* Save dept name to session */
48 if(!session_is_registered('sess_dept_name')) session_register('sess_dept_name');
50 /* Create dept object and preload dept info */
51 require_once($root_path.'include/care_api_classes/class_department.php');
52 $dept_obj=new Department
;
53 $dept_obj->preloadDept($dept_nr);
54 $buffer=$dept_obj->LDvar();
55 if(isset($
$buffer)&&!empty($
$buffer)) $HTTP_SESSION_VARS['sess_dept_name']=$
$buffer;
56 else $HTTP_SESSION_VARS['sess_dept_name']=$dept_obj->FormalName();
58 /* Load global configs */
59 include_once($root_path.'include/care_api_classes/class_globalconfig.php');
60 $GLOBAL_CONFIG=array();
61 $glob_obj=new GlobalConfig($GLOBAL_CONFIG);
62 $glob_obj->getConfig('patient_%');
63 /* Create the encounter object */
64 include_once($root_path.'include/care_api_classes/class_encounter.php');
65 $enc_obj=new Encounter();
67 require_once($root_path.'include/inc_config_color.php'); // load color preferences
69 $thisfile=basename(__FILE__
);
70 $breakfile=$root_path.'main/op-doku.php'.URL_APPEND
;
71 //foreach($arg as $v) echo "$v<br>"; //init db parameters
75 require_once($root_path.'include/inc_date_format_functions.php');
77 if($mode=='match'||
$mode=='search'||
$mode=='paginate'){
79 # Initialize pageĀ“s control variables
80 if($mode=='paginate'){
81 $matchcode=$HTTP_SESSION_VARS['sess_searchkey'];
82 //$searchkey='USE_SESSION_SEARCHKEY';
85 # Reset paginator variables
90 $HTTP_SESSION_VARS['sess_searchkey']=$matchcode;
93 require_once($root_path.'include/care_api_classes/class_paginator.php');
94 $pagen=new Paginator($pgx,$thisfile,$HTTP_SESSION_VARS['sess_searchkey'],$root_path);
96 require_once($root_path.'include/care_api_classes/class_globalconfig.php');
97 $glob_obj=new GlobalConfig($GLOBAL_CONFIG);
99 # Get the max nr of rows from global config
100 $glob_obj->getConfig('pagin_patient_search_max_block_rows');
101 if(empty($GLOBAL_CONFIG['pagin_patient_search_max_block_rows'])) $pagen->setMaxCount(MAX_BLOCK_ROWS
); # Last resort, use the default defined at the start of this page
102 else $pagen->setMaxCount($GLOBAL_CONFIG['pagin_patient_search_max_block_rows']);
104 # Resolve the table prefix acc: to order item passed via http
105 if($oitem=='encounter_nr') $prefx='e';
106 elseif($oitem=='LD_var')
108 elseif($oitem=='op_date'||
$oitem=='nr')
113 $dbtable='care_op_med_doc';
115 if(is_numeric($matchcode)&&$matchcode)
117 $matchcode=(int)$matchcode;
119 $matchcode=addslashes($matchcode);
122 $select_sql="SELECT o.*, e.encounter_class_nr, p.name_last, p.name_first, p.date_birth,p.sex,d.name_formal,d.LD_var AS \"LD_var\"";
124 $from_sql=" FROM $dbtable AS o,
127 care_department AS d ";
129 $and_sql=' AND o.encounter_nr=e.encounter_nr
133 if(!isset($all_depts)||
$all_depts=='false') $and_sql.=' AND o.dept_nr='.$dept_nr;
135 $sql2= "$from_sql WHERE o.encounter_nr $sql_LIKE '$matchcode%' $and_sql";
137 $sql=$select_sql.$sql2." ORDER BY $prefx.$oitem $odir";
139 //if(!isset($all_depts)||$all_depts=='false') $sql.=' AND o.dept_nr='.$dept_nr;
141 if($ergebnis=$db->SelectLimit($sql,$pagen->MaxCount(),$pgx))
143 if(!$rows=$ergebnis->RecordCount())
145 // if not found find similar
146 $sql2 = " $from_sql WHERE ( ";
148 if(is_numeric($matchcode)){
149 $sql2.=" o.nr $sql_LIKE '".trim($matchcode)."%'
150 OR o.encounter_nr $sql_LIKE '".trim($matchcode)."%'
153 $sql2.="p.name_last $sql_LIKE '".trim($matchcode)."%'
154 OR p.name_first $sql_LIKE '".trim($matchcode)."%'";
156 $DOB = formatDate2STD($matchcode,$date_format);
159 $sql2.=" OR p.date_birth = '$DOB'";
162 $sql2.= ") $and_sql";
163 //if(!isset($all_depts)||$all_depts=='false') $sql.=' AND o.dept_nr='.$dept_nr;
165 $sql2.=" ORDER BY $prefx.$oitem $odir";
166 $sql=$select_sql.$sql2;
168 if($ergebnis=$db->SelectLimit($sql,$pagen->MaxCount(),$pgx))
170 $rows=$ergebnis->RecordCount();
174 }else echo "$LDDbNoRead<p> $sql <p>";
177 //$linecount=$address_obj->LastRecordCount();
178 $pagen->setTotalBlockCount($rows);
179 # Count total available data
180 if(isset($totalcount)&&$totalcount){
181 $pagen->setTotalDataCount($totalcount);
183 $sql="SELECT o.nr ".$sql2;
184 if($cresult=$db->Execute($sql)) {
185 $totalcount=$cresult->RecordCount();
187 $pagen->setTotalDataCount($totalcount);
189 $pagen->setSortItem($oitem);
190 $pagen->setSortDirection($odir);
192 }elseif($mode=='select'){
194 $dbtable='care_op_med_doc';
196 $sql="SELECT * FROM $dbtable WHERE nr='$nr'";
198 if($ergebnis=$db->Execute($sql)) {
199 if($rows=$ergebnis->RecordCount()){
201 $row=$ergebnis->FetchRow();
202 $enc_obj->loadEncounterData($row['encounter_nr']);
203 $patientselected=TRUE;
206 echo "$LDDbNoRead<p> $sql <p>";
209 if($HTTP_COOKIE_VARS['ck_login_logged'.$sid]) $mode='dummy';
213 # Start the smarty templating
217 # Note: it is advisable to load this after the inc_front_chain_lang.php so
218 # that the smarty script can use the user configured template theme
220 require_once($root_path.'gui/smarty_template/smarty_care.class.php');
221 $smarty = new smarty_care('nursing');
223 # Added for the common header top block
225 $smarty->assign('sToolbarTitle',"$LDOrDocument :: $LDSearch (".$HTTP_SESSION_VARS['sess_dept_name'].")");
227 $smarty->assign('pbHelp',"javascript:gethelp('opdoc.php','search','$mode','$rows')");
230 $smarty->assign('pbBack',FALSE);
232 # href for close button
233 $smarty->assign('breakfile',$breakfile);
236 $smarty->assign('sWindowTitle',"$LDOrDocument :: $LDSearch (".$HTTP_SESSION_VARS['sess_dept_name'].")");
238 $smarty->assign('sOnLoadJs','onLoad="if(window.focus) window.focus();document.matchform.matchcode.focus();"');
241 * collect JavaScript for Smarty
246 <script language
="javascript">
249 function lookmatch(d
)
252 a
=d
.all_depts
.checked
;
253 if(m
=="") return false;
254 /* if((m.substr(0,1)=="%")||(m.substr(0,1)=="&"))
256 d.matchcode.value="";
260 */ window
.location
.replace("op-doku-search.php?sid=<?php echo "$sid&lang
=$lang&target
=$target&dept_nr
=$dept_nr" ?>&mode=match&matchcode="+m+
"&all_depts="+a
);
268 $sTemp = ob_get_contents();
271 $smarty->append('JavaScript',$sTemp);
279 <table width
=100% border
=0 cellspacing
=0 cellpadding
=0>
281 <?php
require('./gui_tabs_op_doku.php'); ?
>
284 <td colspan
=2><p
><br
>
287 <form method
="post" name
="matchform" onSubmit
="return lookmatch(this)">
288 <?php
echo $LDSearchKeyword ?
>: <input name
="matchcode" type
="text" size
="20"> 
;<br
>
289 <input type
="checkbox" name
="all_depts" <?php
if ($all_depts=='true') echo 'checked' ?
>> <?php
echo $LDSearchInAllDepts ?
><br
>
290 <input type
="image" <?php
echo createLDImgSrc($root_path,'searchlamp.gif','0','absmiddle') ?
> alt
="<?php echo $LDSearch ?>">
291 <input type
="hidden" name
="sid" value
="<?php echo $sid ?>">
292 <input type
="hidden" name
="lang" value
="<?php echo $lang ?>">
293 <input type
="hidden" name
="dept_nr" value
="<?php echo $dept_nr ?>">
297 if($rows&&!$patientselected){
302 <td
><img
<?php
echo createMascot($root_path,'mascot1_r.gif','0','bottom') ?
> align
="absmiddle"></td
>
303 <td
><FONT
class="prompt">
305 if (($mode=='match'||
$mode=='paginate')){
306 if($rows) echo str_replace("~nr~",$totalcount,$LDSearchFound).' '.$LDShowing.' '.$pagen->BlockStartNr().' '.$LDTo.' '.$pagen->BlockEndNr().'.';
307 else echo str_replace('~nr~','0',$LDSearchFound);
309 $append="&dept_nr=$dept_nr&target=search&all_depts=$all_depts";
310 # Preload common icon images
311 $img_male=createComIcon($root_path,'spm.gif','0','',TRUE);
312 $img_female=createComIcon($root_path,'spf.gif','0','',TRUE);
313 $bgimg='tableHeaderbg3.gif';
314 $tbg= 'background="'.$root_path.'gui/img/common/'.$theme_com_icon.'/'.$bgimg.'"';
320 <table border
=0 cellpadding
=0 cellspacing
=0>
321 <tr
class="wardlisttitlerow">
323 <?php
echo $pagen->makeSortLink($LDSex,'sex',$oitem,$odir,$append); ?
></b
></td
>
325 <?php
echo $pagen->makeSortLink($LDLastName,'name_last',$oitem,$odir,$append); ?
></b
></td
>
327 <?php
echo $pagen->makeSortLink($LDName,'name_first',$oitem,$odir,$append); ?
></b
></td
>
329 <?php
echo $pagen->makeSortLink($LDBday,'date_birth',$oitem,$odir,$append); ?
></b
></td
>
331 <?php
echo $pagen->makeSortLink($LDPatientNr,'encounter_nr',$oitem,$odir,$append); ?
></b
></td
>
333 <?php
echo $pagen->makeSortLink($LDSrcListElements[5],'op_date',$oitem,$odir,$append); ?
></b
></td
>
335 <?php
echo $pagen->makeSortLink($LDDepartment,'LD_var',$oitem,$odir,$append); ?
></b
></td
>
337 <?php
echo $pagen->makeSortLink($LDOpNr,'nr',$oitem,$odir,$append); ?
></b
></td
>
341 while($row=$ergebnis->FetchRow())
345 if($toggle){ echo 'class="wardlistrow2"'; } else { echo 'class="wardlistrow1"'; }
347 # Prepare the url get values
348 $buf="op-doku-search.php".URL_APPEND
."&dept_nr=".$row['dept_nr']."&target=search&mode=select&nr=".$row['nr']."&all_depts=".$all_depts;
352 case 'f': echo '<img '.$img_female.'>'; break;
353 case 'm': echo '<img '.$img_male.'>'; break;
354 default: echo ' '; break;
359 <td> <a href="'.$buf.'" title="'.$LDClk2Show.'">'.$row['name_last'].'</a></td>
360 <td> '.$row['name_first'].'</td>
361 <td> '.formatDate2Local($row['date_birth'],$date_format).'</td>
364 echo $row['encounter_nr'].'</td>
365 <td> <a href="'.$buf.'" title="'.$LDClk2Show.'">'.formatDate2Local($row['op_date'],$date_format).'</a></td>
368 $buffer=$row['LD_var'];
369 if(isset($
$buffer)&&!empty($
$buffer)) echo $
$buffer;
370 else echo $row['name_formal'];
373 <td align=right> <a href="'.$buf.'" title="'.$LDClk2Show.'">'.$row['nr'].'</a> </td>
375 <tr class="thinrow_vspacer">
376 <td colspan=8 height=1><img src="'.$root_path.'gui/img/common/default/pixel.gif" border=0 width=1 height=1 align="absmiddle"></td>
380 <tr><td colspan=7><font face=arial size=2>'.$pagen->makePrevLink($LDPrevious,$append).'</td>
381 <td align=right><font face=arial size=2>'.$pagen->makeNextLink($LDNext,$append).'</td>
391 }elseif($rows&&$patientselected){
397 <form method
="post" action
="op-doku-start.php" name
="opdoc">
398 <tr bgcolor
="#ffffff">
399 <td
><?php
echo $LDSrcListElements[7] ?
>:<br
>
402 <?php
echo '<font color="#800000">'.$row['nr'];
406 <tr bgcolor
="#ffffff">
407 <td
><?php
echo $LDSrcListElements[6] ?
>:<br
>
410 <?php
echo '<font color="#800000">'.$HTTP_SESSION_VARS['sess_dept_name'];
414 <tr bgcolor
="#ffffff">
415 <td
><?php
echo $LDOpDate ?
>:<br
>
418 <?php
echo '<font color="#800000">'.formatDate2Local($row['op_date'],$date_format);
420 <font color
=#0> <?php echo $LDOperator ?>:
421 <?php
echo '<font color="#800000">'.$row['operator'];
425 <tr bgcolor
="#ffffff">
428 <?php
echo $LDPatientNr ?
>:
430 <td
><FONT color
="#000099"><?php
echo $row['encounter_nr']; ?
>
436  
;<!-- Spacer row
-->
442 <tr bgcolor
="#ffffff">
443 <td
><?php
echo $LDLastName ?
>:
446 <?php
echo '<font color="#000099"><b>'.$enc_obj->LastName().'</b>';
450 <tr bgcolor
="#ffffff">
451 <td
><?php
echo $LDName ?
>:
454 <?php
echo '<font color="#000099"><b>'.$enc_obj->FirstName().'</b>';
458 <tr bgcolor
="#ffffff">
459 <td
><?php
echo $LDBday ?
>:
462 <?php
echo '<font color="#000099">'.formatDate2Local($enc_obj->BirthDate(),$date_format);
466 <tr bgcolor
="#ffffff">
471 <?php
switch($row['status'])
473 case "stat": echo $LDStationary;break;
474 case "amb": echo $LDAmbulant; break;
477 echo ucfirst($row['kasse']);
481 <tr bgcolor
="#ffffff">
482 <td
><?php
echo $LDDiagnosis ?
>:
485 <?php
echo '<font color="#800000">'.$row['diagnosis'];
489 <tr bgcolor
="#ffffff">
490 <td
><?php
echo $LDLocalization ?
>:
493 <?php
echo '<font color="#800000">'.$row['localize'];
497 <tr bgcolor
="#ffffff">
498 <td
><?php
echo $LDTherapy ?
>:
502 <?php
echo '<font color="#800000">'.$row['therapy'];
506 <tr bgcolor
="#ffffff">
507 <td
><?php
echo $LDSpecials ?
>:
510 <?php
echo '<font color="#800000">'.$row['special'];
514 <tr bgcolor
="#ffffff">
515 <td
><?php
echo $LDClassification ?
>:
518 <font color
="#800000">
520 if($row['class_s']) echo $row['class_s']." $LDMinor ";
521 if($row['class_m']) echo $row['class_m']." $LDMiddle ";
522 if($row['class_l']) echo $row['class_l']." $LDMajor";
523 echo " $LDOperation";
530 <?php
echo $LDOpStart ?
>:<font color
="#0">
531 <?php
echo '<font color="#800000">'.convertTimeToLocal($row['op_start']).' ';
534 <font color
="#0"><?php
echo $LDOpEnd ?
>:
535 <?php
echo '<font color="#800000">'.convertTimeToLocal($row['op_end']).' ';
538 <font color
="#0"><?php
echo $LDScrubNurse ?
>:
539 <?php
echo '<font color="#800000">'.$row['scrub_nurse'].' ';
542 <font color
="#0"><?php
echo $LDOpRoom ?
>: <font color
="#0">
543 <?php
echo '<font color="#800000">'.$row['op_room'];
546 $buf="op-doku-start.php?sid=$sid&lang=$lang&mode=update&update=1&nr=".$row['nr']."&pn=".$row['encounter_nr'];
548 <!-- <p
><input type
="button" value
="<?php echo $LDUpdateData ?>" onClick
="window.location.href='<?php echo $buf ?>'">  
;
550 <p
><input type
="image" <?php
echo createLDImgSrc($root_path,'update_data.gif') ?
>>
551 <input type
="hidden" name
="sid" value
="<?php echo $sid ?>">
552 <input type
="hidden" name
="lang" value
="<?php echo $lang ?>">
553 <input type
="hidden" name
="nr" value
="<?php echo $row['nr'] ?>">
554 <input type
="hidden" name
="pn" value
="<?php echo $row['encounter_nr'] ?>">
555 <input type
="hidden" name
="dept_nr" value
="<?php echo $dept_nr ?>">
556 <input type
="hidden" name
="all_depts" value
="<?php echo $all_depts ?>">
557 <input type
="hidden" name
="target" value
="entry">
558 <input type
="hidden" name
="mode" value
="update">
559 <input type
="hidden" name
="update" value
="1">
563 }elseif($mode=='match'){
567 <td
><img
<?php
echo createMascot($root_path,'mascot2_r.gif','0','bottom') ?
> align
="absmiddle"></td
>
568 <td
class="warnprompt">
569 <?php
echo $LDSorryNotFound; ?
>
589 <FONT SIZE
=2 FACE
="Arial">
590 <img
<?php
echo createComIcon($root_path,'varrow.gif','0') ?
>> <a href
="op-doku-start.php<?php echo URL_APPEND."&target
=entry
&dept_nr
=$dept_nr" ?>&mode=dummy"><?php
echo $LDStartNewDocu ?
></a
><br
>
591 <img
<?php
echo createComIcon($root_path,'varrow.gif','0') ?
>> <a href
="op-doku-archiv.php<?php echo URL_APPEND."&target
=archiv
&dept_nr
=$dept_nr" ?>&mode=dummy"><?php
echo $LDResearchArchive ?
></a
><br
>
592 <img
<?php
echo createComIcon($root_path,'varrow.gif','0') ?
>> <a href
="op-doku-select-dept.php<?php echo URL_APPEND."&target
=$target&dept_nr
=$dept_nr"; ?>&mode=dummy"><?php
echo $LDChangeOnlyDept ?
></a
><br
>
595 <a href
="<?php echo $breakfile ?>"><img
<?php
echo createLDImgSrc($root_path,'close2.gif','0') ?
> alt
="<?php echo $LDClose ?>"></a
>
600 $sTemp = ob_get_contents();
603 # Assign the page output to main frame template
605 $smarty->assign('sMainFrameBlockData',$sTemp);
610 $smarty->display('common/mainframe.tpl');