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" ) ; } }
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; } }
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" ) ; } }
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; } } }
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>' ; }
function genAffichage($dt1, $dt2) { global $session; global $options; global $jj; global $titreCCMU; global $titreGEMSA; global $titreTraumato; $fic = ''; // Chargement du template ModeliXe. $mod = new ModeliXe("Export.mxt"); $mod->SetModeliXe(); // Initialisation des dates en fonction de l'état actuel : // A la date du jour si aucune valeur n'a été passée. // Retrait d'un jour à la date1 si date1 == date2 if ($dt1->getTimestamp() == $dt2->getTimestamp()) { $dt1->addDays(-1); } // Inversion des dates 1 et 2 si la date 1 est supérieur à la date 2. if ($dt1->getTimestamp() > $dt2->getTimestamp()) { $tmp_dt3 = $dt1->getTimestamp(); $tmp_dt4 = $dt2->getTimestamp(); $dt1 = new clDate($tmp_dt4); $dt2 = new clDate($tmp_dt3); } // Calcul de la liste des valeurs possibles pour la date1. $old = ''; for ($dt = new clDate(DATELANCEMENT); $dt->getTimestamp() < $dt2->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates1[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); // if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates1)) { $listeDates1 = array(); } // Calcul de la liste des valeurs possibles pour la date2. $dtj = new clDate(date("Y-m-d 00:00:00")); $dtj->addDays(1); $dt = new clDate(DATELANCEMENT); $old = ''; for ($dt->addDays(1); $dt->getTimestamp() <= $dtj->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates2[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); //if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates2)) { $listeDates2 = array(); } // Fabrication des listes dans ModeliXe. $mod->MxSelect("date1", "date1", $dt1->getTimestamp(), $listeDates1, '', '', "onChange=\"reload(this.form)\""); $mod->MxSelect("date2", "date2", $dt2->getTimestamp(), $listeDates2, '', '', "onChange=\"reload(this.form)\""); // Gestion du filtre avec des bouttons radio. if (!isset($_POST['filtre'])) { $_POST['filtre'] = "tous"; } $mod->MxCheckerField("filtre1", "radio", "filtre", "tous", $_POST['filtre'] == "tous" ? true : false); $mod->MxCheckerField("filtre2", "radio", "filtre", "norm", $_POST['filtre'] == "norm" ? true : false); $mod->MxCheckerField("filtre3", "radio", "filtre", "uhcd", $_POST['filtre'] == "uhcd" ? true : false); // Si le bouton "Chercher" n'a pas été pressé, alors on n'affiche pas // le bloc contenant le lien vers l'export. if (!$_POST['Chercher'] and !$_POST['Chercher_x']) { $mod->MxBloc("donnees", "modify", " "); } else { // Affichage du lien vers le fichier contenant l'export. // Récupération de tous les patients entre les deux dates données. $req = new clResultQuery(); $param[table] = PSORTIS; // En fonction du filtre sélectionné. switch ($_POST['filtre']) { /* case 'norm': $filter = "AND salle_examen NOT LIKE 'UHCD%'" ; break ; case 'uhcd': $filter = "AND salle_examen LIKE 'UHCD%'" ; break; */ case 'norm': $filter = "AND uf!=" . $options->getOption('numUFUHCD') . ""; break; case 'uhcd': $filter = "AND uf=" . $options->getOption('numUFUHCD') . ""; break; default: $filter = ""; break; } $param[cw] = "WHERE dt_admission BETWEEN '" . $dt1->getDatetime() . "' AND '" . $dt2->getDatetime() . "' {$filter}"; //$param[cw] = " p, logs_mails m WHERE p.idpatient=m.idpatient AND dt_naissance>'1932-01-01 00:00:00' AND `dt_mail` >= '2006-10-01 00:00:00' AND type_mail='Procédure dépistage maltraitance'" ; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2] > 1) { $s = "s"; } // Affichage d'un résumé des résultats. $mod->MxText("donnees.nombre", $res[INDIC_SVC][2]); $mod->MxText("donnees.resultat", "entrée{$s} exportée{$s}"); if (!$options->getOption('CCAMExterne')) { $jj = new clCCAMExportActesDiags(array('dateDebut' => $dt1->getDate('Y-m-d'), 'dateFin' => $dt2->getDate('Y-m-d'))); $jj->initTableauActesDiag($res); } if ($options->getOption("GestionCCMU")) { if ($res[ccmu][$i]) { $ccmu = "\t" . $res[ccmu][$i]; } else { $ccmu = "\t"; } $titreCCMU = "\tCCMU"; } else { $ccmu = ''; $titreCCMU = ''; } if ($options->getOption("GestionGEMSA")) { if ($res[gemsa][$i]) { $gemsa = "\t" . $res[gemsa][$i]; } else { $gemsa = "\t"; } $titreGEMSA = "\tGEMSA"; } else { $gemsa = ''; $titreGEMSA = ''; } if ($options->getOption("GestionTraumato")) { if ($res[traumato][$i]) { $traumato = "\t" . $res[traumato][$i]; } else { $traumato = "\t"; } $titreTraumato = "\tTraumato"; } else { $traumato = ''; $titreTraumato = ''; } // Parcours des différents résultats. for ($i = 0; isset($res[idpatient][$i]); $i++) { // Préparation des différentes dates pour affichage. set_time_limit(30); $naissance = new clDate($res[dt_naissance][$i]); $dtn = $naissance->getDate("d/m/Y"); if ($res[dt_admission][$i] != '0000-00-00 00:00:00') { $admission = new clDate($res[dt_admission][$i]); $dta = $admission->getDate("d/m/Y"); $hma = $admission->getDate("H:i"); } else { $dta = '--'; $hma = '--'; } if ($res[dt_examen][$i] != '0000-00-00 00:00:00') { $examen = new clDate($res[dt_examen][$i]); $dte = $examen->getDate("d/m/Y"); $hme = $examen->getDate("H:i"); } else { $dte = '--'; $hme = '--'; } if ($res[dt_sortie][$i] != '0000-00-00 00:00:00') { $sortie = new clDate($res[dt_sortie][$i]); $dts = $sortie->getDate("d/m/Y"); $hms = $sortie->getDate("H:i"); } else { $dts = '--'; $hme = '--'; } $uf = $res[uf][$i]; $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); if ($ufUHCD && ereg($ufUHCD, $uf) or $ufUHCDrepere && ereg($ufUHCDrepere, $uf)) { $isuhcd = 1; } else { $isuhcd = 0; } //eko($jj -> tabExport); // Préparation des différents champs de l'enregistrement parcouru. if ($res[ilp][$i]) { $ilp = $res[ilp][$i]; } else { $ilp = "-"; } if ($res[uf][$i]) { $uf = $res[uf][$i]; } else { $uf = "-"; } $dateUhcd = new clDate($res[dt_UHCD][$i]); if ($res[dt_UHCD][$i] and $isuhcd) { $dtUHCD = $dateUhcd->getDate('Y-m-d H:i:00'); } else { $dtUHCD = ""; } if ($res[nsej][$i]) { $nsej = $res[nsej][$i]; } else { $nsej = "-"; } if ($res[nom][$i]) { $nom = $res[nom][$i]; } else { $nom = "-"; } if ($res[prenom][$i]) { $prenom = $res[prenom][$i]; } else { $prenom = "-"; } if ($res[sexe][$i]) { $sexe = $res[sexe][$i]; } else { $sexe = "-"; } if ($res[adresse_cp][$i]) { $adresse_cp = $res[adresse_cp][$i]; } else { $adresse_cp = "-"; } if ($res[medecin_traitant][$i]) { $medecin_traitant = preg_replace("/(\r\n|\n|\r)/", " ", $res[medecin_traitant][$i]); } else { $medecin_traitant = "-"; } if ($res[adresseur][$i]) { $adresseur = $res[adresseur][$i]; } else { $adresseur = "-"; } if ($res[mode_admission][$i]) { $mode_admission = $res[mode_admission][$i]; } else { $mode_admission = "-"; } if ($res[medecin_urgences][$i]) { $medecin_urgences = $res[medecin_urgences][$i]; } else { $medecin_urgences = "-"; } if ($res[salle_examen][$i]) { $salle_examen = $res[salle_examen][$i]; } else { $salle_examen = "-"; } if ($res[recours_categorie][$i]) { $recours_categorie = $res[recours_categorie][$i]; } else { $recours_categorie = "-"; } if ($res[motif_recours][$i]) { $motif_recours = $res[motif_recours][$i]; } else { $motif_recours = "-"; } if (!$options->getOption('getRecoursCIM10')) { if ($res[recours_code][$i]) { $recours_code = $res[recours_code][$i]; } else { $recours_code = "-"; } } else { if ($res[recours_code][$i]) { $recours_code = strtr($res[recours_code][$i], '.', ''); } else { $recours_code = "-"; } } if ($res[code_gravite][$i]) { $code_gravite = $res[code_gravite][$i]; } else { $code_gravite = "-"; } if ($res[dest_souhaitee][$i]) { $dest_souhaitee = $res[dest_souhaitee][$i]; } else { $dest_souhaitee = "-"; } if ($res[dest_attendue][$i]) { $dest_attendue = ' ' . $res[dest_attendue][$i]; } else { $dest_attendue = "-"; } if ($res[ide][$i]) { $ide = $res[ide][$i]; } else { $ide = "-"; } if ($res[motif_transfert][$i]) { $motif_transfert = $res[motif_transfert][$i]; } else { $motif_transfert = "-"; } if ($res[moyen_transport][$i]) { $moyen_transport = $res[moyen_transport][$i]; } else { $moyen_transport = "-"; } if ($res[type_destination][$i]) { $type_destination = $res[type_destination][$i]; } else { $type_destination = "-"; } if ($res[diagnostic_categorie][$i]) { $diagnostic_categorie = $res[diagnostic_categorie][$i]; } else { $diagnostic_categorie = "-"; } if ($res[diagnostic_libelle][$i]) { $diagnostic_libelle = $res[diagnostic_libelle][$i]; } else { $diagnostic_libelle = "-"; } if ($res[diagnostic_code][$i]) { $diagnostic_code = $res[diagnostic_code][$i]; } else { $diagnostic_code = "-"; } if ($options->getOption("GestionCCMU")) { if ($res[ccmu][$i]) { $ccmu = "\t" . $res[ccmu][$i]; } else { $ccmu = "\t"; } $titreCCMU = "\tCCMU"; } else { $ccmu = ''; $titreCCMU = ''; } if ($options->getOption("GestionGEMSA")) { if ($res[gemsa][$i]) { $gemsa = "\t" . $res[gemsa][$i]; } else { $gemsa = "\t"; } $titreGEMSA = "\tGEMSA"; } else { $gemsa = ''; $titreGEMSA = ''; } if ($options->getOption("GestionTraumato")) { if ($res[traumato][$i]) { $traumato = "\t" . $res[traumato][$i]; } else { $traumato = "\t"; } $titreTraumato = "\tTraumato"; } else { $traumato = ''; $titreTraumato = ''; } // Génération de la ligne correspondant à l'enregistrement. // $fic .= "$ilp\t$nsej\t$nom\t$prenom\t$dtn\t$sexe\t$adresse_cp\t$medecin_traitant\t$dta\t$hma\t$adresseur\t$mode_admission\t$dte\t$hme\t$medecin_urgences\t$salle_examen\t$recours_categorie\t$motif_recours\t$recours_code\t$code_gravite\t$dest_souhaitee\t$dest_attendue\t$dts\t$hms\t$ide\t$moyen_transport\t$motif_transfert\t$type_destination\t$diagnostic_categorie\t$diagnostic_libelle\t$diagnostic_code\n" ; if ($options->getOption('CCAMExterne')) { $fic .= "{$ilp}\t{$nsej}\t{$uf}\t{$dtn}\t{$sexe}\t{$adresse_cp}\t{$medecin_traitant}\t{$dta}\t{$hma}\t{$mode_admission}\t{$dte}\t{$hme}\t{$medecin_urgences}\t{$salle_examen}\t{$recours_categorie}\t{$motif_recours}\t{$recours_code}\t{$code_gravite}\t{$dtUHCD}" . $gemsa . $ccmu . $traumato . "\t{$dest_souhaitee}\t{$dest_attendue}\t{$dts}\t{$hms}\t{$ide}\t{$moyen_transport}\t{$motif_transfert}\t{$type_destination}\t{$diagnostic_categorie}\t{$diagnostic_libelle}\t{$diagnostic_code}\n"; } else { $fic .= "{$ilp}\t{$nsej}\t{$uf}\t{$dtn}\t{$sexe}\t{$adresse_cp}\t{$medecin_traitant}\t{$dta}\t{$hma}\t{$mode_admission}\t{$dte}\t{$hme}\t{$medecin_urgences}\t{$salle_examen}\t{$recours_categorie}\t{$motif_recours}\t{$recours_code}\t{$code_gravite}\t{$dtUHCD}" . $gemsa . $ccmu . $traumato . "\t{$dest_souhaitee}\t{$dest_attendue}\t{$dts}\t{$hms}\t{$ide}\t{$moyen_transport}\t{$motif_transfert}\t{$type_destination}\t{$diagnostic_categorie}\t{$diagnostic_libelle}\t{$diagnostic_code}\t" . $jj->getActesDiagsPatient($i); } } // Calcul du lien vers ce fichier. } return $fic; }
function 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++; } }
function genAffichage() { global $session; global $options; // Chargement du template ModeliXe. $outputLignes = array(); $mod = new ModeliXe("ExportAPHM.mxt"); $mod->SetModeliXe(); // Initialisation des dates en fonction de l'état actuel : // A la date du jour si aucune valeur n'a été passée. if ($_POST['date2']) { $dt1 = new clDate($_POST['date1']); $dt2 = new clDate($_POST['date2']); } else { $dt2 = new clDate(date("Y-m-d 00:00:00")); $dt1 = new clDate(date("Y-m-d 00:00:00")); $dt1->addDays(-1); } // Retrait d'un jour à la date1 si date1 == date2 if ($dt1->getTimestamp() == $dt2->getTimestamp()) { $dt1->addDays(-1); } // Inversion des dates 1 et 2 si la date 1 est supérieur à la date 2. if ($dt1->getTimestamp() > $dt2->getTimestamp()) { $tmp_dt3 = $dt1->getTimestamp(); $tmp_dt4 = $dt2->getTimestamp(); $dt1 = new clDate($tmp_dt4); $dt2 = new clDate($tmp_dt3); } // Calcul de la liste des valeurs possibles pour la date1. $old = ''; for ($dt = new clDate(DATELANCEMENT); $dt->getTimestamp() < $dt2->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates1[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); // if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates1)) { $listeDates1 = array(); } // Calcul de la liste des valeurs possibles pour la date2. $dtj = new clDate(date("Y-m-d 00:00:00")); $dtj->addDays(1); $dt = new clDate(DATELANCEMENT); $old = ''; for ($dt->addDays(1); $dt->getTimestamp() <= $dtj->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates2[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); //if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates2)) { $listeDates2 = array(); } // Fabrication des listes dans ModeliXe. $mod->MxSelect("date1", "date1", $dt1->getTimestamp(), $listeDates1); $mod->MxSelect("date2", "date2", $dt2->getTimestamp(), $listeDates2); // Si le bouton "Chercher" n'a pas été pressé, alors on n'affiche pas // le bloc contenant le lien vers l'export. if (!$_POST['Chercher'] and !$_POST['Chercher_x']) { $mod->MxBloc("donnees", "modify", " "); } else { // Affichage du lien vers le fichier contenant l'export. // Récupération de tous les patients entre les deux dates données. //Le calcul commence ici $req = new clResultQuery(); $param[table] = PSORTIS; /* // En fonction du filtre sélectionné. switch ( $_POST['filtre'] ) { //case 'norm': $filter = "AND salle_examen NOT LIKE 'UHCD%'" ; break ; ca//se 'uhcd': $filter = "AND salle_examen LIKE 'UHCD%'" ; break; case 'norm': $filter = "AND uf!=".$options->getOption('numUFUHCD')."" ; break ; case 'uhcd': $filter = "AND uf=".$options->getOption('numUFUHCD')."" ; break; default: $filter = "" ; break ; } */ if ($_POST['idpassage']) { $param['cw'] = " WHERE ilp = '" . $_POST['idpassage'] . "' "; } else { $param['cw'] = " WHERE dt_admission BETWEEN '" . $dt1->getDatetime() . "' AND '" . $dt2->getDatetime() . "' "; } //$param[cw] = " p, logs_mails m WHERE p.idpatient=m.idpatient AND dt_naissance>'1932-01-01 00:00:00' AND `dt_mail` >= '2006-10-01 00:00:00' AND type_mail='Procédure dépistage maltraitance'" ; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2] > 1) { $s = "s"; } // Affichage d'un résumé des résultats. $mod->MxText("donnees.nombre", $res[INDIC_SVC][2]); $mod->MxText("donnees.resultat", "entrée{$s} exportée{$s}"); if (!$options->getOption('CCAMExterne')) { $jj = new clCCAMExportActesDiags(array('dateDebut' => $dt1->getDate('Y-m-d'), 'dateFin' => $dt2->getDate('Y-m-d'))); $jj->initTableauActesDiag($res); } // Parcours des différents résultats. $tabResFinal = array(); $nbMaxActesNGAP = 0; $indiceMaxNbActesNgap = 0; //PARCOURS for ($i = 0; isset($res[idpatient][$i]); $i++) { // Préparation des différentes dates pour affichage. $tabLigne = array(); $naissance = new clDate($res[dt_naissance][$i]); $dtn = $naissance->getDate("d/m/Y"); if ($res[dt_admission][$i] != '0000-00-00 00:00:00') { $admission = new clDate($res[dt_admission][$i]); $dta = $admission->getDate("d/m/Y"); $hma = $admission->getDate("H:i"); } else { $dta = '--'; $hma = '--'; } if ($res[dt_examen][$i] != '0000-00-00 00:00:00') { $examen = new clDate($res[dt_examen][$i]); $dte = $examen->getDate("d/m/Y"); $hme = $examen->getDate("H:i"); } else { $dte = '--'; $hme = '--'; } if ($res[dt_sortie][$i] != '0000-00-00 00:00:00') { $sortie = new clDate($res[dt_sortie][$i]); $dts = $sortie->getDate("d/m/Y"); $hms = $sortie->getDate("H:i"); } else { $dts = '--'; $hme = '--'; } $uf = $res[uf][$i]; $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); if ($ufUHCD && ereg($ufUHCD, $uf) or $ufUHCDrepere && ereg($ufUHCDrepere, $uf)) { $isuhcd = 1; } else { $isuhcd = 0; } //le patient est uhcd mais pas dans une salle uhcd ? $isVirtualUhcd = false; if ($ufUHCD && !ereg($options->getOption('FiltreSalleUHCD'), $res['salle_examen'][$i])) { $isVirtualUhcd = true; $codeUm = $options->getOption('UMUHCDFictif'); } // Préparation des différents champs de l'enregistrement parcouru. if ($res[ilp][$i]) { $ilp = $res[ilp][$i]; } else { $ilp = "-"; } if ($res[uf][$i]) { $uf = $res[uf][$i]; } else { $uf = "-"; } if ($res[dt_UHCD][$i] and $isuhcd) { $dtUHCD = $res[dt_UHCD][$i]; } else { $dtUHCD = "0000-00-00 00:00:00"; } $nbSecPassage = $sortie->getDifference($admission); $nbHeurepassage = floor($nbSecPassage / 3600); $nbMinpassage = floor(($nbSecPassage - $nbHeurepassage * 3600) / 60); $strDureePassage = ($nbHeurepassage > 9 ? '' : '0') . $nbHeurepassage . ':' . ($nbMinpassage > 9 ? '' : '0') . $nbMinpassage; $tabActesNGAP = clExportAphm::getTabListeCodesNGAP($i, $jj->tabExport); //eko($tabActesNGAP); $tabLigneCCAM['CODE_HOMON'] = '1'; $tabLigneCCAM['NUMSEJ'] = $res['nsej'][$i] . 'B'; $tabLigneCCAM['UM'] = $isVirtualUhcd ? $codeUm : ''; $tabLigneCCAM['DATENT'] = $dta . ' ' . $hma; $tabLigneCCAM['DIAG_PPAL'] = $res['diagnostic_code'][$i]; $tabLigneCCAM['DIAG_RELI'] = ''; //eko(clExportAphm::getTabListeDiagsCCAM ($i,$jj -> tabExport)); $tabLigneCCAM['DIAG_ASSO'] = implode(' ', clExportAphm::getTabListeDiagsCCAM($i, $jj->tabExport)); $tabLigneCCAM['NPI'] = $res['ilp'][$i] . 'B'; $tabLigneCCAM['DAT_EXAM'] = $dte . ' ' . $hme; $tabLigneCCAM['NOM_PATRO'] = $res['nom'][$i]; $tabLigneCCAM['PRENOM'] = $res['prenom'][$i]; $tabLigneCCAM['MARITAL'] = ''; $tabLigneCCAM['SEXE'] = $res['sexe'][$i] == 'M' ? 'H' : 'F'; $tabLigneCCAM['DDN'] = $dtn; $tabLigneCCAM['UF_EXEC'] = $res['uf'][$i]; $tabLigneCCAM['ACTES'] = implode(' ', clExportAphm::getTabListeCodesCCAM($i, $jj->tabExport)); $tabLigneCCAM['DEST_SOUHA'] = $res['dest_souhaitee'][$i]; $tabLigneCCAM['DEST_ATTEN'] = $res['dest_attendue'][$i]; $tabLigneCCAM['DUR_PASSAGE'] = $strDureePassage; $tabLigneCCAM['CODE_GRAV'] = $res['code_gravite'][$i]; $tabLigneNGAP['NUMSEJ'] = $res['nsej'][$i] . 'B'; $tabLigneNGAP['NOM_PATRO'] = $res['nom'][$i]; $tabLigneNGAP['PRENOM'] = $res['prenom'][$i]; $tabLigneNGAP['DAT_EXAM'] = $dte . ' ' . $hme; $tabLigneNGAP['NOM_MARITAL'] = ''; $tabLigneNGAP['DATE_PASSAGE'] = $dte . ' ' . $hme; $tabLigneNGAP['MAJORATIONS_EVENTUELLES'] = clExportAphm::getMajoration($examen, $naissance); for ($cmptActe = 1; isset($tabActesNGAP[$cmptActe - 1]); $cmptActe++) { $nbMaxActesNGAP = max($nbMaxActesNGAP, $cmptActe); $tabLigneNGAP['ACTE_' . $cmptActe] = $tabActesNGAP[$cmptActe - 1]; } $cmptActe--; if ($nbMaxActesNGAP == $cmptActe) { $tabTypeNGAP = $tabLigneNGAP; } $outputLignesCCAM[] = implode("\t", $tabLigneCCAM); $outputLignesNGAP[] = implode("\t", $tabLigneNGAP); } $headerCCAM = array(); if (isset($tabLigneCCAM)) { foreach ($tabLigneCCAM as $k => $v) { $headerCCAM[] = $k; } } $headerNGAP = array(); foreach ($tabTypeNGAP as $k => $v) { $headerNGAP[] = $k; } $ficCCAM = implode("\t", $headerCCAM) . "\n" . implode("\n", $outputLignesCCAM); $ficNGAP = implode("\t", $headerNGAP) . "\n" . implode("\n", $outputLignesNGAP); // Calcul du nom du fichier temporaire. $nomfic = "exportCCAM" . date("YmdHis") . ".xls"; $nomfic2 = "exportNGAP" . date("YmdHis") . ".xls"; // Création, écriture et fermeture du fichier. $FIC = fopen(URLCACHE . $nomfic, "w"); $FIC2 = fopen(URLCACHE . $nomfic2, "w"); fwrite($FIC, $ficCCAM); fwrite($FIC2, $ficNGAP); fclose($FIC); fclose($FIC2); // Calcul du lien vers ce fichier. $mod->MxUrl("donnees.lienExport", URLCACHEWEB . $nomfic); $mod->MxUrl("donnees.lienExport2", URLCACHEWEB . $nomfic2); // On purge le répertoire temporaire de tous les fichiers qui ont plus de deux heures. $poub = new clPoubelle(URLCACHE); $poub->purgerRepertoire("2"); $isExport = true; } // Variable de navigation. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // On retourne le code HTML généré par le template. $this->af .= $mod->MxWrite("1"); }
function 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(); }
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); }
public function affectPost2XML($item) { global $formxSession; //Certains items ne peuvent être instanciés if (in_array($item->getAttribute('type'), array('CLOSER'))) { return; } $reg = array(); //eko("affectation de la variable ".$this->prefix.$item->getAttribute('id')." à ".$_POST[$this->prefix.$item->getAttribute('id')]); //eko("je traite le post ".$this->prefix.$item->getAttribute('id')); $this->debug("Entrée dans affectPost2XML," . "affectation de la variable " . $this->prefix . $item->getAttribute('id') . " à la valeur " . clFoRmXtOoLs::getPost($this->prefix . $item->getAttribute('id'))); //si pas de données post pour cet item, mais que sa valeur n'est pas nulle, surtout on ne //touche à rien, on risquerait d'écraser les données //ex: balises conditionelles //isPostValueForItem se charge des cas particuliers (ex CHECK ) //f ( ! $this->isPostValueForItem($item) && (string) $item->getElementsByTagName('Val')->item(0)->nodeValue ) { if (!$this->isPostValueForItem($item)) { $this->debug("Aucune donnée POST n'est associée à cet item, Sortie de la methode"); return; } //si pas les droits au moins W $droit = $this->session->droit; if ($this->XMLCore['access']) { $droit = utf8_decode((string) $this->XMLCore['access']); } if ($item->getAttribute('access')) { $droit = utf8_decode($item->getAttribute('access')); } if (!$formxSession->getDroit($droit, 'w')) { $this->debug("acces refusé en écriture. cet item est associé au droit '{$droit}'"); return; } if (is_object($item->getElementsByTagName('Val')->item(0))) { $val_old_value = $item->getElementsByTagName('Val')->item(0)->nodeValue; } else { $val_old_value = ""; } switch ($item->getAttribute('type')) { case 'LISTEN': // echo(afftab($_POST)); $i = 0; $val = ''; while ($_POST[$this->prefix . $item->getAttribute('id') . '_LISTEN_' . $i]) { $val .= stripslashes($_POST[$this->prefix . $item->getAttribute('id') . '_LISTEN_' . $i]) . '|'; $i++; } $val = rtrim($val, '|'); $this->makeBalVal($item, 'Val', $val); break; case 'TAB': ereg("list:(.*)", $item->getElementsByTagName('Rows')->item(0)->nodeValue, $reg); $rows = explode('|', $reg[1]); ereg("list:(.*)", $item->getElementsByTagName('Cols')->item(0)->nodeValue, $reg); $cols = explode('|', $reg[1]); $nb_cols = 0; foreach ($cols as $col) { $nb_cols++; } $x = 0; $y = 0; $tab = array(); foreach ($rows as $row) { foreach ($cols as $col) { $tab[$y * $nb_cols + $x] = $_POST[$this->prefix . $item->getAttribute('id') . "_{$x}" . "_{$y}"]; $x++; } $x = 0; $y++; } $tab = implode('|', $tab); $this->makeBalVal($item, 'Val', $tab); break; case 'LISTEDYN': //SI DEMANDE on va inserer dans la liste XHAM la valeur demandée $nouveau = stripslashes($_POST[$this->prefix . $item->getAttribute('id') . '_new']); if ($nouveau) { $param['liste_nom'] = $item->getElementsByTagName('FromXHAMList')->item(0)->nodeValue; $param['item_nom'] = $nouveau; $param['idapplication'] = IDAPPLICATION; $req = new clResultQuery(); //execution de la requete $res = $req->Execute("Fichier", "FX_addXHAMListItem", $param, "ResultQuery"); //eko($res['INDIC_SVC']); //nouvelle valeur $this->makeBalVal($item, 'Val', $nouveau); break; } //insertOnList //insertOnList case 'LISTE': if ($item->hasAttribute('multiple')) { if (!isset($_POST[$this->prefix . $item->getAttribute('id')]) || !$_POST[$this->prefix . $item->getAttribute('id')]) { $this->makeBalVal($item, 'Val', ''); } else { $this->makeBalVal($item, 'Val', @stripslashes(implode('|', $_POST[$this->prefix . $item->getAttribute('id')]))); } } else { $this->makeBalVal($item, 'Val', stripslashes($_POST[$this->prefix . $item->getAttribute('id')])); } break; case 'FILE': if (!$item->hasAttribute('extension')) { $this->addErreur("L'attribut extention n'est pas présent. Pour des raisons de sécurité la balise FILE est désactivée."); break; } if ($item->hasAttribute('rename')) { $rename = $item->getAttribute('rename'); } else { $rename = ''; } if ($item->hasAttribute('destination')) { $destination = $item->getAttribute('destination'); } else { $destination = $this->destinationUploads; } if ($item->hasAttribute('maxfilesize')) { $maxfilesize = $item->getAttribute('maxfilesize'); } else { $maxfilesize = $this->max_size_upload; } $re = clFoRmXtOoLs::gestUpload($this->prefix . $item->getAttribute('id'), $destination, $rename, $maxfilesize, utf8_decode($item->getAttribute('extension'))); if ($re) { $this->makeBalVal($item, 'Val', 'ok'); } else { $this->makeBalVal($item, 'Val', '¤ko'); } break; case 'RADIO': case 'CHECK': if (!isset($_POST[$this->prefix . $item->getAttribute('id')])) { $this->makeBalVal($item, 'Val', ''); break; } if ($_POST[$this->prefix . $item->getAttribute('id')] == '') { $this->makeBalVal($item, 'Val', ''); } else { //debug horreur de php 5.1.3 $dat = $_POST[$this->prefix . $item->getAttribute('id')]; $this->makeBalVal($item, 'Val', stripslashes(clFoRmXtOoLs::implode_r($dat))); } break; case 'CAL': $postval = stripslashes($_POST[$this->prefix . $item->getAttribute('id')]); $this->makeBalVal($item, 'Val2', $postval); if ($item->hasAttribute('formatStore') && $postval) { $date = new clDate($postval); switch ($item->getAttribute('formatStore')) { case 'timestamp': $newval = $date->getTimestamp(); break; case 'date': $newval = $date->getDate(); break; case 'datetime': default: $newval = $date->getDatetime(); break; } $this->makeBalVal($item, 'Val', $newval); } else { $this->makeBalVal($item, 'Val', $postval); } break; default: $this->makeBalVal($item, 'Val', formxTools::helper_formatDatatype($item, stripslashes($_POST[$this->prefix . $item->getAttribute('id')]))); } $val_new_value = $item->getElementsByTagName('Val')->item(0)->nodeValue; //si la valeur de la balise a été modifiée et que d'autres éléments dynamiques dépendent de sa valeur, //on réinitialise leur valeurs pour ne pas avoir d'incohérences if ($val_new_value != $val_old_value && is_object($item->getElementsByTagName('OnChangeRefresh')->item(0))) { $strListIds = $this->getValueFrom($item->getElementsByTagName('OnChangeRefresh')->item(0)->nodeValue); $arrListIds = explode('|', $strListIds); foreach ($arrListIds as $id) { //print "<br />va chercher ".$id; $this->makeBalVal($this->getDomItemFromId($id), 'Val', ""); if (isset($_POST[$this->prefix . $id])) { unset($_POST[$this->prefix . $id]); } } } }
function 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"); } }
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'); }
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); } } }
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(); }
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(); }
static function anydate2datetime($date) { if (is_object($date)) { return $date->getDatetime(); } $objdate = new clDate($date); return $objdate->getDatetime(); }
function imprDocuments() { global $session; global $options; // Si on se sert du module externe de documents (Brignoles) if ($options->getOption("documentsExterne")) { $this->err1 = ""; $this->err2 = ""; // Chargement du template ModeliXe $mod = new ModeliXe("Mobidoc.html"); $mod->SetModeliXe(); $mod->MxText("errs", $this->err1 . "<br/>" . $this->err2); // Récupération du code HTML généré. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // CHB Start $cMobidoc = new clMobidocTU($this->patient->getID()); $str = $cMobidoc->OpenMobidoc(); //eko ( $str ) ; if (ereg('NACK-', $str)) { $mod->MxText("errs", "<b>L'appel à mobidoc a échoué (Erreur: COMRPC Impossible)</b>'"); } // CHB Stop /* Ancienne version $str = OpenMobidoc($this->patient->getID ( ),$_SERVER["REMOTE_ADDR"],$options->getOption('CCAMExterne_MRPCPORT'),$options->getOption('CCAMExterne_MRPCTIMEOUT')); //$str = 'ERROR' ; if ( $str == 'ERROR' ) { $mod -> MxText ( "errs", "<b>L'appel à mobidoc a échoué (Erreur: COMRPC Impossible)</b>'") ; } */ return $this->af .= $mod->MxWrite("1"); } else { if ($_POST['Imprimer'] or $_POST['Imprimer_x']) { $session->setLogSup('Impression de documents'); $sel = $_POST['selection']; $docs = new clDocuments("impr"); $date = new clDate(); for ($i = 0; isset($sel[$i]); $i++) { $param[cw] = "WHERE iddocument='" . $sel[$i] . "'"; $req = new clResultQuery(); $ras = $req->Execute("Fichier", "getDocuments", $param, "ResultQuery"); $rep = $date->getYear() . "/" . $date->getMonthNumber() . "/"; $output[$i] = $date->getTimestamp() . "-" . $this->patient->getID() . "-" . $sel[$i] . ".pdf"; $data['idpatient'] = $this->patient->getID(); $data['iddocument'] = $sel[$i]; $data['nomedition'] = $ras['nom'][0]; $data['urledition'] = $rep . $output[$i]; $data['iduser'] = $session->getUser(); $data['date'] = $date->getDatetime(); $requete = new clRequete(BDD, DOCSEDITES, $data); $requete->addRecord(); } $rep = $date->getYear() . "/" . $date->getMonthNumber() . "/"; $docs->genDoc($sel, $this->patient->getID(), $output, URLDOCS . $rep, $rep); } else { // Chargement du template ModeliXe. $mod = new ModeliXe("ImprimerDocuments.mxt"); $mod->SetModeliXe(); $mod->MxImage("imgCloseImprimer", URLIMGFER, "Fermer"); $mod->MxUrl("lienCloseImprimer", URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // Récupération de la liste des catégories de documents. $param['cw'] = " ORDER BY categorie"; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getCategoriesDocuments", $param, "ResultQuery"); // Parcours des différentes catégories de documents. for ($i = 0; isset($res['categorie'][$i]); $i++) { // Recherche des dernières versions des documents de la catégorie parcourue. $param['cw'] = "WHERE categorie='" . $res['categorie'][$i] . "' AND fin_validite='0000-00-00 00:00:00' ORDER BY nom"; $req = new clResultQuery(); $ras = $req->Execute("Fichier", "getDocuments", $param, "ResultQuery"); // Si on a un résultat, alors on parcourt ces documents. if ($ras['INDIC_SVC'][2]) { // Et on affiche le titre de la catégorie. $mod->MxText("categorie.titre", $res['categorie'][$i]); $k = 0; for ($j = 0; isset($ras['iddocument'][$j]); $j++) { // Nom du document. $param['cw'] = "WHERE iddocument='" . $ras['iddocument'][$j] . "' AND idpatient='" . $this->patient->getID() . "'"; $req = new clResultQuery(); $rus = $req->Execute("Fichier", "getDocumentsEdites", $param, "ResultQuery"); if ($rus['INDIC_SVC'][2]) { $td = "<td class=\"dejaedite\" style=\"text-align: left;\">"; } else { $td = "<td style=\"text-align: left;\">"; } if (!($j % $options->getOption("DocumentsParLigne")) and $j != 0) { $tr = "<tr>"; if ($k) { $tr .= "<td class=\"nostyle\"></td>"; } } else { $tr = ""; } if (!(($j + 1) % $options->getOption("DocumentsParLigne")) or !isset($ras['iddocument'][$j + 1])) { $ftr = "</tr>"; $k++; } else { $ftr = ""; } $mod->MxText("categorie.documents.tdo", $tr . $td); $mod->MxCheckerField("categorie.documents.c", "checkbox", "selection[]", $ras['iddocument'][$j]); $mod->MxText("categorie.documents.doc", $ras['nom'][$j]); $mod->MxText("categorie.documents.tdf", "</td>{$ftr}"); $mod->MxBloc("categorie.documents", "loop"); } $mod->MxBloc("categorie", "loop"); } } // Variable de navigation dans le cas du lancement des éditions. $mod->MxHidden("hidden1", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "genEdition")); // Variable de navigation dans le cas d'une action d'annulation. $mod->MxHidden("hidden2", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // Récupération du code HTML généré. $this->af .= $mod->MxWrite("1"); } } }
function 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}"); }
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; }
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; }
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); } } } } } }