Ejemplo n.º 1
0
 function addLog($type, $description, $idcible = '')
 {
     if ($description != "Configuration|cron" and $description != "Importation") {
         $date = new clDate();
         $data['idapplication'] = IDAPPLICATION;
         if (isset($session)) {
             $data['iduser'] = $this->xham->user->getLogin();
         } elseif (is_object($this->xham) && is_object($this->xham->user)) {
             $data['iduser'] = $this->xham->user->getLogin();
         } else {
             $data['iduser'] = $_SESSION['informations']['iduser'] ? $_SESSION['informations']['iduser'] : "******";
         }
         $data['idcible'] = $idcible;
         // print $this->logSup ;
         $data['type'] = $type;
         $data['ip'] = $_SERVER['REMOTE_ADDR'];
         $data['date'] = $date->getDatetime();
         $data['description'] = $description;
         $finTemps = XhamTools::temps();
         $tpPage = $finTemps - $this->xham->debTemps;
         $data['tempsPage'] = $tpPage;
         $data['tempsSQL'] = $this->xham->tpRequetes;
         $data['nombreSQL'] = $this->xham->nbRequetes + 1;
         // Appel de la classe Requete.
         $req = new XhamRequete(BASEXHAM, TABLELOGS, $data);
         // Exécution de la requete.
         $res = $req->addRecord();
         // print affTab ( $res ) ;
         // Limitation du nombre de lignes dans la table logs... Désactivé, mais fonctionne parfaitement.
         //$mini = $res['cur_id'] - 150 ;
         //$res = $requete->delRecord ( "idlog<=$mini" ) ;
     }
 }
Ejemplo n.º 2
0
 function addTodo()
 {
     if ($this->xham->user->getLogin() != 'Invité') {
         if ($_POST['Nom']) {
             $data['idApplication'] = IDAPPLICATION;
             $data['idUser'] = $this->xham->user->getLogin();
             $data['date'] = date('Y-m-d H:i:s');
             if ($_POST['dateLimite']) {
                 $date = new clDate($_POST['dateLimite']);
                 $data['dateLimite'] = $date->getDatetime();
             }
             $data['nom'] = utf8_decode($_POST['Nom']);
             $data['categorie'] = utf8_decode($_POST['CategorieA']);
             $data['importance'] = $_POST['Importance'];
             $data['etat'] = 'afaire';
             $data['public'] = $_POST['Public'];
             $req = new XhamRequete(BASEXHAM, 'todo', $data, MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
             $req->addRecord();
         } else {
             $af = '<span class="erreur">Vous devez choisir un nom pour la tâche.</span>';
         }
         //$af = affTab ( $data ) ;
     } else {
         $af = '<span class="erreur">Vous n\'avez pas le droit d\'utiliser ces fonctions.</span>';
     }
     if ($this->ajax) {
         $this->af .= $af;
     } else {
         return $af;
     }
 }
Ejemplo n.º 3
0
 function addLog($type, $description, $idcible = '')
 {
     global $session;
     global $debTemps;
     global $nbRequetes;
     global $tpRequetes;
     if ($description != "Configuration|cron" and $description != "Importation") {
         $date = new clDate();
         $data['idapplication'] = IDAPPLICATION;
         if (isset($session)) {
             $data['iduser'] = $session->getUid();
         } else {
             $data['iduser'] = $_SESSION['informations']['iduser'] ? $_SESSION['informations']['iduser'] : "******";
         }
         if ($idcible) {
             $data['idcible'] = $idcible;
         }
         $data['type'] = $type;
         $data['ip'] = $_SERVER['REMOTE_ADDR'];
         $data['date'] = $date->getDatetime();
         $data['description'] = $description;
         $finTemps = temps();
         $tpPage = $finTemps - $debTemps;
         $data['tempsPage'] = $tpPage;
         $data['tempsSQL'] = $tpRequetes;
         $data['nombreSQL'] = $nbRequetes + 1;
         // Appel de la classe Requete.
         $requete = new clRequete(BASEXHAM, TABLELOGS, $data);
         // Exécution de la requete.
         $res = $requete->addRecord();
         // Limitation du nombre de lignes dans la table logs... Désactivé, mais fonctionne parfaitement.
         //$mini = $res['cur_id'] - 150 ;
         //$res = $requete->delRecord ( "idlog<=$mini" ) ;
     }
 }
Ejemplo n.º 4
0
 public function getInfo($ind = '', $defaut = '', $date = '')
 {
     if ($ind) {
         if (isset($this->info) and isset($this->info[$ind])) {
             if ($this->info[$ind][$this->i]) {
                 if ($date) {
                     $date = new clDate($this->info[$ind][$this->i]);
                     if ($this->info[$ind][$this->i] != '0000-00-00 00:00:00') {
                         return $date->getDatetime();
                     } else {
                         return $defaut;
                     }
                 } else {
                     return $this->info[$ind][$this->i];
                 }
             } else {
                 return $defaut;
             }
         }
     } else {
         if (isset($this->info)) {
             return $this->info;
         }
     }
 }
Ejemplo n.º 5
0
 function genXMLH1N1($dat = '')
 {
     global $options;
     global $session;
     if (!$options->getOption('RPU_Envoi_Pandemie')) {
         return;
     }
     // On prend la date passée en paramètre si elle existe.
     if ($dat) {
         $date = new clDate($dat);
     } else {
         // Sinon, on initialise avec la date de la veille.
         $date = new clDate();
         $date->addDays(-1);
     }
     //eko ( $_REQUEST ) ;
     $_REQUEST['dateRPU'] = $date->getDate('Y-m-d');
     // Calcul de la date minimum (J-7).
     $dateMin = new clDate($date->getDatetime());
     $nbJours = $options->getOption('RPU_NombreJours');
     $dateMin->addDays(-$nbJours);
     //passages en rapport avec le H1N1
     $requete = " SELECT COUNT(*) as nb FROM patients_sortis WHERE dt_admission BETWEEN '" . $dateMin->getDate('Y-m-d 00:00:00') . "' AND '" . $date->getDate('Y-m-d 23:59:59') . "' AND valide>=1 AND type_destination!='X'";
     $requete .= " AND ilp IN ( SELECT ipp FROM " . CCAM_BDD . ".ccam_cotation_actes WHERE `codeActe` = 'J09' )";
     $obRequete = new clRequete(BDD, 'patients_sortis', array());
     $res = $obRequete->exec_requete($requete, 'tab');
     $nbPassageH1N1 = $res[0]['nb'];
     //hospis en rapport avec le H1N1
     $requete = " SELECT COUNT(*) as nb FROM patients_sortis WHERE dt_admission BETWEEN '" . $dateMin->getDate('Y-m-d 00:00:00') . "' AND '" . $date->getDate('Y-m-d 23:59:59') . "' AND valide>=1 AND type_destination = 'H' ";
     $requete .= " AND ilp IN ( SELECT ipp FROM " . CCAM_BDD . ".ccam_cotation_actes WHERE `codeActe` = 'J09' )";
     $res = $obRequete->exec_requete($requete, 'tab');
     $nbHospisH1N1 = $res[0]['nb'];
     //Deces en rapport avec le H1N1
     $requete = " SELECT COUNT(*) as nb FROM patients_sortis WHERE dt_admission BETWEEN '" . $dateMin->getDate('Y-m-d 00:00:00') . "' AND '" . $date->getDate('Y-m-d 23:59:59') . "' AND valide>=1 AND type_destination = 'D' ";
     $requete .= " AND ilp IN ( SELECT ipp FROM " . CCAM_BDD . ".ccam_cotation_actes WHERE `codeActe` = 'J09' )";
     $res = $obRequete->exec_requete($requete, 'tab');
     $nbDecesH1N1 = $res[0]['nb'];
     //$mod -> MxText ( 'idActeur', $options->getOption ( 'RPU_IdActeur' ) ) ;
     //$mod -> MxText ( 'cleActeur', $options->getOption ( 'RPU_CleActeur' ) ) ;
     //$mod -> MxText ( 'AR', $options->getOption ( 'RPU_AR_Actif' ) ) ;
     //$mod -> MxText ( 'mailAR', $options->getOption ( 'RPU_AR_Mail' ) ) ;
     // Récupération du code HTML généré.
     /* $this->xmlH1N1 = '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>' ; */
     //$this->xmlH1N1.= '<result>' ;
     //$this->xmlH1N1.= '<entete>' ;
     //$this->xmlH1N1.= '<idActeur>'.	$options->getOption ( 'RPU_IdActeur' ).'</idActeur>' ;
     //$this->xmlH1N1.= '<cleActeur>'. $options->getOption ( 'RPU_CleActeur' ).'</cleActeur>' ;
     //$this->xmlH1N1.= '<arRequis>'.$options->getOption ( 'RPU_AR_Actif' ).'</arRequis>';
     //$this->xmlH1N1.= '<mail>'.$options->getOption ( 'RPU_AR_Mail' ).'</mail>' ;
     //$this->xmlH1N1.= '</entete>' ;
     $this->xmlH1N1 .= "\n" . '<element>';
     $this->xmlH1N1 .= "\n" . '<nomForm>pandemie</nomForm>';
     $this->xmlH1N1 .= "\n" . '<date_event>' . $date->getDate('d/m/Y H:i') . '</date_event>';
     $this->xmlH1N1 .= "\n" . '<H1N1consult>' . $nbPassageH1N1 . '</H1N1consult>';
     $this->xmlH1N1 .= "\n" . '<H1N1hospis>' . $nbHospisH1N1 . '</H1N1hospis>';
     $this->xmlH1N1 .= "\n" . '<H1N1deces>' . $nbDecesH1N1 . '</H1N1deces>';
     $this->xmlH1N1 .= "\n" . '</element>';
     //$this->xmlH1N1.= '</result>' ;
 }
Ejemplo n.º 6
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;
 }
