Exemple #1
0
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())) . "";
}
Exemple #2
0
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" ) ;
                 //}
             }
         }
     }
 }
Exemple #4
0
 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");
                     }
                 }
             }
         }
     }
 }
Exemple #5
0
 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();
 }
Exemple #6
0
 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");
         }
     }
 }
Exemple #7
0
 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.";
     }
 }
Exemple #8
0
 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);
 }
Exemple #9
0
 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");
 }
Exemple #10
0
 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();
 }
Exemple #11
0
 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");
 }
Exemple #12
0
 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");
 }
Exemple #13
0
 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]);
             }
         }
     }
 }
Exemple #14
0
 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/");
 }
Exemple #15
0
 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);
 }
Exemple #16
0
 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" ) ;
 }
Exemple #17
0
 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;
 }
Exemple #18
0
 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");
 }
Exemple #19
0
 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++;
 }
Exemple #20
0
 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;
 }
Exemple #21
-1
 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;
 }