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); } } }
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); }
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 ''; } }