Ejemplo n.º 7
0
function majPatientSQL($idimport, $idpatient, $table)
{
    global $errs;
    global $news1;
    global $mods1;
    global $errs1;
    global $news2;
    global $mods2;
    global $errs2;
    // Récupération des informations sur le patient à mettre à jour.
    $param['cw'] = "WHERE idimport='{$idimport}'";
    $req = new clResultQuery();
    $res = $req->Execute("Fichier", "getImports", $param, "ResultQuery");
    if ($res['INDIC_SVC'][2]) {
        $i = 0;
        $data['idu'] = $res['idu'][$i];
        $data['ilp'] = $res['ilp'][$i];
        $data['nsej'] = $res['idpass'][$i];
        $data['uf'] = $res['uf'][$i];
        $data['nom'] = $res['nom'][$i];
        $data['prenom'] = $res['prenom'][$i];
        $data['sexe'] = $res['sexe'][$i];
        $data['dt_naissance'] = $res['dt_naissance'][$i];
        $data['adresse_libre'] = $res['adresse_libre'][$i];
        $data['adresse_cp'] = $res['adresse_cp'][$i];
        $data['adresse_ville'] = $res['adresse_ville'][$i];
        $data['telephone'] = $res['telephone'][$i];
        $data['prevenir'] = str_replace('^', '<br/>', $res['prevenir'][$i]);
        $data['medecin_traitant'] = $res['medecin_nom'][$i];
        $data['dt_admission'] = $res['dt_admission'][$i];
        $data['mode_admission'] = $res['mode_admission'][$i];
        $data['iduser'] = "******";
        $data['manuel'] = 0;
        //newfct ( gen_affiche_tableau, $data ) ;
        if ($res['uf'][$i] == '6004') {
            $base = 'terminal2_tuv2';
            $mods2++;
        } else {
            $base = BDD;
            $mods1++;
        }
        // Appel de la classe Requete.
        $requete = new clRequete($base, $table, $data);
        // Exécution de la requete.
        $requete->updRecord("idpatient='{$idpatient}'");
        // Mise à jour de la date de traitement de l'import.
        $date = new clDate();
        $data2['dt_traitement'] = $date->getDatetime();
        // Appel de la classe Requete.
        $requete = new clRequete(BDD, IMPORTS, $data2);
        // Exécution de la requete.
        $requete->updRecord("idimport='{$idimport}'");
    } else {
        // En cas d'erreur, on la signale...
        $errs->addErreur("clImportation : Impossible d'importer ce nouveau patient, l'identifiant de l'import est introuvable (idimport=\"{$idimport}\").");
        $errs1++;
        $errs2++;
    }
}
Ejemplo n.º 8
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");
 }
