function getAge2($formx) { global $tool; $idu = $formx->getVar('ids'); $req = new clResultQuery(); $param = array(); $param['cw'] = "dt_naissance"; $param['idu'] = $idu; $res = $req->Execute("Fichier", "getInfoPatientFromIDU", $param, "ResultQuery"); $DateNPat = $res['dt_naissance'][0]; //eko($DateNPat); // Calcul sur les différentes dates. $age = new clDate($DateNPat); $dateSimple = $age->getDate("d-m-Y"); $dateComple = $age->getDateText(); $duree = new clDuree(); return "" . str_replace("<br>", " et ", $duree->getAgePrecis($age->getTimestamp())) . ""; }
function Calcul_Delai_Traumatologie_Main($formx) { global $session; global $options; $date_accident = utf8_decode($formx->getFormVar('Val_Horaire_Date_Accident')); $heure_accident = utf8_decode($formx->getFormVar('Val_Horaire_Heure_Accident')); $date_examen = utf8_decode($formx->getFormVar('Val_Horaire_Date_Examen')); $heure_examen = utf8_decode($formx->getFormVar('Val_Horaire_Heure_Examen')); $posted = explode("-", $date_accident); $date_accident = $posted[2] . "-" . $posted[1] . "-" . $posted[0]; $posted = explode("-", $date_examen); $date_examen = $posted[2] . "-" . $posted[1] . "-" . $posted[0]; $accident = new clDate($date_accident . " " . $heure_accident . ":00"); $examen = new clDate($date_examen . " " . $heure_examen); $duree = new clDuree($examen->getDifference($accident)); //eko ($accident->getDatetime()); //eko ($examen->getDatetime()); return $duree->getDuree(); }
function getPatientMineur($formx) { global $tool; $idu = $formx->getVar('ids'); $req = new clResultQuery(); $param = array(); $param['cw'] = "dt_naissance"; $param['idu'] = $idu; $res = $req->Execute("Fichier", "getInfoPatientFromIDU", $param, "ResultQuery"); $DateNPat = $res['dt_naissance'][0]; //eko($DateNPat); // Calcul sur les différentes dates. $age = new clDate($DateNPat); $dateSimple = $age->getDate("d-m-Y"); $dateComple = $age->getDateText(); $duree = new clDuree(); $duree->getAgePrecis($age->getTimestamp()); if ($duree->getYears() < 18) { return "mineur"; } else { return "majeur"; } }
static function genInfoBulle($res, $i) { global $options; $e = ''; // Chargement du template ModeliXe. $mod = new ModeliXe("InfoBulle.mxt"); $mod->SetModeliXe(); // Génération de l'id pour rattacher l'info-bulle à une entrée de la liste. $mod->MxText("iddiv", "id" . $res['idpatient'][$i]); $libelle = ''; $libelle .= "<b>idpatient : </b>" . $res['idpatient'][$i] . "<br/>"; if ($res['idu'][$i] != $res['ilp'][$i]) { $libelle .= "<b>IDU : </b>" . $res['idu'][$i] . "<br/>"; } $libelle .= "<b>IPP : </b>" . $res['ilp'][$i] . "<br/>"; $libelle .= "<b>NSej : </b>" . $res['nsej'][$i] . "<br/>"; // Affichage des informations sur l'UF $ufExec = $options->getOption('numUFexec'); $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); $ufSC = $options->getOption('numUFSC'); $dtUHCD = new clDate($res['dt_UHCD'][$i]); if ($res['uf'][$i] == $ufUHCD) { $sup = '(UHCD)'; } elseif ($res['uf'][$i] == $ufSC) { $sup = '(Soins Continus)'; } elseif ($res['uf'][$i] == $ufUHCDrepere and $res['uf'][$i]) { $sup = '(UHCD repéré)'; } elseif (!$res['uf'][$i]) { $sup = '(???)'; } else { $sup = '(Urgences)'; } $libelle .= "<b>UF : </b>" . $res['uf'][$i] . " {$sup}<br/>"; // Etat civil $libelle .= "<b>(" . $res['sexe'][$i] . ") " . ucfirst(strtolower($res['prenom'][$i])) . " " . strtoupper($res['nom'][$i]) . "</b><br />"; $age = new clDate($res['dt_naissance'][$i]); $dta = new clDate($res['dt_admission'][$i]); $dte = new clDate($res['dt_examen'][$i]); $dts = new clDate($res['dt_sortie'][$i]); $dateSimple = $age->getDate("d-m-Y"); $dateComple = $age->getDateText(); $duree = new clDuree(); if ($res['dt_naissance'][$i] != "0000-00-00 00:00:00") { $libelle .= "Né{$e} le {$dateComple} (" . str_replace("<br>", " et ", $duree->getAgePrecis($age->getTimestamp())) . ")<br />"; } else { $libelle .= "Date de naissance inconnue<br />"; } // Date d'admission. if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") { $libelle .= "<b>Date d'admission :</b> " . $dta->getDate("d-m-Y H:i") . "<br />"; } else { $libelle .= "<b>Date d'admission :</b> " . VIDEDEFAUT . "<br />"; } // Date d'examen. if ($res['dt_examen'][$i] != "0000-00-00 00:00:00") { $libelle .= "<b>Date d'examen :</b> " . $dte->getDate("d-m-Y H:i") . "<br />"; } else { $libelle .= "<b>Date d'examen :</b> " . VIDEDEFAUT . "<br />"; } // Date de sortie. if ($res['dt_sortie'][$i] != "0000-00-00 00:00:00") { $libelle .= "<b>Date de sortie :</b> " . $dts->getDate("d-m-Y H:i") . "<br />"; } else { $libelle .= "<b>Date de sortie :</b> " . VIDEDEFAUT . "<br />"; } // Adresseur. if ($res['adresseur'][$i]) { $libelle .= "<b>Adresseur :</b> " . $res['adresseur'][$i] . "<br />"; } else { $libelle .= "<b>Adresseur :</b> " . VIDEDEFAUT . "<br />"; } // Mode d'admission. if ($res['mode_admission'][$i]) { $libelle .= "<b>Mode d'admission :</b> " . $res['mode_admission'][$i] . "<br />"; } else { $libelle .= "<b>Mode d'admission :</b> " . VIDEDEFAUT . "<br />"; } // Médecin. if ($res['medecin_urgences'][$i]) { $libelle .= "<b>Médecin :</b> " . $res['medecin_urgences'][$i] . "<br />"; } else { $libelle .= "<b>Médecin :</b> " . VIDEDEFAUT . "<br />"; } // IDE. if ($res['ide'][$i]) { $libelle .= "<b>IDE :</b> " . $res['ide'][$i] . "<br />"; } else { $libelle .= "<b>IDE :</b> " . VIDEDEFAUT . "<br />"; } // Salle d'examen. if ($res['salle_examen'][$i]) { $libelle .= "<b>Salle d'examen :</b> " . $res['salle_examen'][$i] . "<br />"; } else { $libelle .= "<b>Salle d'examen :</b> " . VIDEDEFAUT . "<br />"; } // Motif de recours. if ($res['motif_recours'][$i]) { $libelle .= "<b>Motif de recours :</b> " . $res['motif_recours'][$i] . "<br />"; } else { $libelle .= "<b>Motif de recours :</b> " . VIDEDEFAUT . "<br />"; } // Destination souhaitée. if ($res['dest_souhaitee'][$i]) { $libelle .= "<b>Dest. souhaitée :</b> " . $res['dest_souhaitee'][$i] . "<br />"; } else { $libelle .= "<b>Dest. souhaitée :</b> " . VIDEDEFAUT . "<br />"; } // Destination attendue. if ($res['dest_attendue'][$i]) { $libelle .= "<b>Dest. attendue :</b> " . $res['dest_attendue'][$i] . "<br />"; } else { $libelle .= "<b>Dest. attendue :</b> " . VIDEDEFAUT . "<br />"; } // Catégorie de diagnostic. if ($res['diagnostic_categorie'][$i]) { $libelle .= "<b>Cat. de diag. :</b> " . $res['diagnostic_categorie'][$i] . "<br />"; } else { $libelle .= "<b>Cat. de diag. :</b> " . VIDEDEFAUT . "<br />"; } // Diagnostic. if ($res['diagnostic_libelle'][$i]) { $libelle .= "<b>Diagnostic :</b> " . $res['diagnostic_libelle'][$i] . "<br />"; } else { $libelle .= "<b>Diagnostic :</b> " . VIDEDEFAUT . "<br />"; } // CCMU. if ($res['ccmu'][$i]) { $libelle .= "<b>CCMU :</b> " . $res['ccmu'][$i] . "<br />"; } // GEMSA. if ($res['gemsa'][$i]) { $libelle .= "<b>GEMSA :</b> " . $res['gemsa'][$i] . "<br />"; } // Ajout des informations dans l'info-bulle. $text = preg_replace("/(\r\n|\n|\r)/", " ", nl2br($libelle)); $mod->MxText("libelle", str_replace("'", "\\'", $text)); // Récupération du code HTML généré. return $mod->MxWrite("1"); }
function getStatsPages() { global $session; // Date de lancement des statistiques. $datestats = new clDate(DATESTATS); // On récupère la liste des utilisateurs s'étant déjà connectés. $param['cw'] = "WHERE idapplication=" . IDAPPLICATION; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getSessionsPersonnes", $param, "ResultQuery"); // Fabrication du tableau attendu par ModeliXe. $tab['%'] = "globales"; for ($i = 0; isset($res['uid'][$i]); $i++) { $tab[$res['uid'][$i]] = "de " . $res['uid'][$i] . " (" . $res['somme'][$i] . ")"; } // Initialisation de l'utilisateur sélectionné et du filtre MySQL correspondant. if (!isset($_POST['choix'])) { if (isset($_GET['choix'])) { $_POST['choix'] = $_GET['choix']; } else { $_POST['choix'] = "%"; } } // Application du filtre MySQL pour aller récupérer les statistiques de l'utilisateur. $param['cw'] = "WHERE uid LIKE '" . $_POST['choix'] . "' AND idapplication=" . IDAPPLICATION; $param['cs'] = ""; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getSessionsStatistiques", $param, "ResultQuery"); // Pour chaque statistique récupérées, on incrémente une case d'un tableau avec son nombre de clic. Il y a une case // par partie du Terminal. $stats["Total de clics"] = 0; for ($i = 0; isset($res['idstats'][$i]); $i++) { if ($res['loc2'][$i]) { if ($res['loc1'][$i]) { if (isset($stats[$res['loc1'][$i] . "->" . $res['loc2'][$i]])) { $stats[$res['loc1'][$i] . "->" . $res['loc2'][$i]] += $res['nombre'][$i]; } else { $stats[$res['loc1'][$i] . "->" . $res['loc2'][$i]] = $res['nombre'][$i]; } } } else { if ($res['loc1'][$i]) { if (isset($stats[$res['loc1'][$i]])) { $stats[$res['loc1'][$i]] += $res['nombre'][$i]; } else { $stats[$res['loc1'][$i]] = $res['nombre'][$i]; } } } // Calcul du nombre total de clic pour cet utilisateur. $stats["Total de clics"] += $res['nombre'][$i]; } // Chargement du template ModeliXe. $mod = new ModeliXe("SessionsStatistiques.mxt"); $mod->SetModeliXe(); // Chargement du template ListMaker pour faire le tableau. $list = new ListMaker("template/SessionsStatistiques.html"); // Passage des variables à transmettre et de leurs valeurs. $list->addUserVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1))); $list->addUrlVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1))); $list->addUserVar('choix', $_POST['choix']); $list->addUrlVar('choix', $_POST['choix']); // Nom des colonnes du tableau. $list->setSortColumn('col1', 'Page', 'page'); $list->setSortColumn('col2', 'Clics', 'clics'); // On alterne les couleurs en fonction de la parité de la ligne. $list->setAlternateColor("pair", "impair"); // On parcourt le tableau précédemment calculé contenant les statistiques, // et on les ajoute au template ListMaker. if (is_array($stats)) { for ($i = 0; list($key, $val) = each($stats); $i++) { $item['page'] = $key; $item['clics'] = $val; $list->addItem($item); } } // Affichage d'informations complémentaires si nous ne sommes pas dans le cas // de statistiques globales. if ($_POST['choix'] != "%") { // Si l'utilisateur est connecté, on affiche un message le signalant. $param['cw'] = "WHERE uid LIKE '" . $_POST['choix'] . "' AND idapplication=" . IDAPPLICATION; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery"); if ($res['INDIC_SVC'][2]) { $infos = "Cet utilisateur est actuellement connecté.<br />"; } // Sinon, on affiche les informations de sa dernière connexion. if (!isset($infos) or !$infos) { // Récupération des informations. $param['cw'] = "WHERE uid LIKE '" . $_POST['choix'] . "' AND idapplication=" . IDAPPLICATION . " ORDER BY dateslast DESC"; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getSessionsHistorique", $param, "ResultQuery"); // Calcul de la durée de connexion et affichage des différentes dates. $last = new clDate(isset($res['dateslast'][0]) ? $res['dateslast'][0] : ''); $date = new clDate(isset($res['dateshisto'][0]) ? $res['dateshisto'][0] : ''); $duree = new clDuree($last->getDifference($date)); if ((isset($res['nombre'][0]) ? $res['nombre'][0] : '0') > 1) { $sc = "s"; } else { $sc = ''; } if ($duree->getMinutes() > 1) { $sm = "s"; } else { $sm = ''; } if ($duree->getSeconds() > 1) { $ss = "s"; } else { $ss = ''; } if ($duree->getMinutes() > 0) { $temps = $duree->getMinutes() . " minute{$sm}"; } else { $temps = $duree->getSeconds() . " seconde{$ss}"; } $infos = "Dernière connexion le " . $date->getDateTextFull("à") . " (" . (isset($res['nombre'][0]) ? $res['nombre'][0] : '0') . " clic{$sc}, durée de {$temps})<br />"; $infos .= "Déconnexion enregistrée le " . $last->getDateTextFull("à") . "<br />"; } $mod->MxText("informations", $infos); } else { $mod->MxText("informations", '--'); } // On affiche la date à laquelle les stats ont commencé être enregistrées. $mod->MxText("datestats", $datestats->getDateText()); // Affichage du tableau de stats. $mod->MxText("table", $list->getList(isset($pagination) ? $pagination : '')); // Affichage de la liste des personnes à sélectionner. $mod->MxSelect("choix", "choix", $_POST['choix'], $tab, '', '', "onChange=reload(this.form)"); // Variable de navigation. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1))); //$this->genGraphs ( $mod ) ; $mod->MxCheckerField("graph", "checkbox", 'graph', 1, isset($_POST['graph']) ? $_POST['graph'] ? true : false : false, "title='Graphiques' onChange=reload(this.form)"); if (isset($_POST['graph']) and $_POST['graph']) { $this->genGraphs($mod); $mod->MxText("graphs.clicsHeure", "<img src=\"cache/image1.png\" alt=\"Clics par heure\"></img>"); $mod->MxText("graphs.tempsHeure", "<img src=\"cache/image2.png\" alt=\"Temps par clics moyen par heure\"></img>"); $mod->MxText("graphs.clicsJour", "<img src=\"cache/image3.png\" alt=\"Clics par jour\"></img>"); } else { $mod->MxBloc("graphs", "delete"); } //$mod -> MxText ( "tempsJour", "<img src=cache/image4.png></img>" ) ; // Récupération du code HTML généré. return $mod->MxWrite("1"); }
function genListePatient($etape) { global $session; global $options; $uhcd = $options->getOption("FiltreSalleUHCD"); $pedi = $options->getOption("FiltreSalleSup"); // Préparation de la requête. $req = new clResultQuery(); $param['table'] = $this->table; if ($this->equipe) { $eq = " AND traumato LIKE '{$this->equipe}%' "; } else { $eq = ''; } // Cas des patients normaux. if ($etape == 1) { $list = new ListMaker("template/ListePatients.html"); // Changement de la requête des couleurs de la liste en fonction de la liste affichée (présents, UHCD, attendus ou sortis). // Liste des patients présents. if ($this->type == "Presents") { //$param['cw'] = " p, ".BASEXHAM.".listes l WHERE ((p.dt_examen!='0000-00-00 00:00:00' AND l.nomliste='Salles d\'examens' AND p.salle_examen NOT LIKE 'UHCD%' AND (p.salle_examen=l.nomitem)) OR ( p.dt_examen!='0000-00-00 00:00:00' AND p.salle_examen=l.nomitem AND p.salle_examen NOT LIKE 'UHCD%' ) ) AND l.idapplication=".IDAPPLICATION." ORDER BY l.rang" ; // Ancienne version avec classement des salles en fonction de leur rang : problème de salle invisible //if ( $pedi ) // $param['cw'] = " p, ".BASEXHAM.".listes l WHERE ((p.dt_examen!='0000-00-00 00:00:00' AND l.nomliste='Salles d\'examens' " . // "AND p.salle_examen NOT LIKE '$uhcd%' AND p.salle_examen NOT LIKE '$pedi%' AND (p.salle_examen=l.nomitem)) OR ( p.dt_examen!='0000-00-00 00:00:00' " . // "AND p.salle_examen=l.nomitem AND p.salle_examen NOT LIKE '$uhcd%' AND p.salle_examen NOT LIKE '$pedi%' ) ) " . // "AND l.idapplication=".IDAPPLICATION." ORDER BY l.rang" ; //else // $param['cw'] = " p, ".BASEXHAM.".listes l WHERE ((p.dt_examen!='0000-00-00 00:00:00' AND l.nomliste='Salles d\'examens' AND p.salle_examen NOT LIKE '$uhcd%' AND (p.salle_examen=l.nomitem)) OR ( p.dt_examen!='0000-00-00 00:00:00' AND p.salle_examen=l.nomitem AND p.salle_examen NOT LIKE '$uhcd%' ) ) AND l.idapplication=".IDAPPLICATION." ORDER BY l.rang" ; if ($eq) { $param['cw'] = " WHERE dt_examen!='0000-00-00 00:00:00' AND traumato LIKE '{$this->equipe}%' AND salle_examen NOT LIKE '{$uhcd}%'"; } elseif ($pedi) { $param['cw'] = " p WHERE ((p.dt_examen!='0000-00-00 00:00:00' AND p.salle_examen NOT LIKE '{$uhcd}%' AND p.salle_examen NOT LIKE '{$pedi}%') OR ( p.dt_examen!='0000-00-00 00:00:00' " . "AND p.salle_examen NOT LIKE '{$uhcd}%' AND p.salle_examen NOT LIKE '{$pedi}%' ) )" . $eq; } else { $param['cw'] = " p WHERE ((p.dt_examen!='0000-00-00 00:00:00' AND p.salle_examen NOT LIKE '{$uhcd}%') OR ( p.dt_examen!='0000-00-00 00:00:00' AND p.salle_examen NOT LIKE '{$uhcd}%'))" . $eq; } $navi = $session->genNavi($session->getNavi(0)); $list->addUserVar('navi', $navi); $list->addUrlVar('navi', $navi); $list->setAlternateColor("vuspaire", "vusimpaire"); $list->setSortColumn('col1', 'Patient', 'nomD'); $list->setSortColumn('col2', 'Age', 'ageD'); $list->setSortColumn('col3', 'Mode adm.', 'modeAdm'); $list->setSortColumn('col4', 'Arrivée', 'arriveeD'); $list->setSortColumn('col5', 'Soignants', 'soignants'); $list->setSortColumn('col6', 'Salle', 'salle'); $list->setSortColumn('col7', 'Motif', 'motif'); $list->setSortColumn('col8', 'Code', 'code'); $list->setSortColumn('col9', 'Dest. Souhait.', 'destSouhaitee'); $list->setSortColumn('col0', 'Dest. Confirmée', 'destAttendue'); switch ($options->getOption("ClassementPatients")) { case 'Salle': $list->setdefaultSort('col6'); break; case 'Arrivée': $list->setdefaultSort('col4'); break; case 'Nom': $list->setdefaultSort('col1'); break; } /********/ /* Pour gérer un problème de style. */ $list->addUserVar('{fin_table}', "</table>"); /********/ // Liste des patients sortis. } elseif ($this->type == "Sortis") { $list = new ListMaker("template/ListePatientsSortis.html"); $navi = $session->genNavi($session->getNavi(0)); $list->addUserVar('navi', $navi); $list->addUrlVar('navi', $navi); $list->setSortColumn('col1', 'Patient', 'nomD'); $list->setSortColumn('col2', 'Arrivée', 'arriveeD'); $list->setSortColumn('col3', 'Examen', 'examenD'); $list->setSortColumn('col4', 'Sortie', 'sortieD'); $list->setSortColumn('col5', 'Dest. souhaitée', 'destSouhaitee'); $list->setSortColumn('col6', 'Dest. confirmée', 'destAttendue'); $list->setSortColumn('col7', 'Médecin', 'medecin'); $list->setSortColumn('col8', 'IDE', 'ide'); $list->setSortColumn('col9', 'UF', 'uf'); $list->setdefaultSort(''); $param['cw'] = $this->filtre . " ORDER BY nom ASC"; $list->setAlternateColor("sortispaire", "sortisimpaire"); // Liste des patients attendus. //if ( $this->filtre2 != "" ) } elseif ($this->type == "Attendus") { $list = new ListMaker("template/ListePatientsAttendus.html"); $param['cw'] = "ORDER BY date"; $list->setAlternateColor("attenduspaire", "attendusimpaire"); // Liste des patients UHCD. } elseif ($this->type == "UHCD") { //$param['cw'] = " p, ".BASEXHAM.".listes l WHERE p.salle_examen LIKE '$uhcd%' AND p.salle_examen=l.nomitem AND l.idapplication=".IDAPPLICATION." AND l.nomliste='Salles d\'examens' ORDER BY l.rang" ; $param['cw'] = " p WHERE p.salle_examen LIKE '{$uhcd}%'"; $list->setAlternateColor("uhcdpaire", "uhcdimpaire"); $navi = $session->genNavi($session->getNavi(0)); $list->addUserVar('navi', $navi); $list->addUrlVar('navi', $navi); $list->setSortColumn('col1', 'Patient', 'nomD'); $list->setSortColumn('col2', 'Age', 'ageD'); $list->setSortColumn('col3', 'Mode adm.', 'modeAdm'); $list->setSortColumn('col4', 'Arrivée', 'arriveeD'); $list->setSortColumn('col5', 'Soignants', 'soignants'); $list->setSortColumn('col6', 'Salle', 'salle'); $list->setSortColumn('col7', 'Motif', 'motif'); $list->setSortColumn('col8', 'Code', 'code'); $list->setSortColumn('col9', 'Dest. Souhait.', 'destSouhaitee'); $list->setSortColumn('col0', 'Dest. Confirmée', 'destAttendue'); switch ($options->getOption("ClassementPatients")) { case 'Salle': $list->setdefaultSort('col6'); break; case 'Arrivée': $list->setdefaultSort('col4'); break; case 'Nom': $list->setdefaultSort('col1'); break; } $list->addUserVar('fin_table', "</table>"); } else { //if ( $pedi ) // $param['cw'] = " p, ".BASEXHAM.".listes l WHERE p.salle_examen LIKE '$pedi%' AND p.salle_examen=l.nomitem AND l.idapplication=".IDAPPLICATION." AND l.nomliste='Salles d\'examens' ORDER BY l.rang" ; //else // $param['cw'] = " p, ".BASEXHAM.".listes l WHERE p.salle_examen LIKE 'AUCUNESALLE%' AND p.salle_examen=l.nomitem AND l.idapplication=".IDAPPLICATION." AND l.nomliste='Salles d\'examens' ORDER BY l.rang" ; if ($this->equipe) { $param['cw'] = "p WHERE p.traumato LIKE '{$this->equipe}%'"; } else { if ($pedi) { $param['cw'] = " p WHERE p.salle_examen LIKE '{$pedi}%'"; } else { $param['cw'] = " p WHERE p.salle_examen LIKE 'AUCUNESALLE%'"; } } $list->setAlternateColor("uhcdpaire", "uhcdimpaire"); $navi = $session->genNavi($session->getNavi(0)); $list->addUserVar('navi', $navi); $list->addUrlVar('navi', $navi); $list->setSortColumn('col1', 'Patient', 'nomD'); $list->setSortColumn('col2', 'Age', 'ageD'); $list->setSortColumn('col3', 'Mode adm.', 'modeAdm'); $list->setSortColumn('col4', 'Arrivée', 'arriveeD'); $list->setSortColumn('col5', 'Soignants', 'soignants'); $list->setSortColumn('col6', 'Salle', 'salle'); $list->setSortColumn('col7', 'Motif', 'motif'); $list->setSortColumn('col8', 'Code', 'code'); $list->setSortColumn('col9', 'Dest. Souhait.', 'destSouhaitee'); $list->setSortColumn('col0', 'Dest. Confirmée', 'destAttendue'); switch ($options->getOption("ClassementPatients")) { case 'Salle': $list->setdefaultSort('col6'); break; case 'Arrivée': $list->setdefaultSort('col4'); break; case 'Nom': $list->setdefaultSort('col1'); break; } $list->addUserVar('fin_table', "</table>"); } // Exécution de la requête. if ($this->type == "Sortis") { if (eregi("idformx", $this->filtre)) { $tab["table"] = BDD . "." . PSORTIS . "," . FX_BDD . "." . TABLEFORMX; $tab["cw"] = $param["cw"]; $res = $req->Execute("Fichier", "getPatients", $tab, "ResultQuery"); //eko($res); } else { $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); } //eko ( $res['INDIC_SVC'] ) ; } else { $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); } //eko ( $res['INDIC_SVC'] ) ; //eko($res); //eko ( $res['INDIC_SVC'] ) ; if (DEBUGLISTESPATIENTS and $session->getDroit("Liste_" . $this->type, "a")) { newfct(gen_affiche_tableau, $res[INDIC_SVC]); } // Cas des patients non-vus. } else { $list = new ListMaker("template/ListePatientsBis.html"); if ($eq) { $param['cw'] = "WHERE dt_examen='0000-00-00 00:00:00' AND traumato LIKE '{$this->equipe}%' "; } elseif ($pedi) { $param['cw'] = "WHERE dt_examen='0000-00-00 00:00:00' AND salle_examen NOT LIKE '{$uhcd}%' AND salle_examen NOT LIKE '{$pedi}%'" . $eq . ' ORDER BY dt_admission'; } else { $param['cw'] = "WHERE dt_examen='0000-00-00 00:00:00' AND salle_examen NOT LIKE '{$uhcd}%'" . $eq . ' ORDER BY dt_admission'; } $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); } // eko ( $res['INDIC_SVC'] ) ; global $tabID; if (!is_array($tabID)) { $tabID = array(); } // Parcours de la liste des patients récupérés par la requête. for ($i = 0; isset($res['idpatient'][$i]); $i++) { if (!in_array($res['idpatient'][$i], $tabID)) { // Calcul du sexe de la personne... (?!). switch ($res['sexe'][$i]) { case 'M': $img = URLIMG . "homme.png"; break; case 'F': $img = URLIMG . "femme.png"; break; default: $img = URLIMG . "Indefini.png"; break; } $item['sexe'] = "<img src=\"{$img}\" alt=\"" . $res['sexe'][$i] . "\" />"; // Calcul de l'âge. $date = new clDate($res['dt_naissance'][$i]); $age = new clDuree($date->getTimestamp()); $str = $age->getAgePrecis($date->getTimestamp()); if ($res['dt_naissance'][$i] != "0000-00-00 00:00:00") { $item['age'] = $str; $item['ageD'] = $date->getTimestamp(); } else { $item['age'] = VIDEDEFAUT; $item['ageD'] = VIDEDEFAUT; } // Destination souhaitée. if ($res['dest_souhaitee'][$i]) { $item['destSouhaitee'] = $res['dest_souhaitee'][$i]; } else { $item['destSouhaitee'] = VIDEDEFAUT; } // Destination attendue. if ($res['dest_attendue'][$i]) { $item['destAttendue'] = $res['dest_attendue'][$i]; } else { $item['destAttendue'] = VIDEDEFAUT; } //////////////////////////////////// Patients Attendus //////////////////////////////////////// if ($this->type == "Attendus") { $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "modPatientAttendu", $res['idpatient'][$i]); // Concaténation du nom et du prénom. $item['patient'] = strtoupper($res['nom'][$i]) . " " . ucfirst(strtolower($res['prenom'][$i])); // Heure de création. if ($res['date'][$i]) { $dateCreation = new clDate($res['date'][$i]); $item['date'] = $dateCreation->getDate("d-m-Y H:i"); } else { $item['date'] = VIDEDEFAUT; } // Gestion de l'âge. if ($res['dt_naissance'][$i]) { $item['age'] = $res['dt_naissance'][$i]; } else { $item['age'] = VIDEDEFAUT; } // Récupération du mode d'admission. if ($res['adresseur'][$i]) { $item['adresseur'] = $res['adresseur'][$i]; } else { $item['adresseur'] = VIDEDEFAUT; } // Médecin et IDE. if ($res['medecin_urgences'][$i]) { $med = "Dr " . $res['medecin_urgences'][$i]; } else { $med = VIDEDEFAUT; } $item['medecin'] = $med; // Observations. if ($res['observations'][$i]) { $item['observations'] = nl2br($res['observations'][$i]); } else { $item['observations'] = VIDEDEFAUT; } // Génération du lien de bascule. $imgBasculer = "<img src=\"images/basculer.gif\" name=\"Ajouter\" alt=\"Basculer le patient dans les présents\" /></a>"; $imgSupprimer = "<img src=\"images/Supprimer.gif\" name=\"Supprimer\" alt=\"Supprimer le patient attendu\" /></a>"; $imgModifier = "<img src=\"images/modifier2.gif\" name=\"Modifier\" alt=\"Modifier le patient attendu\" /></a>"; // En fonction des droits et des options, nous affichons les boutons d'actions. if ($session->getDroit("Liste_" . $this->type, "a") and $options->getOption("AjoutManuel")) { $item['lienBasculer'] = "<a href=\"" . URLNAVI . $session->genNavi("Liste_Presents", "basculerPatient", $res['idpatient'][$i]) . "\">" . $imgBasculer; } if ($session->getDroit("Liste_" . $this->type, "d")) { $item['lienSupprimer'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "delPatient", $res['idpatient'][$i]) . "\">" . $imgSupprimer; } if ($session->getDroit("Liste_" . $this->type, "d")) { $item['lienModifier'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "modPatientAttendu", $res['idpatient'][$i]) . "\">" . $imgModifier; } //////////////////////////////////// Patients Sortis //////////////////////////////////////// } elseif ($this->type == "Sortis") { $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]); // Concaténation du nom et du prénom. if ($session->getDroit("Liste_" . $this->type, "m")) { $item['patient'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]) . "\" " . clPatient::genInfoBulle($res, $i) . ">" . strtoupper($res['nom'][$i]) . "</a> " . ucfirst(strtolower($res['prenom'][$i])); } else { $item['patient'] = strtoupper($res['nom'][$i]) . " " . ucfirst(strtolower($res['prenom'][$i])); } $item['nomD'] = strtoupper($res['nom'][$i]); // Heure d'arrivée. if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") { $dateTemp = new clDate($res['dt_admission'][$i]); $item['arrivee'] = $dateTemp->getDate("d-m-Y H:i"); $item['arriveeD'] = $dateTemp->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } // Heure d'examen. if ($res['dt_examen'][$i] != "0000-00-00 00:00:00") { $dateTemp = new clDate($res['dt_examen'][$i]); $item['examen'] = $dateTemp->getDate("d-m-Y H:i"); $item['examenD'] = $dateTemp->getTimestamp(); } else { $item['examen'] = VIDEDEFAUT; $item['examenD'] = VIDEDEFAUT; } // Heure de sortie. if ($res['dt_sortie'][$i] != "0000-00-00 00:00:00") { $dateTemp = new clDate($res['dt_sortie'][$i]); $item['sortie'] = $dateTemp->getDate("d-m-Y H:i"); $item['sortieD'] = $dateTemp->getTimestamp(); } else { $item['sortie'] = VIDEDEFAUT; $item['sortieD'] = VIDEDEFAUT; } // Médecin. if ($res['medecin_urgences'][$i]) { $med = "Dr " . $res['medecin_urgences'][$i]; } else { $med = VIDEDEFAUT; } $item['medecin'] = $med; // IDE. if ($res['ide'][$i]) { $ide = $res['ide'][$i]; } else { $ide = VIDEDEFAUT; } $item['ide'] = $ide; // Affichage des informations sur l'UF $ufExec = $options->getOption('numUFexec'); $ufUHCD = $options->getOption('numUFUHCD'); $ufSC = $options->getOption('numUFSC'); $dtUHCD = new clDate($res['dt_UHCD'][$i]); if ($res['uf'][$i] == $ufUHCD) { $sup = $res['uf'][$i] . ' - UHCD<br/>' . ($res['dt_UHCD'][$i] != '0000-00-00 00:00:00' ? $dtUHCD->getDate('d/m/Y à H:i') : '') . ''; } elseif ($res['uf'][$i] == $ufSC) { $sup = $res['uf'][$i] . ' - Soins Continus'; } else { $sup = $res['uf'][$i] . ' - Urgences'; } $item['uf'] = $sup; if ($options->getOption("Sortis Pagination") != "Tous") { $pagination = $options->getOption("Sortis Pagination"); } //////////////////////////////////// Patients Présents //////////////////////////////////////// } else { $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]); // Concaténation du nom et du prénom. if ($session->getDroit("Liste_" . $this->type, "m")) { $item['patient'] = "<a href=\"" . URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]) . "\" " . clPatient::genInfoBulle($res, $i) . ">" . strtoupper($res['nom'][$i]) . "</a><br />" . ucfirst(strtolower($res['prenom'][$i])); } else { $item['patient'] = strtoupper($res['nom'][$i]) . "<br />" . ucfirst(strtolower($res['prenom'][$i])); } $item['nomD'] = strtoupper($res['nom'][$i]); // Récupération du mode d'admission. if ($res['mode_admission'][$i]) { $item['modeAdm'] = $res['mode_admission'][$i]; } else { $item['modeAdm'] = VIDEDEFAUT; } if ($res['uf'][$i] == $options->getOption('numUFSC')) { $item['colorSpe'] = 'style="background-color:#E73E01;"'; } else { $item['colorSpe'] = ''; } // Heure d'admission. if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") { $datead = new clDate($res['dt_admission'][$i]); $dateSimple = $datead->getDate("d-m-Y"); $dureead = new clDuree(); $duree = $dureead->getDureeCourte($datead->getDatetime()); $item['arrivee'] = $duree . "<br />" . $dateSimple; $item['arriveeD'] = $datead->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } // Observations. $item['obs'] = "?"; // Médecin et IDE. if ($res['medecin_urgences'][$i]) { $med = "Dr " . $res['medecin_urgences'][$i]; } else { $med = VIDEDEFAUT; } if ($res['ide'][$i]) { $ide = "Ide " . $res['ide'][$i]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; // Salle actuelle. $radio = clListeRadios::getEtatSalle($res['idpatient'][$i], IDAPPLICATION); if ($res['salle_examen'][$i]) { $item['salle'] = $res['salle_examen'][$i] . "{$radio}<br/>" . ($res['traumato'][$i] ? $res['traumato'][$i] : ''); } else { $item['salle'] = VIDEDEFAUT . "{$radio}<br/>" . ($res['traumato'][$i] ? $res['traumato'][$i] : ''); } // Motif de recours. if ($res['motif_recours'][$i]) { $item['motif'] = $res['motif_recours'][$i]; } else { $item['motif'] = VIDEDEFAUT; } // Code gravité. if ($res['code_gravite'][$i]) { $item['code'] = $res['code_gravite'][$i]; } else { $item['code'] = VIDEDEFAUT; } // Infos visuelles (colonne Observations). $dureeMaxSansUHCD = 3600 * $options->getOption("Présents UHCD"); $item['obs'] = ""; $uhcd = $options->getOption("FiltreSalleUHCD"); if ($res['dt_admission'][$i] != "0000-00-00 00:00:00") { //if ( $options -> getOption ( "ContrainteHuitUF2702" ) AND $dureead -> getSeconds ( ) > $dureeMaxSansUHCD AND $res['uf'][$i] != "2702" AND ! $res['manuel'][$i] ) /* if ( $options -> getOption ( "GestionUHCD" ) AND $res['uf'][$i] != $options->getOption ( "numUFUHCD" ) ) { $ufExec = $options->getOption ( 'numUFexec' ) ; $ufUHCD = $options->getOption ( 'numUFUHCD' ) ; $uf = $options->getOption ( 'numUFexec' ) ; $etat = $res['etatUHCD'][$i] ; $oldUF = $res['uf'][$i] ; // Calcul du critère CCMU4 ou CCMU5 if ( $res['code_gravite'][$i] == 4 OR $res['code_gravite'][$i] == 5 ) $CCMU45 = 1 ; else $CCMU45 = 0 ; // Calcul du critère sur la durée $datead = new clDate ( $res['dt_admission'][$i] ) ; $dureead = new clDuree ( ) ; $duree = $dureead -> getDureeCourte ( $datead -> getDatetime ( ) ) ; $dureeMaxSansUHCD = 3600 * $options -> getOption ( "Présents UHCD" ) ; $dureeHeure = $options -> getOption ( "Présents UHCD" ) ; if ( $dureead -> getSeconds ( ) > $dureeMaxSansUHCD ) $duree = 1 ; else $duree = 0 ; // Calcul du critère sur le CCMU3 if ( $res['code_gravite'][$i] == 3 ) $CCMU3 = 1 ; else $CCMU3 = 0 ; // Vérification des critères directs. if ( $CCMU45 ) { $rep = 'okCCMU45' ; $uf = $ufUHCD ; } else { if ( $duree ) { $rep = 'okDuree' ; } else { if ( $CCMU3 ) { $rep = 'okCCMU3' ; } else { $rep = 'noCCMU3' ; $uf = $ufExec ; } } } // Vérification de la réponse à la question sur les critères UHCD. if ( $rep == 'okDuree' ) { if ( $etat != 'okCriteres' AND $etat != 'noCriteres' ) $item['obs'] .= IMGALERTE ; } // Vérification de la réponse à la question sur les actes lourds. if ( $rep == 'okCCMU3' ) { if ( $etat != 'okActes' AND $etat != 'noActes' ) $item['obs'] .= IMGALERTE ; } }*/ if ($options->getOption("ModuleBMR")) { // On vérifie si le patient est lié à une alerte BMR. $param['cw'] = "WHERE IDU='" . $res['idu'][$i] . "'"; $ras = $req->Execute("Fichier", "getBMR", $param, "ResultQuery"); // Si au moins une alerte est liée au patient, on affiche une icone d'alerte. if ($ras['INDIC_SVC'][2]) { $item['obs'] .= "<img src=\"" . URLIMGRAD . "\" alt=\"BMR\" />"; } //$item['obs'] .= IMGDOCS ; } } // On vérifie si le patient a une note. $param['cw'] = "WHERE ids='" . $res['idpatient'][$i] . "'"; $param['table'] = TABLENOTES; $ras = $req->Execute("Fichier", "getGenXHAM", $param, "ResultQuery"); if ($ras['INDIC_SVC'][2] and $ras['note'][0] and $session->getDroit("Presents_Informations")) { global $pi; $item['obs'] .= "<img src=\"" . URLIMGOBS . "\" " . $pi->genInfoBulle($ras['note'][0]) . " alt=\"Comm.\" />"; } $item['obs'] .= clListeRadios::getEtat($res['idpatient'][$i], IDAPPLICATION); if ($_POST['showHisto']) { // Récupération des passages précédents. $param['IDU'] = $res['idu'][$i]; $res2 = $req->Execute("Fichier", "getHistorique", $param, "ResultQuery"); if ($res2['INDIC_SVC'][2]) { $item['obs'] .= IMGHISTO; } // Récupération des passages précédents. $param['ILP'] = $res['ilp'][$i]; $res2 = $req->Execute("Fichier", "getHistoriqueDocs", $param, "ResultQuery"); if ($res2['INDIC_SVC'][2]) { $item['obs'] .= IMGHISTODOCS; } } } //$this->getInfoBulle ( $res, $i ) ; $list->addItem($item); } $tabID[] = $res['idpatient'][$i]; } // Récupération du code HTML généré. $this->af .= $list->getList($pagination); }
function addPatientSQL($idimport, $table) { global $errs; global $news1; global $mods1; global $errs1; global $news2; global $mods2; global $errs2; // Récupération des informations sur le patient à créer. $param['cw'] = "WHERE idimport='{$idimport}'"; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getImports", $param, "ResultQuery"); $i = 0; if ($res['uf'][$i] == '6004') { $base = 'terminal2_tuv2'; $news2++; } else { $base = BDD; $news1++; } if ($res['INDIC_SVC'][2]) { $ras = $req->Execute("Fichier", "getMaxIdToulon", $param, "ResultQuery"); $max = 1; for ($j = 0; isset($ras['idpatient'][$j]); $j++) { if ($ras['idpatient'][$j] > $max) { $max = $ras['idpatient'][$j]; } } $max++; $data['idpatient'] = $max; $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_traitant'][$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 ) ; // Calcul de la durée depuis lequel le patient est admis. $d1 = new clDate(); $d2 = new clDate($data['dt_admission']); $duree = new clDuree($d1->getDifference($d2)); $duree->invertNegatif(); // Appel de la classe Requete. $requete = new clRequete($base, $table, $data); // Exécution de la requete. $res = $requete->addRecord(); // Si le patient est admis depuis plus de 30 minutes, alors il est placé dans la table des sortis if ($duree->getMinutes() > 30) { $pat = new clPatient($res['cur_id'], '', $base); $pat->sortirPatient('simple'); } // 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 addPatientHL7($data, $table, $base = BDD) { global $errs; global $options; // Calcul de la durée depuis lequel le patient est admis. $d1 = new clDate(); $d2 = new clDate($data['dt_admission']); $duree = new clDuree($d1->getDifference($d2)); $duree->invertNegatif(); // Procédure anti-fantôme : si aucun de ces champs n'est saisi, on ne fait pas l'ajout du patient. if ($data['nom'] or $data['prenom'] or $data['sexe'] or $data['ilp']) { // Appel de la classe Requete. $requete = new clRequete($base, $table, $data); // Exécution de la requete. $res = $requete->addRecord(); // eko ( "On ajoute un nouveau patient (nsej=$nsej)" ) ; // Si le patient est admis depuis plus de 30 minutes, alors il est placé dans la table des sortis if ($duree->getMinutes() > $options->getOption('ImportsBasculeSortis')) { $pat = new clPatient($res['cur_id'], '', $base); $pat->sortirPatient('simple'); } $this->news1++; } }
function genSalon() { global $options; # paramètres $mg = 5; // Marge de gauche => initial 17 $mh = 4; // Marge du haut => initial 9 $md = 15; // Marge de droite $mb = 9; // Marge du bas $largeur_etiquette = 42; // largeur_etiquette => initial 60 $espace_etiquettes = 13; // => initial 7 $nb_ligne_etiquettes = 4; $nb_etiquette_ligne = 5; // Préparation du document PDF. $pdf = new FPDF('L', 'mm', 'A4'); $pdf->Open(); $pdf->SetLeftMargin($mg); $pdf->SetTopMargin($mh); $pdf->SetAutoPageBreak(1, 0); $pdf->AddPage(); // Gestion des fonts $pdf->AddFont('code39', '', 'IDAutomation_Code_39.php'); $pdf->SetFont('times', '', 12); // Préparation des informations. $nom = strtoupper($this->patient->getNom()); $prenom = strtoupper($this->patient->getPrenom()); $date = new clDate($this->patient->getDateNaissance()); $duree = new clDuree(); $dateN = $date->getDate("d/m/Y"); $dateN .= " (" . $duree->getAge($date->getTimestamp()) . ")"; if ($this->patient->getSexe() == "F") { $sexe = "Féminin"; $e = "e"; } elseif ($this->patient->getSexe() == "M") { $sexe = "Masculin"; $e = ""; } else { $sexe = "Indéterminé"; $e = ""; } $date->setDate($this->patient->getDateAdmission()); $le = $date->getDate("d/m/Y H:i"); $led = $date->getDate("d/m/Y"); $leh = $date->getDate("H:i"); $ipp = $this->patient->getILP(); $nsej = $this->patient->getNSej(); $uf = $this->patient->getUF(); $sexe = $this->patient->getSexe(); if ($uf == $options->getOption('numUFexec')) { $loc = '(URGENCES)'; } else { $loc = '(UHCD)'; } $tel = $this->patient->getTel(); $adresse = $this->patient->getAdresse(); $cpv = $this->patient->getCodePostal() . " " . $this->patient->getVille(); $prev = $this->patient->getPrevenir(); $medt = $this->patient->getMedecinTraitant(); $modet = $this->patient->getMedecinTraitant(); $adresseur = $this->patient->getAdresseur(); $modeadm = $this->patient->getModeAdmission(); // Grosse étiquette $pdf->Cell(20, 4, "", 0, 0, L); // Ligne 1 $pdf->Cell(4 * $largeur_etiquette, 5, "CENTRE HOSPITALIER DE CARPENTRAS", 0, 1, L); // Ligne 2 $pdf->Cell(11, 5, "Date : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(23, 5, "{$led}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(13, 5, "Heure : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(27, 5, "{$leh}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(21, 5, "N° Patient : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(22, 5, "{$ipp}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(18, 5, "N° URG : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(22, 5, "{$nsej}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(18, 5, "N° ARCHIVE : ", 0, 1, L); // Ligne 3 $pdf->Cell(11, 5, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(63, 5, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(13, 5, "Nom naissance : ", 0, 1, L); // Ligne 4 $pdf->Cell(16, 5, "Prénom : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(58, 5, ucfirst(strtolower($prenom)), 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "Sexe : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(29, 5, "{$sexe}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "N° S.S : ", 0, 1, L); // Ligne 5 $pdf->Cell(17, 5, "Né(e) le : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(57, 5, $dateN, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "A : ", 0, 1, L); // Ligne 6 $pdf->Cell(17, 4, "Adresse : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(57, 4, $adresse, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 5 $pdf->Cell(115, 4, "", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(9, 4, "Tél : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(20, 4, $tel, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 6 $pdf->Cell(17, 4, "", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 4, $cpv, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(9, 4, "Pays : ", 0, 1, L); // Ligne 7 $pdf->Cell(17, 5, "Nom du tuteur : ", 0, 1, L); // Ligne 8 $pdf->Cell(37, 5, "Personne à prévenir : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $prev, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 9 $pdf->Cell(23, 5, "Adressé par : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(51, 5, $adresseur, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(30, 5, "Médecin traitant : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $medt, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 10 $pdf->Cell(34, 5, "Mode de transport : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $modeadm, 0, 1, L); $pdf->SetFont('times', '', 12); // Saut $pdf->Cell(1, 5.8, "", 0, 1); $pdf->SetFont('times', '', 9); for ($i = 1; $i <= $nb_ligne_etiquettes; $i++) { // Entrée $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 1, L); // D/Nais $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 1, L); // Nom $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 1, L); $pdf->SetFont('times', '', 9); // Prénom $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 1, L); // NJF $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 1, L); // N° SS $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 1, L); // inter _etiquettes $pdf->Cell(1, 11, "", 0, 1); } $pdf->Output(); }
function getLast() { global $options; if ($_POST['idSessionATQ']) { $session = $_POST['idSessionATQ']; } if ($_GET['idSessionATQ']) { $session = $_GET['idSessionATQ']; } if ($session) { $this->index = $session; } else { $this->index = ""; } // Récupération de la date de dernier clic. $date = new clDate($_SESSION['last' . $this->index]); // Calcul de la durée entre ce dernier clic et maintenant. $dateN = new clDate(); $duree = new clDuree(); $duree->setValues($dateN->getDifference($date)); // On calcule une clé de session s'il n'y en a pas déjà une. if (!$_SESSION['sidtuv2' . $this->index]) { $_SESSION['sidtuv2' . $this->index] = $this->genIdSession(16); // Affichage pour débugage. if (DEBUGSESSION) { print "<br />Génération de l'idSession : " . $_SESSION['sidtuv2' . $this->index]; } } else { // Affichage pour débugage. if (DEBUGSESSION) { print "<br />idSession : " . $_SESSION['sidtuv2' . $this->index]; } } // On vérifie que la session est toujours valide <=> que la durée calculée n'est pas supérieure // à la durée maximum d'inactivité. if ($duree->getMinutes() <= ($options->getOption("DureeSession") < 480 ? $options->getOption("DureeSession") : 480)) { $_SESSION['last' . $this->index] = $dateN->getDatetime(); // print affTab ( $_SESSION['informations'.$this->index] ) ; // eko ( $_SESSION['informations'.$this->index] ) ; /* mail( Erreurs_Mail, 'Trace connexion', 'Connexion active après '.$duree->getSeconds ( ).' secondes d\'inactivité.' . '\nHeure du clic : '.$dateN->getDatetime ( ). '\nHeure du précédent clic : '.$date->getDatetime ( )."<br/>" ) ; */ /* eko ( 'Connexion active après '.$duree->getSeconds ( ).' secondes d\'inactivité.' . '<br/>Heure du clic : '.$dateN->getDatetime ( ). '<br/>Heure du précédent clic : '.$date->getDatetime ( )."<br/>" ) ; */ return $_SESSION['informations' . $this->index]; } else { /* $errs -> addErreur ( 'Déconnexion après '.$duree->getMinutes ( ).' minutes d\'inactivité.' . '<br/>Heure du clic : '.$dateN->getDatetime ( ). '<br/>Heure du précédent clic : '.$date->getDatetime ( ) ) ; */ $entete = "<html><head><title>{$subject}</title><body>"; $fin = "</ul></body></html>"; $headers = "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\n"; $headers .= "To: " . Erreurs_Mail . "\r\nFrom: " . Erreurs_NomApp . "<" . Erreurs_MailApp . ">\r\n"; /* mail( '', '[XHAM V1] Trace connexion', $entete.' - Perte de la connexion après <b>'.$duree->getSeconds ( ).'</b> secondes d\'inactivité.<br/>' . ' - Heure du clic : <b>'.$dateN->getDatetime ( ).'</b><br/> - Heure du précédent clic : <b>'.$date->getDatetime ( ).'</b><br/>' . ' - Application : <b>'.NOMAPPLICATION.'</b><br/> - Durée maximale : <b>'.$options -> getOption ( "DureeSession" ).' minutes</b><br/>'.$fin, $headers ) ; */ /*print 'Déconnexion après '.$duree->getMinutes ( ).' minutes d\'inactivité.' . '<br/>Heure du clic : '.$dateN->getDatetime ( ). '<br/>Heure du précédent clic : '.$date->getDatetime ( )."<br/>";*/ } $_SESSION['last' . $this->index] = $dateN->getDatetime(); }
function gestionMajorationsNGAPlesCetCS() { /******************************************************************************/ global $options; global $fusion; global $table_patient_manuel; global $table_patient_automatique; $idEvent = $this->idEvent; if ($fusion == 0) { $agePatient = $this->agePatient; } else { // Presence d'une fusion $param[cw] = "WHERE idpatient='" . $idEvent . "'"; $param[table] = $table_patient_automatique; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); $age = new clDate($res["dt_naissance"][0]); $date = new clDate($res["dt_examen"][0]); $duree = new clDuree($date->getDifference($age)); $agePatient = $duree->getYears(); } unset($paramModif); if ($options->getOption('EnvoiMajorationsNGAPpourCetCS')) { // Dans le cas ou le patient revient sur le terminal on gére le mise à // jour de la table ccam_cotation_actes en fonction de l' option // de la valeur de EnvoiMajorationsNGAPpourCetCS $paramModif["envoi_facturation"] = 1; } else { $paramModif["envoi_facturation"] = 0; } $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); // LISTE MAJO // MODIFICATION A FAIRE // Ajout des majos sages-femmes et gyneco-obstetrique dans les requetes $sql = $requete->updRecord("idEvent='" . $idEvent . "' and cotationNGAP in ('MCG 1','MNO 1','MGE 1','MCC 1','MNP 1','MPJ 1','MPC 1','MCS 1')"); unset($paramRq); $paramRq["cw"] = "idEvent=" . $idEvent . " and type='ACTE'"; $requete = new clResultQuery(); // On récupère la liste des actes pour un patient $resultat = $requete->Execute("Fichier", "CCAM_getActesDiagsCotation", $paramRq, "ResultQuery"); // On traite les informations contenues dans la table resultat for ($i = 0; $i <= $resultat[INDIC_SVC][2]; $i++) { $MajorationNGAP1 = ""; $MajorationNGAP2 = ""; $Majoration_A_Effectuee = "Non"; // On regarde si la cotation NGAP est de type C 1 // ceci concerne les consultations de généralistes (C) if (strcmp($resultat["cotationNGAP"][$i], "C 1") == 0) { // On gére les ages if ($agePatient < 2) { $MajorationNGAP1 = "MNO 1"; $Majoration_A_Effectuee = "Oui"; } /* if ( $agePatient >= 2 && $agePatient < 6 ) { $MajorationNGAP1 = "MGE 1"; $Majoration_A_Effectuee = "Oui"; } */ /*if ( $agePatient >= 16 ) { $MajorationNGAP1 = "MCG 1"; $Majoration_A_Effectuee = "Oui"; }*/ } //if ( strcmp($resultat["cotationNGAP"][$i],"C 1") == 0 ) // On regarde si la cotation NGAP est de type CSC 1 // ceci concerne les consultations de cardio /* if ( strcmp($resultat["cotationNGAP"][$i],"CSC 1") == 0 ) { // Cardiologues: if ( eregi ('Cardiologie',$resultat["libelleActe"][$i]) ){ if ( $agePatient >= 16 ) { $MajorationNGAP1 = "MCC 1"; $Majoration_A_Effectuee = "Oui"; } } } */ // if ( strcmp($resultat["cotationNGAP"][$i],"CSC 1") == 0 ) // On regarde si la cotation NGAP est de type CNPSY 1 // ceci concerne les consultations de Spy et de Neurologue. /*if ( strcmp($resultat["cotationNGAP"][$i],"CNPSY 1") == 0 ) { // Neurologue et Psychiatres: if ( eregi ('Neurologie' ,$resultat["libelleActe"][$i] ) || eregi ('Psychiatrie',$resultat["libelleActe"][$i] ) ){ if ( $agePatient >= 16 ) { //$MajorationNGAP1 = "MPC 1"; $MajorationNGAP1 = "MCS 1"; $Majoration_A_Effectuee = "Oui"; } else { $MajorationNGAP1 = "MPJ 1"; $Majoration_A_Effectuee = "Oui"; } } } */ //if ( strcmp($resultat["cotationNGAP"][$i],"CNPSY 1") == 0 ) { // On regarde si la cotation NGAP est de type CS 1 // ceci concerne les consultations de spécialistes (CS) /* if ( strcmp($resultat["cotationNGAP"][$i],"CS 1") == 0 ) { // Maintenant en gérant le cas des urgences pédiatriques if ( ( strcmp($resultat["libelleActe"][$i],"Consultation urgentiste spécialiste") == 0 && strcmp($this->typeIntervenant,"PED") == 0 ) || eregi('Pédiatrie',$resultat["libelleActe"][$i]) || eregi('PEDIATRIE',$resultat["libelleActe"][$i]) ){ // On gére les ages if ( $agePatient < 2 ) { $MajorationNGAP1 = "MNP 1"; $Majoration_A_Effectuee = "Oui"; } if ( $agePatient >= 2 && $agePatient < 16 ) { $MajorationNGAP1 = "MPJ 1"; $Majoration_A_Effectuee = "Oui"; } } //////////////////////////////////////////////////////// /* // Maintenant en gérant le cas des urgences Gynécologie et Obstétrique elseif ( (strcmp($resultat["libelleActe"][$i],"Consultation Gynéco Obstétrique") == 0 && strcmp($this->typeIntervenant,"OBS") == 0 ) || eregi('Gynécologie et Obstétrique',$resultat["libelleActe"][$i]) ) { // MODIFICATION A FAIRE majoration suivant l'age du patient eko("majoration suivant l'age du patient"); } //////////////////////////////////////////////////////// */ // Autres Spécialistes /* else { if ( $agePatient >= 16 ) $MajorationNGAP1 = "MCS 1"; else $MajorationNGAP1 = "MPJ 1"; if ( $agePatient < 16 ) $MajorationNGAP1 = "MPJ 1"; //$MajorationNGAP2 = "MPC 1"; $Majoration_A_Effectuee = "Oui"; } } //if ( strcmp($resultat["cotationNGAP"][$i],"CS 1") == 0 ) */ // Maintenant on gère le cas s'il y a une Majoration à effectuer // pour l'acte $resultat["libelleActe"][$i] if (strcmp($Majoration_A_Effectuee, "Oui") == 0) { $paramRq = array(); $temp = array(); $temp = $resultat; while (list($key, $val) = each($temp)) { $paramRq[$key] = $temp[$key][$i]; } unset($paramRq[INDIC_SVC]); reset($temp); reset($paramRq); // On insere la majoration NGAP dans la nouvelle ligne à inserer dans // la table ccam_cotation_actes $paramRq["cotationNGAP"] = $MajorationNGAP1; if ($options->getOption('EnvoiMajorationsNGAPpourCetCS')) { $paramRq["envoi_facturation"] = 1; } else { $paramRq["envoi_facturation"] = 0; } // On teste si on a déjà inserer l'acte NGAP avec la mojoration // Au cas ou le patient revient dans le terminal $requete = new clResultQuery(); $test_insertion_existe = $requete->Execute("Fichier", "CCAM_testInsertionCCAMCotationActes", $paramRq, "ResultQuery"); if ($test_insertion_existe["INDIC_SVC"][2] == 0) { // On recherche le max de identifiant pour l'incrementation // dans la table $requete = new clResultQuery(); $maxIdentifiant = $requete->Execute("Fichier", "CCAM_getMaxIdentifiantCCAMCotationActes", array(), "ResultQuery"); $paramRq["identifiant"] = $maxIdentifiant["maximun"][0] + 1; // Insertion de la nouvelle ligne $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramRq); $requete->addRecord(); } if ($MajorationNGAP2 != "") { // On insere la majoration NGAP dans la nouvelle ligne à inserer dans // la table ccam_cotation_actes $paramRq["cotationNGAP"] = $MajorationNGAP2; // On teste si on a déjà inserer l'acte NGAP avec la majoration // Au cas ou le patient revient dans le terminal $requete = new clResultQuery(); $test_insertion_existe = $requete->Execute("Fichier", "CCAM_testInsertionCCAMCotationActes", $paramRq, "ResultQuery"); if ($test_insertion_existe["INDIC_SVC"][2] == 0) { // recherche de l'idEvent max $requete = new clResultQuery(); $maxIdentifiant = $requete->Execute("Fichier", "CCAM_getMaxIdentifiantCCAMCotationActes", array(), "ResultQuery"); $paramRq["identifiant"] = $maxIdentifiant["maximun"][0] + 1; // Insertion de la nouvelle ligne $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramRq); $requete->addRecord(); } // end if } // en if } // if ( strcmp($Majoration_A_Effectuee,"Oui") == 0 ) } // for ( $i = 0 ; $i <= $resultat[INDIC_SVC][2] ; $i++ ) }
function newMessage($listeMails = '') { global $session; global $options; if (!$this->patient->getILP()) { $this->patient = new clPatient($this->idpatient, "Sortis"); } if ($options->getOption("typeMail") == "HTML") { $retourLigne = "<br />"; $trait = "<hr />"; } else { $retourLigne = "\n"; $trait = "\n----------------------------------------------\n\n"; } // Préparation des textes et dates... $dest2 = ''; $message .= "Médecins urgences : " . ($this->patient->getMedecin() ? $this->patient->getMedecin() : '--') . $retourLigne; $age = new clDate($this->patient->getDateNaissance()); $duree = new clDuree(); $adm = new clDate($this->patient->getDateAdmission()); $exa = new clDate($this->patient->getDateExamen()); $message .= "Concerne le patient : " . $this->patient->getSexe() . " " . $this->patient->getPrenom() . " " . strtoupper($this->patient->getNom()) . " (" . $duree->getAge($age->getTimestamp()) . ")" . $retourLigne; $message .= "Numéro de séjour : " . $this->patient->getNSEJ() . $retourLigne; $message .= "ILP : " . $this->patient->getILP() . $retourLigne; $message .= "Médecin traitant : " . $this->patient->getMedecinTraitant() . $retourLigne . $trait; if ($this->patient->getDateAdmission() != '0000-00-00 00:00:00') { $message .= "Admis aux urgences le : " . $adm->getDate("d-m-Y à H:i") . $retourLigne; } else { $message .= "Admis aux urgences le : --" . $retourLigne; } $message .= "Pour " . $this->patient->getRecours() . " (" . $this->patient->getCategorieRecours() . ")" . $retourLigne; if ($this->patient->getDateExamen() != '0000-00-00 00:00:00') { $message .= "Heure Examen : " . $exa->getDate("d-m-Y à H:i") . $retourLigne; } else { $message .= "Heure Examen : --" . $retourLigne; } $message .= "Dest. confirmée : " . ($this->patient->getDestinationAttendue() ? $this->patient->getDestinationAttendue() : '--') . $retourLigne; $message .= "Message : " . stripslashes($_POST['observations']); // Préparation des destinataires du message. $listeGen = new clListesGenerales("recup"); // Type de message. switch ($_POST['type']) { case 'conflit': $sujet = "[Terminurg] Signalement conflit"; if (!$listeMails) { $listeMails = "Mails Conflit"; } break; case 'social': $sujet = "[Terminurg] Signalement social"; if (!$listeMails) { $listeMails = "Mails Gériatrie"; } break; case 'virus': $sujet = "[Terminurg] " . $_POST['sendMessage']; if (!$listeMails) { $listeMails = "Mails Alerte Virus"; } break; case 'non uhcd': $sujet = "[Terminurg] Etat UHCD à vérifier"; if (!$listeMails) { $listeMails = "Mails Alerte UHCD"; } break; case 'sortie forcée': $sujet = "[Terminurg] Sortie forcée détectée"; if (!$listeMails) { $listeMails = "Mails Sortie forcée"; } break; default: $sujet = "[Terminurg] Procédure dépistage maltraitance"; if (!$listeMails) { $listeMails = "Mails Maltraitance"; } break; } //eko ( "test" ) ; $liste = $listeGen->getListeItems($listeMails, "1", '', ''); $to = ''; if (!is_array($liste)) { $liste = array(); } while (list($key, $val) = each($liste)) { $dest .= $val . $retourLigne; if ($dest2) { $vir = ","; } else { $vir = ""; } $dest2 .= $vir . $val; if (!$to) { $to = $val; } else { $dest3 .= "To: {$val}\r\n"; } } // print $dest2 ; // Si une confirmation a été transmise, alors on ajoute et on envoie le nouveau message. if ($_POST['Envoyer'] or $_POST['Envoyer_x']) { $date = new clDate(); $data['idpatient'] = $this->patient->getID(); $data['dt_mail'] = $date->getDatetime(); $data['contenu'] = addslashes($message . $trait . nl2br(stripslashes($_POST['observations']))); $data['nsej'] = $this->patient->getNSEJ(); if ($_POST['type']) { $data['type_mail'] = $_POST['type']; } else { $data['type_mail'] = "Procédure dépistage maltraitance"; } $requete = new clRequete(BDD, MAILSLOGS, $data); $requete->addRecord(); // eko ( $sujet ) ; // Préparation des informations du mail. if ($options->getOption("typeMail") == "HTML") { $entete = "<html><head><title>{$subject}</title><body>"; $fin = "</table></body></html>"; $message = $entete . $message . $fin; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: " . Erreurs_NomApp . " <" . Erreurs_MailApp . ">\r\n"; } else { $message = $subject . "\n\n" . $message; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $headers .= "From: " . Erreurs_NomApp . " <" . Erreurs_MailApp . ">\r\n"; } //$headers .= "Bcc: dborel@ch-hyeres.fr\r\n"; if ($options->getOption('SMTP_BCC')) { $headers .= "Cc: <" . $options->getOption('SMTP_BCC') . ">\r\n"; $cc = $options->getOption('SMTP_BCC'); } else { $cc = ''; } // Envoi du mail. // mail ( $dest2, $sujet, $message, $headers ) ; if ($options->getOption('SMTP_Type') == 'localhost') { mail($dest2, $sujet, $message, $headers); } else { //$headers .= 'To: '.$dest2."\r\n" ; // print $headers ; if ($options->getOption('SMTP_Type') == 'autreAvecAuth') { $auth = 1; } else { $auth = 0; } sock_mail($auth, $dest2, $sujet, $message, $headers, Erreurs_MailApp, $cc); } //eko ( $dest2 ) ; // Sinon, on affiche le formulaire d'envoi / création de message. } else { // Chargement du template ModeliXe. $mod = new ModeliXe("Messages.mxt"); $mod->SetModeliXe(); // Affichage des différents champs. $mod->MxBloc("view", "modify", " "); $mod->MxBloc("list", "modify", " "); $mod->MxText("new.nomApplication", NOMAPPLICATION); $mod->MxText("new.mailApplication", Erreurs_MailApp); $mod->MxText("new.nomsDestinataires", $dest); $mod->MxCheckerField("new.type1", "radio", "type", "maltraitance", ($_POST['type'] == "maltraitance" or !$_POST['type']) ? 1 : 0); $mod->MxCheckerField("new.type2", "radio", "type", "conflit", $_POST['type'] == "conflit" ? 1 : 0); $mod->MxCheckerField("new.type3", "radio", "type", "social", $_POST['type'] == "social" ? 1 : 0); $mod->MxText("new.sujet", $sujet); $mod->MxText("new.message", $message); $form = new clForm(); $mod->MxText("new.observations", $form->genTextArea("observations", stripslashes($_POST['observations']), 45, 4, "width: 420px; height: 80px;")); // Variable de navigation dans le cas d'une action normale. $mod->MxHidden("new.hidden1", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "newMessage")); // Variable de navigation dans le cas d'une action d'annulation. $mod->MxHidden("new.hidden2", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // Récupération du code HTML généré. return $mod->MxWrite("1"); } }
function genEnvoi() { global $options; global $errs; //Attention, jour concerné = lendemain des données $dateJourConcerne = new clDate(); $tsp = $dateJourConcerne->getTimestamp(); define(nomForm, "URG"); define(idActeur, $options->getOption('RPU_IdActeur')); define(arRequis, $options->getOption('RPU_AR_Actif')); define(cleDepot, $options->getOption('RPU_CleActeur')); define(mail, $options->getOption('RPU_AR_Mail')); define(cfg_expediteur_alerte, "terminal_urgences"); define(chemin, URLRPU . 'arh/'); define(date_jour, date("Ymd", $tsp)); define(jour, substr(date_jour, 6, 2)); define(mois, substr(date_jour, 4, 2)); define(annee, substr(date_jour, 0, 4)); define(date_file, date("YmdHis")); define(date_envoi, date("d/m/Y à H:i:s")); define(date_event, date("d/m/Y", mktime(0, 0, 0, mois, jour - 1, annee))); define(from, date("Y-m-d H:i:s", mktime(0, 0, 0, mois, jour - 1, annee))); define(to, date("Y-m-d H:i:s", mktime(23, 59, 59, mois, jour - 1, annee))); $req = "select idpatient, uf , dt_naissance , type_destination\r\n from patients_sortis\r\n\t where manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1\r\n\t\tUNION\r\n\t\tselect idpatient, uf , dt_naissance , type_destination\r\n\t\tfrom patients_presents\r\n\t\twhere manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1"; $config[type] = "MySQL"; $config[host] = MYSQL_HOST; $config[login] = MYSQL_USER; $config[password] = MYSQL_PASS; $config[db] = BDD; $requete = new clResultQuery(); // On récupère le résultat de la requête sous la forme ResultQuery. $res = $requete->Execute("requete", $req, $config); eko($res[INDIC_SVC]); $age1 = 0; $age75 = 0; $NbHospit = 0; $NbUHCD = 0; $NbTransfert = 0; $ufUHCD = $options->getOption("numUFUHCD"); //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2]) { $NbPassages = $res[INDIC_SVC][2]; // On a le nombre de passages while (list($key, $val) = each($res[dt_naissance])) { $dateN = new clDate($val); $dateA = new clDate(from); $duree = new clDuree(); $duree->setValues($dateA->getDifference($dateN)); $age = $duree->getYears(); if ($age < 1) { $age1++; // Constitution du nb de passage < à 1 an } elseif ($age > 75) { $age75++; // Constitution du nb de passage > 75 ans } // Hospitalisations if ($res[type_destination][$key] == "H" and $res[uf][$key] != $ufUHCD) { $NbHospit++; } // UHCD if ($res[uf][$key] == $ufUHCD) { $NbUHCD++; } // Transferts if ($res[type_destination][$key] == "T") { $NbTransfert++; } //echo $val."--=> ".$res[type_destination][$key]." ".$age ." ans <br>"; } $balise_element = "\n<entete>"; $balise_element .= "\n<idActeur>" . idActeur . "</idActeur>"; $balise_element .= "\n<cleActeur>" . cleDepot . "</cleActeur>"; $balise_element .= "\n<arRequis>" . arRequis . "</arRequis>"; $balise_element .= "\n<mail>" . mail . "</mail>"; $balise_element .= "\n</entete>"; $balise_element .= "\n<element>"; $balise_element .= "\n<nomForm>" . nomForm . "</nomForm>"; $balise_element .= "\n<date_event>" . date_event . "</date_event>"; $balise_element .= "\n<NbPassages>{$NbPassages}</NbPassages>"; $balise_element .= "\n<NbPassInf1An>{$age1}</NbPassInf1An>"; $balise_element .= "\n<NbPassageSup75Ans>{$age75}</NbPassageSup75Ans>"; $balise_element .= "\n<NbHospit>{$NbHospit}</NbHospit>"; $balise_element .= "\n<NbHospitUHCD>{$NbUHCD}</NbHospitUHCD>"; $balise_element .= "\n<NbTransfert>{$NbTransfert}</NbTransfert>"; $balise_element .= "\n</element>"; $nom_fic = idActeur . "_" . date_file . ".xml"; $nom_fic_export = chemin . $nom_fic; $xml_data = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"?>\r\n\t\t\t\n<result>" . $balise_element . "\n</result>"; $fp = fopen($nom_fic_export, "w"); if (!fwrite($fp, $xml_data)) { eko("pb ecriture fichier xml"); } fclose($fp); copy($nom_fic_export, URLLOCAL . 'rpu/logs/' . $nom_fic); $affichage = "<center><h2>Export des données Urgences - CH-Hyères</h2></center>\r\n\t\t\t<u>Date d'export:</u> le " . date_envoi . "<br>\r\n\t\t\t<u>Contenu exporté :</u> {$balise_element}<br>\r\n\t\t\t<u>Fichier d'export :</u> {$nom_fic_export}"; // Cryptage du fichier. $mailE = $options->getOption('RPU_Envoi_Mail'); $gpg = new gnuPG(false, GNUPG); $gpg->EncryptFile($mailE, $nom_fic_export); if (!$gpg->error) { $this->message .= "<font color=\"green\">Le cryptage du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>"; } else { $this->message .= "<font color=\"red\">Le cryptage du fichier ({$nom_fic_export}.gpg) a échoué :" . $gpg->error . "<br/></font>"; } if ($options->getOption('RPU_TypeEnvoi') == 'mail') { // Envoi du fichier RPU. $contenuFic = fread(fopen($nom_fic_export . '.gpg', "r"), filesize($nom_fic_export . '.gpg')); // eko ( $contenuFic ) ; $mail = new mime_mail(); $mail->to = $options->getOption("RPU_Envoi_Mail"); //$mail->to = "*****@*****.**" ; //eko ( $options->getOption ( "RPU_Envoi_Mail" ) ) ; $mail->subject = "Données urgences (" . date_envoi . ")"; $mail->body = "Données urgences (" . date_envoi . ")"; $mail->from = Erreurs_MailApp; $mail->attach($contenuFic, $nom_fic . '.gpg'); if ($mail->sendXham()) { $this->message .= "<font color=\"green\">L'envoi du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>"; } else { $this->message .= "<font color=\"red\">L'envoi du fichier ({$nom_fic_export}.gpg) a échoué.<br/></font>"; } } else { rename($nom_fic_export, chemin . 'ok/' . $nom_fic); $this->message .= "Connexion au serveur FTP '" . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . "' -> "; $con = ftp_connect($options->getOption('RPU_FTP_Host')); if (!$con) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible de se connecter au serveur "' . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . '"'); } else { $this->message .= "<font color='green'>OK</font><br/>"; $this->message .= "Authentification au serveur FTP avec l'utilisateur '" . $options->getOption('RPU_FTP_User') . "' -> "; $log = ftp_login($con, $options->getOption('RPU_FTP_User'), $options->getOption('RPU_FTP_Pass')); if (!$log) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible de se connecter au serveur avec l\'utilisateur "' . $options->getOption('RPU_FTP_User') . '"'); } else { $this->message .= "<font color='green'>OK</font><br/>"; $r = opendir('rpu/arh/'); while ($fic = readdir($r)) { if ($fic != "." and $fic != ".." and $fic != "ok" and $fic != "logs" and $fic != 'arh') { $this->message .= "Envoi du fichier '{$fic}' -> "; $put = ftp_put($con, $fic, chemin . $fic, FTP_BINARY); if (!$put) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible d\'envoyer le fichier "' . $fic . '".'); } else { $this->message .= "<font color='green'>OK</font><br/>"; rename(chemin . $fic, chemin . 'ok/' . $fic); } } } } } } $this->af = $affichage . "<br/>" . $this->message; } else { $this->af .= "Aucun patient retourné par la requête : envoi impossible."; } }
function genListe() { global $session; $res = $this->genRequete(); //eko ( $res ) ; //print affTab ( $res ) ; $list = new ListMaker("template/RadioListe.html"); $navi = $session->genNavi("Radio"); $list->addUserVar('navi', $navi); $list->addUrlVar('navi', $navi); $list->addUserVar('typeListe', $_SESSION['typeListe']); $list->addUrlVar('typeListe', $_SESSION['typeListe']); $list->setSortColumn('col0', 'UF', 'uf'); $list->setSortColumn('col1', 'Patient', 'nomD'); $list->setSortColumn('col2', 'Age', 'ageD'); $list->setSortColumn('col3', 'Arrivée', 'arriveeD'); $list->setSortColumn('col4', 'Soignants', 'soignants'); $list->setSortColumn('col5', 'Motif', 'motif'); $list->setSortColumn('col6', 'Date demande', 'demande'); $list->setSortColumn('col7', 'Description', 'description'); $list->setSortColumn('col8', 'Etat', 'etatD'); $list->setSortColumn('col9', 'Détail', 'detail'); $list->setdefaultSort('col8'); $item = array(); $dureead = new clDuree(); $date = new clDate(); // Parcours de la liste des patients récupérés par la requête. for ($i = 0; isset($res['idradio'][$i]); $i++) { $ras = $this->getInfosPatient($res['idpatient'][$i], $res['idapplication'][$i]); if ($session->getDroit("Liste_Radio", "m")) { $j = XhamTools::genAjax('onClick', 'mod', 'navi=' . $session->genNavi('Ajax', 'modRadios', $res['idradio'][$i])); } else { $j = ''; } $item['js'] = $j; $item['ItemColor'] = 'rad' . $res['etat'][$i]; $item['etatD'] = $res['etat'][$i]; switch ($res['etat'][$i]) { case 'a': $date->setDate($res['dt_creation'][$i]); $duree = $dureead->getAge($date->getDatetime()); if (!$dureead->invertNegatif()) { $item['etat'] = 'Non pris en charge<br/>Depuis ' . $duree; } else { $temp = explode(" ", $res['dt_creation'][$i]); list($annee, $mois, $jour) = explode("-", $temp[0]); $item['etat'] = 'A prendre en charge<br/>Dans ' . $dureead->getAge() . "<br>le " . $jour . "/" . $mois . "/" . $annee . " à " . $temp[1]; $item['ItemColor'] = 'rad' . 'elephant'; } break; case 'b': $date->setDate($res['dt_pec'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'Pris en charge<br/>Depuis ' . $duree; break; case 'c': $date->setDate($res['dt_encours'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'En cours<br/>Depuis ' . $duree; break; case 'd': $date->setDate($res['dt_fin'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'Terminé<br/>Depuis ' . $duree; break; } // Calcul du sexe de la personne... (?!). switch ($ras['sexe'][0]) { case 'M': $img = URLIMG . "homme.png"; break; case 'F': $img = URLIMG . "femme.png"; break; default: $img = URLIMG . "Indefini.png"; break; } $item['sexe'] = "<img src=\"{$img}\" alt=\"" . $ras['sexe'][0] . "\" />"; // Calcul de l'âge. $date = new clDate($ras['dt_naissance'][0]); $age = new clDuree($date->getTimestamp()); $str = $age->getAgePrecis($date->getTimestamp()); if ($ras['dt_naissance'][0] != "0000-00-00 00:00:00") { $item['age'] = $str; $item['ageD'] = $date->getTimestamp(); } else { $item['age'] = VIDEDEFAUT; $item['ageD'] = VIDEDEFAUT; } global $ufs; $item['uf'] = isset($ufs[$ras['uf'][0]]) ? $ufs[$ras['uf'][0]] : $ras['uf'][0]; if ($ras['dt_admission'][0] != "0000-00-00 00:00:00") { $datead = new clDate($ras['dt_admission'][0]); $dateSimple = $datead->getDate("d-m-Y"); $dateHeure = $datead->getDate("H\\hi"); $item['arrivee'] = $dateSimple . "<br />" . $dateHeure; $item['arriveeD'] = $datead->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } // Médecin et IDE. switch ($res['idapplication'][$i]) { case '1': if ($ras['medecin_urgences'][0]) { $med = "Dr " . $ras['medecin_urgences'][0]; } else { $med = VIDEDEFAUT; } if ($ras['ide'][0]) { $ide = "Ide " . $ras['ide'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['salle_examen'][0]) { $sal = $ras['salle_examen'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; case '24': if ($ras['medecin'][0]) { $med = "Dr " . $ras['medecin'][0]; } else { $med = VIDEDEFAUT; } if ($ras['chirurgien'][0]) { $ide = "Chir " . $ras['chirurgie'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['chambre'][0]) { $sal = $ras['chambre'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; default: if ($ras['medecin_urgences'][0]) { $med = "Dr " . $ras['medecin_urgences'][0]; } else { $med = VIDEDEFAUT; } if ($ras['ide'][0]) { $ide = "Ide " . $ras['ide'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['salle_examen'][0]) { $sal = $ras['salle_examen'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; } // Motif de recours. if ($ras['motif_recours'][0]) { $item['motif'] = $ras['motif_recours'][0]; } else { $item['motif'] = VIDEDEFAUT; } // Patient $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]); // Concaténation du nom et du prénom. $item['patient'] = "<span " . clPatient::genInfoBulle($ras, 0, $res['idapplication'][$i]) . ">" . strtoupper($ras['nom'][0]) . "</span><br />" . ucfirst(strtolower($ras['prenom'][0]) . "<br/>" . $ras['nsej'][0]); if ($res['dt_creation'][$i] != "0000-00-00 00:00:00") { $datead = new clDate($res['dt_creation'][$i]); $dateSimple = $datead->getDate("d-m-Y"); $dateHeure = $datead->getDate("H\\hi"); $item['demande'] = $dateSimple . "<br />" . $dateHeure; $item['demandeD'] = $datead->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } $parp = '&etape=' . $res['etat'][$i] . '&idradio=' . $res['idradio'][$i]; //$item['detail'] = "<a onmouseout=\"request('".URLNAVI."QWpheHxnZXRSYWRpb3M=',null,'getRadios') ;\" href=\"".URLNAVI.$session->genNavi("Radio","",$res['idpatient'][$i],$ras['idu'][0],$ras['nsej'][0])."$parp&Formulaire2print=radio&FormX_ext_goto_=".$res['id_instance'][$i]."&act_print=1\" target=\"_blank\">" ; $jo = 'onClick="setWait(\'navigation\');location.reload();"'; //$jo = 'onClick=""' ; $item['detail'] = "<a {$jo} href=\"" . URLNAVI . $session->genNavi("Radio", "", $res['idpatient'][$i], $ras['idu'][0], $ras['nsej'][0]) . "{$parp}&Formulaire2print=radio&FormX_ext_goto_=" . $res['id_instance'][$i] . "&act_print=1\" target=\"_blank\">"; $item['detail'] .= "<img src=\"images/pdf.png\" alt=\"Afficher le PDF\"/></a>"; $rel = new clRequete(BDD, '', '', MYSQL_HOST, MYSQL_USER, MYSQL_PASS); $rese = $rel->exec_requete("select * from radios_enquetes where idradio=" . $res['idradio'][$i], 'resultquery'); global $pi; if ($rese['INDIC_SVC'][2]) { if ($rese['date'][0] == '0000-00-00 00:00:00') { $img = 'formko.gif'; } else { $img = 'formok.gif'; } if ($session->getDroit("Liste_Radio", "m")) { $j = XhamTools::genAjax('onClick', 'mod', 'navi=' . $session->genNavi('Ajax', 'modRadiosEnquetes', $res['idradio'][$i])); } else { $j = ''; } $item['detail'] .= ' <img ' . $j . ' src="images/' . $img . '" ' . $pi->genInfoBulle("Ouvrir le formulaire d'enquête.") . ' style="cursor: pointer; pointer: hand;" />'; } if ($res['retour'][$i]) { $dateR = new clDate($res['dt_retour'][$i]); $retour = '<b>Formulaire de retour saisi par les urgences :</b>'; $retour .= '<br/><u>Auteur :</u> ' . $res['retourid'][$i]; $retour .= '<br/><u>Date :</u> ' . $dateR->getDate('d/m/Y H:i:s'); switch ($res['retour'][$i]) { case 'Oui': $resultat = 'Anomalie détectée avec cette radio.'; break; case 'Non': $resultat = 'Aucune anomalie détectée avec cette radio.'; break; case 'NR': $resultat = "L'utilisateur signale que cette radio n'a pas été réalisée."; break; case 'NI': $resultat = "L'utilisateur n'a pas interprété cette radio."; break; default: $resultat = "L'utilisateur n'a pas rempli le formulaire."; break; } $retour .= '<br/><u>Résultat :</u> ' . $resultat; $retour .= '<br/><u>Commentaire :</u>' . ($res['commentaire'][$i] ? $res['commentaire'][$i] : 'Aucun commentaire.'); $item['detail'] .= " <img src=\"" . URLIMGOBS . "\" " . $pi->genInfoBulle($retour) . " alt=\"Comm.\" />"; } $html = $this->getDetailRadio($res, $i); $item['description'] = $html; $ok = 0; switch ($_SESSION['typeListe']) { case 'all': $ok = 1; break; case 'alm': $ok = 1; break; case 'd': $ok = 1; break; case 'rall': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'ralm': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'rd': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'eall': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'ealm': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'ed': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'sall': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'salm': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'sd': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'ec': $nb = 200; $ok = 1; break; case 'et': $nb = 200; $ok = 1; break; default: $nb = 50; $ok = 1; break; } if ($ok) { $list->addItem($item); } } // Récupération du code HTML généré. return $list->getList($nb); }
function createActes($res, $j = '', $tous = '', $id = '') { //eko($res); //eko($id); global $options; if (!$tous) { $deb = $j; $max = $j; } else { $deb = 0; $max = $res['INDIC_SVC'][2] - 1; } $mod = new ModeliXe("HprimXMLActes.html"); $mod->SetModeliXe(); $tabActe = explode('|', XhamTools::sansAccent($res['CONTENU'][$deb])); $type = $res['TYPE'][$deb]; $idpass = $tabActe[0]; $idu = $tabActe[1]; $nomu = $tabActe[2]; $pren = $tabActe[3]; $sexe = $tabActe[4]; $dtnai = $tabActe[5]; $dtdem = $tabActe[6]; $hhdem = $tabActe[7]; $ufd = $tabActe[8]; $action = $tabActe[9]; $date = new clDate($dtdem . ' ' . $hhdem); $date = new clDate(); if ($options->getOption("HprimXML_UF")) { $ufr = $options->getOption("HprimXML_UF"); $ufd = $options->getOption("HprimXML_UF"); } if ($options->getOption('HprimXML_AttributsESA')) { $mod->MxText("attributsesa", ' version="1.03a" xsi:schemaLocation="http://www.hprim.org/hprimXML msgEvenementsServeurActes103a.xsd" xmlns="http://www.hprim.org/hprimXML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'); } else { $mod->MxText("attributsesa", ""); } if ($options->getOption('HprimXML_EnvoiGroupeParIntervenant')) { if ($options->getOption('HprimXML_EmetInterv') == 'ID') { $emetti = $id + 1; } else { $emetti = $res['DISCR'][$deb]; } } else { if ($options->getOption('HprimXML_EmetInterv') == 'ID') { $emetti = $res['ID'][$deb]; } elseif ($options->getOption('HprimXML_EmetInterv')) { $emetti = $options->getOption('HprimXML_EmetInterv'); } else { $emetti = $res['DISCR'][$deb]; } } if ($options->getOption('HprimXML_EnvoiGroupeParIntervenant')) { if ($options->getOption('HprimXML_EmetInterv') == 'ID') { $mod->MxText('identifiantMessage', $id); //eko("avignon"); } else { $mod->MxText('identifiantMessage', $res['ID'][$deb]); } } else { $mod->MxText('identifiantMessage', $res['ID'][$deb]); // eko("reste"); } $mod->MxText('codeEmetteur', $options->getOption('HprimXML_Emet') ? $options->getOption('HprimXML_Emet') : $res['DISCR'][$deb]); $mod->MxText('codeDestinataire', $options->getOption('HprimXML_Dest')); $mod->MxText('patientEmetteur', $idu); $mod->MxText('patientRecepteur', $idu); $mod->MxText('sexe', $sexe); $mod->MxText('patientNom', $nomu); $mod->MxText('patientPrenom', $pren); if ($dtnai != "00/00/0000") { $mod->MxText('patientNaissance', $dtnai); } else { $mod->MxText('patientNaissance', ""); } $pati = new clPatient($res['DISCR'][$deb], ''); if (!$pati->getID()) { $pati = new clPatient($res['DISCR'][$deb], 'Sortis'); } //$pati -> debugInfos ( ) ; //eko ( "UUUUUUUUUUUUUUUUUUUUUUUUFFFFFFFFFFFFFFFFFF : ".$pati->getInformation('uf').' pour '.$pati->getDateNaissance() ) ; // Correction date foireuse module ccam $datadmi = new clDate($pati->getDateAdmission()); $datexam = new clDate($pati->getDateExamen()); $datsort = new clDate($pati->getDateSortie()); if ($options->getOption("ChoixHeureAffectationActes") == "Heure d'admission") { $datdema = $datadmi; } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure d'examen") { $datdema = $datexam; } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure de sorti") { $datdema = $datsort; } else { if ($datadmi->getDatetime() != '1999-12-31 00:00:00' and $datsort->getDatetime() != '1999-12-31 00:00:00') { $time = (int) ($datadmi->getTimestamp() / 2) + $datsort->getTimestamp() / 2; } elseif ($datadmi->getDatetime() != '1999-12-31 00:00:00') { $time = $datadmi->getTimestamp(); } else { $time = $datsort->getTimestamp(); } $datdema = new clDate($time); $datmed = new clDate($time); //eko ( $datadmi->getTimestamp ( ).' + '.$datsort->getTimestamp ( ).' = '.$time.' = '.$datdema -> getTimestamp ( ) ) ; //eko ( $datadmi->getDatetime ( ).' + '.$datsort->getDatetime ( ).' = '.$time.' = '.$datdema -> getDatetime ( ) ) ; } $dtdem = $datdema->getDate('Y-m-d'); $hhdem = $datdema->getDate('H:i:s'); if ($options->getOption('HprimXML_DateProduction') == 'Heure médiane') { $date = $datmed; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure admission') { $date = $datadmi; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure examen') { $date = $datadmi; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure sortie') { $date = $datsort; } if ($options->getOption('HprimXML_DateT')) { $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s")); } else { $mod->MxText('dateHeureProduction', $date->getDatetime()); } if ($options->getOption('HprimXML_DateVenue') == 'Heure médiane') { $dateve = $datmed; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure admission') { $dateve = $datadmi; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure examen') { $dateve = $datadmi; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure sortie') { $dateve = $datsort; } else { $dateve = $datdema; } $dtven = $dateve->getDate('Y-m-d'); $hhven = $dateve->getDate('H:i:s'); $mod->MxText('venueEmetteur', $idpass); $mod->MxText('venueRecepteur', $idpass); $mod->MxText('venueDate', $dtven); $mod->MxText('venueHeure', $hhven); $mod->MxText('interventionDate', $dtdem); $mod->MxText('interventionHeure', $hhdem); $mod->MxText('interventionEmetteur', $emetti); $mod->MxText('interventionDemandeDate', $dtdem); $mod->MxText('interventionDemandeHeure', $hhdem); $mod->MxText('interventionUF', $pati->getUF() ? $pati->getUF() : $ufr); $nbngap = 0; $nbccam = 0; $datenai = new clDate($pati->getDateNaissance()); $duree = new clDuree($datenai->getTimestamp()); $duree->getDuree($datenai->getTimestamp()); $ageannees = $duree->getYears(); //eko ( $ageannees ) ; for ($i = $deb; $i <= $max; $i++) { $tabActe = explode('|', XhamTools::sansAccent($res['CONTENU'][$i])); $type = $res['TYPE'][$i]; $idpass = $tabActe[0]; $idu = $tabActe[1]; $nomu = $tabActe[2]; $pren = $tabActe[3]; $sexe = $tabActe[4]; $dtnai = $tabActe[5]; $dtdem = $tabActe[6]; $hhdem = $tabActe[7]; $ufd = $tabActe[8]; $action = $tabActe[9]; $idact = $tabActe[10]; $cdccam = $tabActe[11]; $cddiags = $tabActe[12]; $cdacti = $tabActe[13]; $cdphase = $tabActe[14]; $dtr = $tabActe[15]; $hhr = $tabActe[16]; $nomumed = $tabActe[17]; $prenmed = $tabActe[18]; $adeli = $tabActe[19]; $ufr = $tabActe[20]; $modif = $tabActe[21]; $ngapl = $tabActe[22]; $ngapc = $tabActe[23]; $factu = $tabActe[24]; $cdasso = $tabActe[25]; $nuitjf = $tabActe[26]; $tabm = explode('~', $modif); if ($options->getOption("HprimXML_UF")) { $ufr = $options->getOption("HprimXML_UF"); $ufd = $options->getOption("HprimXML_UF"); } if (!$this->adeliMedecin) { if ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI9') { $this->adeliMedecin = '<code>' . sprintf('%09d', $adeli) . '</code>'; } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED') { $this->adeliMedecin = '<code>' . $nomumed . ' ' . $prenmed . '</code>'; } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED10') { $this->adeliMedecin = '<code>' . substr($nomumed . ' ' . $prenmed, 0, 10) . '</code>'; } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI') { $this->adeliMedecin = '<code>' . $adeli . '</code>'; } else { $this->adeliMedecin = ''; } } elseif (!ereg('<code>', $this->adeliMedecin)) { $this->adeliMedecin = '<code>' . $adeli . '</code>'; } if ($options->getOption("HprimXML_CodeMedecin") == 'ADELI') { $codeade = '<code>' . $adeli . '</code>'; } elseif ($options->getOption("HprimXML_CodeMedecin") == 'NOMMED') { $codeade = '<code>' . $nomumed . '</code>'; } elseif ($options->getOption("HprimXML_CodeMedecin") == 'ADELI9') { $codeade = '<code>' . sprintf('%09d', $adeli) . '</code>'; } elseif ($options->getOption("HprimXML_CodeMedecin") == 'VIDE') { $codeade = ''; } else { $codeade = '<code>' . 'x' . '</code>'; } //eko ( "CODE MEDECIN : $codeade" ) ; if ($options->getOption("HprimXML_ExecPrinc")) { $medExec = ' principal="oui"'; } else { $medExec = ''; } if ($options->getOption('HprimXML_StatutFT')) { $modStatut = ' statut="ft"'; } else { $modStatut = ''; } if ($action == 'creation') { $action = utf8_encode('création'); } if ($nuitjf == 'F') { $isFerie = "oui"; } else { // Encore une gestion supplémentaire d'un bug du module CACAM if ($type == 'NGAP' and $ngapl == 'AMI' and $datdema->getDate('w') == 6 and $datdema->getDate('H') >= 8) { $isFerie = "oui"; } else { $isFerie = "non"; } } if ($nuitjf == 'N') { $isNuit = '1t'; } elseif ($nuitjf == 'NM') { $isNuit = '2t'; } else { $isNuit = 'non'; } $listeTraited[$res['ID'][$i]] = $res['ID'][$i]; if ($options->getOption('LettreCleCSPsy') and $ngapl == 'CNPSY') { $ngapl = $options->getOption('LettreCleCSPsy'); } //$mod -> MxText ( 'identifiantMessage', $res['ID'][$deb] ) ; // Correction date foireuse module ccam $dtdem = $datdema->getDate('Y-m-d'); $hhdem = $datdema->getDate('H:i:s'); if ($type == 'NGAP') { if ($ngapl == 'MNO' and $ageannees > 2) { $erreurngap = 1; } if (!($ngapl == 'AMI' and $factu == 'non') and !$erreurngap) { if ($ngapl == 'C' or $ngapl == 'CS') { $tri = '2.'; } else { $tri = '3.'; } $mod->MxText('codeAdeliMedecin', $this->codeMedecinUrgentiste); $mod->MxText('actesngap.ngap.action', $action); $mod->MxText('actesngap.ngap.facturable', $factu); if ($ngapl == 'C' and isset($this->deqp[$pati->getID()]['U'])) { $isNuit = 'non'; } $mod->MxText('actesngap.ngap.executionNuit', $isNuit); if ($ngapl == 'C' and isset($this->deqp[$pati->getID()]['F'])) { $isFerie = 'non'; } $mod->MxText('actesngap.ngap.executionDimancheJourFerie', $isFerie); $mod->MxText('actesngap.ngap.ngapEmetteur', $idact); $mod->MxText('actesngap.ngap.lettreCle', $ngapl); $mod->MxText('actesngap.ngap.coefficient', $ngapc); $mod->MxText('actesngap.ngap.ngapDate', $dtdem); $mod->MxText('actesngap.ngap.ngapHeure', $hhdem); $mod->MxText('actesngap.ngap.medecinADELI', $adeli); $mod->MxText('actesngap.ngap.medecinCode', $codeade); $mod->MxText('actesngap.ngap.medecinNom', $nomumed); if ($ngapl == 'CS') { $mod->MxText('actesngap.ngap.medecinUF', $ufr); } else { $mod->MxText('actesngap.ngap.medecinUF', $pati->getUF() ? $pati->getUF() : $ufr); } $mod->MxBloc('actesngap.ngap', 'loop'); $nbngap++; if ($ngapl == 'ATU') { $repfic = "atuxml/"; } else { $repfic = "ngapxml/"; } } $erreurngap = 0; } elseif ($type == 'CCAM') { $tri = '1.'; $mod->MxText('codeAdeliMedecin', $this->codeMedecinUrgentiste); $mod->MxText('actesccam.ccam.action', $action); $mod->MxText('actesccam.ccam.ccamEmetteur', $idact); if ($options->getOption('HprimXML_Recepteur')) { $mod->MxText('actesccam.ccam.ccamRecepteur', '<recepteur>' . $options->getOption('HprimXML_Recepteur') . '</recepteur'); } else { $mod->MxText('actesccam.ccam.ccamRecepteur', ''); } $mod->MxText('actesccam.ccam.codeActe', $cdccam); $mod->MxText('actesccam.ccam.codeActivite', $cdacti); $mod->MxText('actesccam.ccam.codePhase', $cdphase); $mod->MxText('actesccam.ccam.ccamDate', $dtdem); $mod->MxText('actesccam.ccam.ccamHeure', $hhdem); $mod->MxText('actesccam.ccam.medExec', $medExec); $mod->MxText('actesccam.ccam.medecinADELI', $adeli); $mod->MxText('actesccam.ccam.medecinCode', $codeade); $mod->MxText('actesccam.ccam.medecinNom', $nomumed); //$mod -> MxText ( 'actesccam.ccam.medecinUF', $ufr ) ; $mod->MxText('actesccam.ccam.medecinUF', $pati->getUF() ? $pati->getUF() : $ufr); //if ( $options -> getOption ( 'HprimXML_AssoNonVide' ) ) $asso = ($cdasso==''?1:$cdasso) ; //else $asso = $cdasso ; if ($cdasso) { $asso = '<codeAssociationNonPrevue>' . $cdasso . '</codeAssociationNonPrevue>'; } else { $asso = ''; } $mod->MxText('actesccam.ccam.codeAssociationNonPrevue', $asso); $nbMod = 0; for ($k = 0; isset($tabm[$k]); $k++) { if ($tabm[$k]) { $mod->MxText('actesccam.ccam.modificateur.modificateur', $tabm[$k]); $mod->MxText('actesccam.ccam.modificateur.modStatut', $modStatut); $mod->MxBloc('actesccam.ccam.modificateur', 'loop'); if ($cdccam == 'DEQP003') { if ($tabm[$k] == 'U') { $this->deqp[$pati->getID()]['U'] = 1; } if ($tabm[$k] == 'P') { $this->deqp[$pati->getID()]['U'] = 1; } if ($tabm[$k] == 'S') { $this->deqp[$pati->getID()]['U'] = 1; } if ($tabm[$k] == 'F') { $this->deqp[$pati->getID()]['F'] = 1; } } $nbMod++; } } if ($nbMod == 0) { $mod->MxBloc('actesccam.ccam.modificateur', 'delete'); } $mod->MxBloc('actesccam.ccam', 'loop'); $nbccam++; $repfic = "ccamxml/"; } } if ($nbngap == 0) { $mod->MxBloc('actesngap', 'delete'); } if ($nbccam == 0) { $mod->MxBloc('actesccam', 'delete'); } if ($options->getOption("HprimXML_tri_CCAM_CCS_NGAP")) { $numfic = $tri . $res['ID'][$deb]; } else { $numfic = $res['ID'][$deb]; } if ($options->getOption('HprimXML_NomFic')) { $nomFic = $options->getOption('HprimXML_NomFic') . '_' . $numfic . ''; } else { $nomFic = 'fic' . $options->getOption('HprimXML_ChaineFic') . 'TV2_' . $numfic . ''; } if ($options->getOption('HprimXML_NomFic') and $options->getOption('HprimXML_NomModulo')) { $nomFic = $options->getOption('HprimXML_NomFic') . sprintf('%03d', $res['ID'][$deb] % 1000); } $num = $res['ID'][$deb]; if (!$pati->getManuel()) { $this->genFile($mod->MxWrite("1"), $num, $nomFic, $listeTraited, $repfic); } }