コード例 #1
0
ファイル: clFichePatient.php プロジェクト: jeromecc/tuv2
 function genBlocEtatCivil($nomBloc, $mod, $droit, $date = '', $sortie = '')
 {
     global $session;
     global $options;
     // Initialisation des objets et des variables utilisées.
     // Pour générer des formulaires plus loin.
     $form = new clForm();
     // Date d'exécution.
     $now = new clDate();
     // Récupération des options.
     $retourmax = $options->getOption("Dates Patient");
     $tranches = $options->getOption("DatesDécoup Patient");
     // Récupération de la valeur actuelle du bloc.
     $res = '';
     eval("\$res = \$this->patient->get{$nomBloc} ( ) ;");
     // Si une date a été transmise et qu'elle n'est pas nulle, on initialise $res avec cette valeur.
     if ($date) {
         if ($res != "0000-00-00 00:00:00") {
             $res = $date->getDate("d-m-Y H:i");
         } else {
             $res = '';
         }
     }
     // Si toutes ces conditions sont réunies, alors on fait transiter le patient sorti vers la table des patients présents.
     if ($session->getNavi(3) == "mod" . $nomBloc and ($_POST['AnnulerSortie'] or $_POST['AnnulerSortie_x']) and $session->getDroit($this->type . "_EtatCivil", $droit)) {
         $modif = "0000-00-00 00:00:00";
         $this->patient->setAttribut($nomBloc, $modif);
         $this->patient = new clPatient($this->idpatient, "Sortis");
         $this->patient->entrerPatient();
         if ($options->getOption("Module_CCAM")) {
             $ccam = new clCCAMCotationActesDiags($this->paramCCAM);
             $ccam->deleteBAL();
             if ($options->getOption('HprimXML_Actif')) {
                 $hprimXml = new clHprimXML();
             }
         }
         $res = "";
         // Si ces conditions sont réunies, alors on change la date du champs avec la valeur transmise.
     } elseif ($session->getNavi(3) == "mod" . $nomBloc and ($_POST['Valider'] or $_POST['Valider_x']) and $session->getDroit($this->type . "_EtatCivil", $droit)) {
         if ($date) {
             if ($_POST['ValiderMaintenant'] or $_POST['ValiderMaintenant_x']) {
                 $newdate = new clDate();
             } elseif ($_POST["mod" . $nomBloc] == "now") {
                 $newdate = new clDate();
             } else {
                 $newdate = new clDate($_POST["mod" . $nomBloc]);
             }
             $modif = $newdate->getDatetime();
             $res = $newdate->getDate("d-m-Y H:i");
             // Si le paramètre $sortie est vrai, alors on fait transiter le patient présent vers la table des patients sortis.
             if ($sortie) {
                 $this->patient->setAttribut($nomBloc, $modif);
                 $this->patient = new clPatient($this->idpatient, "Presents");
                 clFoRmX_manip::rangerDossMedChrono($this->patient);
                 clFoRmX_manip::rangerDossMedAEV($this->patient);
                 $this->patient->sortirPatient();
                 if ($options->getOption("Module_CCAM")) {
                     $this->paramCCAM["dtFinInterv"] = $this->patient->getDateSortie();
                     $ccam = new clCCAMCotationActesDiags($this->paramCCAM);
                     $ccam->writeBALSorti();
                     if ($options->getOption('HprimXML_Actif')) {
                         $hprimXml = new clHprimXML();
                     }
                 }
                 $this->rien = "sortie";
             }
             // Dans le dernier cas, il s'agit d'un bloc de type "textarea" tout simple à mettre à jour.
         } else {
             $modif = $_POST["mod" . $nomBloc];
             $res = $modif;
         }
         // Mise à jour du patient.
         $session->setLogSup("Modification du bloc {$nomBloc}");
         $this->patient->setAttribut($nomBloc, $modif);
         $this->patient = new clPatient($this->idpatient, $this->type);
         // Dans ce cas, nous devons afficher le formulaire adéquate à la modification du bloc.
     } elseif ($session->getNavi(3) == "mod" . $nomBloc and !$_POST['Annuler'] and !$_POST['Annuler_x']) {
         // Cas des champs de type date.
         $session->setLogSup("Demande de modification du bloc {$nomBloc}");
         if ($date) {
             if ($sortie and $this->patient->getDateExamen() != '0000-00-00 00:00:00') {
                 $dateMin = new clDate($this->patient->getDateExamen());
             } else {
                 $dateMin = new clDate($this->patient->getDateAdmission());
             }
             $dateNow = new clDate();
             if ($tranches >= 5) {
                 $minutes = $dateNow->getMinutes();
                 $minutesless = $minutes % 5;
                 $dateNow->addMinutes(-$minutesless);
             }
             $data[now] = 'Maintenant';
             $min = $dateMin->getTimestamp();
             $t = $dateNow->getTimestamp();
             $data[$t] = $dateNow->getDate("d-m-Y H:i");
             // On limite la taille du select
             $d1 = new clDate();
             $d2 = new clDate($dateMin->getDatetime());
             $duree = new clDuree($d1->getDifference($d2));
             $duree->invertNegatif();
             //if ( $duree->getDays() > 50 ) {
             //    $d1 -> addDays ( -50 ) ;
             //    $min = $d1 -> getTimestamp ( ) ;
             //}
             // On parcourt les dates en fonctions des options.
             for ($i = 0; $dateNow->getTimestamp() >= $min; $i += $tranches) {
                 $t = $dateNow->getTimestamp();
                 $data[$t] = $dateNow->getDate("d-m-Y H:i");
                 $dateNow->addMinutes(-$tranches);
             }
             $f .= $res . "<br />" . $form->genForm(URL);
             /*
             // Préparation de la première date de la liste.
             $now -> addHours ( -$retourmax ) ;
             $min = $now -> getTimestamp ( ) ;
             $now -> addHours ( $retourmax ) ;
             if ( $tranches >= 5 ) {
             	  		$minutes = $now -> getMinutes ( ) ;
             	  		$minutesless = ( $minutes % 5 ) ;
             	  		$now -> addMinutes ( -$minutesless ) ;
             }
             $data[now] = 'Maintenant' ;
             $t = $now -> getTimestamp ( ) ;
             $data[$t] = $now -> getDate ( "d-m-Y H:i" ) ;
             // On parcourt les dates en fonctions des options.
             for ( $i = 0 ; $now -> getTimestamp ( ) >= $min ; $i += $tranches ) {
             	  		$t = $now -> getTimestamp ( ) ;
             	  		$data[$t] = $now -> getDate ( "d-m-Y H:i" ) ;
             	  		$now -> addMinutes ( -$tranches ) ;
             }
             $f .= $res."<br />".$form -> genForm ( URL ) ;
             */
             // S'il ne s'agit pas de la date de sortie et que le patient est sorti,
             // alors on affiche le select contenant la liste des dates possibles.
             if (!($this->type == "Sortis" and $sortie)) {
                 $f .= $form->genSelect("mod" . $nomBloc, 1, $data);
             }
         } else {
             // Cas d'un formulaire de type "textarea" tout simple.
             $f .= $form->genForm(URL);
             $f .= $form->genTextArea("mod" . $nomBloc, $res) . "<br /><center>";
         }
         // Cas d'une date.
         if ($date) {
             // Cas de la date de sortie.
             if ($sortie) {
                 // Cas d'un patient déjà sorti : On affiche seulement un bouton d'annulation de sortie.
                 if ($this->type == "Sortis") {
                     $f .= $form->genImage("AnnulerSortie", "Annuler la sortie", URLIMG . "annulerSortie.gif");
                     $f .= $form->genHidden("navi", $session->genNavi("Liste_Presents", $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                     $f .= $form->genEndForm();
                     // $f .= $form -> genForm ( URL ) ;
                     // $f .= $form -> genImage ( "RetourPatient", "Retour du patient", URLIMGRET ) ;
                     // $f .= $form -> genHidden ( "navi", $session->genNavi ( "Liste_Presents", $this->patient->getID ( ) ) ) ;
                     // Dans les autres cas, on affiche les boutons de validation / annulation de la sortie.
                 } else {
                     $contraintes = new clContraintes($this->patient->getID(), $this->paramCCAM);
                     //formulaire(s) à remplir bloquant la sortie ( pré-contraintes ) ?
                     if (clTuFormxTrigger::getWatcher($this->patient)->isTriggersOnOut()) {
                         $enquetes = clTuFormxTriggerWatcher::getInstance($this->patient);
                         $enquetes->launchTriggersOnOut();
                         //eko("trigers lances, sortie de la fenetre bloquante");
                         return '';
                     } else {
                         if (clTuFormxTrigger::getWatcher($this->patient)->isTriggersWaitingForLauch()) {
                             //eko("watchers en cours, sortie de la fenetre bloquante");
                             return '';
                         } else {
                             if ($contraintes->runCheck()) {
                                 $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
                                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                                 $f .= $form->genEndForm();
                                 $f .= $form->genForm(URL);
                                 $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
                                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                             } else {
                                 $session->setLogSup('Contraintes non respectées pour la sortie');
                                 $this->af .= $contraintes->getContraintes();
                             }
                         }
                     }
                 }
                 // Cas d'un champs date normal : affichage des boutons valider et annuler.
             } else {
                 $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                 $f .= $form->genEndForm();
                 $f .= $form->genForm(URL);
                 $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
             }
             // Cas d'un champs normal : affichage des boutons valider et annuler.
         } else {
             $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
             $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
             $f .= $form->genEndForm();
             $f .= $form->genForm(URL);
             $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
             $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
         }
         // On ferme la balise du formulaire.
         $f .= "</center>" . $form->genEndForm();
         // On modifie le bloc ModeliXe passé en paramètres.
         $mod->MxText($nomBloc, $f);
         // On signale que le bloc a été modifié.
         $af = 1;
     }
     // S'il n'y a pas eu d'affichage jusqu'à maintenant, il ne s'agit que d'afficher la valeur contenue dans ce bloc.
     if (!$af) {
         // Si le droit de modification est présent, alors nous affichons le lien pour modifier le bloc.
         if ($session->getDroit($this->type . "_EtatCivil", $droit)) {
             if ($date) {
                 $image = URLIMGHOR;
             } else {
                 $image = URLIMGMOD;
             }
             if ($nomBloc == "DateExamen" and $_POST['Medecin'] and $this->patient->getDateExamen() == "0000-00-00 00:00:00" and !$this->patient->getMedecin()) {
                 $date = new clDate();
                 $dateA = new clDate($this->patient->getDateAdmission());
                 if ($date->getTimestamp() > $dateA->getTimestamp()) {
                     $this->patient->setAttribut("DateExamen", $date->getDatetime());
                     $res = $date->getDate("d-m-Y H:i");
                 } else {
                     $dateA->addSeconds(1);
                     $this->patient->setAttribut("DateExamen", $dateA->getDatetime());
                     $res = $dateA->getDate("d-m-Y H:i");
                 }
             }
             if ($nomBloc == "DateExamen" and isset($_POST['Medecin']) and !$_POST['Medecin']) {
                 $this->patient->setAttribut("DateExamen", "0000-00-00 00:00:00");
                 $res = "--";
             }
             if (!$this->export) {
                 if ($nomBloc == "DateSortie") {
                     $retour = '';
                     if ($options->getOption('EnqueteRadio')) {
                         $retour = clListeRadios::getRetour($this->patient->getID(), IDAPPLICATION);
                     }
                     if ($retour) {
                         $mod->MxText("retourRadio", $retour);
                     } else {
                         $questionSortie = $this->getQuestionSortie();
                         if ($questionSortie) {
                             $mod->MxText("retourRadio", $questionSortie);
                         } else {
                             $mod->MxImage("imgModifier" . $nomBloc, $image, "Modifier {$nomBloc}");
                             $mod->MxUrl("lien" . $nomBloc, URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                         }
                     }
                 } else {
                     $mod->MxImage("imgModifier" . $nomBloc, $image, "Modifier {$nomBloc}");
                     $mod->MxUrl("lien" . $nomBloc, URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                 }
             }
         }
         // Affichage du contenu du bloc s'il existe sinon on affiche la valeur par défaut.
         if ($res) {
             $mod->MxText($nomBloc, nl2br($res));
         } else {
             $mod->MxText($nomBloc, VIDEDEFAUT);
         }
     }
 }
コード例 #2
0
ファイル: clListesPatients.php プロジェクト: jeromecc/tuv2
 function genListePatient($etape)
 {
     global $session;
     global $options;
     $uhcd = $options->getOption("FiltreSalleUHCD");
     $pedi = $options->getOption("FiltreSalleSup");
     // Préparation de la requête.
     $req = new clResultQuery();
     $param['table'] = $this->table;
     if ($this->equipe) {
         $eq = " AND traumato LIKE '{$this->equipe}%' ";
     } else {
         $eq = '';
     }
     // Cas des patients normaux.
     if ($etape == 1) {
         $list = new ListMaker("template/ListePatients.html");
         // Changement de la requête des couleurs de la liste en fonction de la liste affichée (présents, UHCD, attendus ou sortis).
         // Liste des patients présents.
         if ($this->type == "Presents") {
             //$param['cw'] = " p, ".BASEXHAM.".listes l WHERE ((p.dt_examen!='0000-00-00 00:00:00'  AND l.nomliste='Salles d\'examens' AND p.salle_examen NOT LIKE 'UHCD%' AND (p.salle_examen=l.nomitem)) OR ( p.dt_examen!='0000-00-00 00:00:00'  AND p.salle_examen=l.nomitem AND p.salle_examen NOT LIKE 'UHCD%' ) )  AND l.idapplication=".IDAPPLICATION." ORDER BY l.rang" ;
             // Ancienne version avec classement des salles en fonction de leur rang : problème de salle invisible
             //if ( $pedi )
             //	$param['cw'] = " p, ".BASEXHAM.".listes l WHERE ((p.dt_examen!='0000-00-00 00:00:00'  AND l.nomliste='Salles d\'examens' " .
             //			"AND p.salle_examen NOT LIKE '$uhcd%' AND p.salle_examen NOT LIKE '$pedi%' AND (p.salle_examen=l.nomitem)) OR ( p.dt_examen!='0000-00-00 00:00:00'  " .
             //			"AND p.salle_examen=l.nomitem AND p.salle_examen NOT LIKE '$uhcd%' AND p.salle_examen NOT LIKE '$pedi%' ) )  " .
             //			"AND l.idapplication=".IDAPPLICATION." ORDER BY l.rang" ;
             //else
             //	$param['cw'] = " p, ".BASEXHAM.".listes l WHERE ((p.dt_examen!='0000-00-00 00:00:00'  AND l.nomliste='Salles d\'examens' AND p.salle_examen NOT LIKE '$uhcd%' AND (p.salle_examen=l.nomitem)) OR ( p.dt_examen!='0000-00-00 00:00:00'  AND p.salle_examen=l.nomitem AND p.salle_examen NOT LIKE '$uhcd%' ) )  AND l.idapplication=".IDAPPLICATION." ORDER BY l.rang" ;
             if ($eq) {
                 $param['cw'] = " WHERE dt_examen!='0000-00-00 00:00:00' AND traumato LIKE '{$this->equipe}%' AND salle_examen NOT LIKE '{$uhcd}%'";
             } elseif ($pedi) {
                 $param['cw'] = " p WHERE ((p.dt_examen!='0000-00-00 00:00:00' AND p.salle_examen NOT LIKE '{$uhcd}%' AND p.salle_examen NOT LIKE '{$pedi}%') OR ( p.dt_examen!='0000-00-00 00:00:00'  " . "AND p.salle_examen NOT LIKE '{$uhcd}%' AND p.salle_examen NOT LIKE '{$pedi}%' ) )" . $eq;
             } else {
                 $param['cw'] = " p WHERE ((p.dt_examen!='0000-00-00 00:00:00' AND p.salle_examen NOT LIKE '{$uhcd}%') OR ( p.dt_examen!='0000-00-00 00:00:00'  AND p.salle_examen NOT LIKE '{$uhcd}%'))" . $eq;
             }
             $navi = $session->genNavi($session->getNavi(0));
             $list->addUserVar('navi', $navi);
             $list->addUrlVar('navi', $navi);
             $list->setAlternateColor("vuspaire", "vusimpaire");
             $list->setSortColumn('col1', 'Patient', 'nomD');
             $list->setSortColumn('col2', 'Age', 'ageD');
             $list->setSortColumn('col3', 'Mode adm.', 'modeAdm');
             $list->setSortColumn('col4', 'Arrivée', 'arriveeD');
             $list->setSortColumn('col5', 'Soignants', 'soignants');
             $list->setSortColumn('col6', 'Salle', 'salle');
             $list->setSortColumn('col7', 'Motif', 'motif');
             $list->setSortColumn('col8', 'Code', 'code');
             $list->setSortColumn('col9', 'Dest. Souhait.', 'destSouhaitee');
             $list->setSortColumn('col0', 'Dest. Confirmée', 'destAttendue');
             switch ($options->getOption("ClassementPatients")) {
                 case 'Salle':
                     $list->setdefaultSort('col6');
                     break;
                 case 'Arrivée':
                     $list->setdefaultSort('col4');
                     break;
                 case 'Nom':
                     $list->setdefaultSort('col1');
                     break;
             }
             /********/
             /* Pour gérer un problème de style. */
             $list->addUserVar('{fin_table}', "</table>");
             /********/
             // Liste des patients sortis.
         } elseif ($this->type == "Sortis") {
             $list = new ListMaker("template/ListePatientsSortis.html");
             $navi = $session->genNavi($session->getNavi(0));
             $list->addUserVar('navi', $navi);
             $list->addUrlVar('navi', $navi);
             $list->setSortColumn('col1', 'Patient', 'nomD');
             $list->setSortColumn('col2', 'Arrivée', 'arriveeD');
             $list->setSortColumn('col3', 'Examen', 'examenD');
             $list->setSortColumn('col4', 'Sortie', 'sortieD');
             $list->setSortColumn('col5', 'Dest. souhaitée', 'destSouhaitee');
             $list->setSortColumn('col6', 'Dest. confirmée', 'destAttendue');
             $list->setSortColumn('col7', 'Médecin', 'medecin');
             $list->setSortColumn('col8', 'IDE', 'ide');
             $list->setSortColumn('col9', 'UF', 'uf');
             $list->setdefaultSort('');
             $param['cw'] = $this->filtre . " ORDER BY nom ASC";
             $list->setAlternateColor("sortispaire", "sortisimpaire");
             // Liste des patients attendus.
             //if ( $this->filtre2 != "" )
         } elseif ($this->type == "Attendus") {
             $list = new ListMaker("template/ListePatientsAttendus.html");
             $param['cw'] = "ORDER BY date";
             $list->setAlternateColor("attenduspaire", "attendusimpaire");
             // Liste des patients UHCD.
         } elseif ($this->type == "UHCD") {
             //$param['cw'] = " p, ".BASEXHAM.".listes l WHERE p.salle_examen LIKE '$uhcd%' AND p.salle_examen=l.nomitem AND l.idapplication=".IDAPPLICATION." AND l.nomliste='Salles d\'examens' ORDER BY l.rang" ;
             $param['cw'] = " p WHERE p.salle_examen LIKE '{$uhcd}%'";
             $list->setAlternateColor("uhcdpaire", "uhcdimpaire");
             $navi = $session->genNavi($session->getNavi(0));
             $list->addUserVar('navi', $navi);
             $list->addUrlVar('navi', $navi);
             $list->setSortColumn('col1', 'Patient', 'nomD');
             $list->setSortColumn('col2', 'Age', 'ageD');
             $list->setSortColumn('col3', 'Mode adm.', 'modeAdm');
             $list->setSortColumn('col4', 'Arrivée', 'arriveeD');
             $list->setSortColumn('col5', 'Soignants', 'soignants');
             $list->setSortColumn('col6', 'Salle', 'salle');
             $list->setSortColumn('col7', 'Motif', 'motif');
             $list->setSortColumn('col8', 'Code', 'code');
             $list->setSortColumn('col9', 'Dest. Souhait.', 'destSouhaitee');
             $list->setSortColumn('col0', 'Dest. Confirmée', 'destAttendue');
             switch ($options->getOption("ClassementPatients")) {
                 case 'Salle':
                     $list->setdefaultSort('col6');
                     break;
                 case 'Arrivée':
                     $list->setdefaultSort('col4');
                     break;
                 case 'Nom':
                     $list->setdefaultSort('col1');
                     break;
             }
             $list->addUserVar('fin_table', "</table>");
         } else {
             //if ( $pedi )
             //	$param['cw'] = " p, ".BASEXHAM.".listes l WHERE p.salle_examen LIKE '$pedi%' AND p.salle_examen=l.nomitem AND l.idapplication=".IDAPPLICATION." AND l.nomliste='Salles d\'examens' ORDER BY l.rang" ;
             //else
             //	$param['cw'] = " p, ".BASEXHAM.".listes l WHERE p.salle_examen LIKE 'AUCUNESALLE%' AND p.salle_examen=l.nomitem AND l.idapplication=".IDAPPLICATION." AND l.nomliste='Salles d\'examens' ORDER BY l.rang" ;
             if ($this->equipe) {
                 $param['cw'] = "p WHERE p.traumato LIKE '{$this->equipe}%'";
             } else {
                 if ($pedi) {
                     $param['cw'] = " p WHERE p.salle_examen LIKE '{$pedi}%'";
                 } else {
                     $param['cw'] = " p WHERE p.salle_examen LIKE 'AUCUNESALLE%'";
                 }
             }
             $list->setAlternateColor("uhcdpaire", "uhcdimpaire");
             $navi = $session->genNavi($session->getNavi(0));
             $list->addUserVar('navi', $navi);
             $list->addUrlVar('navi', $navi);
             $list->setSortColumn('col1', 'Patient', 'nomD');
             $list->setSortColumn('col2', 'Age', 'ageD');
             $list->setSortColumn('col3', 'Mode adm.', 'modeAdm');
             $list->setSortColumn('col4', 'Arrivée', 'arriveeD');
             $list->setSortColumn('col5', 'Soignants', 'soignants');
             $list->setSortColumn('col6', 'Salle', 'salle');
             $list->setSortColumn('col7', 'Motif', 'motif');
             $list->setSortColumn('col8', 'Code', 'code');
             $list->setSortColumn('col9', 'Dest. Souhait.', 'destSouhaitee');
             $list->setSortColumn('col0', 'Dest. Confirmée', 'destAttendue');
             switch ($options->getOption("ClassementPatients")) {
                 case 'Salle':
                     $list->setdefaultSort('col6');
                     break;
                 case 'Arrivée':
                     $list->setdefaultSort('col4');
                     break;
                 case 'Nom':
                     $list->setdefaultSort('col1');
                     break;
             }
             $list->addUserVar('fin_table', "</table>");
         }
         // Exécution de la requête.
         if ($this->type == "Sortis") {
             if (eregi("idformx", $this->filtre)) {
                 $tab["table"] = BDD . "." . PSORTIS . "," . FX_BDD . "." . TABLEFORMX;
                 $tab["cw"] = $param["cw"];
                 $res = $req->Execute("Fichier", "getPatients", $tab, "ResultQuery");
                 //eko($res);
             } else {
                 $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery");
             }
             //eko ( $res['INDIC_SVC'] ) ;
         } else {
             $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery");
         }
         //eko ( $res['INDIC_SVC'] ) ;
         //eko($res);
         //eko ( $res['INDIC_SVC'] ) ;
         if (DEBUGLISTESPATIENTS and $session->getDroit("Liste_" . $this->type, "a")) {
             newfct(gen_affiche_tableau, $res[INDIC_SVC]);
         }
         // Cas des patients non-vus.
     } else {
         $list = new ListMaker("template/ListePatientsBis.html");
         if ($eq) {
             $param['cw'] = "WHERE dt_examen='0000-00-00 00:00:00' AND traumato LIKE '{$this->equipe}%' ";
         } elseif ($pedi) {
             $param['cw'] = "WHERE dt_examen='0000-00-00 00:00:00' AND salle_examen NOT LIKE '{$uhcd}%' AND salle_examen NOT LIKE '{$pedi}%'" . $eq . ' ORDER BY dt_admission';
         } else {
             $param['cw'] = "WHERE dt_examen='0000-00-00 00:00:00' AND salle_examen NOT LIKE '{$uhcd}%'" . $eq . ' ORDER BY dt_admission';
         }
         $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery");
     }
     // eko ( $res['INDIC_SVC'] ) ;
     global $tabID;
     if (!is_array($tabID)) {
         $tabID = array();
     }
     // Parcours de la liste des patients récupérés par la requête.
     for ($i = 0; isset($res['idpatient'][$i]); $i++) {
         if (!in_array($res['idpatient'][$i], $tabID)) {
             // Calcul du sexe de la personne... (?!).
             switch ($res['sexe'][$i]) {
                 case 'M':
                     $img = URLIMG . "homme.png";
                     break;
                 case 'F':
                     $img = URLIMG . "femme.png";
                     break;
                 default:
                     $img = URLIMG . "Indefini.png";
                     break;
             }
             $item['sexe'] = "<img src=\"{$img}\" alt=\"" . $res['sexe'][$i] . "\" />";
             // Calcul de l'âge.
             $date = new clDate($res['dt_naissance'][$i]);
             $age = new clDuree($date->getTimestamp());
             $str = $age->getAgePrecis($date->getTimestamp());
             if ($res['dt_naissance'][$i] != "0000-00-00 00:00:00") {
                 $item['age'] = $str;
                 $item['ageD'] = $date->getTimestamp();
             } else {
                 $item['age'] = VIDEDEFAUT;
                 $item['ageD'] = VIDEDEFAUT;
             }
             // Destination souhaitée.
             if ($res['dest_souhaitee'][$i]) {
                 $item['destSouhaitee'] = $res['dest_souhaitee'][$i];
             } else {
                 $item['destSouhaitee'] = VIDEDEFAUT;
             }
             // Destination attendue.
             if ($res['dest_attendue'][$i]) {
                 $item['destAttendue'] = $res['dest_attendue'][$i];
             } else {
                 $item['destAttendue'] = VIDEDEFAUT;
             }
             //////////////////////////////////// Patients Attendus ////////////////////////////////////////
             if ($this->type == "Attendus") {
                 $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "modPatientAttendu", $res['idpatient'][$i]);
                 // Concaténation du nom et du prénom.
                 $item['patient'] = strtoupper($res['nom'][$i]) . " " . ucfirst(strtolower($res['prenom'][$i]));
                 // Heure de création.
                 if ($res['date'][$i]) {
                     $dateCreation = new clDate($res['date'][$i]);
                     $item['date'] = $dateCreation->getDate("d-m-Y H:i");
                 } else {
                     $item['date'] = VIDEDEFAUT;
                 }
                 // Gestion de l'âge.
                 if ($res['dt_naissance'][$i]) {
                     $item['age'] = $res['dt_naissance'][$i];
                 } else {
                     $item['age'] = VIDEDEFAUT;
                 }
                 // Récupération du mode d'admission.
                 if ($res['adresseur'][$i]) {
                     $item['adresseur'] = $res['adresseur'][$i];
                 } else {
                     $item['adresseur'] = VIDEDEFAUT;
                 }
                 // Médecin et IDE.
                 if ($res['medecin_urgences'][$i]) {
                     $med = "Dr " . $res['medecin_urgences'][$i];
                 } else {
                     $med = VIDEDEFAUT;
                 }
                 $item['medecin'] = $med;
                 // Observations.
                 if ($res['observations'][$i]) {
                     $item['observations'] = nl2br($res['observations'][$i]);
                 } else {
                     $item['observations'] = VIDEDEFAUT;
                 }
                 // Génération du lien de bascule.
                 $imgBasculer = "<img src=\"images/basculer.gif\" name=\"Ajouter\" alt=\"Basculer le patient dans les présents\" /></a>";
                 $imgSupprimer = "<img src=\"images/Supprimer.gif\" name=\"Supprimer\" alt=\"Supprimer le patient attendu\" /></a>";
                 $imgModifier = "<img src=\"images/modifier2.gif\" name=\"Modifier\" alt=\"Modifier le patient attendu\" /></a>";
                 // En fonction des droits et des options, nous affichons les boutons d'actions.
                 if ($session->getDroit("Liste_" . $this->type, "a") and $options->getOption("AjoutManuel")) {
                     $item['lienBasculer'] = "<a href=\"" . URLNAVI . $session->genNavi("Liste_Presents", "basculerPatient", $res['idpatient'][$i]) . "\">" . $imgBasculer;
                 }
                 if ($session->getDroit("Liste_" . $this->type, "d")) {
                     $item['lienSupprimer'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "delPatient", $res['idpatient'][$i]) . "\">" . $imgSupprimer;
                 }
                 if ($session->getDroit("Liste_" . $this->type, "d")) {
                     $item['lienModifier'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "modPatientAttendu", $res['idpatient'][$i]) . "\">" . $imgModifier;
                 }
                 //////////////////////////////////// Patients Sortis ////////////////////////////////////////
             } elseif ($this->type == "Sortis") {
                 $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]);
                 // Concaténation du nom et du prénom.
                 if ($session->getDroit("Liste_" . $this->type, "m")) {
                     $item['patient'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]) . "\" " . clPatient::genInfoBulle($res, $i) . ">" . strtoupper($res['nom'][$i]) . "</a> " . ucfirst(strtolower($res['prenom'][$i]));
                 } else {
                     $item['patient'] = strtoupper($res['nom'][$i]) . " " . ucfirst(strtolower($res['prenom'][$i]));
                 }
                 $item['nomD'] = strtoupper($res['nom'][$i]);
                 // Heure d'arrivée.
                 if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") {
                     $dateTemp = new clDate($res['dt_admission'][$i]);
                     $item['arrivee'] = $dateTemp->getDate("d-m-Y H:i");
                     $item['arriveeD'] = $dateTemp->getTimestamp();
                 } else {
                     $item['arrivee'] = VIDEDEFAUT;
                     $item['arriveeD'] = VIDEDEFAUT;
                 }
                 // Heure d'examen.
                 if ($res['dt_examen'][$i] != "0000-00-00 00:00:00") {
                     $dateTemp = new clDate($res['dt_examen'][$i]);
                     $item['examen'] = $dateTemp->getDate("d-m-Y H:i");
                     $item['examenD'] = $dateTemp->getTimestamp();
                 } else {
                     $item['examen'] = VIDEDEFAUT;
                     $item['examenD'] = VIDEDEFAUT;
                 }
                 // Heure de sortie.
                 if ($res['dt_sortie'][$i] != "0000-00-00 00:00:00") {
                     $dateTemp = new clDate($res['dt_sortie'][$i]);
                     $item['sortie'] = $dateTemp->getDate("d-m-Y H:i");
                     $item['sortieD'] = $dateTemp->getTimestamp();
                 } else {
                     $item['sortie'] = VIDEDEFAUT;
                     $item['sortieD'] = VIDEDEFAUT;
                 }
                 // Médecin.
                 if ($res['medecin_urgences'][$i]) {
                     $med = "Dr " . $res['medecin_urgences'][$i];
                 } else {
                     $med = VIDEDEFAUT;
                 }
                 $item['medecin'] = $med;
                 // IDE.
                 if ($res['ide'][$i]) {
                     $ide = $res['ide'][$i];
                 } else {
                     $ide = VIDEDEFAUT;
                 }
                 $item['ide'] = $ide;
                 // Affichage des informations sur l'UF
                 $ufExec = $options->getOption('numUFexec');
                 $ufUHCD = $options->getOption('numUFUHCD');
                 $ufSC = $options->getOption('numUFSC');
                 $dtUHCD = new clDate($res['dt_UHCD'][$i]);
                 if ($res['uf'][$i] == $ufUHCD) {
                     $sup = $res['uf'][$i] . ' - UHCD<br/>' . ($res['dt_UHCD'][$i] != '0000-00-00 00:00:00' ? $dtUHCD->getDate('d/m/Y à H:i') : '') . '';
                 } elseif ($res['uf'][$i] == $ufSC) {
                     $sup = $res['uf'][$i] . ' - Soins Continus';
                 } else {
                     $sup = $res['uf'][$i] . ' - Urgences';
                 }
                 $item['uf'] = $sup;
                 if ($options->getOption("Sortis Pagination") != "Tous") {
                     $pagination = $options->getOption("Sortis Pagination");
                 }
                 //////////////////////////////////// Patients Présents  ////////////////////////////////////////
             } else {
                 $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]);
                 // Concaténation du nom et du prénom.
                 if ($session->getDroit("Liste_" . $this->type, "m")) {
                     $item['patient'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]) . "\" " . clPatient::genInfoBulle($res, $i) . ">" . strtoupper($res['nom'][$i]) . "</a><br />" . ucfirst(strtolower($res['prenom'][$i]));
                 } else {
                     $item['patient'] = strtoupper($res['nom'][$i]) . "<br />" . ucfirst(strtolower($res['prenom'][$i]));
                 }
                 $item['nomD'] = strtoupper($res['nom'][$i]);
                 // Récupération du mode d'admission.
                 if ($res['mode_admission'][$i]) {
                     $item['modeAdm'] = $res['mode_admission'][$i];
                 } else {
                     $item['modeAdm'] = VIDEDEFAUT;
                 }
                 if ($res['uf'][$i] == $options->getOption('numUFSC')) {
                     $item['colorSpe'] = 'style="background-color:#E73E01;"';
                 } else {
                     $item['colorSpe'] = '';
                 }
                 // Heure d'admission.
                 if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") {
                     $datead = new clDate($res['dt_admission'][$i]);
                     $dateSimple = $datead->getDate("d-m-Y");
                     $dureead = new clDuree();
                     $duree = $dureead->getDureeCourte($datead->getDatetime());
                     $item['arrivee'] = $duree . "<br />" . $dateSimple;
                     $item['arriveeD'] = $datead->getTimestamp();
                 } else {
                     $item['arrivee'] = VIDEDEFAUT;
                     $item['arriveeD'] = VIDEDEFAUT;
                 }
                 // Observations.
                 $item['obs'] = "?";
                 // Médecin et IDE.
                 if ($res['medecin_urgences'][$i]) {
                     $med = "Dr " . $res['medecin_urgences'][$i];
                 } else {
                     $med = VIDEDEFAUT;
                 }
                 if ($res['ide'][$i]) {
                     $ide = "Ide " . $res['ide'][$i];
                 } else {
                     $ide = VIDEDEFAUT;
                 }
                 $item['soignants'] = $med . "<br />" . $ide;
                 // Salle actuelle.
                 $radio = clListeRadios::getEtatSalle($res['idpatient'][$i], IDAPPLICATION);
                 if ($res['salle_examen'][$i]) {
                     $item['salle'] = $res['salle_examen'][$i] . "{$radio}<br/>" . ($res['traumato'][$i] ? $res['traumato'][$i] : '');
                 } else {
                     $item['salle'] = VIDEDEFAUT . "{$radio}<br/>" . ($res['traumato'][$i] ? $res['traumato'][$i] : '');
                 }
                 // Motif de recours.
                 if ($res['motif_recours'][$i]) {
                     $item['motif'] = $res['motif_recours'][$i];
                 } else {
                     $item['motif'] = VIDEDEFAUT;
                 }
                 // Code gravité.
                 if ($res['code_gravite'][$i]) {
                     $item['code'] = $res['code_gravite'][$i];
                 } else {
                     $item['code'] = VIDEDEFAUT;
                 }
                 // Infos visuelles (colonne Observations).
                 $dureeMaxSansUHCD = 3600 * $options->getOption("Présents UHCD");
                 $item['obs'] = "";
                 $uhcd = $options->getOption("FiltreSalleUHCD");
                 if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") {
                     //if ( $options -> getOption ( "ContrainteHuitUF2702" ) AND $dureead -> getSeconds ( ) > $dureeMaxSansUHCD AND $res['uf'][$i] != "2702" AND ! $res['manuel'][$i] )
                     /*
                     	  if ( $options -> getOption ( "GestionUHCD" ) AND $res['uf'][$i] != $options->getOption ( "numUFUHCD" ) ) {
                     	  	
                     	  	$ufExec = $options->getOption ( 'numUFexec' ) ;
                     		$ufUHCD = $options->getOption ( 'numUFUHCD' ) ;
                     		$uf     = $options->getOption ( 'numUFexec' ) ;
                     		$etat   = $res['etatUHCD'][$i] ;
                     		$oldUF  = $res['uf'][$i] ;
                     		
                     		// Calcul du critère CCMU4 ou CCMU5
                     		if ( $res['code_gravite'][$i] == 4 OR $res['code_gravite'][$i] == 5 )
                     		$CCMU45 = 1 ; else $CCMU45 = 0 ;
                     		
                     		// Calcul du critère sur la durée
                     		$datead = new clDate ( $res['dt_admission'][$i] ) ;
                     	  	$dureead = new clDuree ( ) ;
                     	  	$duree = $dureead -> getDureeCourte ( $datead -> getDatetime ( ) ) ;
                     	  	$dureeMaxSansUHCD = 3600 * $options -> getOption ( "Présents UHCD" ) ;
                     	  	$dureeHeure = $options -> getOption ( "Présents UHCD" ) ;
                     		if ( $dureead -> getSeconds ( ) > $dureeMaxSansUHCD ) $duree = 1 ;
                     		else $duree = 0 ;
                     		
                     		// Calcul du critère sur le CCMU3
                     		if ( $res['code_gravite'][$i] == 3 ) $CCMU3 = 1 ; else $CCMU3 = 0 ;
                     		
                     		// Vérification des critères directs.
                     		if ( $CCMU45 ) {
                     			$rep = 'okCCMU45' ;
                     			$uf = $ufUHCD ;
                     		} else {
                     			if ( $duree ) {
                     				$rep = 'okDuree' ;
                     			} else {
                     				if ( $CCMU3 ) {
                     					$rep = 'okCCMU3' ;
                     				} else {
                     					$rep = 'noCCMU3' ;
                     					$uf = $ufExec ;
                     				}
                     			}
                     		}
                     		
                     		// Vérification de la réponse à la question sur les critères UHCD.
                     		if ( $rep == 'okDuree' ) {
                     			if ( $etat != 'okCriteres' AND $etat != 'noCriteres' ) $item['obs'] .= IMGALERTE ;
                     		}
                     		
                     		// Vérification de la réponse à la question sur les actes lourds.
                     		if ( $rep == 'okCCMU3' ) {
                     			if ( $etat != 'okActes' AND $etat != 'noActes' ) $item['obs'] .= IMGALERTE ;
                     		}
                     	  	
                     	  }*/
                     if ($options->getOption("ModuleBMR")) {
                         // On vérifie si le patient est lié à une alerte BMR.
                         $param['cw'] = "WHERE IDU='" . $res['idu'][$i] . "'";
                         $ras = $req->Execute("Fichier", "getBMR", $param, "ResultQuery");
                         // Si au moins une alerte est liée au patient, on affiche une icone d'alerte.
                         if ($ras['INDIC_SVC'][2]) {
                             $item['obs'] .= "<img src=\"" . URLIMGRAD . "\" alt=\"BMR\" />";
                         }
                         //$item['obs'] .= IMGDOCS ;
                     }
                 }
                 // On vérifie si le patient a une note.
                 $param['cw'] = "WHERE ids='" . $res['idpatient'][$i] . "'";
                 $param['table'] = TABLENOTES;
                 $ras = $req->Execute("Fichier", "getGenXHAM", $param, "ResultQuery");
                 if ($ras['INDIC_SVC'][2] and $ras['note'][0] and $session->getDroit("Presents_Informations")) {
                     global $pi;
                     $item['obs'] .= "<img src=\"" . URLIMGOBS . "\" " . $pi->genInfoBulle($ras['note'][0]) . " alt=\"Comm.\" />";
                 }
                 $item['obs'] .= clListeRadios::getEtat($res['idpatient'][$i], IDAPPLICATION);
                 if ($_POST['showHisto']) {
                     // Récupération des passages précédents.
                     $param['IDU'] = $res['idu'][$i];
                     $res2 = $req->Execute("Fichier", "getHistorique", $param, "ResultQuery");
                     if ($res2['INDIC_SVC'][2]) {
                         $item['obs'] .= IMGHISTO;
                     }
                     // Récupération des passages précédents.
                     $param['ILP'] = $res['ilp'][$i];
                     $res2 = $req->Execute("Fichier", "getHistoriqueDocs", $param, "ResultQuery");
                     if ($res2['INDIC_SVC'][2]) {
                         $item['obs'] .= IMGHISTODOCS;
                     }
                 }
             }
             //$this->getInfoBulle ( $res, $i ) ;
             $list->addItem($item);
         }
         $tabID[] = $res['idpatient'][$i];
     }
     // Récupération du code HTML généré.
     $this->af .= $list->getList($pagination);
 }