Ejemplo n.º 9
0
 function addDoc()
 {
     global $session;
     global $errs;
     $date = new clDate();
     // Message d'information.
     $this->infos .= "Création du document \"" . stripslashes($_POST['nomDoc']) . "\" effectuée.";
     if ($_POST['newCategorie']) {
         $data[categorie] = $_POST['newCategorie'];
     } else {
         if ($_POST['listeCategories']) {
             $data[categorie] = $_POST['listeCategories'];
         } else {
             $data[categorie] = "Non classés";
         }
     }
     // Vérification de la validité du nom du document.
     if (eregi("[0-9a-zA-Z]", $_POST['nomDoc'])) {
         $data[nom] = stripslashes($_POST['nomDoc']);
     } else {
         $data[nom] = $date->getDatetime;
     }
     $data[contenu] = stripslashes($_POST['contenu']);
     $data[deb_validite] = $date->getDatetime();
     $data[version] = 1;
     $requete = new clRequete(BDD, "documents", $data);
     $requete->addRecord();
 }
Ejemplo n.º 10
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);
 }
Ejemplo n.º 11
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]);
             }
         }
     }
 }
Ejemplo n.º 12
0
 function addPatientPresent()
 {
     global $session;
     global $listeMois;
     global $options;
     // Si la confirmation d'ajout est présente, alors on ajoute le nouveau patient dans la table.
     if ($_POST['ValiderAjouter'] or $_POST['ValiderAjouter_x']) {
         global $errs;
         // Préparation de la date d'admission.
         $date = new clDate();
         $dateN = new clDate($_POST['naissance']);
         /*if ( $options -> getOption ( "DoubleEtablissement" ) AND ! ( $options -> getOption ( 'DoubleSansCom' ) ) ) {
           $req = new clResultQuery ;			
             	  $ras = $req -> Execute ( "Fichier", "getMaxIdToulon", array(), "ResultQuery" ) ; 
           $max = 1 ;
           for ( $j = 0 ; isset ( $ras['idpatient'][$j] ) ; $j++ )
           	if ( $ras['idpatient'][$j] > $max ) $max = $ras['idpatient'][$j] ;
           $max++ ;
           eko ( "Double Etablissement : Calcul du max ($max)" ) ;
           $data['idpatient'] = $max ;
             }*/
         // Remplissage des champs pour la requête.
         $data['idu'] = "X";
         $data['ilp'] = "X";
         $data['nsej'] = "X";
         $data['uf'] = $options->getOption("AjoutManuelUF");
         $data['sexe'] = $_POST['sexe'];
         $data['prenom'] = $_POST['prenom'];
         $data['nom'] = $_POST['nom'];
         $data['dt_admission'] = $date->getDatetime();
         $data['dt_naissance'] = $dateN->getDatetime();
         $data['adresse_libre'] = $_POST['adresse'];
         $data['adresse_cp'] = $_POST['cp'];
         $data['adresse_ville'] = $_POST['ville'];
         $data['telephone'] = $_POST['telephone'];
         $data['salle_examen'] = $_POST['salle'];
         $data['dest_souhaitee'] = $_POST['destSouhaitee'];
         $data['dest_attendue'] = $_POST['destAttendue'];
         $data['adresseur'] = $_POST['adresseur'];
         $data['medecin_urgences'] = $_POST['medecin'];
         if ($_POST['medecin']) {
             $data[dt_examen] = $date->getDatetime();
         }
         $data['recours_categorie'] = $_POST['categorieRecours'];
         $data['manuel'] = 1;
         // Préparation de la requête.
         $requete = new clRequete(BDD, PPRESENTS, $data);
         // Exécution de la requête.
         $resu = $requete->addRecord();
         // On signale les éventuelles erreurs rencontrées.
         if ($resu['error']) {
             $errs->addErreur("clListesPatients : Erreur lors de la bascule d'un patient attendu en patient présent (" . $resu[error] . ").");
         }
         $param['table'] = PPRESENTS;
         $param['cw'] = "WHERE idu='X'";
         $req = new clResultQuery();
         $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery");
         for ($i = 0; isset($res['idpatient'][$i]); $i++) {
             $data2['idu'] = "MANU" . $res['idpatient'][$i];
             $data2['ilp'] = "MANU" . $res['idpatient'][$i];
             $data2['nsej'] = "MANU" . $res['idpatient'][$i];
             // Préparation de la requête.
             $requete = new clRequete(BDD, PPRESENTS, $data2);
             // Exécution de la requête.
             $requete->updRecord("idpatient='" . $res['idpatient'][$i] . "'");
             header('Location:' . URLNAVI . $session->genNavi($session->getNavi(0)));
         }
     } else {
         // Sinon, nous affichons le formulaire d'ajout d'un nouveau patient présent.
         // Chargement du template ModeliXe.
         $mod = new ModeliXe("addPresent.html");
         $mod->SetModeliXe();
         // Préparation du titre, des images, des urls...
         $mod->MxText("titre", "Ajouter un nouveau patient présent");
         $mod->MxImage("imgClose", URLIMGFER, "Annuler");
         $mod->MxUrl("lienClose", URLNAVI . $session->genNavi($session->getNavi(0)));
         // Champs IDU, IPP, et nsej...
         // $mod -> MxFormField ( "idu", "text", "idu", $_POST['idu'], "size=\"47\" maxlength=\"50\"" ) ;
         // $mod -> MxFormField ( "ilp", "text", "ilp", $_POST['ilp'], "size=\"47\" maxlength=\"50\"" ) ;
         // $mod -> MxFormField ( "nsej", "text", "nsej", $_POST['nsej'], "size=\"47\" maxlength=\"50\"" ) ;
         // Champs de l'état civil du patient.
         $data['M'] = "Homme";
         $data['F'] = "Femme";
         $data['I'] = "Indéterminé";
         $javascript1 = XhamTools::genAjax('onKeyUp', 'getPatients', 'navi=' . $session->genNavi('Ajax', 'getPatientsSortis'));
         $javascript3 = XhamTools::genAjax('onChange', 'getPatients', 'navi=' . $session->genNavi('Ajax', 'getPatientsSortis'));
         $javascript1 = XhamTools::genAjaxWithTempo('getPatients', 'navi=' . $session->genNavi('Ajax', 'getPatientsSortis'));
         $mod->MxSelect("sexe", "sexe", $_POST['sexe'], $data, '', '', 'class="w300"  ' . "{$javascript3}");
         $mod->MxFormField("prenom", "text", "prenom", $_POST['prenom'], "size=\"47\" maxlength=\"50\" {$javascript1} {$javascript3}");
         $mod->MxFormField("nom", "text", "nom", $_POST['nom'], "size=\"47\" maxlength=\"50\"  {$javascript1} {$javascript3}");
         // Gestion des champs de la date de naissance.
         $_POST['naissance'] = date('d/m/Y');
         $mod->MxFormField("naissance", "text", "naissance", $_POST['naissance'], "id=\"naissance\"");
         // Adresse et téléphone du patient.
         $mod->MxFormField("adresse", "text", "adresse", $_POST['adresse'], "size=\"47\" maxlength=\"128\"");
         $mod->MxFormField("telephone", "text", "telephone", $_POST['telephone'], "size=\"47\" maxlength=\"64\"");
         $mod->MxFormField("cp", "text", "cp", $_POST['cp'], "size=\"5\" maxlength=\"5\"");
         $mod->MxFormField("ville", "text", "ville", $_POST['ville'], "size=\"38\" maxlength=\"64\"");
         // Préparation des listes dynamiques.
         $listeCom = new clListes("Recours", "recup");
         $listeGen = new clListesGenerales("recup");
         $listeMedecins = $listeGen->getListeItems("Médecins", "1", '', '', "1");
         $listeSalles = $listeGen->getListeItems("Salles d'examens", "1", '', '', "1");
         $listeCategoriesRecours = $listeCom->getListes("", "1");
         $listeDestSouhaitees = $listeGen->getListeItems("Destinations souhaitées", "1", '', '', "1");
         $listeDestAttendues = $listeGen->getListeItems("Destinations attendues", "1", '', '', "1");
         // Affichage des listes dynamiques.
         $mod->MxSelect("medecin", "medecin", $_POST['medecin'], $listeMedecins, '', '', 'class="w300"');
         $mod->MxSelect("salle", "salle", $_POST['salle'], $listeSalles, '', '', 'class="w300"');
         $mod->MxSelect("categorieRecours", "categorieRecours", $_POST['categorieRecours'], $listeCategoriesRecours, '', '', 'class="w300"');
         $mod->MxSelect("destSouhaitee", "destSouhaitee", $_POST['destSouhaitee'], $listeDestSouhaitees, '', '', 'class="w300"');
         $mod->MxSelect("destAttendue", "destAttendue", $_POST['destAttendue'], $listeDestAttendues, '', '', 'class="w300"');
         // Suppression du bouton de modification inutile ici.
         $mod->MxBloc("modifier", "modify", " ");
         // Variable de navigation.
         $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), "addPatientPresent"));
         // Récupération du code HTML généré par le template ModeliXe.
         $this->af .= $mod->MxWrite("1");
     }
 }
