function sortie_carpentras(clPatient $patient) { //suppression des instances de formulaires $res = clFoRmXtOoLs::ListFromIds($patient->getIDU()); if (is_array($res) && $res['INDIC_SVC'][2] > 0) { for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { //formulaires à effacer if (in_array($res['idformx'][$i], array('CHC_Fiche_Administrative', 'CHC_Fiche_Examen_Medical', 'CHC_Fiche_IAO-IDE', 'CHC_Fiche_Suivi'))) { //mettre ici les id de formulaires à effacer $idInstance = $res['id_instance'][$i]; formxTools::simpleRemoveInstance($idInstance); } //formulaires à cloturer if (in_array($res['idformx'][$i], array('CHC_Synthese'))) { //mettre ici les id de formulaires à effacer $idInstance = $res['id_instance'][$i]; $formx = new clFoRmX_manip($patient->getIDU(), 'NO_POST_THREAT'); $formx->loadInstance($idInstance); $formx->close(); } } } //suppression des variables globales $tabVariables = array('Fiche_Administrative_Rep_Legal', 'ALD', 'Fiche_Administrative_Pansement', 'Fiche_Administrative_Non_Venu', 'Fiche_Administrative_Orientation', 'Fiche_Administrative_Etablissement', 'Fiche_Administrative_Documents', 'Fiche_Administrative_AT', 'Fiche_Administrative_date_AT', 'Fiche_Administrative_heure_AT', 'Fiche_Administrative_minute_AT', 'IDE_CTE_ARRIVEE', 'DATE_CTE_ARRIVEE', 'HEURE_CTE_ARRIVEE', 'PA_BG_CTE_ARRIVEE', 'PA_BD_CTE_ARRIVEE', 'FC_CTE_ARRIVEE', 'TEMP_CTE_ARRIVEE', 'HB_CTE_ARRIVEE', 'SAO2_CTE_ARRIVEE', 'DEXTRO_CTE_ARRIVEE', 'EVA_CTE_ARRIVEE', 'FR_CTE_ARRIVEE', 'ACTES_CTE_ARRIVEE', 'Fiche_IAO_Nom_IDE', 'Fiche_IAO_Jour_Consultation', 'Fiche_IAO_Heure_Consultation', 'Fiche_IAO_Accompagnant', 'Fiche_IAO_qui', 'Fiche_IAO_lettre_medecin', 'Fiche_IAO_ordonnance', 'Fiche_IAO_Traitement', 'Fiche_IAO_VAT', 'Fiche_IAO_Tetanos', 'Fiche_IAO_Bandelette_Urinaire', 'IAO_Glucose', 'IAO_Acetone', 'IAO_Sang', 'IAO_PH', 'IAO_Proteine', 'IAO_Nitrite', 'IAO_Leuco', 'Fiche_IAO_Actes', 'DATE_EXAM', 'HEURE_EXAM', 'ACTES_CTE_ARRIVEE', 'ATCD', 'ALLERGIES', 'TRAITEMENTS', 'OBSERVATIONS_MEDICALES'); $obGlobals = formxTools::globalsLoad($patient->getIDU()); foreach ($tabVariables as $variable) { $obGlobals->del($variable); } $obGlobals->save(); }
function contraintes_carpentras(clPatient $obPatient) { //on parcourt les formulaires fusions carpentras jusqu'à en trouver un avec le IDPASS en cours foreach (formxTools::peerGetFromIdIdu('CHC_Synthese', $obPatient->getIDU()) as $formx) { if ($formx->getFormVar('Val_IDENT_NSEJPatient') == $obPatient->getNSej()) { return array('isContrainte' => false); } } return array('isContrainte' => true, 'titreContrainte' => "Formulaire Synthèse", 'messageContrainte' => "Vous devez créer un formulaire de synthèse."); }
/** * contrainte sur les diagnostics interdits * @param clPatient $obPatient * @return array */ function contraintes_dp_cim10(clPatient $obPatient) { //le patient est il hospitalisé ou UHCD ? if ($obPatient->isInUHCD() || $obPatient->isHospitalise()) { $codeDiagPpal = $obPatient->getCodeDiagnostic(); $libDiagPpal = $obPatient->getLibelleDiagnostic(); //on récupère les diags interdits $obRequete = new clRequete(CCAM_BDD, 'codescim10interdits'); $tabDiagsIntedits = $obRequete->exec_requete("SELECT * FROM codescim10interdits ", 'tab'); foreach ($tabDiagsIntedits as $tabInfoDiag) { if ($tabInfoDiag['code'] == $codeDiagPpal) { return array('isContrainte' => true, 'titreContrainte' => "Diagnostic Interdit", 'messageContrainte' => "Le diag principal {$codeDiagPpal} {$libDiagPpal} est interdit en cas d'hospitalisation ou d'UHCD "); } } } return array('isContrainte' => false); }
function sortie_carpentras(clPatient $patient) { //suppression des instances de formulaires $res = clFoRmXtOoLs::ListFromIds($patient->getIDU()); if (is_array($res) && $res['INDIC_SVC'][2] > 0) { for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { if (in_array($res['idformx'][$i], array('tutorial', 'bachibouzouk', 'arrosoir'))) { //mettre ici les id de formulaires à effacer $idInstance = $res['id_instance'][$i]; formxTools::simpleRemoveInstance($idInstance); } } } //suppression des variables globales $pGlobals = formxTools::globalsLoad($patient->getIDU()); formxTools::globalsDelVar($pGlobals, 'pipou'); formxTools::globalsDelVar($pGlobals, 'pipoux'); formxTools::globalsDelVar($pGlobals, 'papux'); formxTools::globalsDelVar($pGlobals, 'gnafouix'); formxTools::globalsSave($pGlobals); }
function genListe($res) { // Chargement du template ModeliXe. $mod = new ModeliXe("recherchePatients.html"); $mod->SetModeliXe(); for ($i = 0; isset($res['idpatient'][$i]) and $i < 29; $i++) { $dateN = new clDate($res['dt_naissance'][$i]); $mod->MxText("patient.ib", clPatient::genInfoBulle($res, $i) . " onClick=\"document.forms.creationPatient.nom.value='" . $res['nom'][$i] . "';" . "document.forms.creationPatient.prenom.value='" . $res['prenom'][$i] . "';" . "document.forms.creationPatient.sexe.value='" . $res['sexe'][$i] . "';" . "document.forms.creationPatient.naissance.value='" . $dateN->getDate("d/m/Y") . "';" . "document.forms.creationPatient.adresse.value='" . $res['adresse_libre'][$i] . "';" . "document.forms.creationPatient.cp.value='" . $res['adresse_cp'][$i] . "';" . "document.forms.creationPatient.ville.value='" . $res['adresse_ville'][$i] . "';" . "document.forms.creationPatient.telephone.value='" . $res['telephone'][$i] . "';" . "" . "" . "\""); $mod->MxText("patient.nom", $res['nom'][$i]); $mod->MxText("patient.prenom", $res['prenom'][$i]); $mod->MxText("patient.naissance", $dateN->getDate('d/m/Y')); if (strlen($res['adresse_libre'][$i]) > 46) { $trr = '...'; } else { $trr = ''; } $mod->MxText("patient.adresse", substr($res['adresse_libre'][$i], 0, 46) . $trr); $mod->MxBloc("patient", "loop"); } $this->af .= $mod->MxWrite("1"); }
public static function genTabinfoIdPassage($idPassage) { $patient = clPatient::getObjPatientFromIdPassage($idPassage); if ($patient) { $ret = $patient->getMiniExport(); } else { $ret = array(); $ret['sexe'] = ''; $ret['date_naissance'] = ''; $ret['provenance'] = ''; $ret['adresseur'] = ''; $ret['mode_arrivee'] = ''; $ret['date_admission'] = ''; $ret['DateExamen'] = ''; $ret['CodeDiagnostic'] = ''; $ret['TypeDestAttendue'] = ''; $ret['mode_admission'] = 'patient_supprime'; $ret['DateSortie'] = ''; } return $ret; }
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 genPat($idpatient) { global $session; global $options; // Si un idpatient est tranmis, alors on récupère ses informations // à l'aide de la classe Patient. if ($idpatient) { //concerne la recuperation d'une instance de la classe FoRmX gerant les actions if ($options->getOption("use_formx")) { global $actions; $actions = new clFoRmX($idpatient, 'NO_POST_THREAT'); } $patient = new clPatient($idpatient, $session->getNavi(5)); $pat[NMA] = $patient->getNom(); $pat[PRE] = $patient->getPrenom(); $pat[DNA] = $patient->getDateNaissance(); $pat[SEX] = $patient->getSexe(); $date = new clDate($patient->getDateAdmission()); $pat[DTA] = $date->getDate($options->getOption("Documents Date")); $pat[HEA] = $date->getDate("H:i"); $pat[MED] = $patient->getMedecin(); $pat[DHS] = $patient->getDateSortie(); $pat[DHE] = $patient->getDateExamen(); // Sinon, nous renseignons avec les valeurs par défaut. } else { $pat[NMA] = "Bon"; $pat[PRE] = "Jean"; $date = new clDate("1981-12-24 22:30:00"); $pat[DNA] = $date->getDate($options->getOption("Documents Date")); $pat[SEX] = "1"; $date = new clDate(); $pat[DTA] = $date->getDate($options->getOption("Documents Date")); $pat[HEA] = $date->getDate("H:i"); $pat[MED] = "Testeur"; $pat[DHS] = $date->getDate($options->getOption("Documents Date")); $pat[DHE] = $date->getDate($options->getOption("Documents Date")); } // On renvoie le tableau généré. return $pat; }
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 getPatientsAutomatiques() { // On cherche dans la table des présents tous les patients entrés automatiquement. $param['table'] = PPRESENTS; $param['cw'] = "WHERE manuel='0' " . $this->filtre . " ORDER BY nom"; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); //newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; // On parcourt les patients trouvés. for ($i = 0; isset($res['idpatient'][$i]); $i++) { // Ajout du patient au tableau. $identifiant = $res['idpatient'][$i] . "|Presents\" " . clPatient::genInfoBulle($res, $i); if ($res['sexe'][$i] != "M") { $e = "e"; } else { $e = ''; } $tab[$identifiant] = "(" . $res['sexe'][$i] . ") " . ucfirst(strtolower($res['prenom'][$i])) . " " . strtoupper($res['nom'][$i]) . " (Présent{$e})"; } // On cherche dans la table des sortis tous les patients entrés automatiquement. $param['table'] = PSORTIS; $param['cw'] = "WHERE manuel='0' " . $this->filtre . " ORDER BY nom"; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); //newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; // On parcourt les patients trouvés. for ($i = 0; isset($res['idpatient'][$i]); $i++) { // Ajout du patient au tableau. $identifiant = $res['idpatient'][$i] . "|Sortis\" " . clPatient::genInfoBulle($res, $i); if ($res['sexe'][$i] != "M") { $e = "e"; } else { $e = ''; } $tab[$identifiant] = "(" . $res['sexe'][$i] . ") " . ucfirst(strtolower($res['prenom'][$i])) . " " . strtoupper($res['nom'][$i]) . " (Sorti{$e})"; } // On fait en sorte de retourner un tableau. if (is_array($tab)) { return $tab; } else { return array(); } }
function hasRegExp(clPatient $patient) { $val = $patient->getInformation((string) $this->getAttributeCond('item')); $reg = (string) $this->getSxDef(); if ($val and ereg($reg, $val)) { return true; } return false; }
function writeBALall($tabIdPatient) { global $fusion; global $table_patient_manuel; global $table_patient_automatique; //newfct(gen_affiche_tableau,$tabIdPatient); for ($ind = 0; $ind <= 1; $ind++) { if ($ind == 0) { //controleActesPresents $this->controleActesPresents($tabIdPatient[$ind + 1]); // unset($paramRq); $paramRq[cw] = "idEvent=" . $tabIdPatient[$ind + 1] . " and idDomaine=" . CCAM_IDDOMAINE; $req = new clResultQuery(); $res = $req->Execute("Fichier", "CCAM_getActesDiagsCotation", $paramRq, "ResultQuery"); $dateDemande = $res["dateDemande"][0]; //eko($res); // Mise à jour des données de $tabIdPatient[$ind] // Prendre le nom du medecin et son code ADELI de $tabIdPatient[$ind+1] // On prend le nom du medecin du patient $param[cw] = "WHERE idpatient='" . $tabIdPatient[$ind + 1] . "'"; $param[table] = $table_patient_manuel; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // On prend le numero ADELI unset($param); $param[nomitem] = $res["medecin_urgences"][0]; $req = new clResultQuery(); $res2 = $req->Execute("Fichier", "getMatriculeMedecin", $param, "ResultQuery"); $Medecin_urgences = $res["medecin_urgences"][0]; $Matricule = $res2["matricule"][0]; // Mise à jour de la fiche patient $tabIdPatient[$ind] seulement pour l'acte ATU $paramModif["envoi_nomIntervenant"] = $Medecin_urgences; $paramModif["envoi_matriculeIntervenant"] = $Matricule; $paramModif["dateDemande"] = $dateDemande; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("idEvent=" . $tabIdPatient[$ind] . " and idDomaine=" . CCAM_IDDOMAINE); unset($paramRq); $paramRq[cw] = "idEvent=" . $tabIdPatient[$ind] . " and idDomaine=" . CCAM_IDDOMAINE; $req = new clResultQuery(); $res = $req->Execute("Fichier", "CCAM_getActesDiagsCotation", $paramRq, "ResultQuery"); //eko($table_patient_automatique); if ($table_patient_automatique == PSORTIS) { $type = "suppression"; $this->contenuBAL($res, $type); } //Suppression dans la table ccam_cotation_actes (patient pastel pour le Ch-Hyeres) $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", array()); $sql = $requete->delRecord("idEvent=" . $tabIdPatient[$ind] . " and idDomaine=" . CCAM_IDDOMAINE); } else { //Récup des infos de pastel pour maj identité patient manuel if ($this->patientSorti($tabIdPatient[$ind])) { $table = "Sortis"; } else { $table = ""; } $patient = new clPatient($tabIdPatient[$ind], $table); unset($param); $param[numSejour] = $patient->getNSej(); $param[idu] = $patient->getIDU(); $param[ipp] = $patient->getILP(); $param[nomu] = $patient->getNom(); $param[pren] = $patient->getPrenom(); $param[sexe] = $patient->getSexe(); $param[dtnai] = substr($patient->getDateNaissance(), 0, 10); //eko($param); $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $param); $sql = $requete->updRecord("idEvent=" . $tabIdPatient[$ind] . " and idDomaine=" . CCAM_IDDOMAINE); if ($table) { //Le patient manuel maintenant fusionné était sorti, on peut donc maintenant envoyer ses actes à la BAL /*$lesion=$this->lesion($tabIdPatient[$ind]); $tabAsso=$this->tabAsso($tabIdPatient[$ind],$lesion); unset($paramRq); $paramRq[cw]="idEvent=$tabIdPatient[$ind] and idDomaine=".CCAM_IDDOMAINE; $req=new clResultQuery; $res=$req->Execute("Fichier","CCAM_getActesDiagsCotation",$paramRq,"ResultQuery"); //eko($res[INDIC_SVC]); $type="creation"; $this->contenuBAL($res,$type,$tabAsso);*/ $this->writeBALSorti("", $tabIdPatient[$ind]); } } //eko("ind:$ind-idPatient:".$tabIdPatient[$ind]); } }
function genPat($idpatient) { global $session; global $options; // Si un idpatient est tranmis, alors on récupère ses informations // à l'aide de la classe Patient. if ($idpatient) { $patient = new clPatient($idpatient, $session->getNavi(5)); $pat[NMA] = $patient->getNom(); $pat[PRE] = $patient->getPrenom(); $pat[DNA] = $patient->getDateNaissance(); $pat[SEX] = $patient->getSexe(); $date = new clDate($patient->getDateAdmission()); $dateA = new clDate(); $dateE = new clDate($patient->getDateExamen()); $dateS = new clDate($patient->getDateSortie()); $pat[DTA] = $date->getDate($options->getOption("Documents Date")); $pat[HEA] = $date->getDate("H:i"); $pat[MED] = $patient->getMedecin(); $pat[DHS] = $dateS->getDate($options->getOption("Documents Date")); $pat[DHE] = $dateE->getDate($options->getOption("Documents Date")); $pat[IPP] = $patient->getILP(); $pat[SEJ] = $patient->getNSej(); $pat[ADD] = $patient->getAdresse(); $pat[CPO] = $patient->getCodePostal(); $pat[VIL] = $patient->getVille(); $pat[IDE] = $patient->getIDE(); $pat[SAL] = $patient->getSalle(); $pat[CCM] = $patient->getCCMU(); $pat[GRA] = $patient->getCodeGravite(); $pat[UF] = $patient->getUF(); $pat[CRE] = $patient->getCategorieRecours(); $pat[MRE] = $patient->getMotifRecours(); $pat[COR] = $patient->getCodeRecours(); $pat[DES] = $patient->getDestinationSouhaitee(); $pat[DAT] = $patient->getDestinationAttendue(); $pat[CDI] = $patient->getCategorieDiagnostic(); $pat[DIA] = $patient->getLibelleDiagnostic(); $pat[DIC] = $patient->getCodeDiagnostic(); // Sinon, nous renseignons avec les valeurs par défaut. } else { $pat[NMA] = "Bon"; $pat[PRE] = "Jean"; $date = new clDate("1981-12-24 22:30:00"); $pat[DNA] = $date->getDate($options->getOption("Documents Date")); $pat[SEX] = "1"; $date = new clDate(); $pat[DTA] = $date->getDate($options->getOption("Documents Date")); $pat[HEA] = $date->getDate("H:i"); $pat[MED] = "Testeur"; $pat[DHS] = $date->getDate($options->getOption("Documents Date")); $pat[DHE] = $date->getDate($options->getOption("Documents Date")); $pat[IPP] = "777777777"; $pat[SEJ] = "666666666"; $pat[ADD] = "Rue des patients"; $pat[CPO] = "83400"; $pat[VIL] = "PatientsVille"; $pat[IDE] = "IDE"; $pat[SAL] = "Salle"; $pat[CCM] = "II"; $pat[GRA] = "2"; $pat[UF] = "2701"; $pat[CRE] = "Catégorie de recours"; $pat[MRE] = "Motif de recours"; $pat[COR] = "CodeRecours"; $pat[DES] = "Destination souhaitée"; $pat[DAT] = "Destination attendue"; $pat[CDI] = "Catégorie de diagnotic"; $pat[DIA] = "Diagnostic"; $pat[DIC] = "Code diagnostic"; } // On renvoie le tableau généré. return $pat; }
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 addToTab($tab, $prc, $filtre) { global $session; $req = new clResultQuery(); $param['table'] = PPRESENTS; //$param['cw'] = "WHERE $filtre UNION SELECT * FROM patients_sortis WHERE $filtre" ; $param['cw'] = "WHERE {$filtre} AND manuel=0 AND iduser!='SUPPRIME' UNION SELECT * FROM patients_sortis WHERE {$filtre} AND manuel=0 AND iduser!='SUPPRIME' ORDER BY dt_admission, nom"; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); $date = new clDate(); for ($i = 0; isset($res['idpatient'][$i]); $i++) { if (!isset($tab[$res['idpatient'][$i]])) { $tab[$res['idpatient'][$i]]['survol'] = clPatient::genInfoBulle($res, $i); if ($res['dt_sortie'][$i] == '0000-00-00 00:00:00') { $auttable = PPRESENTS; } else { $auttable = PSORTIS; } if ($this->p['dt_sortie'][0] == '0000-00-00 00:00:00') { $mantable = PPRESENTS; } else { $mantable = PSORTIS; } //$js = XhamTools::genAjax ( 'onclick', 'fusion', 'ajax=1&navi='.$session->genNavi ( 'Administration', 'FusionsV2', 'setFusions', $this->p['idpatient'][0], $mantable, $res['idpatient'][$i], $auttable) ) ; $nomAut = $res['nom'][$i] . " " . $res['prenom'][$i]; $nomMan = $this->p['nom'][0] . " " . $this->p['prenom'][0]; $js = "onclick=\"if (window.confirm('Etes-vous certain de vouloir fusionner le patient manuel " . addslashes($nomMan) . " et le patient automatique " . addslashes($nomAut) . " ?')){request('index.php?ajax=1&navi=" . $session->genNavi('Administration', 'FusionsV2', 'setFusions', $this->p['idpatient'][0], $mantable, $res['idpatient'][$i], $auttable) . "',null,'fusion');return true;} else {return false;}\""; $tab[$res['idpatient'][$i]]['js'] = $js; $tab[$res['idpatient'][$i]]['suppr'] = ''; $tab[$res['idpatient'][$i]]['nom'] = $res['nom'][$i]; $tab[$res['idpatient'][$i]]['nsej'] = $res['nsej'][$i]; $tab[$res['idpatient'][$i]]['nom'] = $res['nom'][$i]; $tab[$res['idpatient'][$i]]['prenom'] = $res['prenom'][$i]; $tab[$res['idpatient'][$i]]['sexe'] = $res['sexe'][$i]; $tab[$res['idpatient'][$i]]['sexe'] = $res['sexe'][$i]; $tab[$res['idpatient'][$i]]['sexe'] = $res['sexe'][$i]; $date->setDate($res['dt_naissance'][$i]); $tab[$res['idpatient'][$i]]['dt_naissance'] = $date->getDate('d-m-Y'); $date->setDate($res['dt_admission'][$i]); $tab[$res['idpatient'][$i]]['dt_admission'] = $date->getDate('d-m-Y H:i'); $tab[$res['idpatient'][$i]]['prc'] = $prc; $this->nbRes++; } //elseif ( $tab[$res['idpatient'][$i]]['prc'] < 99 ) $tab[$res['idpatient'][$i]]['prc']++ ; } return $tab; //print affTab ( $tab ) ; }
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 createDiag($res, $i) { global $options; global $stopAffichage; $mod = new ModeliXe("HprimXMLDiag.html"); $mod->SetModeliXe(); $tabActe = array(); $tabActe = explode('|', XhamTools::sansAccent($res['CONTENU'][$i])); $type = $res['TYPE'][$i]; $idpass = $tabActe[0]; $idu = $tabActe[1]; $nomu = $tabActe[2]; $pren = $tabActe[3]; $sexe = $tabActe[4]; $dtnai = $tabActe[5]; $dtdem = $tabActe[6]; $hhdem = $tabActe[7]; $action = $tabActe[9]; $idact = $tabActe[10]; $cdccam = $tabActe[11]; $cddiags = $tabActe[12]; $dtr = $tabActe[15]; $hhr = $tabActe[16]; $nomumed = $tabActe[17]; $prenmed = $tabActe[18]; $adeli = $tabActe[19]; $ufr = $tabActe[20]; if ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI9') { $this->adeliMedecin = sprintf('%09d', $adeli); } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED') { $this->adeliMedecin = $nomumed . ' ' . $prenmed; } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED10') { $this->adeliMedecin = substr($nomumed . ' ' . $prenmed, 0, 10); } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI') { $this->adeliMedecin = $adeli; } else { $this->adeliMedecin = ''; } if ($action == 'creation') { $action = utf8_encode('création'); } $date = new clDate(); if ($options->getOption('HprimXML_NomFic')) { $nomFic = $options->getOption('HprimXML_NomFic') . '_' . $res['ID'][$i] . ''; } else { $nomFic = 'fic' . $options->getOption('HprimXML_ChaineFic') . 'TV2_' . $res['ID'][$i] . ''; } $num = $res['ID'][$i]; $pati = new clPatient($res['DISCR'][$i], ''); if (!$pati->getID()) { $pati = new clPatient($res['DISCR'][$i], 'Sortis'); } $datadmi = new clDate($pati->getDateAdmission()); $datexam = new clDate($pati->getDateExamen()); $datsort = new clDate($pati->getDateSortie()); $this->codeMedecinUrgentiste = $pati->getMatriculeMedecin(); if ($options->getOption("ChoixHeureAffectationActes") == "Heure d'admission") { $datdema = $datadmi; } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure d'examen") { $datdema = $datexam; } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure de sorti") { $datdema = $datsort; } else { if ($datadmi->getDatetime() != '1999-12-31 00:00:00' and $datsort->getDatetime() != '1999-12-31 00:00:00') { $time = (int) ($datadmi->getTimestamp() / 2) + $datsort->getTimestamp() / 2; } elseif ($datadmi->getDatetime() != '1999-12-31 00:00:00') { $time = $datadmi->getTimestamp(); } else { $time = $datsort->getTimestamp(); } $datdema = new clDate($time); $datmed = new clDate($time); //eko ( $datadmi->getTimestamp ( ).' + '.$datsort->getTimestamp ( ).' = '.$time.' = '.$datdema -> getTimestamp ( ) ) ; //eko ( $datadmi->getDatetime ( ).' + '.$datsort->getDatetime ( ).' = '.$time.' = '.$datdema -> getDatetime ( ) ) ; } $dtdem = $datdema->getDate('Y-m-d'); $hhdem = $datdema->getDate('H:i:s'); if ($options->getOption('HprimXML_DateProduction') == 'Heure médiane') { $date = $datmed; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure admission') { $date = $datadmi; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure examen') { $date = $datadmi; } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure sortie') { $date = $datsort; } if ($options->getOption('HprimXML_DateT')) { $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s")); } else { $mod->MxText('dateHeureProduction', $date->getDatetime()); } if ($options->getOption('HprimXML_DateVenue') == 'Heure médiane') { $dateve = $datmed; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure admission') { $dateve = $datadmi; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure examen') { $dateve = $datadmi; } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure sortie') { $dateve = $datsort; } else { $dateve = $datdema; } $dtven = $dateve->getDate('Y-m-d'); $hhven = $dateve->getDate('H:i:s'); $mod->MxText('identifiantMessage', $res['ID'][$i]); if ($options->getOption('HprimXML_DateT')) { $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s")); } else { $mod->MxText('dateHeureProduction', $date->getDatetime()); } $mod->MxText('codeEmetteur', $options->getOption('HprimXML_Emet') ? $options->getOption('HprimXML_Emet') : $res['DISCR'][$i]); $mod->MxText('codeDestinataire', $options->getOption('HprimXML_Dest')); $mod->MxText('patientEmetteur', $idu); $mod->MxText('patientRecepteur', $idu); $mod->MxText('sexe', $sexe); $mod->MxText('patientNom', $nomu); $mod->MxText('patientPrenom', $pren); if ($dtnai != "00/00/0000") { $mod->MxText('patientNaissance', $dtnai); } else { $mod->MxText('patientNaissance', ""); } $mod->MxText('venueRecepteur', $idpass); $mod->MxText('venueDate', $dtven); $mod->MxText('venueHeure', $hhven); $mod->MxText('action', $action); $mod->MxText('rumEmetteur', $idpass); $mod->MxText('rumDate', $dtr); $mod->MxText('ADELI', $this->adeliMedecin); //$mod -> MxText ( 'rumUF', $ufr ) ; $mod->MxText('rumUF', $pati->getUF() ? $pati->getUF() : $ufr); $mod->MxText('rumUFDate', $dtdem); $mod->MxText('rumUFHeure', $hhdem); switch ($options->getOption('HprimXML_CIM10_encodage')) { case 'alphanum': $cdccam = ereg_replace("[^A-Za-z0-9]", "", $cdccam); break; case 'alphanumcross': $cdccam = ereg_replace("[^A-Za-z0-9+]", "", $cdccam); break; default: $cdccam = $cdccam; break; } $mod->MxText('cim10princ', $cdccam); $tabd = explode('~', $cddiags); //eko ( count ( $tabd ).' : '.$cddiags ); if (count($tabd) < 1 or $cddiags == '~' or $cddiags == '') { //$mod -> MxBloc ( 'diagsign', 'replace', '<diagnosticSignificatif><codeCim10/></diagnosticSignificatif>' ) ; //eko ( "ici" ) ; $mod->MxBloc('diagssign', 'replace', ' '); } else { for ($i = 0; isset($tabd[$i]); $i++) { switch ($options->getOption('HprimXML_CIM10_encodage')) { case 'alphanum': $codeCim10sign = ereg_replace("[^A-Za-z0-9]", "", $tabd[$i]); break; case 'alphanumcross': $codeCim10sign = ereg_replace("[^A-Za-z0-9+]", "", $tabd[$i]); break; default: $codeCim10sign = $tabd[$i]; break; } $mod->MxText('diagssign.diagsign.codeCim10sign', $codeCim10sign); $mod->MxBloc('diagssign.diagsign', 'loop'); } } if ($options->getOption('HprimXML_NomFic') and $options->getOption('HprimXML_NomModulo')) { $nomFic = $options->getOption('HprimXML_NomFic') . sprintf('%03d', $res['ID'][$deb] % 1000); } $this->genFile($mod->MxWrite("1"), $num, $nomFic, array(), "diagxml/"); }