コード例 #3
0
ファイル: clListeRadios.php プロジェクト: jeromecc/tuv2
 static function getEtat($idpatient, $idapp = '1')
 {
     $req = new clResultQuery();
     $param['cw'] = "where r.idpatient=p.idpatient and (etat='a' or etat='b' or etat='c' or etat='d') and r.idpatient={$idpatient} and idapplication={$idapp}";
     $param['base'] = clListeRadios::getBaseFromIdApp($idapp);
     $res = $req->Execute("Fichier", "getRadios", $param, "ResultQuery");
     $l = '';
     if ($res['INDIC_SVC'][2]) {
         switch ($res['etat'][0]) {
             case 'a':
                 $text = '<b>Statut : </b> Demande de radio effectuée.';
                 $l = 'A';
                 break;
             case 'b':
                 $text = '<b>Statut : </b> Patient pris en charge à la radio.';
                 $l = 'B';
                 break;
             case 'c':
                 $text = '<b>Statut : </b> Radio en cours...';
                 $l = 'C';
                 break;
             case 'd':
                 $text = '<b>Statut : </b> Radio terminée...';
                 $l = 'D';
                 break;
         }
         if ($res['commentaire_radio'][0]) {
             $comm = "<br/><b>Commentaire : </b>" . addslashes(htmlentities(nl2br($res['commentaire_radio'][0])));
         } else {
             $comm = '';
         }
         $text = $text . $comm;
         return '<img src="images/radio' . $l . ($res['commentaire_radio'][0] ? 'C' : '') . '.png" alt="radio" onmouseover="return overlib(\'' . $text . '\');" onmouseout="return nd();" />';
     } else {
         return '';
     }
 }