Ejemplo n.º 13
0
 static function getTabEnquetesFinies()
 {
     $tab = array();
     $now = new clDate();
     $requete = "SELECT * FROM enquetes WHERE  date_fin <= '" . $now->getDatetime() . "' AND  date_fin != '0000-00-00 00:00:00'  ORDER BY date_fin DESC ";
     $obRequete = new clRequete(BDD, 'enquetes');
     return $obRequete->exec_requete($requete, 'tab');
 }
Ejemplo n.º 14
0
 function setSessionSQL()
 {
     global $options;
     // Date actuelle.
     $date = new clDate();
     // On met à jour la session actuelle.
     $data['nombre'] = "nombre+1";
     $data['last'] = $date->getDatetime();
     $data['localisation'] = $this->navi;
     $data['idapplication'] = IDAPPLICATION;
     // Appel de la classe Requete.
     $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
     // Exécution de la requete.
     $res = $requete->updRecord("uid='" . $this->informations['iduser'] . "' AND type='" . $this->informations['type'] . "' AND idsession='" . $_SESSION['sidtuv2' . $this->index] . "'");
     // Affichage pour débugage.
     if (DEBUGLOGSESSION) {
         print affTab($res);
     }
     // Si la session n'a pas pu mettre à jour, on regarde les différents cas possibles.
     if (!$res['affected_rows']) {
         // La session existe-t-elle ?
         $param['cw'] = "WHERE idsession='" . $_SESSION['sidtuv2' . $this->index] . "'";
         $req = new clResultQuery();
         $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
         // Affichage pour débugage.
         if (DEBUGLOGSESSION) {
             print affTab($res['INDIC_SVC']);
         }
         // Si la session existe.
         if ($res['INDIC_SVC'][2]) {
             // On historise son état actuel.
             unset($data);
             $data['idapplication'] = IDAPPLICATION;
             $data['nombre'] = $res['nombre'][0];
             $data['uid'] = $res['uid'][0];
             $data['type'] = $res['type'][0];
             $data['ip'] = $res['ip'][0];
             $data['dateshisto'] = $res['date'][0];
             $data['dateslast'] = $res['last'][0];
             $data['navigateur'] = $res['navigateur'][0];
             $data['fonctions'] = $res['fonctions'][0];
             $data['equipes'] = $res['equipes'][0];
             $data['organisations'] = $res['organisations'][0];
             // Appel de la classe Requete.
             $requete = new clRequete(BASEXHAM, TABLESHIST, $data);
             // Exécution de la requete.
             $res = $requete->addRecord();
             // Affichage pour débugage.
             if (DEBUGLOGSESSION) {
                 affTab($res);
             }
             // Puis on met à jour cette session.
             unset($data);
             $data['idapplication'] = IDAPPLICATION;
             $data['nombre'] = "1";
             $data['localisation'] = $this->navi;
             $data['uid'] = $this->informations['iduser'];
             $data['type'] = $this->informations['type'];
             $data['ip'] = $_SERVER['REMOTE_ADDR'];
             $data['date'] = $date->getDatetime();
             $data['last'] = $date->getDatetime();
             $data['navigateur'] = $this->informations['navigateur'];
             $data['fonctions'] = implode('|', isset($this->informations['fonctions']) ? $this->informations['fonctions'] : array());
             $data['equipes'] = implode('|', isset($this->informations['service']) ? $this->informations['service'] : array());
             $data['organisations'] = $this->informations['org'];
             // Appel de la classe Requete.
             $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
             // Exécution de la requete.
             $res = $requete->updRecord("idsession='" . $_SESSION['sidtuv2' . $this->index] . "'");
             // Affichage pour débugage.
             if (DEBUGLOGSESSION) {
                 print affTab($res);
             }
         } else {
             // Si la session n'existe pas, on la crée avec les bonnes informations.
             unset($data);
             if ($this->navi != "Importation" and $this->navi != "SW1wb3J0YXRpb24=" and $this->navi != "Q29uZmlndXJhdGlvbnxjcm9u") {
                 $param[cw] = "WHERE uid='" . $this->informations['iduser'] . "'";
                 $req = new clResultQuery();
                 $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
                 if (DEBUGLOGSESSION) {
                     print affTab($res['INDIC_SVC']);
                 }
                 if ($res['INDIC_SVC'][2] and $options->getOption("UniqLogin") and !$_POST['AuthentificationDemandee']) {
                     $this->informations = '';
                     $this->informations['type'] = "Echec";
                     $this->informations['nom'] = "Invité";
                     $this->informations['prenom'] = "Invité";
                     $this->informations['pseudo'] = "Invité";
                     $this->informations['mail'] = "*****@*****.**";
                     $this->informations['iduser'] = "******";
                     $this->informations['idgroupe'] = "1";
                     $this->informations['ip'] = $_SERVER['REMOTE_ADDR'];
                     $this->informations['navigateur'] = $_SERVER["HTTP_USER_AGENT"];
                     $this->informations['fonctions'] = array();
                     $this->informations['service'] = array();
                     $this->informations['org'] = '';
                     // Sauvegarde des informations.
                     $_SESSION['informations'] = $this->informations;
                 } else {
                     $data['idapplication'] = IDAPPLICATION;
                     $data['nombre'] = "1";
                     $data['localisation'] = $this->navi;
                     $data['uid'] = $this->informations['iduser'];
                     $data['type'] = $this->informations['type'];
                     $data['ip'] = $_SERVER['REMOTE_ADDR'];
                     $data['date'] = $date->getDatetime();
                     $data['last'] = $date->getDatetime();
                     $data['idsession'] = $_SESSION['sidtuv2' . $this->index];
                     $data['navigateur'] = $this->informations['navigateur'];
                     $data['fonctions'] = implode('|', isset($this->informations['fonctions']) ? $this->informations['fonctions'] : array());
                     $data['equipes'] = implode('|', isset($this->informations['service']) ? $this->informations['service'] : array());
                     $data['organisations'] = $this->informations['org'];
                     // Appel de la classe Requete.
                     $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
                     // Exécution de la requete.
                     $res = $requete->addRecord();
                     // Affichage pour débugage.
                     if (DEBUGLOGSESSION) {
                         print affTab($res);
                     }
                 }
             }
         }
     }
     if ($options->getOption("UniqLogin")) {
         $requete = new clRequete(BASEXHAM, TABLESACTU);
         // Exécution de la requete.
         $res = $requete->delRecord("uid='" . $this->informations['iduser'] . "' AND last<'" . $date->getDatetime() . "' AND idsession!='" . $_SESSION['sidtuv2' . $this->index] . "'");
         if (DEBUGLOGSESSION) {
             print affTab($res);
         }
     }
     // Maintenant, on historise les sessions qui ne sont plus valides et on les supprime
     // de la table des sessions actuelles.
     $dmax = $options->getOption("DureeSession");
     $dact = $date->getDatetime();
     $date->addMinutes("-{$dmax}");
     $param['cw'] = "WHERE last<'" . $date->getDatetime() . "' AND idapplication=" . IDAPPLICATION;
     $req = new clResultQuery();
     $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
     // Affichage pour débugage.
     if (DEBUGLOGSESSION) {
         print affTab($res[INDIC_SVC]);
     }
     for ($i = 0; isset($res['idsactu'][$i]); $i++) {
         unset($data);
         $data['idapplication'] = IDAPPLICATION;
         $data['nombre'] = $res['nombre'][$i];
         $data['uid'] = $res['uid'][$i];
         $data['type'] = $res['type'][$i];
         $data['ip'] = $res['ip'][$i];
         $data['dateshisto'] = $res['date'][$i];
         $data['dateslast'] = $res['last'][$i];
         $data['navigateur'] = $res['navigateur'][$i];
         $data['fonctions'] = $res['fonctions'][$i];
         $data['equipes'] = $res['equipes'][$i];
         $data['organisations'] = $res['organisations'][$i];
         // Appel de la classe Requete.
         $requete = new clRequete(BASEXHAM, TABLESHIST, $data);
         // Exécution de la requete.
         $ras = $requete->addRecord();
         // Affichage pour débugage.
         if (DEBUGLOGSESSION) {
             affTab($ras);
         }
         unset($data);
         $data['idapplication'] = IDAPPLICATION;
         $data['nombre'] = "1";
         // Appel de la classe Requete.
         $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
         // Exécution de la requete.
         $rus = $requete->delRecord("idsession='" . $res['idsession'][$i] . "'");
         // Affichage pour débugage.
         if (DEBUGLOGSESSION) {
             print affTab($rus);
         }
     }
 }
