function getAge2($formx) { global $tool; $idu = $formx->getVar('ids'); $req = new clResultQuery(); $param = array(); $param['cw'] = "dt_naissance"; $param['idu'] = $idu; $res = $req->Execute("Fichier", "getInfoPatientFromIDU", $param, "ResultQuery"); $DateNPat = $res['dt_naissance'][0]; //eko($DateNPat); // Calcul sur les différentes dates. $age = new clDate($DateNPat); $dateSimple = $age->getDate("d-m-Y"); $dateComple = $age->getDateText(); $duree = new clDuree(); return "" . str_replace("<br>", " et ", $duree->getAgePrecis($age->getTimestamp())) . ""; }
function getPatientMineur($formx) { global $tool; $idu = $formx->getVar('ids'); $req = new clResultQuery(); $param = array(); $param['cw'] = "dt_naissance"; $param['idu'] = $idu; $res = $req->Execute("Fichier", "getInfoPatientFromIDU", $param, "ResultQuery"); $DateNPat = $res['dt_naissance'][0]; //eko($DateNPat); // Calcul sur les différentes dates. $age = new clDate($DateNPat); $dateSimple = $age->getDate("d-m-Y"); $dateComple = $age->getDateText(); $duree = new clDuree(); $duree->getAgePrecis($age->getTimestamp()); if ($duree->getYears() < 18) { return "mineur"; } else { return "majeur"; } }
function runImportHL7() { // On parcourt le répertoire 'hprim' à la recherche des nouveaux fichiers HPRIM. $r = opendir("hprim"); while ($fic = readdir($r)) { if ($fic != "." and $fic != ".." and $fic != "ok" and $fic != "ko") { if (stristr($fic, ".HL7") or stristr($fic, ".hl7")) { $tmp = explode(".", $fic); //if ( file_exists ( "hprim/".$tmp[0].'.OK' ) OR file_exists ( "hprim/".$tmp[0].'.ok' ) ) { $this->readHL7("hprim/{$fic}"); $date = new clDate(); $tmpDate = $date->getTimestamp(); // Les 4 lignes suivantes sont à commenter si on veut tester l'intégration de fichiers // HL7 sans les déplacer dans le répertoire ok/ après traitement (en cas de test donc) //rename ( "hprim/$fic", "hprim/ok/".$tmpDate.$fic ) ; //if ( file_exists ( "hprim/".$tmp[0].'.OK' ) ) //rename ( "hprim/".$tmp[0].".OK", "hprim/ok/".$tmpDate.$tmp[0].".OK" ) ; //elseif ( file_exists ( "hprim/".$tmp[0].'.ok' ) ) //rename ( "hprim/".$tmp[0].".ok", "hprim/ok/".$tmpDate.$tmp[0].".ok" ) ; //} } } } }
function runImportHPRIM() { // On parcourt le répertoire 'hprim' à la recherche des nouveaux fichiers HPRIM. $r = opendir("hprim"); while ($fic = readdir($r)) { if ($fic != "." and $fic != ".." and $fic != "ok" and $fic != "ko") { if (stristr($fic, ".HPR") or stristr($fic, ".hpr")) { $tmp = explode(".", $fic); //eko ( "Je suis ici : $fic et le fichier associé est :"."hprim/".$tmp[0].'.OK' ) ; if (file_exists("hprim/" . $tmp[0] . '.OK') or file_exists("hprim/" . $tmp[0] . '.ok')) { $this->readHPRIM("hprim/{$fic}"); $date = new clDate(); $tmpDate = $date->getTimestamp(); rename("hprim/{$fic}", "hprim/ok/" . $tmpDate . $fic); if (file_exists("hprim/" . $tmp[0] . '.OK')) { rename("hprim/" . $tmp[0] . ".OK", "hprim/ok/" . $tmpDate . $tmp[0] . ".OK"); } elseif (file_exists("hprim/" . $tmp[0] . '.ok')) { rename("hprim/" . $tmp[0] . ".ok", "hprim/ok/" . $tmpDate . $tmp[0] . ".ok"); } } } } } }
function getDates($type = '') { // Initialisation des dates. $dateT = new clDate(); $date = new clDate($dateT->getDate()); if ((!$this->dateMin or !$this->dateMax) and !isset($this->setDate)) { $dateA = new clDate(isset($_GET['dateMin']) ? $_GET['dateMin'] : $date->getDate('Y-m-d')); $date->addDays(1); $dateB = new clDate(isset($_GET['dateMax']) ? $_GET['dateMax'] : $date->getDate('Y-m-d')); $date->addDays(-1); if ($dateA->getTimestamp() > $dateB->getTimestamp()) { $this->dateMax = $dateA->getTimestamp(); $this->dateMin = $dateB->getTimestamp(); } else { $this->dateMax = $dateB->getTimestamp(); $this->dateMin = $dateA->getTimestamp(); } } // Fabrication de la liste de dates de la dernière année. $date->addYears(-1); $oneYear = $date->getTimestamp(); $date->addYears(1); $date->addDays(1); $today = $date->getTimestamp(); for ($i = $today; $i >= $oneYear; $i -= 86400) { $date->setDate($i); $tab[$i] = $date->getDate("d-m-Y"); } return is_array($tab) ? $tab : array(); }
function imprDocuments() { global $session; global $options; // Si on se sert du module externe de documents (Brignoles) if ($options->getOption("documentsExterne")) { $this->err1 = ""; $this->err2 = ""; // Chargement du template ModeliXe $mod = new ModeliXe("Mobidoc.html"); $mod->SetModeliXe(); $mod->MxText("errs", $this->err1 . "<br/>" . $this->err2); // Récupération du code HTML généré. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // CHB Start $cMobidoc = new clMobidocTU($this->patient->getID()); $str = $cMobidoc->OpenMobidoc(); //eko ( $str ) ; if (ereg('NACK-', $str)) { $mod->MxText("errs", "<b>L'appel à mobidoc a échoué (Erreur: COMRPC Impossible)</b>'"); } // CHB Stop /* Ancienne version $str = OpenMobidoc($this->patient->getID ( ),$_SERVER["REMOTE_ADDR"],$options->getOption('CCAMExterne_MRPCPORT'),$options->getOption('CCAMExterne_MRPCTIMEOUT')); //$str = 'ERROR' ; if ( $str == 'ERROR' ) { $mod -> MxText ( "errs", "<b>L'appel à mobidoc a échoué (Erreur: COMRPC Impossible)</b>'") ; } */ return $this->af .= $mod->MxWrite("1"); } else { if ($_POST['Imprimer'] or $_POST['Imprimer_x']) { $session->setLogSup('Impression de documents'); $sel = $_POST['selection']; $docs = new clDocuments("impr"); $date = new clDate(); for ($i = 0; isset($sel[$i]); $i++) { $param[cw] = "WHERE iddocument='" . $sel[$i] . "'"; $req = new clResultQuery(); $ras = $req->Execute("Fichier", "getDocuments", $param, "ResultQuery"); $rep = $date->getYear() . "/" . $date->getMonthNumber() . "/"; $output[$i] = $date->getTimestamp() . "-" . $this->patient->getID() . "-" . $sel[$i] . ".pdf"; $data['idpatient'] = $this->patient->getID(); $data['iddocument'] = $sel[$i]; $data['nomedition'] = $ras['nom'][0]; $data['urledition'] = $rep . $output[$i]; $data['iduser'] = $session->getUser(); $data['date'] = $date->getDatetime(); $requete = new clRequete(BDD, DOCSEDITES, $data); $requete->addRecord(); } $rep = $date->getYear() . "/" . $date->getMonthNumber() . "/"; $docs->genDoc($sel, $this->patient->getID(), $output, URLDOCS . $rep, $rep); } else { // Chargement du template ModeliXe. $mod = new ModeliXe("ImprimerDocuments.mxt"); $mod->SetModeliXe(); $mod->MxImage("imgCloseImprimer", URLIMGFER, "Fermer"); $mod->MxUrl("lienCloseImprimer", URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // Récupération de la liste des catégories de documents. $param['cw'] = " ORDER BY categorie"; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getCategoriesDocuments", $param, "ResultQuery"); // Parcours des différentes catégories de documents. for ($i = 0; isset($res['categorie'][$i]); $i++) { // Recherche des dernières versions des documents de la catégorie parcourue. $param['cw'] = "WHERE categorie='" . $res['categorie'][$i] . "' AND fin_validite='0000-00-00 00:00:00' ORDER BY nom"; $req = new clResultQuery(); $ras = $req->Execute("Fichier", "getDocuments", $param, "ResultQuery"); // Si on a un résultat, alors on parcourt ces documents. if ($ras['INDIC_SVC'][2]) { // Et on affiche le titre de la catégorie. $mod->MxText("categorie.titre", $res['categorie'][$i]); $k = 0; for ($j = 0; isset($ras['iddocument'][$j]); $j++) { // Nom du document. $param['cw'] = "WHERE iddocument='" . $ras['iddocument'][$j] . "' AND idpatient='" . $this->patient->getID() . "'"; $req = new clResultQuery(); $rus = $req->Execute("Fichier", "getDocumentsEdites", $param, "ResultQuery"); if ($rus['INDIC_SVC'][2]) { $td = "<td class=\"dejaedite\" style=\"text-align: left;\">"; } else { $td = "<td style=\"text-align: left;\">"; } if (!($j % $options->getOption("DocumentsParLigne")) and $j != 0) { $tr = "<tr>"; if ($k) { $tr .= "<td class=\"nostyle\"></td>"; } } else { $tr = ""; } if (!(($j + 1) % $options->getOption("DocumentsParLigne")) or !isset($ras['iddocument'][$j + 1])) { $ftr = "</tr>"; $k++; } else { $ftr = ""; } $mod->MxText("categorie.documents.tdo", $tr . $td); $mod->MxCheckerField("categorie.documents.c", "checkbox", "selection[]", $ras['iddocument'][$j]); $mod->MxText("categorie.documents.doc", $ras['nom'][$j]); $mod->MxText("categorie.documents.tdf", "</td>{$ftr}"); $mod->MxBloc("categorie.documents", "loop"); } $mod->MxBloc("categorie", "loop"); } } // Variable de navigation dans le cas du lancement des éditions. $mod->MxHidden("hidden1", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "genEdition")); // Variable de navigation dans le cas d'une action d'annulation. $mod->MxHidden("hidden2", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // Récupération du code HTML généré. $this->af .= $mod->MxWrite("1"); } } }
function genEnvoi() { global $options; global $errs; //Attention, jour concerné = lendemain des données $dateJourConcerne = new clDate(); $tsp = $dateJourConcerne->getTimestamp(); define(nomForm, "URG"); define(idActeur, $options->getOption('RPU_IdActeur')); define(arRequis, $options->getOption('RPU_AR_Actif')); define(cleDepot, $options->getOption('RPU_CleActeur')); define(mail, $options->getOption('RPU_AR_Mail')); define(cfg_expediteur_alerte, "terminal_urgences"); define(chemin, URLRPU . 'arh/'); define(date_jour, date("Ymd", $tsp)); define(jour, substr(date_jour, 6, 2)); define(mois, substr(date_jour, 4, 2)); define(annee, substr(date_jour, 0, 4)); define(date_file, date("YmdHis")); define(date_envoi, date("d/m/Y à H:i:s")); define(date_event, date("d/m/Y", mktime(0, 0, 0, mois, jour - 1, annee))); define(from, date("Y-m-d H:i:s", mktime(0, 0, 0, mois, jour - 1, annee))); define(to, date("Y-m-d H:i:s", mktime(23, 59, 59, mois, jour - 1, annee))); $req = "select idpatient, uf , dt_naissance , type_destination\r\n from patients_sortis\r\n\t where manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1\r\n\t\tUNION\r\n\t\tselect idpatient, uf , dt_naissance , type_destination\r\n\t\tfrom patients_presents\r\n\t\twhere manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1"; $config[type] = "MySQL"; $config[host] = MYSQL_HOST; $config[login] = MYSQL_USER; $config[password] = MYSQL_PASS; $config[db] = BDD; $requete = new clResultQuery(); // On récupère le résultat de la requête sous la forme ResultQuery. $res = $requete->Execute("requete", $req, $config); eko($res[INDIC_SVC]); $age1 = 0; $age75 = 0; $NbHospit = 0; $NbUHCD = 0; $NbTransfert = 0; $ufUHCD = $options->getOption("numUFUHCD"); //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2]) { $NbPassages = $res[INDIC_SVC][2]; // On a le nombre de passages while (list($key, $val) = each($res[dt_naissance])) { $dateN = new clDate($val); $dateA = new clDate(from); $duree = new clDuree(); $duree->setValues($dateA->getDifference($dateN)); $age = $duree->getYears(); if ($age < 1) { $age1++; // Constitution du nb de passage < à 1 an } elseif ($age > 75) { $age75++; // Constitution du nb de passage > 75 ans } // Hospitalisations if ($res[type_destination][$key] == "H" and $res[uf][$key] != $ufUHCD) { $NbHospit++; } // UHCD if ($res[uf][$key] == $ufUHCD) { $NbUHCD++; } // Transferts if ($res[type_destination][$key] == "T") { $NbTransfert++; } //echo $val."--=> ".$res[type_destination][$key]." ".$age ." ans <br>"; } $balise_element = "\n<entete>"; $balise_element .= "\n<idActeur>" . idActeur . "</idActeur>"; $balise_element .= "\n<cleActeur>" . cleDepot . "</cleActeur>"; $balise_element .= "\n<arRequis>" . arRequis . "</arRequis>"; $balise_element .= "\n<mail>" . mail . "</mail>"; $balise_element .= "\n</entete>"; $balise_element .= "\n<element>"; $balise_element .= "\n<nomForm>" . nomForm . "</nomForm>"; $balise_element .= "\n<date_event>" . date_event . "</date_event>"; $balise_element .= "\n<NbPassages>{$NbPassages}</NbPassages>"; $balise_element .= "\n<NbPassInf1An>{$age1}</NbPassInf1An>"; $balise_element .= "\n<NbPassageSup75Ans>{$age75}</NbPassageSup75Ans>"; $balise_element .= "\n<NbHospit>{$NbHospit}</NbHospit>"; $balise_element .= "\n<NbHospitUHCD>{$NbUHCD}</NbHospitUHCD>"; $balise_element .= "\n<NbTransfert>{$NbTransfert}</NbTransfert>"; $balise_element .= "\n</element>"; $nom_fic = idActeur . "_" . date_file . ".xml"; $nom_fic_export = chemin . $nom_fic; $xml_data = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"?>\r\n\t\t\t\n<result>" . $balise_element . "\n</result>"; $fp = fopen($nom_fic_export, "w"); if (!fwrite($fp, $xml_data)) { eko("pb ecriture fichier xml"); } fclose($fp); copy($nom_fic_export, URLLOCAL . 'rpu/logs/' . $nom_fic); $affichage = "<center><h2>Export des données Urgences - CH-Hyères</h2></center>\r\n\t\t\t<u>Date d'export:</u> le " . date_envoi . "<br>\r\n\t\t\t<u>Contenu exporté :</u> {$balise_element}<br>\r\n\t\t\t<u>Fichier d'export :</u> {$nom_fic_export}"; // Cryptage du fichier. $mailE = $options->getOption('RPU_Envoi_Mail'); $gpg = new gnuPG(false, GNUPG); $gpg->EncryptFile($mailE, $nom_fic_export); if (!$gpg->error) { $this->message .= "<font color=\"green\">Le cryptage du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>"; } else { $this->message .= "<font color=\"red\">Le cryptage du fichier ({$nom_fic_export}.gpg) a échoué :" . $gpg->error . "<br/></font>"; } if ($options->getOption('RPU_TypeEnvoi') == 'mail') { // Envoi du fichier RPU. $contenuFic = fread(fopen($nom_fic_export . '.gpg', "r"), filesize($nom_fic_export . '.gpg')); // eko ( $contenuFic ) ; $mail = new mime_mail(); $mail->to = $options->getOption("RPU_Envoi_Mail"); //$mail->to = "*****@*****.**" ; //eko ( $options->getOption ( "RPU_Envoi_Mail" ) ) ; $mail->subject = "Données urgences (" . date_envoi . ")"; $mail->body = "Données urgences (" . date_envoi . ")"; $mail->from = Erreurs_MailApp; $mail->attach($contenuFic, $nom_fic . '.gpg'); if ($mail->sendXham()) { $this->message .= "<font color=\"green\">L'envoi du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>"; } else { $this->message .= "<font color=\"red\">L'envoi du fichier ({$nom_fic_export}.gpg) a échoué.<br/></font>"; } } else { rename($nom_fic_export, chemin . 'ok/' . $nom_fic); $this->message .= "Connexion au serveur FTP '" . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . "' -> "; $con = ftp_connect($options->getOption('RPU_FTP_Host')); if (!$con) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible de se connecter au serveur "' . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . '"'); } else { $this->message .= "<font color='green'>OK</font><br/>"; $this->message .= "Authentification au serveur FTP avec l'utilisateur '" . $options->getOption('RPU_FTP_User') . "' -> "; $log = ftp_login($con, $options->getOption('RPU_FTP_User'), $options->getOption('RPU_FTP_Pass')); if (!$log) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible de se connecter au serveur avec l\'utilisateur "' . $options->getOption('RPU_FTP_User') . '"'); } else { $this->message .= "<font color='green'>OK</font><br/>"; $r = opendir('rpu/arh/'); while ($fic = readdir($r)) { if ($fic != "." and $fic != ".." and $fic != "ok" and $fic != "logs" and $fic != 'arh') { $this->message .= "Envoi du fichier '{$fic}' -> "; $put = ftp_put($con, $fic, chemin . $fic, FTP_BINARY); if (!$put) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible d\'envoyer le fichier "' . $fic . '".'); } else { $this->message .= "<font color='green'>OK</font><br/>"; rename(chemin . $fic, chemin . 'ok/' . $fic); } } } } } } $this->af = $affichage . "<br/>" . $this->message; } else { $this->af .= "Aucun patient retourné par la requête : envoi impossible."; } }
function genListe() { global $session; $res = $this->genRequete(); //eko ( $res ) ; //print affTab ( $res ) ; $list = new ListMaker("template/RadioListe.html"); $navi = $session->genNavi("Radio"); $list->addUserVar('navi', $navi); $list->addUrlVar('navi', $navi); $list->addUserVar('typeListe', $_SESSION['typeListe']); $list->addUrlVar('typeListe', $_SESSION['typeListe']); $list->setSortColumn('col0', 'UF', 'uf'); $list->setSortColumn('col1', 'Patient', 'nomD'); $list->setSortColumn('col2', 'Age', 'ageD'); $list->setSortColumn('col3', 'Arrivée', 'arriveeD'); $list->setSortColumn('col4', 'Soignants', 'soignants'); $list->setSortColumn('col5', 'Motif', 'motif'); $list->setSortColumn('col6', 'Date demande', 'demande'); $list->setSortColumn('col7', 'Description', 'description'); $list->setSortColumn('col8', 'Etat', 'etatD'); $list->setSortColumn('col9', 'Détail', 'detail'); $list->setdefaultSort('col8'); $item = array(); $dureead = new clDuree(); $date = new clDate(); // Parcours de la liste des patients récupérés par la requête. for ($i = 0; isset($res['idradio'][$i]); $i++) { $ras = $this->getInfosPatient($res['idpatient'][$i], $res['idapplication'][$i]); if ($session->getDroit("Liste_Radio", "m")) { $j = XhamTools::genAjax('onClick', 'mod', 'navi=' . $session->genNavi('Ajax', 'modRadios', $res['idradio'][$i])); } else { $j = ''; } $item['js'] = $j; $item['ItemColor'] = 'rad' . $res['etat'][$i]; $item['etatD'] = $res['etat'][$i]; switch ($res['etat'][$i]) { case 'a': $date->setDate($res['dt_creation'][$i]); $duree = $dureead->getAge($date->getDatetime()); if (!$dureead->invertNegatif()) { $item['etat'] = 'Non pris en charge<br/>Depuis ' . $duree; } else { $temp = explode(" ", $res['dt_creation'][$i]); list($annee, $mois, $jour) = explode("-", $temp[0]); $item['etat'] = 'A prendre en charge<br/>Dans ' . $dureead->getAge() . "<br>le " . $jour . "/" . $mois . "/" . $annee . " à " . $temp[1]; $item['ItemColor'] = 'rad' . 'elephant'; } break; case 'b': $date->setDate($res['dt_pec'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'Pris en charge<br/>Depuis ' . $duree; break; case 'c': $date->setDate($res['dt_encours'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'En cours<br/>Depuis ' . $duree; break; case 'd': $date->setDate($res['dt_fin'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'Terminé<br/>Depuis ' . $duree; break; } // Calcul du sexe de la personne... (?!). switch ($ras['sexe'][0]) { 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=\"" . $ras['sexe'][0] . "\" />"; // Calcul de l'âge. $date = new clDate($ras['dt_naissance'][0]); $age = new clDuree($date->getTimestamp()); $str = $age->getAgePrecis($date->getTimestamp()); if ($ras['dt_naissance'][0] != "0000-00-00 00:00:00") { $item['age'] = $str; $item['ageD'] = $date->getTimestamp(); } else { $item['age'] = VIDEDEFAUT; $item['ageD'] = VIDEDEFAUT; } global $ufs; $item['uf'] = isset($ufs[$ras['uf'][0]]) ? $ufs[$ras['uf'][0]] : $ras['uf'][0]; if ($ras['dt_admission'][0] != "0000-00-00 00:00:00") { $datead = new clDate($ras['dt_admission'][0]); $dateSimple = $datead->getDate("d-m-Y"); $dateHeure = $datead->getDate("H\\hi"); $item['arrivee'] = $dateSimple . "<br />" . $dateHeure; $item['arriveeD'] = $datead->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } // Médecin et IDE. switch ($res['idapplication'][$i]) { case '1': if ($ras['medecin_urgences'][0]) { $med = "Dr " . $ras['medecin_urgences'][0]; } else { $med = VIDEDEFAUT; } if ($ras['ide'][0]) { $ide = "Ide " . $ras['ide'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['salle_examen'][0]) { $sal = $ras['salle_examen'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; case '24': if ($ras['medecin'][0]) { $med = "Dr " . $ras['medecin'][0]; } else { $med = VIDEDEFAUT; } if ($ras['chirurgien'][0]) { $ide = "Chir " . $ras['chirurgie'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['chambre'][0]) { $sal = $ras['chambre'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; default: if ($ras['medecin_urgences'][0]) { $med = "Dr " . $ras['medecin_urgences'][0]; } else { $med = VIDEDEFAUT; } if ($ras['ide'][0]) { $ide = "Ide " . $ras['ide'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['salle_examen'][0]) { $sal = $ras['salle_examen'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; } // Motif de recours. if ($ras['motif_recours'][0]) { $item['motif'] = $ras['motif_recours'][0]; } else { $item['motif'] = VIDEDEFAUT; } // Patient $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]); // Concaténation du nom et du prénom. $item['patient'] = "<span " . clPatient::genInfoBulle($ras, 0, $res['idapplication'][$i]) . ">" . strtoupper($ras['nom'][0]) . "</span><br />" . ucfirst(strtolower($ras['prenom'][0]) . "<br/>" . $ras['nsej'][0]); if ($res['dt_creation'][$i] != "0000-00-00 00:00:00") { $datead = new clDate($res['dt_creation'][$i]); $dateSimple = $datead->getDate("d-m-Y"); $dateHeure = $datead->getDate("H\\hi"); $item['demande'] = $dateSimple . "<br />" . $dateHeure; $item['demandeD'] = $datead->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } $parp = '&etape=' . $res['etat'][$i] . '&idradio=' . $res['idradio'][$i]; //$item['detail'] = "<a onmouseout=\"request('".URLNAVI."QWpheHxnZXRSYWRpb3M=',null,'getRadios') ;\" href=\"".URLNAVI.$session->genNavi("Radio","",$res['idpatient'][$i],$ras['idu'][0],$ras['nsej'][0])."$parp&Formulaire2print=radio&FormX_ext_goto_=".$res['id_instance'][$i]."&act_print=1\" target=\"_blank\">" ; $jo = 'onClick="setWait(\'navigation\');location.reload();"'; //$jo = 'onClick=""' ; $item['detail'] = "<a {$jo} href=\"" . URLNAVI . $session->genNavi("Radio", "", $res['idpatient'][$i], $ras['idu'][0], $ras['nsej'][0]) . "{$parp}&Formulaire2print=radio&FormX_ext_goto_=" . $res['id_instance'][$i] . "&act_print=1\" target=\"_blank\">"; $item['detail'] .= "<img src=\"images/pdf.png\" alt=\"Afficher le PDF\"/></a>"; $rel = new clRequete(BDD, '', '', MYSQL_HOST, MYSQL_USER, MYSQL_PASS); $rese = $rel->exec_requete("select * from radios_enquetes where idradio=" . $res['idradio'][$i], 'resultquery'); global $pi; if ($rese['INDIC_SVC'][2]) { if ($rese['date'][0] == '0000-00-00 00:00:00') { $img = 'formko.gif'; } else { $img = 'formok.gif'; } if ($session->getDroit("Liste_Radio", "m")) { $j = XhamTools::genAjax('onClick', 'mod', 'navi=' . $session->genNavi('Ajax', 'modRadiosEnquetes', $res['idradio'][$i])); } else { $j = ''; } $item['detail'] .= ' <img ' . $j . ' src="images/' . $img . '" ' . $pi->genInfoBulle("Ouvrir le formulaire d'enquête.") . ' style="cursor: pointer; pointer: hand;" />'; } if ($res['retour'][$i]) { $dateR = new clDate($res['dt_retour'][$i]); $retour = '<b>Formulaire de retour saisi par les urgences :</b>'; $retour .= '<br/><u>Auteur :</u> ' . $res['retourid'][$i]; $retour .= '<br/><u>Date :</u> ' . $dateR->getDate('d/m/Y H:i:s'); switch ($res['retour'][$i]) { case 'Oui': $resultat = 'Anomalie détectée avec cette radio.'; break; case 'Non': $resultat = 'Aucune anomalie détectée avec cette radio.'; break; case 'NR': $resultat = "L'utilisateur signale que cette radio n'a pas été réalisée."; break; case 'NI': $resultat = "L'utilisateur n'a pas interprété cette radio."; break; default: $resultat = "L'utilisateur n'a pas rempli le formulaire."; break; } $retour .= '<br/><u>Résultat :</u> ' . $resultat; $retour .= '<br/><u>Commentaire :</u>' . ($res['commentaire'][$i] ? $res['commentaire'][$i] : 'Aucun commentaire.'); $item['detail'] .= " <img src=\"" . URLIMGOBS . "\" " . $pi->genInfoBulle($retour) . " alt=\"Comm.\" />"; } $html = $this->getDetailRadio($res, $i); $item['description'] = $html; $ok = 0; switch ($_SESSION['typeListe']) { case 'all': $ok = 1; break; case 'alm': $ok = 1; break; case 'd': $ok = 1; break; case 'rall': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'ralm': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'rd': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'eall': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'ealm': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'ed': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'sall': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'salm': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'sd': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'ec': $nb = 200; $ok = 1; break; case 'et': $nb = 200; $ok = 1; break; default: $nb = 50; $ok = 1; break; } if ($ok) { $list->addItem($item); } } // Récupération du code HTML généré. return $list->getList($nb); }
function genListes() { global $session; // Chargement du template ModeliXe. $mod = new ModeliXe("FusionPatients.mxt"); $mod->SetModeliXe(); // Affichage ou non du champs d'informations. if ($this->infos) { $mod->MxText("informations.infos", $this->infos); } else { $mod->MxBloc("informations", "modify", " "); } // Affichage ou non du champs d'erreurs. if ($this->erreurs) { $mod->MxText("erreurs.erreurs", $this->erreurs); } else { $mod->MxBloc("erreurs", "modify", " "); } // Initialisation des variables. if (isset($_POST['valeurNom'])) { $_SESSION['valeurNom'] = $_POST['valeurNom']; } if (isset($_POST['valeurPrenom'])) { $_SESSION['valeurPrenom'] = $_POST['valeurPrenom']; } if (isset($_POST['valeurAnnee'])) { $_SESSION['valeurAnnee'] = $_POST['valeurAnnee']; } // Génération des champs du formulaire. $mod->MxFormField("nom", "text", "valeurNom", stripslashes($_SESSION['valeurNom'])); $mod->MxFormField("prenom", "text", "valeurPrenom", stripslashes($_SESSION['valeurPrenom'])); // Fabrication du filtre pour la requête. $dateVal = new clDate($_POST['filtreDate']); if (($_SESSION['valeurNom'] or $_SESSION['valeurPrenom']) and $_POST['valeurDate']) { $this->filtre = "AND nom LIKE '" . $_SESSION['valeurNom'] . "%' " . ($_SESSION['valeurPrenom'] ? " AND prenom LIKE '" . $_SESSION['valeurPrenom'] . "%'" : '') . " AND dt_admission LIKE '" . $dateVal->getDate("Y-m-d") . "%'"; } elseif ($_SESSION['valeurNom'] or $_SESSION['valeurPrenom']) { $this->filtre = "AND nom LIKE '" . $_SESSION['valeurNom'] . "%'" . ($_SESSION['valeurPrenom'] ? " AND prenom LIKE '" . $_SESSION['valeurPrenom'] . "%'" : ''); } elseif ($_POST['filtreDate']) { $this->filtre = "AND dt_admission LIKE '" . $dateVal->getDate("Y-m-d") . "%'"; } elseif (!isset($_POST['filtreDate'])) { $this->filtre = "AND dt_admission LIKE '" . date("Y-m-d") . "%'"; } // Génération des dates possibles. //$dt = new clDate ( DATELANCEMENT ) ; $dt = new clDate(); $dt->addWeeks(-13); $this->filtre .= " AND dt_admission>='" . $dt->getDate('Y-m-d') . "%'"; $listeDates[] = "Pas de filtre"; // Calcul de la liste des valeurs possibles pour la date. $dta = new clDate(date("Y-m-d 00:00:00")); if (!isset($_POST['filtreDate'])) { $_POST['filtreDate'] = $dta->getTimestamp(); } for (; $dt->getTimestamp() <= $dta->getTimestamp(); $dta->addDays(-1)) { $listeDates[$dta->getTimestamp()] = $dta->getDate("d-m-Y"); } // Si on n'a aucune date, on initialise la variable avec un tableau vide (pour ModeliXe). if (!is_array($listeDates)) { $listeDates = array(); } // Passage du tableau de dates à ModeliXe. $mod->MxSelect("date", "filtreDate", $_POST['filtreDate'], $listeDates, '', '', "onChange=\"reload(this.form)\""); // Récupération et ajout dans ModeliXe de la liste des patients entrés manuellement. $manuels = $this->getPatientsManuels(); $mod->MxSelect("manuels", "manuel", isset($_POST['manuel']) ? $_POST['manuel'] : '', $manuels, '', '', "size=\"25\""); // Récupération et ajout dans ModeliXe de la liste des patients entrés automatiquement. $automatiques = $this->getPatientsAutomatiques(); $mod->MxSelect("automatiques", "automatique", isset($_POST['automatique']) ? $_POST['automatique'] : '', $automatiques, '', '', "size=\"25\""); // Génération de la variable de navigation. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1))); // Affichage du bouton "Fusionner" en fonction des droits. if (!$session->getDroit("Administration_Fusions", "w")) { $mod->MxBloc("fusionner", "modify", " "); } // On enlève le bouton "Supprimer" pour le moment. $mod->MxBloc("supprimer", "modify", " "); // Récupération du code généré par ModeliXe. $this->af .= $mod->MxWrite("1"); }
function genSalon() { global $options; # paramètres $mg = 5; // Marge de gauche => initial 17 $mh = 4; // Marge du haut => initial 9 $md = 15; // Marge de droite $mb = 9; // Marge du bas $largeur_etiquette = 42; // largeur_etiquette => initial 60 $espace_etiquettes = 13; // => initial 7 $nb_ligne_etiquettes = 4; $nb_etiquette_ligne = 5; // Préparation du document PDF. $pdf = new FPDF('L', 'mm', 'A4'); $pdf->Open(); $pdf->SetLeftMargin($mg); $pdf->SetTopMargin($mh); $pdf->SetAutoPageBreak(1, 0); $pdf->AddPage(); // Gestion des fonts $pdf->AddFont('code39', '', 'IDAutomation_Code_39.php'); $pdf->SetFont('times', '', 12); // Préparation des informations. $nom = strtoupper($this->patient->getNom()); $prenom = strtoupper($this->patient->getPrenom()); $date = new clDate($this->patient->getDateNaissance()); $duree = new clDuree(); $dateN = $date->getDate("d/m/Y"); $dateN .= " (" . $duree->getAge($date->getTimestamp()) . ")"; if ($this->patient->getSexe() == "F") { $sexe = "Féminin"; $e = "e"; } elseif ($this->patient->getSexe() == "M") { $sexe = "Masculin"; $e = ""; } else { $sexe = "Indéterminé"; $e = ""; } $date->setDate($this->patient->getDateAdmission()); $le = $date->getDate("d/m/Y H:i"); $led = $date->getDate("d/m/Y"); $leh = $date->getDate("H:i"); $ipp = $this->patient->getILP(); $nsej = $this->patient->getNSej(); $uf = $this->patient->getUF(); $sexe = $this->patient->getSexe(); if ($uf == $options->getOption('numUFexec')) { $loc = '(URGENCES)'; } else { $loc = '(UHCD)'; } $tel = $this->patient->getTel(); $adresse = $this->patient->getAdresse(); $cpv = $this->patient->getCodePostal() . " " . $this->patient->getVille(); $prev = $this->patient->getPrevenir(); $medt = $this->patient->getMedecinTraitant(); $modet = $this->patient->getMedecinTraitant(); $adresseur = $this->patient->getAdresseur(); $modeadm = $this->patient->getModeAdmission(); // Grosse étiquette $pdf->Cell(20, 4, "", 0, 0, L); // Ligne 1 $pdf->Cell(4 * $largeur_etiquette, 5, "CENTRE HOSPITALIER DE CARPENTRAS", 0, 1, L); // Ligne 2 $pdf->Cell(11, 5, "Date : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(23, 5, "{$led}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(13, 5, "Heure : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(27, 5, "{$leh}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(21, 5, "N° Patient : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(22, 5, "{$ipp}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(18, 5, "N° URG : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(22, 5, "{$nsej}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(18, 5, "N° ARCHIVE : ", 0, 1, L); // Ligne 3 $pdf->Cell(11, 5, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(63, 5, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(13, 5, "Nom naissance : ", 0, 1, L); // Ligne 4 $pdf->Cell(16, 5, "Prénom : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(58, 5, ucfirst(strtolower($prenom)), 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "Sexe : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(29, 5, "{$sexe}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "N° S.S : ", 0, 1, L); // Ligne 5 $pdf->Cell(17, 5, "Né(e) le : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(57, 5, $dateN, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "A : ", 0, 1, L); // Ligne 6 $pdf->Cell(17, 4, "Adresse : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(57, 4, $adresse, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 5 $pdf->Cell(115, 4, "", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(9, 4, "Tél : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(20, 4, $tel, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 6 $pdf->Cell(17, 4, "", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 4, $cpv, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(9, 4, "Pays : ", 0, 1, L); // Ligne 7 $pdf->Cell(17, 5, "Nom du tuteur : ", 0, 1, L); // Ligne 8 $pdf->Cell(37, 5, "Personne à prévenir : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $prev, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 9 $pdf->Cell(23, 5, "Adressé par : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(51, 5, $adresseur, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(30, 5, "Médecin traitant : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $medt, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 10 $pdf->Cell(34, 5, "Mode de transport : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $modeadm, 0, 1, L); $pdf->SetFont('times', '', 12); // Saut $pdf->Cell(1, 5.8, "", 0, 1); $pdf->SetFont('times', '', 9); for ($i = 1; $i <= $nb_ligne_etiquettes; $i++) { // Entrée $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 1, L); // D/Nais $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 1, L); // Nom $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 1, L); $pdf->SetFont('times', '', 9); // Prénom $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 1, L); // NJF $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 1, L); // N° SS $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 1, L); // inter _etiquettes $pdf->Cell(1, 11, "", 0, 1); } $pdf->Output(); }
function gestSend() { global $session; // Chargement du template ModeliXe. $mod = new ModeliXe("rpuGestSend.html"); $mod->SetModeliXe(); $dateL = new clDate(DATELANCEMENT); $dateA = new clDate(); $dateA->addDays(-1); $tabDate[$dateA->getDate('Y-m-d')] = 'Hier'; $dateA->addDays(-1); for (; $dateL->getTimestamp() < $dateA->getTimestamp(); $dateA->addDays(-1)) { $tabDate[$dateA->getDate('Y-m-d')] = $dateA->getDateText(); } $mod->MxSelect('listeDates', 'dateRPU', $_POST['dateRPU'], $tabDate, '', '', 'onChange="reload(this.form)"'); $mod->MxHidden('hidden', 'navi=' . $session->genNavi($session->getNavi(0), $session->getNavi(1))); $this->genXMLH1N1($_POST['dateRPU']); $this->genXML($_POST['dateRPU']); $mod->MxText('xmlRpu', '<p>' . nl2br(htmlentities($this->xmlRpu)) . '</p>'); $mod->MxText('message', $this->sendXML($_REQUEST['EnvoyerRPU'])); $this->af .= $mod->MxWrite("1"); }
static function genInfoBulle($res, $i) { global $options; $e = ''; // Chargement du template ModeliXe. $mod = new ModeliXe("InfoBulle.mxt"); $mod->SetModeliXe(); // Génération de l'id pour rattacher l'info-bulle à une entrée de la liste. $mod->MxText("iddiv", "id" . $res['idpatient'][$i]); $libelle = ''; $libelle .= "<b>idpatient : </b>" . $res['idpatient'][$i] . "<br/>"; if ($res['idu'][$i] != $res['ilp'][$i]) { $libelle .= "<b>IDU : </b>" . $res['idu'][$i] . "<br/>"; } $libelle .= "<b>IPP : </b>" . $res['ilp'][$i] . "<br/>"; $libelle .= "<b>NSej : </b>" . $res['nsej'][$i] . "<br/>"; // Affichage des informations sur l'UF $ufExec = $options->getOption('numUFexec'); $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); $ufSC = $options->getOption('numUFSC'); $dtUHCD = new clDate($res['dt_UHCD'][$i]); if ($res['uf'][$i] == $ufUHCD) { $sup = '(UHCD)'; } elseif ($res['uf'][$i] == $ufSC) { $sup = '(Soins Continus)'; } elseif ($res['uf'][$i] == $ufUHCDrepere and $res['uf'][$i]) { $sup = '(UHCD repéré)'; } elseif (!$res['uf'][$i]) { $sup = '(???)'; } else { $sup = '(Urgences)'; } $libelle .= "<b>UF : </b>" . $res['uf'][$i] . " {$sup}<br/>"; // Etat civil $libelle .= "<b>(" . $res['sexe'][$i] . ") " . ucfirst(strtolower($res['prenom'][$i])) . " " . strtoupper($res['nom'][$i]) . "</b><br />"; $age = new clDate($res['dt_naissance'][$i]); $dta = new clDate($res['dt_admission'][$i]); $dte = new clDate($res['dt_examen'][$i]); $dts = new clDate($res['dt_sortie'][$i]); $dateSimple = $age->getDate("d-m-Y"); $dateComple = $age->getDateText(); $duree = new clDuree(); if ($res['dt_naissance'][$i] != "0000-00-00 00:00:00") { $libelle .= "Né{$e} le {$dateComple} (" . str_replace("<br>", " et ", $duree->getAgePrecis($age->getTimestamp())) . ")<br />"; } else { $libelle .= "Date de naissance inconnue<br />"; } // Date d'admission. if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") { $libelle .= "<b>Date d'admission :</b> " . $dta->getDate("d-m-Y H:i") . "<br />"; } else { $libelle .= "<b>Date d'admission :</b> " . VIDEDEFAUT . "<br />"; } // Date d'examen. if ($res['dt_examen'][$i] != "0000-00-00 00:00:00") { $libelle .= "<b>Date d'examen :</b> " . $dte->getDate("d-m-Y H:i") . "<br />"; } else { $libelle .= "<b>Date d'examen :</b> " . VIDEDEFAUT . "<br />"; } // Date de sortie. if ($res['dt_sortie'][$i] != "0000-00-00 00:00:00") { $libelle .= "<b>Date de sortie :</b> " . $dts->getDate("d-m-Y H:i") . "<br />"; } else { $libelle .= "<b>Date de sortie :</b> " . VIDEDEFAUT . "<br />"; } // Adresseur. if ($res['adresseur'][$i]) { $libelle .= "<b>Adresseur :</b> " . $res['adresseur'][$i] . "<br />"; } else { $libelle .= "<b>Adresseur :</b> " . VIDEDEFAUT . "<br />"; } // Mode d'admission. if ($res['mode_admission'][$i]) { $libelle .= "<b>Mode d'admission :</b> " . $res['mode_admission'][$i] . "<br />"; } else { $libelle .= "<b>Mode d'admission :</b> " . VIDEDEFAUT . "<br />"; } // Médecin. if ($res['medecin_urgences'][$i]) { $libelle .= "<b>Médecin :</b> " . $res['medecin_urgences'][$i] . "<br />"; } else { $libelle .= "<b>Médecin :</b> " . VIDEDEFAUT . "<br />"; } // IDE. if ($res['ide'][$i]) { $libelle .= "<b>IDE :</b> " . $res['ide'][$i] . "<br />"; } else { $libelle .= "<b>IDE :</b> " . VIDEDEFAUT . "<br />"; } // Salle d'examen. if ($res['salle_examen'][$i]) { $libelle .= "<b>Salle d'examen :</b> " . $res['salle_examen'][$i] . "<br />"; } else { $libelle .= "<b>Salle d'examen :</b> " . VIDEDEFAUT . "<br />"; } // Motif de recours. if ($res['motif_recours'][$i]) { $libelle .= "<b>Motif de recours :</b> " . $res['motif_recours'][$i] . "<br />"; } else { $libelle .= "<b>Motif de recours :</b> " . VIDEDEFAUT . "<br />"; } // Destination souhaitée. if ($res['dest_souhaitee'][$i]) { $libelle .= "<b>Dest. souhaitée :</b> " . $res['dest_souhaitee'][$i] . "<br />"; } else { $libelle .= "<b>Dest. souhaitée :</b> " . VIDEDEFAUT . "<br />"; } // Destination attendue. if ($res['dest_attendue'][$i]) { $libelle .= "<b>Dest. attendue :</b> " . $res['dest_attendue'][$i] . "<br />"; } else { $libelle .= "<b>Dest. attendue :</b> " . VIDEDEFAUT . "<br />"; } // Catégorie de diagnostic. if ($res['diagnostic_categorie'][$i]) { $libelle .= "<b>Cat. de diag. :</b> " . $res['diagnostic_categorie'][$i] . "<br />"; } else { $libelle .= "<b>Cat. de diag. :</b> " . VIDEDEFAUT . "<br />"; } // Diagnostic. if ($res['diagnostic_libelle'][$i]) { $libelle .= "<b>Diagnostic :</b> " . $res['diagnostic_libelle'][$i] . "<br />"; } else { $libelle .= "<b>Diagnostic :</b> " . VIDEDEFAUT . "<br />"; } // CCMU. if ($res['ccmu'][$i]) { $libelle .= "<b>CCMU :</b> " . $res['ccmu'][$i] . "<br />"; } // GEMSA. if ($res['gemsa'][$i]) { $libelle .= "<b>GEMSA :</b> " . $res['gemsa'][$i] . "<br />"; } // Ajout des informations dans l'info-bulle. $text = preg_replace("/(\r\n|\n|\r)/", " ", nl2br($libelle)); $mod->MxText("libelle", str_replace("'", "\\'", $text)); // Récupération du code HTML généré. return $mod->MxWrite("1"); }
public function affectPost2XML($item) { global $formxSession; //Certains items ne peuvent être instanciés if (in_array($item->getAttribute('type'), array('CLOSER'))) { return; } $reg = array(); //eko("affectation de la variable ".$this->prefix.$item->getAttribute('id')." à ".$_POST[$this->prefix.$item->getAttribute('id')]); //eko("je traite le post ".$this->prefix.$item->getAttribute('id')); $this->debug("Entrée dans affectPost2XML," . "affectation de la variable " . $this->prefix . $item->getAttribute('id') . " à la valeur " . clFoRmXtOoLs::getPost($this->prefix . $item->getAttribute('id'))); //si pas de données post pour cet item, mais que sa valeur n'est pas nulle, surtout on ne //touche à rien, on risquerait d'écraser les données //ex: balises conditionelles //isPostValueForItem se charge des cas particuliers (ex CHECK ) //f ( ! $this->isPostValueForItem($item) && (string) $item->getElementsByTagName('Val')->item(0)->nodeValue ) { if (!$this->isPostValueForItem($item)) { $this->debug("Aucune donnée POST n'est associée à cet item, Sortie de la methode"); return; } //si pas les droits au moins W $droit = $this->session->droit; if ($this->XMLCore['access']) { $droit = utf8_decode((string) $this->XMLCore['access']); } if ($item->getAttribute('access')) { $droit = utf8_decode($item->getAttribute('access')); } if (!$formxSession->getDroit($droit, 'w')) { $this->debug("acces refusé en écriture. cet item est associé au droit '{$droit}'"); return; } if (is_object($item->getElementsByTagName('Val')->item(0))) { $val_old_value = $item->getElementsByTagName('Val')->item(0)->nodeValue; } else { $val_old_value = ""; } switch ($item->getAttribute('type')) { case 'LISTEN': // echo(afftab($_POST)); $i = 0; $val = ''; while ($_POST[$this->prefix . $item->getAttribute('id') . '_LISTEN_' . $i]) { $val .= stripslashes($_POST[$this->prefix . $item->getAttribute('id') . '_LISTEN_' . $i]) . '|'; $i++; } $val = rtrim($val, '|'); $this->makeBalVal($item, 'Val', $val); break; case 'TAB': ereg("list:(.*)", $item->getElementsByTagName('Rows')->item(0)->nodeValue, $reg); $rows = explode('|', $reg[1]); ereg("list:(.*)", $item->getElementsByTagName('Cols')->item(0)->nodeValue, $reg); $cols = explode('|', $reg[1]); $nb_cols = 0; foreach ($cols as $col) { $nb_cols++; } $x = 0; $y = 0; $tab = array(); foreach ($rows as $row) { foreach ($cols as $col) { $tab[$y * $nb_cols + $x] = $_POST[$this->prefix . $item->getAttribute('id') . "_{$x}" . "_{$y}"]; $x++; } $x = 0; $y++; } $tab = implode('|', $tab); $this->makeBalVal($item, 'Val', $tab); break; case 'LISTEDYN': //SI DEMANDE on va inserer dans la liste XHAM la valeur demandée $nouveau = stripslashes($_POST[$this->prefix . $item->getAttribute('id') . '_new']); if ($nouveau) { $param['liste_nom'] = $item->getElementsByTagName('FromXHAMList')->item(0)->nodeValue; $param['item_nom'] = $nouveau; $param['idapplication'] = IDAPPLICATION; $req = new clResultQuery(); //execution de la requete $res = $req->Execute("Fichier", "FX_addXHAMListItem", $param, "ResultQuery"); //eko($res['INDIC_SVC']); //nouvelle valeur $this->makeBalVal($item, 'Val', $nouveau); break; } //insertOnList //insertOnList case 'LISTE': if ($item->hasAttribute('multiple')) { if (!isset($_POST[$this->prefix . $item->getAttribute('id')]) || !$_POST[$this->prefix . $item->getAttribute('id')]) { $this->makeBalVal($item, 'Val', ''); } else { $this->makeBalVal($item, 'Val', @stripslashes(implode('|', $_POST[$this->prefix . $item->getAttribute('id')]))); } } else { $this->makeBalVal($item, 'Val', stripslashes($_POST[$this->prefix . $item->getAttribute('id')])); } break; case 'FILE': if (!$item->hasAttribute('extension')) { $this->addErreur("L'attribut extention n'est pas présent. Pour des raisons de sécurité la balise FILE est désactivée."); break; } if ($item->hasAttribute('rename')) { $rename = $item->getAttribute('rename'); } else { $rename = ''; } if ($item->hasAttribute('destination')) { $destination = $item->getAttribute('destination'); } else { $destination = $this->destinationUploads; } if ($item->hasAttribute('maxfilesize')) { $maxfilesize = $item->getAttribute('maxfilesize'); } else { $maxfilesize = $this->max_size_upload; } $re = clFoRmXtOoLs::gestUpload($this->prefix . $item->getAttribute('id'), $destination, $rename, $maxfilesize, utf8_decode($item->getAttribute('extension'))); if ($re) { $this->makeBalVal($item, 'Val', 'ok'); } else { $this->makeBalVal($item, 'Val', '¤ko'); } break; case 'RADIO': case 'CHECK': if (!isset($_POST[$this->prefix . $item->getAttribute('id')])) { $this->makeBalVal($item, 'Val', ''); break; } if ($_POST[$this->prefix . $item->getAttribute('id')] == '') { $this->makeBalVal($item, 'Val', ''); } else { //debug horreur de php 5.1.3 $dat = $_POST[$this->prefix . $item->getAttribute('id')]; $this->makeBalVal($item, 'Val', stripslashes(clFoRmXtOoLs::implode_r($dat))); } break; case 'CAL': $postval = stripslashes($_POST[$this->prefix . $item->getAttribute('id')]); $this->makeBalVal($item, 'Val2', $postval); if ($item->hasAttribute('formatStore') && $postval) { $date = new clDate($postval); switch ($item->getAttribute('formatStore')) { case 'timestamp': $newval = $date->getTimestamp(); break; case 'date': $newval = $date->getDate(); break; case 'datetime': default: $newval = $date->getDatetime(); break; } $this->makeBalVal($item, 'Val', $newval); } else { $this->makeBalVal($item, 'Val', $postval); } break; default: $this->makeBalVal($item, 'Val', formxTools::helper_formatDatatype($item, stripslashes($_POST[$this->prefix . $item->getAttribute('id')]))); } $val_new_value = $item->getElementsByTagName('Val')->item(0)->nodeValue; //si la valeur de la balise a été modifiée et que d'autres éléments dynamiques dépendent de sa valeur, //on réinitialise leur valeurs pour ne pas avoir d'incohérences if ($val_new_value != $val_old_value && is_object($item->getElementsByTagName('OnChangeRefresh')->item(0))) { $strListIds = $this->getValueFrom($item->getElementsByTagName('OnChangeRefresh')->item(0)->nodeValue); $arrListIds = explode('|', $strListIds); foreach ($arrListIds as $id) { //print "<br />va chercher ".$id; $this->makeBalVal($this->getDomItemFromId($id), 'Val', ""); if (isset($_POST[$this->prefix . $id])) { unset($_POST[$this->prefix . $id]); } } } }
function createDiag($res, $i) { global $options; global $stopAffichage; $mod = new ModeliXe("HprimXMLDiag.html"); $mod->SetModeliXe(); $tabActe = array(); $tabActe = explode('|', XhamTools::sansAccent($res['CONTENU'][$i])); $type = $res['TYPE'][$i]; $idpass = $tabActe[0]; $idu = $tabActe[1]; $nomu = $tabActe[2]; $pren = $tabActe[3]; $sexe = $tabActe[4]; $dtnai = $tabActe[5]; $dtdem = $tabActe[6]; $hhdem = $tabActe[7]; $action = $tabActe[9]; $idact = $tabActe[10]; $cdccam = $tabActe[11]; $cddiags = $tabActe[12]; $dtr = $tabActe[15]; $hhr = $tabActe[16]; $nomumed = $tabActe[17]; $prenmed = $tabActe[18]; $adeli = $tabActe[19]; $ufr = $tabActe[20]; if ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI9') { $this->adeliMedecin = sprintf('%09d', $adeli); } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED') { $this->adeliMedecin = $nomumed . ' ' . $prenmed; } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED10') { $this->adeliMedecin = substr($nomumed . ' ' . $prenmed, 0, 10); } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI') { $this->adeliMedecin = $adeli; } else { $this->adeliMedecin = ''; } if ($action == 'creation') { $action = utf8_encode('création'); } $date = new clDate(); if ($options->getOption('HprimXML_NomFic')) { $nomFic = $options->getOption('HprimXML_NomFic') . '_' . $res['ID'][$i] . ''; } else { $nomFic = 'fic' . $options->getOption('HprimXML_ChaineFic') . 'TV2_' . $res['ID'][$i] . ''; } $num = $res['ID'][$i]; $pati = new clPatient($res['DISCR'][$i], ''); if (!$pati->getID()) { $pati = new clPatient($res['DISCR'][$i], 'Sortis'); } $datadmi = new clDate($pati->getDateAdmission()); $datexam = new clDate($pati->getDateExamen()); $datsort = new clDate($pati->getDateSortie()); $this->codeMedecinUrgentiste = $pati->getMatriculeMedecin(); if ($options->getOption("ChoixHeureAffectationActes") == "Heure d'admission") { $datdema = $datadmi; } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure d'examen") { $datdema = $datexam; } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure de sorti") { $datdema = $datsort; } else { if ($datadmi->getDatetime() != '1999-12-31 00:00:00' and $datsort->getDatetime() != '1999-12-31 00:00:00') { $time = (int) ($datadmi->getTimestamp() / 2) + $datsort->getTimestamp() / 2; } elseif ($datadmi->getDatetime() != '1999-12-31 00:00:00') { $time = $datadmi->getTimestamp(); } else { $time = $datsort->getTimestamp(); } $datdema = new clDate($time); $datmed = new clDate($time); //eko ( $datadmi->getTimestamp ( ).' + '.$datsort->getTimestamp ( ).' = '.$time.' = '.$datdema -> getTimestamp ( ) ) ; //eko ( $datadmi->getDatetime ( ).' + '.$datsort->getDatetime ( ).' = '.$time.' = '.$datdema -> getDatetime ( ) ) ; } $dtdem = $datdema->getDate('Y-m-d'); $hhdem = $datdema->getDate('H:i:s'); if ($options->getOption('HprimXML_DateProduction') == 'Heure médiane') { $date = $datmed; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure admission') { $date = $datadmi; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure examen') { $date = $datadmi; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure sortie') { $date = $datsort; } if ($options->getOption('HprimXML_DateT')) { $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s")); } else { $mod->MxText('dateHeureProduction', $date->getDatetime()); } if ($options->getOption('HprimXML_DateVenue') == 'Heure médiane') { $dateve = $datmed; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure admission') { $dateve = $datadmi; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure examen') { $dateve = $datadmi; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure sortie') { $dateve = $datsort; } else { $dateve = $datdema; } $dtven = $dateve->getDate('Y-m-d'); $hhven = $dateve->getDate('H:i:s'); $mod->MxText('identifiantMessage', $res['ID'][$i]); if ($options->getOption('HprimXML_DateT')) { $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s")); } else { $mod->MxText('dateHeureProduction', $date->getDatetime()); } $mod->MxText('codeEmetteur', $options->getOption('HprimXML_Emet') ? $options->getOption('HprimXML_Emet') : $res['DISCR'][$i]); $mod->MxText('codeDestinataire', $options->getOption('HprimXML_Dest')); $mod->MxText('patientEmetteur', $idu); $mod->MxText('patientRecepteur', $idu); $mod->MxText('sexe', $sexe); $mod->MxText('patientNom', $nomu); $mod->MxText('patientPrenom', $pren); if ($dtnai != "00/00/0000") { $mod->MxText('patientNaissance', $dtnai); } else { $mod->MxText('patientNaissance', ""); } $mod->MxText('venueRecepteur', $idpass); $mod->MxText('venueDate', $dtven); $mod->MxText('venueHeure', $hhven); $mod->MxText('action', $action); $mod->MxText('rumEmetteur', $idpass); $mod->MxText('rumDate', $dtr); $mod->MxText('ADELI', $this->adeliMedecin); //$mod -> MxText ( 'rumUF', $ufr ) ; $mod->MxText('rumUF', $pati->getUF() ? $pati->getUF() : $ufr); $mod->MxText('rumUFDate', $dtdem); $mod->MxText('rumUFHeure', $hhdem); switch ($options->getOption('HprimXML_CIM10_encodage')) { case 'alphanum': $cdccam = ereg_replace("[^A-Za-z0-9]", "", $cdccam); break; case 'alphanumcross': $cdccam = ereg_replace("[^A-Za-z0-9+]", "", $cdccam); break; default: $cdccam = $cdccam; break; } $mod->MxText('cim10princ', $cdccam); $tabd = explode('~', $cddiags); //eko ( count ( $tabd ).' : '.$cddiags ); if (count($tabd) < 1 or $cddiags == '~' or $cddiags == '') { //$mod -> MxBloc ( 'diagsign', 'replace', '<diagnosticSignificatif><codeCim10/></diagnosticSignificatif>' ) ; //eko ( "ici" ) ; $mod->MxBloc('diagssign', 'replace', ' '); } else { for ($i = 0; isset($tabd[$i]); $i++) { switch ($options->getOption('HprimXML_CIM10_encodage')) { case 'alphanum': $codeCim10sign = ereg_replace("[^A-Za-z0-9]", "", $tabd[$i]); break; case 'alphanumcross': $codeCim10sign = ereg_replace("[^A-Za-z0-9+]", "", $tabd[$i]); break; default: $codeCim10sign = $tabd[$i]; break; } $mod->MxText('diagssign.diagsign.codeCim10sign', $codeCim10sign); $mod->MxBloc('diagssign.diagsign', 'loop'); } } if ($options->getOption('HprimXML_NomFic') and $options->getOption('HprimXML_NomModulo')) { $nomFic = $options->getOption('HprimXML_NomFic') . sprintf('%03d', $res['ID'][$deb] % 1000); } $this->genFile($mod->MxWrite("1"), $num, $nomFic, array(), "diagxml/"); }
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); }
function genGraphs($mod, $dateG = '', $nbDays = '7') { $param['cs'] = "*"; $req = new clResultQuery(); $date = new clDate($dateG); $dateT = new clDate($date->getDate("Y-m-d 00:00:00")); $dateT->addDays(-1); $dateH = new clDate($dateT->getDate("Y-m-d")); $dateT->addDays(1); $dateT->addDays(-$nbDays); $dateS = new clDate($dateT->getDate("Y-m-d")); $dateT->addDays($nbDays); $j = 0; for ($dateDeb = $dateH; $dateDeb->getTimestamp() < $dateT->getTimestamp();) { $heureA = $dateDeb->getHours(); $dateA = $dateDeb->getDatetime(); $dateDeb->addHours(1); $param['cs'] = "*"; $param['cw'] = "WHERE iduser LIKE '" . $_POST['choix'] . "' AND ( date BETWEEN '" . $dateA . "' AND '" . $dateDeb->getDatetime() . "' ) AND idapplication=" . IDAPPLICATION . " AND type='navi'"; $res = $req->Execute("Fichier", "getLogs", $param, "ResultQuery"); $tab[0][0][] = $res['INDIC_SVC'][2]; //eko ( $res['INDIC_SVC'] ) ; $tab[1][0][$j] = 0; $tab[1][1][$j] = 0; // $tab[0][1][$j] = 0 ; $titres[1][] = $heureA . "h - " . $dateDeb->getHours() . "h"; for ($i = 0; isset($res['idlog'][$i]); $i++) { $tab[1][0][$j] += $res['tempsPage'][$i]; $tab[1][1][$j] += $res['tempsSQL'][$i]; //$tab[0][1][$j] += $res['nombreSQL'][$i] ; } if ($res['INDIC_SVC'][2]) { $tab[1][0][$j] = $tab[1][0][$j] / $res['INDIC_SVC'][2]; $tab[1][1][$j] = $tab[1][1][$j] / $res['INDIC_SVC'][2]; } $j++; } $dateH->addDays(-1); $jpG = new clJpGraph(); $jpG->arh_graph("Nombre de clics et requetes par heure (" . $_POST['choix'] . ") - " . $dateH->getDateText(), '', '', $tab[0], array('Clics', 'Requetes'), array('#DDCC55', '#CC3355'), 800, 500, "image1.png", $titres[1], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%d"); $jpG->arh_graph("Temps moyen par heure (" . $_POST['choix'] . ") - " . $dateH->getDateText(), '', '', $tab[1], array('Temps total', 'Temps SQL'), array('#DDCC55', '#CC3355'), 800, 400, "image2.png", $titres[1], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%2.2f"); $j = 0; for ($dateDeb = $dateS; $dateDeb->getTimestamp() < $dateT->getTimestamp();) { $jourA = $dateDeb->getDayWeek(); $dateA = $dateDeb->getDatetime(); $dateDeb->addDays(1); $param['cs'] = "*"; $param['cw'] = "WHERE iduser LIKE '" . $_POST['choix'] . "' AND ( date BETWEEN '" . $dateA . "' AND '" . $dateDeb->getDatetime() . "' ) AND idapplication=" . IDAPPLICATION . " AND type='navi'"; $res = $req->Execute("Fichier", "getLogs", $param, "ResultQuery"); $tab[2][0][] = $res['INDIC_SVC'][2]; $titres[2][] = $jourA; /* //eko ( $res['INDIC_SVC'] ) ; $tab[3][0][$j] = 0 ; $tab[3][1][$j] = 0 ; //$tab[2][1][$j] = 0 ; $titres[2][] = $jourA ; for ( $i = 0 ; isset ( $res['idlog'][$i] ) ; $i++ ) { $tab[3][0][$j] += $res['tempsPage'][$i] ; $tab[3][1][$j] += $res['tempsSQL'][$i] ; //$tab[2][1][$j] += $res['nombreSQL'][$i] ; } if ( $res['INDIC_SVC'][2] ) { $tab[3][0][$j] = $tab[3][0][$j] / $res['INDIC_SVC'][2] ; $tab[3][1][$j] = $tab[3][1][$j] / $res['INDIC_SVC'][2] ; } $j++ ; */ } // eko ( $tab[3][1] ) ; $jpG->arh_graph("Nombre de clics et requetes par jour (" . $_POST['choix'] . ") ", '', '', $tab[2], array('Clics', 'Requetes'), array('#DDCC55', '#CC3355'), 800, 500, "image3.png", $titres[2], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%d"); //$jpG->arh_graph( "Temps moyen par jour - ".$date->getDateText ( ),'','', $tab[3], array ( 'Temps total', 'Temps SQL' ), array ( '#DDCC55', '#CC3355' ), 800, 400, "image4.png", $titres[2], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%2.2f" ) ; }
function genAffichage($dt1, $dt2) { global $session; global $options; global $jj; global $titreCCMU; global $titreGEMSA; global $titreTraumato; $fic = ''; // Chargement du template ModeliXe. $mod = new ModeliXe("Export.mxt"); $mod->SetModeliXe(); // Initialisation des dates en fonction de l'état actuel : // A la date du jour si aucune valeur n'a été passée. // Retrait d'un jour à la date1 si date1 == date2 if ($dt1->getTimestamp() == $dt2->getTimestamp()) { $dt1->addDays(-1); } // Inversion des dates 1 et 2 si la date 1 est supérieur à la date 2. if ($dt1->getTimestamp() > $dt2->getTimestamp()) { $tmp_dt3 = $dt1->getTimestamp(); $tmp_dt4 = $dt2->getTimestamp(); $dt1 = new clDate($tmp_dt4); $dt2 = new clDate($tmp_dt3); } // Calcul de la liste des valeurs possibles pour la date1. $old = ''; for ($dt = new clDate(DATELANCEMENT); $dt->getTimestamp() < $dt2->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates1[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); // if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates1)) { $listeDates1 = array(); } // Calcul de la liste des valeurs possibles pour la date2. $dtj = new clDate(date("Y-m-d 00:00:00")); $dtj->addDays(1); $dt = new clDate(DATELANCEMENT); $old = ''; for ($dt->addDays(1); $dt->getTimestamp() <= $dtj->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates2[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); //if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates2)) { $listeDates2 = array(); } // Fabrication des listes dans ModeliXe. $mod->MxSelect("date1", "date1", $dt1->getTimestamp(), $listeDates1, '', '', "onChange=\"reload(this.form)\""); $mod->MxSelect("date2", "date2", $dt2->getTimestamp(), $listeDates2, '', '', "onChange=\"reload(this.form)\""); // Gestion du filtre avec des bouttons radio. if (!isset($_POST['filtre'])) { $_POST['filtre'] = "tous"; } $mod->MxCheckerField("filtre1", "radio", "filtre", "tous", $_POST['filtre'] == "tous" ? true : false); $mod->MxCheckerField("filtre2", "radio", "filtre", "norm", $_POST['filtre'] == "norm" ? true : false); $mod->MxCheckerField("filtre3", "radio", "filtre", "uhcd", $_POST['filtre'] == "uhcd" ? true : false); // Si le bouton "Chercher" n'a pas été pressé, alors on n'affiche pas // le bloc contenant le lien vers l'export. if (!$_POST['Chercher'] and !$_POST['Chercher_x']) { $mod->MxBloc("donnees", "modify", " "); } else { // Affichage du lien vers le fichier contenant l'export. // Récupération de tous les patients entre les deux dates données. $req = new clResultQuery(); $param[table] = PSORTIS; // En fonction du filtre sélectionné. switch ($_POST['filtre']) { /* case 'norm': $filter = "AND salle_examen NOT LIKE 'UHCD%'" ; break ; case 'uhcd': $filter = "AND salle_examen LIKE 'UHCD%'" ; break; */ case 'norm': $filter = "AND uf!=" . $options->getOption('numUFUHCD') . ""; break; case 'uhcd': $filter = "AND uf=" . $options->getOption('numUFUHCD') . ""; break; default: $filter = ""; break; } $param[cw] = "WHERE dt_admission BETWEEN '" . $dt1->getDatetime() . "' AND '" . $dt2->getDatetime() . "' {$filter}"; //$param[cw] = " p, logs_mails m WHERE p.idpatient=m.idpatient AND dt_naissance>'1932-01-01 00:00:00' AND `dt_mail` >= '2006-10-01 00:00:00' AND type_mail='Procédure dépistage maltraitance'" ; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2] > 1) { $s = "s"; } // Affichage d'un résumé des résultats. $mod->MxText("donnees.nombre", $res[INDIC_SVC][2]); $mod->MxText("donnees.resultat", "entrée{$s} exportée{$s}"); if (!$options->getOption('CCAMExterne')) { $jj = new clCCAMExportActesDiags(array('dateDebut' => $dt1->getDate('Y-m-d'), 'dateFin' => $dt2->getDate('Y-m-d'))); $jj->initTableauActesDiag($res); } if ($options->getOption("GestionCCMU")) { if ($res[ccmu][$i]) { $ccmu = "\t" . $res[ccmu][$i]; } else { $ccmu = "\t"; } $titreCCMU = "\tCCMU"; } else { $ccmu = ''; $titreCCMU = ''; } if ($options->getOption("GestionGEMSA")) { if ($res[gemsa][$i]) { $gemsa = "\t" . $res[gemsa][$i]; } else { $gemsa = "\t"; } $titreGEMSA = "\tGEMSA"; } else { $gemsa = ''; $titreGEMSA = ''; } if ($options->getOption("GestionTraumato")) { if ($res[traumato][$i]) { $traumato = "\t" . $res[traumato][$i]; } else { $traumato = "\t"; } $titreTraumato = "\tTraumato"; } else { $traumato = ''; $titreTraumato = ''; } // Parcours des différents résultats. for ($i = 0; isset($res[idpatient][$i]); $i++) { // Préparation des différentes dates pour affichage. set_time_limit(30); $naissance = new clDate($res[dt_naissance][$i]); $dtn = $naissance->getDate("d/m/Y"); if ($res[dt_admission][$i] != '0000-00-00 00:00:00') { $admission = new clDate($res[dt_admission][$i]); $dta = $admission->getDate("d/m/Y"); $hma = $admission->getDate("H:i"); } else { $dta = '--'; $hma = '--'; } if ($res[dt_examen][$i] != '0000-00-00 00:00:00') { $examen = new clDate($res[dt_examen][$i]); $dte = $examen->getDate("d/m/Y"); $hme = $examen->getDate("H:i"); } else { $dte = '--'; $hme = '--'; } if ($res[dt_sortie][$i] != '0000-00-00 00:00:00') { $sortie = new clDate($res[dt_sortie][$i]); $dts = $sortie->getDate("d/m/Y"); $hms = $sortie->getDate("H:i"); } else { $dts = '--'; $hme = '--'; } $uf = $res[uf][$i]; $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); if ($ufUHCD && ereg($ufUHCD, $uf) or $ufUHCDrepere && ereg($ufUHCDrepere, $uf)) { $isuhcd = 1; } else { $isuhcd = 0; } //eko($jj -> tabExport); // Préparation des différents champs de l'enregistrement parcouru. if ($res[ilp][$i]) { $ilp = $res[ilp][$i]; } else { $ilp = "-"; } if ($res[uf][$i]) { $uf = $res[uf][$i]; } else { $uf = "-"; } $dateUhcd = new clDate($res[dt_UHCD][$i]); if ($res[dt_UHCD][$i] and $isuhcd) { $dtUHCD = $dateUhcd->getDate('Y-m-d H:i:00'); } else { $dtUHCD = ""; } if ($res[nsej][$i]) { $nsej = $res[nsej][$i]; } else { $nsej = "-"; } if ($res[nom][$i]) { $nom = $res[nom][$i]; } else { $nom = "-"; } if ($res[prenom][$i]) { $prenom = $res[prenom][$i]; } else { $prenom = "-"; } if ($res[sexe][$i]) { $sexe = $res[sexe][$i]; } else { $sexe = "-"; } if ($res[adresse_cp][$i]) { $adresse_cp = $res[adresse_cp][$i]; } else { $adresse_cp = "-"; } if ($res[medecin_traitant][$i]) { $medecin_traitant = preg_replace("/(\r\n|\n|\r)/", " ", $res[medecin_traitant][$i]); } else { $medecin_traitant = "-"; } if ($res[adresseur][$i]) { $adresseur = $res[adresseur][$i]; } else { $adresseur = "-"; } if ($res[mode_admission][$i]) { $mode_admission = $res[mode_admission][$i]; } else { $mode_admission = "-"; } if ($res[medecin_urgences][$i]) { $medecin_urgences = $res[medecin_urgences][$i]; } else { $medecin_urgences = "-"; } if ($res[salle_examen][$i]) { $salle_examen = $res[salle_examen][$i]; } else { $salle_examen = "-"; } if ($res[recours_categorie][$i]) { $recours_categorie = $res[recours_categorie][$i]; } else { $recours_categorie = "-"; } if ($res[motif_recours][$i]) { $motif_recours = $res[motif_recours][$i]; } else { $motif_recours = "-"; } if (!$options->getOption('getRecoursCIM10')) { if ($res[recours_code][$i]) { $recours_code = $res[recours_code][$i]; } else { $recours_code = "-"; } } else { if ($res[recours_code][$i]) { $recours_code = strtr($res[recours_code][$i], '.', ''); } else { $recours_code = "-"; } } if ($res[code_gravite][$i]) { $code_gravite = $res[code_gravite][$i]; } else { $code_gravite = "-"; } if ($res[dest_souhaitee][$i]) { $dest_souhaitee = $res[dest_souhaitee][$i]; } else { $dest_souhaitee = "-"; } if ($res[dest_attendue][$i]) { $dest_attendue = ' ' . $res[dest_attendue][$i]; } else { $dest_attendue = "-"; } if ($res[ide][$i]) { $ide = $res[ide][$i]; } else { $ide = "-"; } if ($res[motif_transfert][$i]) { $motif_transfert = $res[motif_transfert][$i]; } else { $motif_transfert = "-"; } if ($res[moyen_transport][$i]) { $moyen_transport = $res[moyen_transport][$i]; } else { $moyen_transport = "-"; } if ($res[type_destination][$i]) { $type_destination = $res[type_destination][$i]; } else { $type_destination = "-"; } if ($res[diagnostic_categorie][$i]) { $diagnostic_categorie = $res[diagnostic_categorie][$i]; } else { $diagnostic_categorie = "-"; } if ($res[diagnostic_libelle][$i]) { $diagnostic_libelle = $res[diagnostic_libelle][$i]; } else { $diagnostic_libelle = "-"; } if ($res[diagnostic_code][$i]) { $diagnostic_code = $res[diagnostic_code][$i]; } else { $diagnostic_code = "-"; } if ($options->getOption("GestionCCMU")) { if ($res[ccmu][$i]) { $ccmu = "\t" . $res[ccmu][$i]; } else { $ccmu = "\t"; } $titreCCMU = "\tCCMU"; } else { $ccmu = ''; $titreCCMU = ''; } if ($options->getOption("GestionGEMSA")) { if ($res[gemsa][$i]) { $gemsa = "\t" . $res[gemsa][$i]; } else { $gemsa = "\t"; } $titreGEMSA = "\tGEMSA"; } else { $gemsa = ''; $titreGEMSA = ''; } if ($options->getOption("GestionTraumato")) { if ($res[traumato][$i]) { $traumato = "\t" . $res[traumato][$i]; } else { $traumato = "\t"; } $titreTraumato = "\tTraumato"; } else { $traumato = ''; $titreTraumato = ''; } // Génération de la ligne correspondant à l'enregistrement. // $fic .= "$ilp\t$nsej\t$nom\t$prenom\t$dtn\t$sexe\t$adresse_cp\t$medecin_traitant\t$dta\t$hma\t$adresseur\t$mode_admission\t$dte\t$hme\t$medecin_urgences\t$salle_examen\t$recours_categorie\t$motif_recours\t$recours_code\t$code_gravite\t$dest_souhaitee\t$dest_attendue\t$dts\t$hms\t$ide\t$moyen_transport\t$motif_transfert\t$type_destination\t$diagnostic_categorie\t$diagnostic_libelle\t$diagnostic_code\n" ; if ($options->getOption('CCAMExterne')) { $fic .= "{$ilp}\t{$nsej}\t{$uf}\t{$dtn}\t{$sexe}\t{$adresse_cp}\t{$medecin_traitant}\t{$dta}\t{$hma}\t{$mode_admission}\t{$dte}\t{$hme}\t{$medecin_urgences}\t{$salle_examen}\t{$recours_categorie}\t{$motif_recours}\t{$recours_code}\t{$code_gravite}\t{$dtUHCD}" . $gemsa . $ccmu . $traumato . "\t{$dest_souhaitee}\t{$dest_attendue}\t{$dts}\t{$hms}\t{$ide}\t{$moyen_transport}\t{$motif_transfert}\t{$type_destination}\t{$diagnostic_categorie}\t{$diagnostic_libelle}\t{$diagnostic_code}\n"; } else { $fic .= "{$ilp}\t{$nsej}\t{$uf}\t{$dtn}\t{$sexe}\t{$adresse_cp}\t{$medecin_traitant}\t{$dta}\t{$hma}\t{$mode_admission}\t{$dte}\t{$hme}\t{$medecin_urgences}\t{$salle_examen}\t{$recours_categorie}\t{$motif_recours}\t{$recours_code}\t{$code_gravite}\t{$dtUHCD}" . $gemsa . $ccmu . $traumato . "\t{$dest_souhaitee}\t{$dest_attendue}\t{$dts}\t{$hms}\t{$ide}\t{$moyen_transport}\t{$motif_transfert}\t{$type_destination}\t{$diagnostic_categorie}\t{$diagnostic_libelle}\t{$diagnostic_code}\t" . $jj->getActesDiagsPatient($i); } } // Calcul du lien vers ce fichier. } return $fic; }
function genAffichage() { global $session; global $options; // Chargement du template ModeliXe. $outputLignes = array(); $mod = new ModeliXe("ExportAPHM.mxt"); $mod->SetModeliXe(); // Initialisation des dates en fonction de l'état actuel : // A la date du jour si aucune valeur n'a été passée. if ($_POST['date2']) { $dt1 = new clDate($_POST['date1']); $dt2 = new clDate($_POST['date2']); } else { $dt2 = new clDate(date("Y-m-d 00:00:00")); $dt1 = new clDate(date("Y-m-d 00:00:00")); $dt1->addDays(-1); } // Retrait d'un jour à la date1 si date1 == date2 if ($dt1->getTimestamp() == $dt2->getTimestamp()) { $dt1->addDays(-1); } // Inversion des dates 1 et 2 si la date 1 est supérieur à la date 2. if ($dt1->getTimestamp() > $dt2->getTimestamp()) { $tmp_dt3 = $dt1->getTimestamp(); $tmp_dt4 = $dt2->getTimestamp(); $dt1 = new clDate($tmp_dt4); $dt2 = new clDate($tmp_dt3); } // Calcul de la liste des valeurs possibles pour la date1. $old = ''; for ($dt = new clDate(DATELANCEMENT); $dt->getTimestamp() < $dt2->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates1[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); // if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates1)) { $listeDates1 = array(); } // Calcul de la liste des valeurs possibles pour la date2. $dtj = new clDate(date("Y-m-d 00:00:00")); $dtj->addDays(1); $dt = new clDate(DATELANCEMENT); $old = ''; for ($dt->addDays(1); $dt->getTimestamp() <= $dtj->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates2[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); //if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates2)) { $listeDates2 = array(); } // Fabrication des listes dans ModeliXe. $mod->MxSelect("date1", "date1", $dt1->getTimestamp(), $listeDates1); $mod->MxSelect("date2", "date2", $dt2->getTimestamp(), $listeDates2); // Si le bouton "Chercher" n'a pas été pressé, alors on n'affiche pas // le bloc contenant le lien vers l'export. if (!$_POST['Chercher'] and !$_POST['Chercher_x']) { $mod->MxBloc("donnees", "modify", " "); } else { // Affichage du lien vers le fichier contenant l'export. // Récupération de tous les patients entre les deux dates données. //Le calcul commence ici $req = new clResultQuery(); $param[table] = PSORTIS; /* // En fonction du filtre sélectionné. switch ( $_POST['filtre'] ) { //case 'norm': $filter = "AND salle_examen NOT LIKE 'UHCD%'" ; break ; ca//se 'uhcd': $filter = "AND salle_examen LIKE 'UHCD%'" ; break; case 'norm': $filter = "AND uf!=".$options->getOption('numUFUHCD')."" ; break ; case 'uhcd': $filter = "AND uf=".$options->getOption('numUFUHCD')."" ; break; default: $filter = "" ; break ; } */ if ($_POST['idpassage']) { $param['cw'] = " WHERE ilp = '" . $_POST['idpassage'] . "' "; } else { $param['cw'] = " WHERE dt_admission BETWEEN '" . $dt1->getDatetime() . "' AND '" . $dt2->getDatetime() . "' "; } //$param[cw] = " p, logs_mails m WHERE p.idpatient=m.idpatient AND dt_naissance>'1932-01-01 00:00:00' AND `dt_mail` >= '2006-10-01 00:00:00' AND type_mail='Procédure dépistage maltraitance'" ; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2] > 1) { $s = "s"; } // Affichage d'un résumé des résultats. $mod->MxText("donnees.nombre", $res[INDIC_SVC][2]); $mod->MxText("donnees.resultat", "entrée{$s} exportée{$s}"); if (!$options->getOption('CCAMExterne')) { $jj = new clCCAMExportActesDiags(array('dateDebut' => $dt1->getDate('Y-m-d'), 'dateFin' => $dt2->getDate('Y-m-d'))); $jj->initTableauActesDiag($res); } // Parcours des différents résultats. $tabResFinal = array(); $nbMaxActesNGAP = 0; $indiceMaxNbActesNgap = 0; //PARCOURS for ($i = 0; isset($res[idpatient][$i]); $i++) { // Préparation des différentes dates pour affichage. $tabLigne = array(); $naissance = new clDate($res[dt_naissance][$i]); $dtn = $naissance->getDate("d/m/Y"); if ($res[dt_admission][$i] != '0000-00-00 00:00:00') { $admission = new clDate($res[dt_admission][$i]); $dta = $admission->getDate("d/m/Y"); $hma = $admission->getDate("H:i"); } else { $dta = '--'; $hma = '--'; } if ($res[dt_examen][$i] != '0000-00-00 00:00:00') { $examen = new clDate($res[dt_examen][$i]); $dte = $examen->getDate("d/m/Y"); $hme = $examen->getDate("H:i"); } else { $dte = '--'; $hme = '--'; } if ($res[dt_sortie][$i] != '0000-00-00 00:00:00') { $sortie = new clDate($res[dt_sortie][$i]); $dts = $sortie->getDate("d/m/Y"); $hms = $sortie->getDate("H:i"); } else { $dts = '--'; $hme = '--'; } $uf = $res[uf][$i]; $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); if ($ufUHCD && ereg($ufUHCD, $uf) or $ufUHCDrepere && ereg($ufUHCDrepere, $uf)) { $isuhcd = 1; } else { $isuhcd = 0; } //le patient est uhcd mais pas dans une salle uhcd ? $isVirtualUhcd = false; if ($ufUHCD && !ereg($options->getOption('FiltreSalleUHCD'), $res['salle_examen'][$i])) { $isVirtualUhcd = true; $codeUm = $options->getOption('UMUHCDFictif'); } // Préparation des différents champs de l'enregistrement parcouru. if ($res[ilp][$i]) { $ilp = $res[ilp][$i]; } else { $ilp = "-"; } if ($res[uf][$i]) { $uf = $res[uf][$i]; } else { $uf = "-"; } if ($res[dt_UHCD][$i] and $isuhcd) { $dtUHCD = $res[dt_UHCD][$i]; } else { $dtUHCD = "0000-00-00 00:00:00"; } $nbSecPassage = $sortie->getDifference($admission); $nbHeurepassage = floor($nbSecPassage / 3600); $nbMinpassage = floor(($nbSecPassage - $nbHeurepassage * 3600) / 60); $strDureePassage = ($nbHeurepassage > 9 ? '' : '0') . $nbHeurepassage . ':' . ($nbMinpassage > 9 ? '' : '0') . $nbMinpassage; $tabActesNGAP = clExportAphm::getTabListeCodesNGAP($i, $jj->tabExport); //eko($tabActesNGAP); $tabLigneCCAM['CODE_HOMON'] = '1'; $tabLigneCCAM['NUMSEJ'] = $res['nsej'][$i] . 'B'; $tabLigneCCAM['UM'] = $isVirtualUhcd ? $codeUm : ''; $tabLigneCCAM['DATENT'] = $dta . ' ' . $hma; $tabLigneCCAM['DIAG_PPAL'] = $res['diagnostic_code'][$i]; $tabLigneCCAM['DIAG_RELI'] = ''; //eko(clExportAphm::getTabListeDiagsCCAM ($i,$jj -> tabExport)); $tabLigneCCAM['DIAG_ASSO'] = implode(' ', clExportAphm::getTabListeDiagsCCAM($i, $jj->tabExport)); $tabLigneCCAM['NPI'] = $res['ilp'][$i] . 'B'; $tabLigneCCAM['DAT_EXAM'] = $dte . ' ' . $hme; $tabLigneCCAM['NOM_PATRO'] = $res['nom'][$i]; $tabLigneCCAM['PRENOM'] = $res['prenom'][$i]; $tabLigneCCAM['MARITAL'] = ''; $tabLigneCCAM['SEXE'] = $res['sexe'][$i] == 'M' ? 'H' : 'F'; $tabLigneCCAM['DDN'] = $dtn; $tabLigneCCAM['UF_EXEC'] = $res['uf'][$i]; $tabLigneCCAM['ACTES'] = implode(' ', clExportAphm::getTabListeCodesCCAM($i, $jj->tabExport)); $tabLigneCCAM['DEST_SOUHA'] = $res['dest_souhaitee'][$i]; $tabLigneCCAM['DEST_ATTEN'] = $res['dest_attendue'][$i]; $tabLigneCCAM['DUR_PASSAGE'] = $strDureePassage; $tabLigneCCAM['CODE_GRAV'] = $res['code_gravite'][$i]; $tabLigneNGAP['NUMSEJ'] = $res['nsej'][$i] . 'B'; $tabLigneNGAP['NOM_PATRO'] = $res['nom'][$i]; $tabLigneNGAP['PRENOM'] = $res['prenom'][$i]; $tabLigneNGAP['DAT_EXAM'] = $dte . ' ' . $hme; $tabLigneNGAP['NOM_MARITAL'] = ''; $tabLigneNGAP['DATE_PASSAGE'] = $dte . ' ' . $hme; $tabLigneNGAP['MAJORATIONS_EVENTUELLES'] = clExportAphm::getMajoration($examen, $naissance); for ($cmptActe = 1; isset($tabActesNGAP[$cmptActe - 1]); $cmptActe++) { $nbMaxActesNGAP = max($nbMaxActesNGAP, $cmptActe); $tabLigneNGAP['ACTE_' . $cmptActe] = $tabActesNGAP[$cmptActe - 1]; } $cmptActe--; if ($nbMaxActesNGAP == $cmptActe) { $tabTypeNGAP = $tabLigneNGAP; } $outputLignesCCAM[] = implode("\t", $tabLigneCCAM); $outputLignesNGAP[] = implode("\t", $tabLigneNGAP); } $headerCCAM = array(); if (isset($tabLigneCCAM)) { foreach ($tabLigneCCAM as $k => $v) { $headerCCAM[] = $k; } } $headerNGAP = array(); foreach ($tabTypeNGAP as $k => $v) { $headerNGAP[] = $k; } $ficCCAM = implode("\t", $headerCCAM) . "\n" . implode("\n", $outputLignesCCAM); $ficNGAP = implode("\t", $headerNGAP) . "\n" . implode("\n", $outputLignesNGAP); // Calcul du nom du fichier temporaire. $nomfic = "exportCCAM" . date("YmdHis") . ".xls"; $nomfic2 = "exportNGAP" . date("YmdHis") . ".xls"; // Création, écriture et fermeture du fichier. $FIC = fopen(URLCACHE . $nomfic, "w"); $FIC2 = fopen(URLCACHE . $nomfic2, "w"); fwrite($FIC, $ficCCAM); fwrite($FIC2, $ficNGAP); fclose($FIC); fclose($FIC2); // Calcul du lien vers ce fichier. $mod->MxUrl("donnees.lienExport", URLCACHEWEB . $nomfic); $mod->MxUrl("donnees.lienExport2", URLCACHEWEB . $nomfic2); // On purge le répertoire temporaire de tous les fichiers qui ont plus de deux heures. $poub = new clPoubelle(URLCACHE); $poub->purgerRepertoire("2"); $isExport = true; } // Variable de navigation. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // On retourne le code HTML généré par le template. $this->af .= $mod->MxWrite("1"); }
function majPatientHL7($data, $table, $ilp = '', $base = BDD, $res = '') { global $errs; unset($data['uf']); unset($data['prevenir']); unset($data['medecin_traitant']); unset($data['mode_admission']); if ($ilp) { unset($data['nsej']); unset($data['dt_admission']); $requete = new clRequete($base, $table, $data); $res = $requete->updRecord("ilp='" . $data['ilp'] . "'"); } elseif ($data['nsej']) { if ($res['dt_sortie'][0] != '0000-00-00 00:00:00') { $dates = new clDate($res['dt_sortie'][0]); $datea = new clDate($data['dt_admission']); eko($data['dt_admission']); if ($datea->getTimestamp() > $dates->getTimestamp()) { unset($data['dt_admission']); } eko($data['dt_admission']); } $requete = new clRequete($base, $table, $data); $res = $requete->updRecord("nsej='" . $data['nsej'] . "'"); } if ($ilp) { //$errs->addErreur ( afftab($res) ) ; } //eko ( $data ) ; //eko ( $res ) ; $this->mods1++; }
function getListeDates() { $dateDeb = new clDate(DATELANCEMENT); $dateFin = new clDate(); $tDeb = $dateDeb->getTimestamp(); $tab = array(); for (; $dateFin->getTimestamp() >= $tDeb; $dateFin->addDays(-1)) { $tab[$dateFin->getDate("Y-m-d")] = $dateFin->getDate("d/m/Y"); } return $tab; }
function getContraintes() { global $session; global $options; // Chargement du template. $mod = new ModeliXe("ErreursSortie.mxt"); $mod->SetModeliXe(); // Génération du lien pour fermer. $mod->MxImage("imgCloseErreurs", URLIMGFER, "Fermer"); $mod->MxUrl("lienCloseErreurs", URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // Variable de navigation. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); $tab = $this->messages; // Parcours et affichage des messages d'erreur. while (list($key, $val) = each($tab)) { $mod->MxText("erreur.nom", $key); $mod->MxText("erreur.description", $val); $mod->MxBloc("erreur", "loop"); } if ($session->getDroit("Presents_EtatCivil", "a")) { $mod->MxHidden("forcer.hiddenForcer", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "modDateSortie")); // 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"); // 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); } // On génère le select contenant la liste des dates possibles. $mod->MxText("forcer.date", $form->genSelect("modDateSortie", 1, $data)); } else { $mod->MxBloc("forcer", "modify", " "); } // Récupération du code HTML généré. $af .= $mod->MxWrite("1"); return $af; }