Ejemplo n.º 15
0
 function genResultats()
 {
     global $session;
     // Chargement du template ListMaker.
     $list = new ListMaker("template/AffichageLogs.html");
     // Transmission des variables utiles à ListMaker.
     $list->addUserVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1)));
     $list->addUrlVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1)));
     $list->addUserVar('utilisateur', isset($_GET['utilisateur']) ? $_GET['utilisateur'] : '%');
     $list->addUrlVar('utilisateur', isset($_GET['utilisateur']) ? $_GET['utilisateur'] : '%');
     $list->addUserVar('type', isset($_GET['type']) ? $_GET['type'] : '%');
     $list->addUrlVar('type', isset($_GET['type']) ? $_GET['type'] : '%');
     $list->addUserVar('ip', isset($_GET['ip']) ? $_GET['ip'] : '%');
     $list->addUrlVar('ip', isset($_GET['ip']) ? $_GET['ip'] : '%');
     $list->addUserVar('dateMin', isset($_GET['dateMin']) ? $_GET['dateMin'] : $this->dateMin);
     $list->addUrlVar('dateMin', isset($_GET['dateMin']) ? $_GET['dateMin'] : $this->dateMin);
     $list->addUserVar('dateMax', isset($_GET['dateMax']) ? $_GET['dateMax'] : $this->dateMax);
     $list->addUrlVar('dateMax', isset($_GET['dateMax']) ? $_GET['dateMax'] : $this->dateMax);
     $list->addUserVar('filtreDescription', isset($_GET['filtreDescription']) ? $_GET['filtreDescription'] : '');
     $list->addUrlVar('filtreDescription', isset($_GET['filtreDescription']) ? $_GET['filtreDescription'] : '');
     $list->addUserVar('filtreUtilisateur', isset($_GET['filtreUtilisateur']) ? $_GET['filtreUtilisateur'] : '');
     $list->addUrlVar('filtreUtilisateur', isset($_GET['filtreUtilisateur']) ? $_GET['filtreUtilisateur'] : '');
     $list->addUserVar('filtreCible', isset($_GET['filtreCible']) ? $_GET['filtreCible'] : '');
     $list->addUrlVar('filtreCible', isset($_GET['filtreCible']) ? $_GET['filtreCible'] : '');
     $list->addUserVar('filtreIP', isset($_GET['filtreIP']) ? $_GET['filtreIP'] : '');
     $list->addUrlVar('filtreIP', isset($_GET['filtreIP']) ? $_GET['filtreIP'] : '');
     $list->addUserVar('nbResultats', isset($_GET['nbResultats']) ? $_GET['nbResultats'] : $this->pagination);
     $list->addUrlVar('nbResultats', isset($_GET['nbResultats']) ? $_GET['nbResultats'] : $this->pagination);
     // Nom des colonnes.
     $list->setSortColumn('col1', 'Type', 'type');
     $list->setSortColumn('col2', 'Utilisateur', 'utilisateur');
     $list->setSortColumn('col3', 'Adresse IP', 'ip');
     $list->setSortColumn('col5', 'Description', 'description');
     $list->setSortColumn('col6', 'cible', 'cible');
     $list->setSortColumn('col7', 'Page', 'tempsPage');
     $list->setSortColumn('col8', 'SQL', 'tempsSQL');
     $list->setSortColumn('col9', 'Nb', 'nombreSQL');
     $list->setSortColumn('col4', 'Date de connexion', 'date');
     // Tri automatique sur la colonne de la date de la dernière action effectuée.
     $list->setdefaultSort('');
     // Choix des couleurs à alterner d'une ligne sur l'autre.
     $list->setAlternateColor("pair", "impair");
     $dateMin = new clDate($this->dateMin);
     $dateMax = new clDate($this->dateMax);
     // Fabrication de la requête.
     if ($this->pagination == "Tous") {
         $limit = '';
     } else {
         $limit = "LIMIT 0, " . $this->pagination;
     }
     $param['cw'] = "WHERE \n    type LIKE '" . (isset($_GET['type']) ? $_GET['type'] : '%') . "' \n    AND iduser LIKE '" . (isset($_GET['filtreUtilisateur']) ? $_GET['filtreUtilisateur'] ? $_GET['filtreUtilisateur'] . '%' : $_GET['utilisateur'] : '%') . "' \n    AND ip LIKE '" . (isset($_GET['filtreIP']) ? $_GET['filtreIP'] ? $_GET['filtreIP'] . '%' : $_GET['ip'] : '%') . "' \n    AND description LIKE '" . (isset($_GET['filtreDescription']) ? $_GET['filtreDescription'] : '') . "%' \n    AND idcible LIKE '" . (isset($_GET['filtreCible']) ? $_GET['filtreCible'] : '') . "%' \n    AND date BETWEEN  '" . $dateMin->getDatetime() . "' AND '" . $dateMax->getDatetime() . "' AND idapplication=" . IDAPPLICATION . "\n    ORDER BY date DESC {$limit}";
     $param['cs'] = "*";
     $req = new clResultQuery();
     $res = $req->Execute("Fichier", "getLogs", $param, "ResultQuery");
     eko($res['INDIC_SVC']);
     // On parcourt les logs récupérés.
     for ($i = 0; isset($res['idlog'][$i]); $i++) {
         $item['ip'] = $res['ip'][$i];
         $item['utilisateur'] = $res['iduser'][$i];
         $item['date'] = $res['date'][$i];
         $item['type'] = $res['type'][$i];
         $item['description'] = $res['description'][$i];
         $item['cible'] = $res['idcible'][$i];
         $item['tempsPage'] = sprintf("%0.4f", $res['tempsPage'][$i]);
         $item['tempsSQL'] = sprintf("%0.4f", $res['tempsSQL'][$i]);
         $item['nombreSQL'] = $res['nombreSQL'][$i];
         $list->addItem($item);
     }
     // On retourne le tableau généré.
     return $list->getList();
 }
Ejemplo n.º 16
0
 function genListe()
 {
     global $session;
     global $options;
     if ($session->getNavi(2) == 'Valider') {
         // On valide la ligne sur laquelle on vient de cliquer.
         $id = $session->getNavi(3);
         eko($id);
         $date = new clDate();
         $data['etat'] = $date->getDatetime();
         $requete = new clRequete(BDD, 'bal', $data);
         $sql = $requete->updRecord('id=' . $id);
     }
     // Préparation de la requête.
     $req = new clResultQuery();
     $URL = 1;
     $item['urlimg'] = 'images/bt-valider.gif';
     if ($options->getOption("TriListeBE") == "nom") {
         $order = " ORDER BY nom";
     } else {
         $order = '';
     }
     switch ($_REQUEST['f']) {
         case '1':
             $param['cw'] = "WHERE etat='' AND type='UHCD' {$order}";
             break;
         case '2':
             $param['cw'] = "WHERE etat='' AND type='Sortie' {$order}";
             break;
         case '3':
             $URL = 0;
             $item['urlimg'] = 'images/valider.gif';
             $param['cw'] = "WHERE etat!='' ORDER BY etat DESC LIMIT 0, 200";
             break;
         default:
             $param['cw'] = "WHERE etat='' {$order}";
             break;
     }
     // Exécution de la requête.
     $res = $req->Execute("Fichier", "getBal", $param, "ResultQuery");
     $list = new ListMaker("template/ListeBE.html");
     for ($i = 0; isset($res['id'][$i]); $i++) {
         // récupération date admission
         /* $dt_adm = "Date inconnue";
         	    $sql = "SELECT dt_admission FROM `patients_presents` WHERE nsej='".$res['nsej'][$i]."'";
         	    $obRequete = new clRequete(BDD, 'patients_presents', array() ,MYSQL_HOST, MYSQL_USER , MYSQL_PASS );
         	    $tabResult = $obRequete->exec_requete($sql, 'tab');
         	    if (isset($tabResult[0])) $dt_adm = $tabResult[0]['dt_admission'];
         	    else {
         		 $obRequete = new clRequete(BDD, 'patients_sortis', array() ,MYSQL_HOST, MYSQL_USER , MYSQL_PASS );
         		$sql = "SELECT dt_admission FROM `patients_sortis` WHERE nsej='".$res['nsej'][$i]."'";
         		$tabResult = $obRequete->exec_requete($sql, 'tab');
         		if (isset($tabResult[0])) $dt_adm = $tabResult[0]['dt_admission'];
         	    }*/
         $item['dt_adm'] = $res['date_admission'][$i];
         $item['ilp'] = $res['ilp'][$i];
         $item['nsej'] = $res['nsej'][$i];
         $item['patient'] = $res['nom'][$i] . ' ' . ucfirst(strtolower($res['prenom'][$i]));
         $item['uf'] = $res['uf'][$i];
         if ($res['dest_attendue'][$i]) {
             $item['destAttendue'] = $res['dest_attendue'][$i];
         } else {
             $item['destAttendue'] = '--';
         }
         $item['action'] = $res['action'][$i];
         $date = new clDate($res['date'][$i]);
         $item['date'] = $date->getDate('d-m-Y H:i:s');
         if ($URL) {
             $item['urlbe'] = URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), 'Valider', $res['id'][$i]) . '&f=' . $_REQUEST['f'];
         } else {
             $item['urlbe'] = URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1)) . '&f=' . $_REQUEST['f'];
         }
         $list->addItem($item);
     }
     // Récupération du code HTML généré.
     return $list->getList();
 }
Ejemplo n.º 17
0
 static function anydate2datetime($date)
 {
     if (is_object($date)) {
         return $date->getDatetime();
     }
     $objdate = new clDate($date);
     return $objdate->getDatetime();
 }
Ejemplo n.º 18
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");
         }
     }
 }
Ejemplo n.º 19
0
 function mbtv2Traited($id, $dateT = '')
 {
     $date = new clDate($dateT);
     $param['DTTRT'] = $date->getDatetime();
     $param['ETAT'] = "W";
     $majrq = new clRequete(CCAM_BDD, "MBTV2", $param);
     $sql = $majrq->updRecord("ID={$id}");
 }
Ejemplo n.º 20
0
 function isSameIpThanLast($login)
 {
     $currentIp = $_SERVER['REMOTE_ADDR'];
     //Recuperation d'une ligne de session valide avec l'user courant
     $date = new clDate();
     $date->addMinutes(-$this->xham->getOption("DureeSession"));
     //eko(whereAmI(),true);
     $param['cw'] = "WHERE last > '" . $date->getDatetime() . "' AND uid = '{$login}' AND idapplication=" . IDAPPLICATION . " order by last desc ";
     $res = $this->xham->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
     //si pas de données présentes, pas de comparaison possible, donc vrai.
     if ($res['INDIC_SVC'][2] == 0) {
         return true;
     }
     //sinon on prend la derniere
     $lastIp = $res['ip'][0];
     //eko($lastIp);
     //eko($_SERVER['REMOTE_ADDR']);
     return $currentIp == $lastIp;
 }
Ejemplo n.º 21
0
 static function getPatientsFromDateToDate(clDate $date1, clDate $date2)
 {
     $req = " SELECT idpatient from patients_sortis WHERE dt_admission >= '" . $date1->getDatetime() . "' AND   dt_admission <= '" . $date2->getDatetime() . "'  ";
     $obReq = new clRequete(BDD, 'patients_sortis');
     $resTab = $obReq->exec_requete($req, 'tab');
     $tabRet = array();
     foreach ($resTab as $ligne) {
         $tabRet[] = self::getObjPatientFromIdPassage($ligne['idpass']);
     }
     return $tabRet;
 }
Ejemplo n.º 22
0
 function readHPRIM($file)
 {
     //eko("GNAAAAA");
     global $options;
     if (file_exists($file)) {
         $req = new clResultQuery();
         $content = file_get_contents($file);
         //on vire les retour chariots qui peuvent etre considérés comme du "rien"
         $content = str_replace(chr(13), '', $content);
         $tableau = preg_split("/\n/", $content);
         $infos = preg_grep("/^H/", $tableau);
         $patients = preg_grep("/^[AP]\\|/", $tableau);
         // eko ( $tableau ) ;
         $patients = array_values($patients);
         // Récupération des informations sur les séparateurs et caractères spéciaux utilisés.
         $sep1 = $infos[0][1];
         $sep2 = $infos[0][2];
         $sep3 = $infos[0][4];
         $rep = $infos[0][3];
         $desp = $infos[0][5];
         $tabufgen1 = explode('|', $infos[0]);
         $tabufgen2 = explode('~', $tabufgen1[4]);
         $ufgen = $tabufgen2[0];
         // Parcours des différents patients contenus dans le fichier HPR/
         for ($i = 0; isset($patients[$i]); $i++) {
             $patient = explode($sep1, $patients[$i]);
             // 2009-06-04 : ajout du cas où la coupure se fait sur le dernier champs...
             if (count($patient) < 34 and $patient[0] == 'P' or count($patient) == 34 and strlen($patient[33]) < 12) {
                 $patient2 = explode($sep1, $patients[$i + 1]);
                 if ($patient2[0] == 'A') {
                     //eko ( "On fusionne" ) ;
                     //eko ( $patient ) ;
                     //eko ( $patient2 ) ;
                     unset($patient[count($patient) - 1]);
                     unset($patient2[0]);
                     //eko ( $patient[count($patient)-1] ) ;
                     $final = array_merge($patient, $patient2);
                     $final = explode($sep1, $patients[$i] . substr($patients[$i + 1], 2, strlen($patients[$i + 1]) - 2));
                     eko($final);
                     $patient = $final;
                     $i++;
                 }
             }
             // eko ( $patient ) ;
             // Récupération du numéro de dossier (ou séjour)
             if ($patient[4]) {
                 $tabNsej = explode($sep2, $patient[4]);
                 $data['nsej'] = $tabNsej[0];
             }
             // Récupération de l'identifiant du patient (IPP)
             $id = explode($sep2, $patient[2]);
             $data['idu'] = $id[0];
             $data['ilp'] = $id[0];
             if ($id[1]) {
                 $data['fusion'] = $id[1];
             } else {
                 $data['fusion'] = '';
             }
             // Localisation du patient
             $loc = explode($sep2, $patient[25]);
             $data['uf'] = $loc[2] ? $loc[2] : ($loc[3] ? $loc[3] : ($loc[4] ? $loc[4] : ($loc[1] ? $loc[1] : ($loc[0] ? $loc[0] : $ufgen))));
             // Etat civil du patient.
             $civ = explode($sep2, $patient[5]);
             $data['nom'] = $civ[0];
             $data['prenom'] = $civ[1];
             $data['sexe'] = $patient[8];
             // Calcul de la date de naissance du patient.
             $d = $patient[7];
             $date = substr($d, 0, 4) . '-' . substr($d, 4, 2) . '-' . substr($d, 6, 2) . ' 00:00:00';
             $data['dt_naissance'] = $date;
             // Adresse
             $adr = explode($sep2, $patient[10]);
             $data['adresse_libre'] = $adr[0] . ' ' . $adr[1];
             $data['adresse_cp'] = $adr[4];
             $data['adresse_ville'] = $adr[2];
             // Téléphone
             $data['telephone'] = $patient[12];
             // Médecin
             $meds = explode($rep, $patient[13]);
             $infoMed = explode($sep2, $meds[0]);
             $civMed = explode($sep3, $infoMed[1]);
             // if ( $civMed[0] != '\\' ) $data['medecin_traitant'] = $civMed[4].' '.$civMed[0].' '.$civMed[1] ;
             // else $data['medecin_traitant'] = '' ;
             // Statut
             $sta = $patient[24];
             // Date d'admission.
             $d = str_replace('<br />', 'zeze', nl2br(nl2br($patient[23])));
             $d = str_replace(CHR(10), '', str_replace(CHR(13), "", $patient[23]));
             if (strlen($d) <= 5) {
                 $date = date('Y-m-d') . ' ' . substr($d, 0, 2) . ':' . substr($d, 2, 2) . ':00';
             } else {
                 $date = substr($d, 0, 4) . '-' . substr($d, 4, 2) . '-' . substr($d, 6, 2) . ' ' . substr($d, 8, 2) . ':' . substr($d, 10, 2) . ':00';
             }
             if ($d) {
                 $dateadmin = new clDate($date);
                 $data['dt_admission'] = $dateadmin->getDatetime();
             } else {
                 $data['dt_admission'] = date('Y-m-d H:i:s');
             }
             //eko ( $data['dt_admission'] ) ;
             // Informations fixes supplémentaires.
             // $data['prevenir'] = '' ;
             //$data['mode_admission'] = '' ;
             $data['iduser'] = "******";
             $data['manuel'] = 0;
             // eko ( $data ) ;
             if ($data['fusion']) {
                 $this->launchFusion($data);
             }
             // On vérifie que l'entrée n'existe pas déjà dans la table des patients présents.
             if ($data['nsej']) {
                 $param2['table'] = PPRESENTS;
                 $param2['cw'] = "WHERE nsej='" . $data['nsej'] . "'";
                 $ras = $req->Execute("Fichier", "getPatients", $param2, "ResultQuery");
                 // On vérifie que l'entrée n'existe pas déjà dans la table des patients sortis.
                 $param3['table'] = PSORTIS;
                 $param3['cw'] = "WHERE nsej='" . $data['nsej'] . "'";
                 $rus = $req->Execute("Fichier", "getPatients", $param3, "ResultQuery");
             }
             unset($data['fusion']);
             if ($this->validUF($data['uf'])) {
                 if ($ras['INDIC_SVC'][2]) {
                     $this->majPatientHPRIM($data, PPRESENTS);
                 } elseif ($rus['INDIC_SVC'][2]) {
                     $this->majPatientHPRIM($data, PSORTIS);
                 } elseif ($sta == 'ER' or !$options->getOption('FiltreHprimStatut')) {
                     eko($patient);
                     $this->addPatientHPRIM($data, PPRESENTS);
                 }
             } else {
                 unset($data['dt_admission']);
                 //unset ( $data['mode_admission'] ) ;
                 unset($data['telephone']);
                 unset($data['uf']);
                 if ($sta == 'MI' or $sta == 'MP') {
                     unset($data['nsej']);
                     // On vérifie que l'entrée n'existe pas déjà dans la table des patients présents.
                     $param2['table'] = PPRESENTS;
                     $param2['cw'] = "WHERE ilp='" . $data['ilp'] . "'";
                     $ras = $req->Execute("Fichier", "getPatients", $param2, "ResultQuery");
                     // On vérifie que l'entrée n'existe pas déjà dans la table des patients sortis.
                     $param3['table'] = PSORTIS;
                     $param3['cw'] = "WHERE ilp='" . $data['ilp'] . "'";
                     $rus = $req->Execute("Fichier", "getPatients", $param3, "ResultQuery");
                     if ($ras['INDIC_SVC'][2]) {
                         $this->majPatientHPRIM($data, PPRESENTS, $data['ilp']);
                     } elseif ($rus['INDIC_SVC'][2]) {
                         $this->majPatientHPRIM($data, PSORTIS, $data['ilp']);
                     }
                 } else {
                     if ($ras['INDIC_SVC'][2]) {
                         $this->majPatientHPRIM($data, PPRESENTS);
                     } elseif ($rus['INDIC_SVC'][2]) {
                         $this->majPatientHPRIM($data, PSORTIS);
                     }
                 }
             }
         }
     }
 }