Exemplo n.º 1
0
function getAge2($formx)
{
    global $patient;
    global $tool;
    $dateToday = new clDate();
    $dateNaiss = new clDate($patient->getDateNaissance());
    $ageSec = $dateToday->getDifference($dateNaiss);
    return floor($ageSec / (365.25 * 24 * 3600)) . ' ans';
}
Exemplo n.º 2
0
function delta_temps($formx)
{
    global $patient;
    //si heure PEC inconnue:
    //if(! $formx->getValueForm('date_pec_urgences') )
    //	return 99;
    $obDatePecIoa = new clDate($formx->getFormVar('date_pec_urgences') . ' ' . $formx->getFormVar('heure_pec_urgences'));
    $obDateDebutSympt = new clDate($formx->getFormVar('debut_symptomes_jour') . ' ' . $formx->getFormVar('debut_symptomes_heure'));
    $obDateDebutSymptNeuro = new clDate($formx->getFormVar('debut_symptomes_neuro_jour') . ' ' . $formx->getFormVar('debut_symptomes_neuro_heure'));
    $obDateDebutVueAsympt = new clDate($formx->getFormVar('date_asympt') . ' ' . $formx->getFormVar('heure_asympt'));
    if ($formx->getFormVar('is_heure_debut_symptoneuro') == 'oui') {
        $delta = $obDatePecIoa->getDifference($obDateDebutSymptNeuro) / 3600;
    }
    if ($formx->getFormVar('is_heure_debut_sympto') == 'oui') {
        $delta = $obDatePecIoa->getDifference($obDateDebutSympt) / 3600;
    }
    if ($formx->getFormVar('is_heure_debut_sympto') == 'non') {
        $delta = $obDatePecIoa->getDifference($obDateDebutVueAsympt) / 3600;
    }
    $delta = max(0, $delta);
    $formx->setVar('der_delta_avc', $delta);
    return $delta;
}
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();
}
Exemplo n.º 4
0
 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");
 }
Exemplo n.º 5
0
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++;
    }
}
Exemplo n.º 6
0
 static function getMajoration(clDate $datePassage, clDate $dateNaissance)
 {
     $tabMajorations = array();
     $today = new clDate();
     if ($today->getDifference($dateNaissance) < 3600 * 24 * 365.25 * 2) {
         $tabMajorations[] = 'MNO';
     }
     if ($datePassage->getHours() < 6 && $datePassage->getHours() >= 0) {
         $tabMajorations[] = 'MDN';
     }
     if ($datePassage->getHours() >= 20 or $datePassage->getHours() < 8 && $datePassage->getHours() >= 6) {
         $tabMajorations[] = 'MDI';
     }
     if ($dateNaissance) {
         return implode(',', $tabMajorations);
     }
 }
Exemplo n.º 7
0
 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++;
     }
 }
Exemplo n.º 8
0
 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 contenuBAL_Netforce($res, $type, $tabAsso = array(), $indicateurs = array(), $maxLC = array(), $maxCCAM = array())
 {
     // res contient tous les actes qu'on envoie à la facturation
     global $options;
     //eko($indicateurs);eko($maxLC);eko($maxCCAM);
     //Préparation du champs CONTENU - Initialisation avec les données patients
     $contenuDiag = "";
     $cptDiag = 1;
     $NGAPjoue = 0;
     unset($modificateursJoues);
     reset($res);
     // Variable pour les majo des actes infirmiers
     $Majoration_A_Effectuee = "Non";
     $idEvent = $this->idEvent;
     $dateEvent = $this->dateEvent;
     $dtFinInterv = $this->dtFinInterv;
     $clDateDeb = new clDate($dateEvent);
     $clDateFin = new clDate($dtFinInterv);
     // On va affecter dans une variable le nombre de CONS
     /*$Nombre_Cons = 0;
     $req=new clResultQuery;
     $paramRq["cw"] = "idEvent='".$idEvent."'";
     $res=$req->Execute("Fichier","CCAM_getNombreCONS",$paramRq,"ResultQuery");
     $Nombre_Cons = $res["nombre"][0];
     $tab_Cons[0] = 0;
     for ( $i=1 ; $i<=$Nombre_Cons ; $i++)
       $tab_Cons[$i] = 0;*/
     if (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure médiane") == 0) {
         $nbHeures = $clDateFin->getDifference($clDateDeb) / 3600;
         $dateMediane = $clDateDeb->addHours($nbHeures / 2);
         $dateMediane = $clDateDeb->getDate("Y-m-d H:i:s");
         $heureCalcule = $dateMediane;
     } elseif (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure d'admission") == 0) {
         $clDateAdm = new clDate($this->dtAdmission);
         $heureCalcule = $clDateAdm->getDate("Y-m-d H:i:s");
     } elseif (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure d'examen") == 0) {
         $clDateAdm = new clDate($this->dateEvent);
         $heureCalcule = $clDateAdm->getDate("Y-m-d H:i:s");
     } elseif (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure de sorti") == 0) {
         $clDateAdm = $clDateFin;
         $heureCalcule = $clDateAdm->getDate("Y-m-d H:i:s");
     }
     list($dateActe, $heureActe) = explode(" ", $heureCalcule);
     list($annee, $mois, $jour) = explode("-", $dateActe);
     substr($mois, 0, 1) == 0 ? $mois = substr($mois, 1, 1) : "";
     substr($jour, 0, 1) == 0 ? $jour = substr($jour, 1, 1) : "";
     list($heure, $minute, $seconde) = explode(":", $heureActe);
     substr($heure, 0, 1) == 0 ? $heure = substr($heure, 1, 1) : "";
     $dateActe = mktime(0, 0, 0, $mois, $jour, $annee);
     if ($heure >= 20 or $heure >= 6 and $heure < 8) {
         $majoCONS = "N";
     } elseif ($heure < 6) {
         $majoCONS = "NM";
     }
     //Gestion des dimanches
     if (date("w", $dateActe) == 0 and $majoCONS == "") {
         $majoCONS = "F";
     }
     //Gestion des jours fériés
     $dateFerie = new clDate($dateActe);
     if ($dateFerie->isHoliday() and $majoCONS == "") {
         $majoCONS = "F";
     }
     for ($i = 0; isset($res[identifiant][$i]); $i++) {
         $contenuInit = $res[numSejour][$i] . "|" . $res[idu][$i] . "|" . $res[nomu][$i] . "|" . $res[pren][$i] . "|" . $res[sexe][$i] . "|" . $res[dtnai][$i];
         $contenuInit3 = "|" . $res[numUFdem][$i];
         $dateDem = substr($res[dateDemande][$i], 0, 10);
         $heureDem = substr($res[dateDemande][$i], 11, 6) . "00";
         $dateReal = substr($res[dateEvent][$i], 0, 10);
         $heureReal = substr($res[dateEvent][$i], 11, 6) . "00";
         $contenuInit2 = "|" . $dateDem . "|" . $heureDem;
         // Cas des consultations spécialisées.
         if (substr($res[codeActe][$i], 0, 4) == "CONS") {
             $cotation = explode("+", $res[cotationNGAP][$i]);
             while (list($key, $val) = each($cotation)) {
                 // On gere le cas des actes du docteur qui prend en charge la patient
                 // Etape1
                 // Recupere l'indice de facturation
                 list($lc, $coeff) = explode(" ", $val);
                 if ($coeff == 0) {
                     $factu = "non";
                     $coeff = 1;
                 } else {
                     $factu = "oui";
                 }
                 // Etape2
                 // On colle le modificateur sur les consultes specialites
                 $majoNGAP = "";
                 //eko($lc);
                 if (substr($lc, 0, 1) == "C") {
                     // MAJO CS 1 CSC 1 CNPSY 1
                     $majoNGAP = $majoCONS;
                 }
                 $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||||{$dateReal}|{$heureReal}|" . $res[nomIntervenant][$i] . "||" . $res[matriculeIntervenant][$i] . "|" . $res[numUFexec][$i] . "||{$lc}|{$coeff}|{$factu}||{$majoNGAP}";
                 $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite;
                 //eko($contenu);
                 unset($param);
                 $param[DTINS] = date("Y-m-d H:i") . ":00";
                 $param[ETAT] = "P";
                 $param[DISCR] = $res[idEvent][$i];
                 $param[TYPE] = "NGAP";
                 $param[CONTENU] = $contenu;
                 $majrq = new clRequete(CCAM_BDD, "MBTV2", $param);
                 $sql = $majrq->addRecord();
             }
             unset($paramModif);
             $paramModif[validDefinitive] = "O";
             $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif);
             $sql = $requete->updRecord("codeActe='" . $res[codeActe][$i] . "' and idDomaine=" . CCAM_IDDOMAINE . " and idEvent=" . $res[idEvent][$i]);
         } elseif (substr($res[codeActe][$i], 0, 4) == "NGAP") {
             // Il y aura deux intervenants le docteur et l'infirmier
             // Donc deux majorations possibles au maximun
             // La majoration forfaire collée pour l'un des actes ngap du docteur
             // La majoration forfaire collée pour l'un des actes ngap de l'infirmier
             $cotation = explode("+", $res[cotationNGAP][$i]);
             //eko ($cotation);
             while (list($key, $val) = each($cotation)) {
                 // On gere le cas des actes du docteur qui prend en charge la patient
                 // Etape1
                 // Recupere l'indice de facturation
                 list($lc, $coeff) = explode(" ", $val);
                 if ($coeff == 0) {
                     $factu = "non";
                     $coeff = 1;
                 } else {
                     $factu = "oui";
                 }
                 // Etape2
                 // On colle le modificateur sur le premier acte ngap du medecin la C ou CS
                 $majoNGAP = "";
                 //eko($lc);
                 if (substr($lc, 0, 1) == "C" and !$NGAPjoue) {
                     // C ou CS
                     $majoNGAP = $res[modificateurs][$i];
                     $NGAPjoue = 1;
                 }
                 /*else {
                         if ( !ereg ("AMI",$lc ) and 
                              !ereg ("AIS",$lc ) and
                              !ereg ("K",$lc   ) and
                              !ereg ("KC",$lc  ) and
                              !ereg ("PH",$lc  ) and
                 
                              !ereg ("MNO",$lc ) and // LISTE MAJO
                              !ereg ("MGE",$lc ) and
                              !ereg ("MCG",$lc ) and
                              !ereg ("MCC",$lc ) and
                              !ereg ("MPC",$lc ) and
                              !ereg ("MCS",$lc ) and
                              !ereg ("MPJ",$lc ) and
                              !ereg ("MNP",$lc ) and
                              !$NGAPjoue ) {
                           $majoNGAP = $res[modificateurs][$i];
                           $NGAPjoue = 1;
                         }
                       }*/
                 // On gere le cas des actes infirmiers
                 //LISTE MAJO pour les actes infirmiers
                 if (ereg("AMI", $lc) || ereg("AIS", $lc) || ereg("K", $lc) || ereg("KC", $lc) || ereg("PH", $lc) || ereg("INFN1", $lc) || ereg("INFN2", $lc) || ereg("MINFD", $lc)) {
                     if (strcmp($this->matriculeIDE, "") == 0) {
                         if (strcmp($options->getOption("codeAdeliInfirmier"), "") == 0) {
                             if (strcmp($this->matriculeIntervenant, "") == 0) {
                                 $matriculeIDE = $options->getOption("codeAdeliChefService");
                                 $nomIDE = $this->nomIntervenant;
                                 if (!$NGAPjoue) {
                                     $majoNGAP = $res[modificateurs][$i];
                                     $NGAPjoue = 1;
                                     $Majoration_A_Effectuee = "Oui";
                                 }
                             } else {
                                 $matriculeIDE = $this->matriculeIntervenant;
                                 $nomIDE = $this->nomIntervenant;
                                 if (!$NGAPjoue) {
                                     $majoNGAP = $res[modificateurs][$i];
                                     $NGAPjoue = 1;
                                     $Majoration_A_Effectuee = "Oui";
                                 }
                             }
                         } else {
                             $matriculeIDE = $options->getOption("codeAdeliInfirmier");
                             $nomIDE = $this->nomIDE;
                         }
                     } else {
                         $matriculeIDE = $this->matriculeIDE;
                         $nomIDE = $this->nomIDE;
                     }
                     //Premiere version avec la fonction gestionMajorationsActesInfirmiers
                     //                      et l'option EnvoiMajorationsActesInfirmiers
                     /* 
                     // Calcul des majo "NGAP" si on envoi pas les majo des "AMI" et "AIS"
                     if ( !$options->getOption ('EnvoiMajorationsActesInfirmiers') ){
                     //eko("majo ngap :".$lc);
                     // Concernant les actes infirmiers
                     // Soit on envoie les modificateurs pour les actes AMI et AIS
                     // Soit on envoie les majorations des actes AMI et AIS
                     // Mais pas les deux.
                     	  
                     //Gestion des modificateurs de nuit et jours fériés pour las actes NGAP infirmiers
                     //Gestion des tranches horaires pour las actes NGAP infirmiers
                     if (($heure>=20 or ($heure>=6 and $heure<8))) $majoNGAP="N";
                     elseif ($heure<6) $majoNGAP="NM";
                         
                     //Gestion des dimanches pour las actes NGAP infirmiers
                     if (date("w",$dateActe)==0 and $majoNGAP=="") $majoNGAP="F";
                         
                     //Gestion des jours fériés pour las actes NGAP infirmiers
                     $dateFerie=new clDate($dateActe);
                     if ($dateFerie->isHoliday() and $majoNGAP=="") $majoNGAP="F";
                       $modificateurs=$majoNGAP; 
                     }
                     */
                     // Nous avons l'heure
                     if (strcmp($Majoration_A_Effectuee, "Non") == 0) {
                         if ($heure >= 20 && $heure < 23 || $heure >= 5 && $heure < 8) {
                             $MajorationNGAP1 = "N";
                             $Majoration_A_Effectuee = "Oui";
                         }
                         if ($heure >= 23 || $heure < 5) {
                             $MajorationNGAP1 = "NM";
                             $Majoration_A_Effectuee = "Oui";
                         }
                         // pour les jours féries
                         $dateFerie = new clDate($dateActe);
                         if ($dateFerie->isHoliday() && strcmp($Majoration_A_Effectuee, "Non") == 0) {
                             $MajorationNGAP1 = "F";
                             $Majoration_A_Effectuee = "Oui";
                         }
                         // pour les dimanches
                         if (date("w", $dateActe) == 0 && strcmp($Majoration_A_Effectuee, "Non") == 0) {
                             $MajorationNGAP1 = "F";
                             $Majoration_A_Effectuee = "Oui";
                         }
                         // pour les samedis
                         if (date("w", $dateActe) == 6 && $heure >= 8 && strcmp($Majoration_A_Effectuee, "Non") == 0) {
                             $MajorationNGAP1 = "F";
                             $Majoration_A_Effectuee = "Oui";
                         }
                         $majoNGAP = $MajorationNGAP1;
                     }
                     $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||||{$dateReal}|{$heureReal}|" . $nomIDE . "||" . $matriculeIDE . "|" . $res[numUFexec][$i] . "||{$lc}|{$coeff}|{$factu}||{$majoNGAP}";
                     $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite;
                     //eko($contenu);
                     // Mise à jour de la table ccam_cotation_acte
                     if (strcmp($type, "creation") == 0) {
                         $paramModif["nomIntervenant"] = $nomIDE;
                         $paramModif["matriculeIntervenant"] = $matriculeIDE;
                         $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif);
                         $sql = $requete->updRecord("idEvent=" . $this->idEvent . " and identifiant=" . $res["identifiant"][$i] . " and idDomaine=" . CCAM_IDDOMAINE);
                         //eko($res["identifiant"][$i]);
                     }
                 } else {
                     $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||||{$dateReal}|{$heureReal}|" . $res[nomIntervenant][$i] . "||" . $res[matriculeIntervenant][$i] . "|" . $res[numUFexec][$i] . "||{$lc}|{$coeff}|{$factu}||{$majoNGAP}";
                     $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite;
                     //eko($contenu);
                 }
                 unset($param);
                 $param[DTINS] = date("Y-m-d H:i") . ":00";
                 $param[ETAT] = "P";
                 $param[DISCR] = $res[idEvent][$i];
                 $param[TYPE] = "NGAP";
                 $param[CONTENU] = $contenu;
                 $majrq = new clRequete(CCAM_BDD, "MBTV2", $param);
                 $sql = $majrq->addRecord();
             }
             unset($paramModif);
             $paramModif[validDefinitive] = "O";
             $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif);
             $sql = $requete->updRecord("codeActe='" . $res[codeActe][$i] . "' and idDomaine=" . CCAM_IDDOMAINE . " and idEvent=" . $res[idEvent][$i]);
         } else {
             if ($res[type][$i] == "ACTE") {
                 list($modificateurs1, $modificateurs4) = explode("|", $res[modificateurs][$i]);
                 if ($modificateurs1) {
                     $modificateursCotes = explode("~", $modificateurs1);
                     $modificateurs1 = "";
                     while (list($key, $val) = each($modificateursCotes)) {
                         if ($val == "F" or $val == "P" or $val == "S") {
                             if (!$modificateursJoues[$val] and !$indicateurs["C"] or $indicateurs["C"] and substr($res[codeActe][$i], 0, 3) == "DEQ") {
                                 $modificateurs1 .= "{$val}~";
                             }
                             //eko("indicC:$indicateurs[C]-val:$val-modif1:$modificateurs1-modifJoueAvant:".$modificateursJoues[$val]);
                         } else {
                             $modificateurs1 .= "{$val}~";
                         }
                         $modificateursJoues[$val] = 1;
                         //eko("val:$val-modif1:$modificateurs1-modifJoue:".$modificateursJoues[$val]);
                     }
                     /*eko("codeActe:".$res[codeActe][$i]);
                       eko($modificateursCotes);
                       eko("modif1Final:$modificateurs1");
                       eko($modificateursJoues);*/
                     if ($modificateurs1) {
                         $modificateurs1 = substr($modificateurs1, 0, -1);
                     }
                 }
                 $modificateurs4 = "";
                 list($intervenant1, $intervenant4) = explode("|", $res[matriculeIntervenant][$i]);
                 list($nomIntervenant1, $nomIntervenant4) = explode("|", $res[nomIntervenant][$i]);
                 $codeActe = $res[codeActe][$i];
                 $codeAssociation = $tabAsso[$codeActe];
                 $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||1|0|{$dateReal}|{$heureReal}|" . $nomIntervenant1 . "||" . $intervenant1 . "|" . $res[numUFexec][$i] . "|" . $modificateurs1 . "|||oui|{$codeAssociation}";
                 $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite;
                 unset($param);
                 $param[DTINS] = date("Y-m-d H:i") . ":00";
                 $param[ETAT] = "P";
                 $param[DISCR] = $res[idEvent][$i];
                 $param[TYPE] = "CCAM";
                 $param[CONTENU] = $contenu;
                 $majrq = new clRequete(CCAM_BDD, "MBTV2", $param);
                 $sql = $majrq->addRecord();
                 if ($res[codeActivite4][$i] == "O") {
                     /*//Recherche du nom de l'anesthésiste dans la liste
                     		unset($paramRq);
                     		$paramRq[code]=$intervenant4;
                     		$paramRq[idDomaine]=CCAM_IDDOMAINE;
                     		$paramRq[nomListe]="Anesthésie";
                     		$req=new clResultQuery;
                     		$res2=$req->Execute("Fichier","CCAM_getNomMed",$paramRq,"ResultQuery");
                     		//eko($res2[INDIC_SVC]);
                     		$nomMed4=$res2[nomItem][0];*/
                     $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||4|0|{$dateReal}|{$heureReal}|" . $nomIntervenant4 . "||" . $intervenant4 . "|" . $res[numUFexec][$i] . "|" . $modificateurs4 . "|||oui|{$codeAssociation}";
                     $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite;
                     unset($param);
                     $param[DTINS] = date("Y-m-d H:i:") . "00";
                     $param[ETAT] = "P";
                     $param[DISCR] = $res[idEvent][$i];
                     $param[TYPE] = "CCAM";
                     $param[CONTENU] = $contenu;
                     $majrq = new clRequete(CCAM_BDD, "MBTV2", $param);
                     $sql = $majrq->addRecord();
                 }
                 unset($paramModif);
                 $paramModif[validDefinitive] = "O";
                 $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif);
                 $sql = $requete->updRecord("codeActe='" . $res[codeActe][$i] . "' and idDomaine=" . CCAM_IDDOMAINE . " and idEvent=" . $res[idEvent][$i]);
             } else {
                 $idEvent = $res[idEvent][$i];
                 /*$numSejour=$res[numSejour][$i];
                  	$idu=$res[idu][$i];
                  	$nomu=$res[nomu][$i];
                  	$pren=$res[pren][$i];
                  	$sexe=$res[sexe][$i];
                  	$dtnai=$res[dtnai][$i];
                  	$numUFdem=$res[numUFdem][$i];*/
                 $numUFexec = $res[numUFexec][$i];
                 $nomIntervenant = $res[nomIntervenant][$i];
                 $matriculeIntervenant = $res[matriculeIntervenant][$i];
                 $cptDiag == 1 ? $sep = "|" : ($sep = "~");
                 $contenuDiag .= $res[codeActe][$i] . $sep;
                 $cptDiag++;
             }
             // Cas du diagnostic
         }
         // Cas des actes CCAM
     }
     //for ($i=0;isset($res[identifiant][$i]);$i++)
     if ($contenuDiag) {
         /*unset($paramRq);
         	$paramRq[cw]="type='DIAG' and validDefinitive='O' and idEvent=".$res[idEvent][$i]." and idDomaine=".CCAM_IDDOMAINE;
         	$req=new clResultQuery;
         	$res=$req->Execute("Fichier","CCAM_getActesDiagsCotation",$paramRq,"ResultQuery");
         	//eko($res[INDIC_SVC]);
         	if ($res[INDIC_SVC][2]!=0) $type="modification";*/
         $cptDiag--;
         if ($cptDiag == 1) {
             $sepDiag = "|";
         } else {
             $sepDiag = "";
         }
         $contenuDiag = substr($contenuDiag, 0, -1);
         $contenuSuite = "|{$type}|" . $idEvent . "|" . $contenuDiag . $sepDiag . "|||{$dateReal}|{$heureReal}|" . $nomIntervenant . "||" . $matriculeIntervenant . "|" . $numUFexec . "||||";
         $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite;
         unset($param);
         $param[DTINS] = date("Y-m-d H:i:") . "00";
         $param[ETAT] = "P";
         $param[DISCR] = $idEvent;
         $param[TYPE] = "DIAG";
         $param[CONTENU] = $contenu;
         $majrq = new clRequete(CCAM_BDD, "MBTV2", $param);
         $sql = $majrq->addRecord();
         unset($paramModif);
         $paramModif[validDefinitive] = "O";
         $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif);
         $sql = $requete->updRecord("type='DIAG' and idEvent=" . $idEvent . " and idDomaine=" . CCAM_IDDOMAINE);
     }
 }
Exemplo n.º 10
0
 function genBlocEtatCivil($nomBloc, $mod, $droit, $date = '', $sortie = '')
 {
     global $session;
     global $options;
     // Initialisation des objets et des variables utilisées.
     // Pour générer des formulaires plus loin.
     $form = new clForm();
     // Date d'exécution.
     $now = new clDate();
     // Récupération des options.
     $retourmax = $options->getOption("Dates Patient");
     $tranches = $options->getOption("DatesDécoup Patient");
     // Récupération de la valeur actuelle du bloc.
     $res = '';
     eval("\$res = \$this->patient->get{$nomBloc} ( ) ;");
     // Si une date a été transmise et qu'elle n'est pas nulle, on initialise $res avec cette valeur.
     if ($date) {
         if ($res != "0000-00-00 00:00:00") {
             $res = $date->getDate("d-m-Y H:i");
         } else {
             $res = '';
         }
     }
     // Si toutes ces conditions sont réunies, alors on fait transiter le patient sorti vers la table des patients présents.
     if ($session->getNavi(3) == "mod" . $nomBloc and ($_POST['AnnulerSortie'] or $_POST['AnnulerSortie_x']) and $session->getDroit($this->type . "_EtatCivil", $droit)) {
         $modif = "0000-00-00 00:00:00";
         $this->patient->setAttribut($nomBloc, $modif);
         $this->patient = new clPatient($this->idpatient, "Sortis");
         $this->patient->entrerPatient();
         if ($options->getOption("Module_CCAM")) {
             $ccam = new clCCAMCotationActesDiags($this->paramCCAM);
             $ccam->deleteBAL();
             if ($options->getOption('HprimXML_Actif')) {
                 $hprimXml = new clHprimXML();
             }
         }
         $res = "";
         // Si ces conditions sont réunies, alors on change la date du champs avec la valeur transmise.
     } elseif ($session->getNavi(3) == "mod" . $nomBloc and ($_POST['Valider'] or $_POST['Valider_x']) and $session->getDroit($this->type . "_EtatCivil", $droit)) {
         if ($date) {
             if ($_POST['ValiderMaintenant'] or $_POST['ValiderMaintenant_x']) {
                 $newdate = new clDate();
             } elseif ($_POST["mod" . $nomBloc] == "now") {
                 $newdate = new clDate();
             } else {
                 $newdate = new clDate($_POST["mod" . $nomBloc]);
             }
             $modif = $newdate->getDatetime();
             $res = $newdate->getDate("d-m-Y H:i");
             // Si le paramètre $sortie est vrai, alors on fait transiter le patient présent vers la table des patients sortis.
             if ($sortie) {
                 $this->patient->setAttribut($nomBloc, $modif);
                 $this->patient = new clPatient($this->idpatient, "Presents");
                 clFoRmX_manip::rangerDossMedChrono($this->patient);
                 clFoRmX_manip::rangerDossMedAEV($this->patient);
                 $this->patient->sortirPatient();
                 if ($options->getOption("Module_CCAM")) {
                     $this->paramCCAM["dtFinInterv"] = $this->patient->getDateSortie();
                     $ccam = new clCCAMCotationActesDiags($this->paramCCAM);
                     $ccam->writeBALSorti();
                     if ($options->getOption('HprimXML_Actif')) {
                         $hprimXml = new clHprimXML();
                     }
                 }
                 $this->rien = "sortie";
             }
             // Dans le dernier cas, il s'agit d'un bloc de type "textarea" tout simple à mettre à jour.
         } else {
             $modif = $_POST["mod" . $nomBloc];
             $res = $modif;
         }
         // Mise à jour du patient.
         $session->setLogSup("Modification du bloc {$nomBloc}");
         $this->patient->setAttribut($nomBloc, $modif);
         $this->patient = new clPatient($this->idpatient, $this->type);
         // Dans ce cas, nous devons afficher le formulaire adéquate à la modification du bloc.
     } elseif ($session->getNavi(3) == "mod" . $nomBloc and !$_POST['Annuler'] and !$_POST['Annuler_x']) {
         // Cas des champs de type date.
         $session->setLogSup("Demande de modification du bloc {$nomBloc}");
         if ($date) {
             if ($sortie and $this->patient->getDateExamen() != '0000-00-00 00:00:00') {
                 $dateMin = new clDate($this->patient->getDateExamen());
             } else {
                 $dateMin = new clDate($this->patient->getDateAdmission());
             }
             $dateNow = new clDate();
             if ($tranches >= 5) {
                 $minutes = $dateNow->getMinutes();
                 $minutesless = $minutes % 5;
                 $dateNow->addMinutes(-$minutesless);
             }
             $data[now] = 'Maintenant';
             $min = $dateMin->getTimestamp();
             $t = $dateNow->getTimestamp();
             $data[$t] = $dateNow->getDate("d-m-Y H:i");
             // On limite la taille du select
             $d1 = new clDate();
             $d2 = new clDate($dateMin->getDatetime());
             $duree = new clDuree($d1->getDifference($d2));
             $duree->invertNegatif();
             //if ( $duree->getDays() > 50 ) {
             //    $d1 -> addDays ( -50 ) ;
             //    $min = $d1 -> getTimestamp ( ) ;
             //}
             // On parcourt les dates en fonctions des options.
             for ($i = 0; $dateNow->getTimestamp() >= $min; $i += $tranches) {
                 $t = $dateNow->getTimestamp();
                 $data[$t] = $dateNow->getDate("d-m-Y H:i");
                 $dateNow->addMinutes(-$tranches);
             }
             $f .= $res . "<br />" . $form->genForm(URL);
             /*
             // Préparation de la première date de la liste.
             $now -> addHours ( -$retourmax ) ;
             $min = $now -> getTimestamp ( ) ;
             $now -> addHours ( $retourmax ) ;
             if ( $tranches >= 5 ) {
             	  		$minutes = $now -> getMinutes ( ) ;
             	  		$minutesless = ( $minutes % 5 ) ;
             	  		$now -> addMinutes ( -$minutesless ) ;
             }
             $data[now] = 'Maintenant' ;
             $t = $now -> getTimestamp ( ) ;
             $data[$t] = $now -> getDate ( "d-m-Y H:i" ) ;
             // On parcourt les dates en fonctions des options.
             for ( $i = 0 ; $now -> getTimestamp ( ) >= $min ; $i += $tranches ) {
             	  		$t = $now -> getTimestamp ( ) ;
             	  		$data[$t] = $now -> getDate ( "d-m-Y H:i" ) ;
             	  		$now -> addMinutes ( -$tranches ) ;
             }
             $f .= $res."<br />".$form -> genForm ( URL ) ;
             */
             // S'il ne s'agit pas de la date de sortie et que le patient est sorti,
             // alors on affiche le select contenant la liste des dates possibles.
             if (!($this->type == "Sortis" and $sortie)) {
                 $f .= $form->genSelect("mod" . $nomBloc, 1, $data);
             }
         } else {
             // Cas d'un formulaire de type "textarea" tout simple.
             $f .= $form->genForm(URL);
             $f .= $form->genTextArea("mod" . $nomBloc, $res) . "<br /><center>";
         }
         // Cas d'une date.
         if ($date) {
             // Cas de la date de sortie.
             if ($sortie) {
                 // Cas d'un patient déjà sorti : On affiche seulement un bouton d'annulation de sortie.
                 if ($this->type == "Sortis") {
                     $f .= $form->genImage("AnnulerSortie", "Annuler la sortie", URLIMG . "annulerSortie.gif");
                     $f .= $form->genHidden("navi", $session->genNavi("Liste_Presents", $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                     $f .= $form->genEndForm();
                     // $f .= $form -> genForm ( URL ) ;
                     // $f .= $form -> genImage ( "RetourPatient", "Retour du patient", URLIMGRET ) ;
                     // $f .= $form -> genHidden ( "navi", $session->genNavi ( "Liste_Presents", $this->patient->getID ( ) ) ) ;
                     // Dans les autres cas, on affiche les boutons de validation / annulation de la sortie.
                 } else {
                     $contraintes = new clContraintes($this->patient->getID(), $this->paramCCAM);
                     //formulaire(s) à remplir bloquant la sortie ( pré-contraintes ) ?
                     if (clTuFormxTrigger::getWatcher($this->patient)->isTriggersOnOut()) {
                         $enquetes = clTuFormxTriggerWatcher::getInstance($this->patient);
                         $enquetes->launchTriggersOnOut();
                         //eko("trigers lances, sortie de la fenetre bloquante");
                         return '';
                     } else {
                         if (clTuFormxTrigger::getWatcher($this->patient)->isTriggersWaitingForLauch()) {
                             //eko("watchers en cours, sortie de la fenetre bloquante");
                             return '';
                         } else {
                             if ($contraintes->runCheck()) {
                                 $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
                                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                                 $f .= $form->genEndForm();
                                 $f .= $form->genForm(URL);
                                 $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
                                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                             } else {
                                 $session->setLogSup('Contraintes non respectées pour la sortie');
                                 $this->af .= $contraintes->getContraintes();
                             }
                         }
                     }
                 }
                 // Cas d'un champs date normal : affichage des boutons valider et annuler.
             } else {
                 $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                 $f .= $form->genEndForm();
                 $f .= $form->genForm(URL);
                 $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
             }
             // Cas d'un champs normal : affichage des boutons valider et annuler.
         } else {
             $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
             $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
             $f .= $form->genEndForm();
             $f .= $form->genForm(URL);
             $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
             $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
         }
         // On ferme la balise du formulaire.
         $f .= "</center>" . $form->genEndForm();
         // On modifie le bloc ModeliXe passé en paramètres.
         $mod->MxText($nomBloc, $f);
         // On signale que le bloc a été modifié.
         $af = 1;
     }
     // S'il n'y a pas eu d'affichage jusqu'à maintenant, il ne s'agit que d'afficher la valeur contenue dans ce bloc.
     if (!$af) {
         // Si le droit de modification est présent, alors nous affichons le lien pour modifier le bloc.
         if ($session->getDroit($this->type . "_EtatCivil", $droit)) {
             if ($date) {
                 $image = URLIMGHOR;
             } else {
                 $image = URLIMGMOD;
             }
             if ($nomBloc == "DateExamen" and $_POST['Medecin'] and $this->patient->getDateExamen() == "0000-00-00 00:00:00" and !$this->patient->getMedecin()) {
                 $date = new clDate();
                 $dateA = new clDate($this->patient->getDateAdmission());
                 if ($date->getTimestamp() > $dateA->getTimestamp()) {
                     $this->patient->setAttribut("DateExamen", $date->getDatetime());
                     $res = $date->getDate("d-m-Y H:i");
                 } else {
                     $dateA->addSeconds(1);
                     $this->patient->setAttribut("DateExamen", $dateA->getDatetime());
                     $res = $dateA->getDate("d-m-Y H:i");
                 }
             }
             if ($nomBloc == "DateExamen" and isset($_POST['Medecin']) and !$_POST['Medecin']) {
                 $this->patient->setAttribut("DateExamen", "0000-00-00 00:00:00");
                 $res = "--";
             }
             if (!$this->export) {
                 if ($nomBloc == "DateSortie") {
                     $retour = '';
                     if ($options->getOption('EnqueteRadio')) {
                         $retour = clListeRadios::getRetour($this->patient->getID(), IDAPPLICATION);
                     }
                     if ($retour) {
                         $mod->MxText("retourRadio", $retour);
                     } else {
                         $questionSortie = $this->getQuestionSortie();
                         if ($questionSortie) {
                             $mod->MxText("retourRadio", $questionSortie);
                         } else {
                             $mod->MxImage("imgModifier" . $nomBloc, $image, "Modifier {$nomBloc}");
                             $mod->MxUrl("lien" . $nomBloc, URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                         }
                     }
                 } else {
                     $mod->MxImage("imgModifier" . $nomBloc, $image, "Modifier {$nomBloc}");
                     $mod->MxUrl("lien" . $nomBloc, URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                 }
             }
         }
         // Affichage du contenu du bloc s'il existe sinon on affiche la valeur par défaut.
         if ($res) {
             $mod->MxText($nomBloc, nl2br($res));
         } else {
             $mod->MxText($nomBloc, VIDEDEFAUT);
         }
     }
 }
Exemplo n.º 11
0
 function genEnvoi()
 {
     global $options;
     global $errs;
     //Attention, jour concerné = lendemain des données
     $dateJourConcerne = new clDate();
     $tsp = $dateJourConcerne->getTimestamp();
     define(nomForm, "URG");
     define(idActeur, $options->getOption('RPU_IdActeur'));
     define(arRequis, $options->getOption('RPU_AR_Actif'));
     define(cleDepot, $options->getOption('RPU_CleActeur'));
     define(mail, $options->getOption('RPU_AR_Mail'));
     define(cfg_expediteur_alerte, "terminal_urgences");
     define(chemin, URLRPU . 'arh/');
     define(date_jour, date("Ymd", $tsp));
     define(jour, substr(date_jour, 6, 2));
     define(mois, substr(date_jour, 4, 2));
     define(annee, substr(date_jour, 0, 4));
     define(date_file, date("YmdHis"));
     define(date_envoi, date("d/m/Y à H:i:s"));
     define(date_event, date("d/m/Y", mktime(0, 0, 0, mois, jour - 1, annee)));
     define(from, date("Y-m-d H:i:s", mktime(0, 0, 0, mois, jour - 1, annee)));
     define(to, date("Y-m-d H:i:s", mktime(23, 59, 59, mois, jour - 1, annee)));
     $req = "select idpatient, uf , dt_naissance , type_destination\r\n        from  patients_sortis\r\n\t    where manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1\r\n\t\tUNION\r\n\t\tselect idpatient, uf , dt_naissance , type_destination\r\n\t\tfrom  patients_presents\r\n\t\twhere manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1";
     $config[type] = "MySQL";
     $config[host] = MYSQL_HOST;
     $config[login] = MYSQL_USER;
     $config[password] = MYSQL_PASS;
     $config[db] = BDD;
     $requete = new clResultQuery();
     // On récupère le résultat de la requête sous la forme ResultQuery.
     $res = $requete->Execute("requete", $req, $config);
     eko($res[INDIC_SVC]);
     $age1 = 0;
     $age75 = 0;
     $NbHospit = 0;
     $NbUHCD = 0;
     $NbTransfert = 0;
     $ufUHCD = $options->getOption("numUFUHCD");
     //eko ( $res['INDIC_SVC'] ) ;
     if ($res[INDIC_SVC][2]) {
         $NbPassages = $res[INDIC_SVC][2];
         // On a le nombre de passages
         while (list($key, $val) = each($res[dt_naissance])) {
             $dateN = new clDate($val);
             $dateA = new clDate(from);
             $duree = new clDuree();
             $duree->setValues($dateA->getDifference($dateN));
             $age = $duree->getYears();
             if ($age < 1) {
                 $age1++;
                 // Constitution du nb de passage < à 1 an
             } elseif ($age > 75) {
                 $age75++;
                 // Constitution du nb de passage > 75 ans
             }
             // Hospitalisations
             if ($res[type_destination][$key] == "H" and $res[uf][$key] != $ufUHCD) {
                 $NbHospit++;
             }
             // UHCD
             if ($res[uf][$key] == $ufUHCD) {
                 $NbUHCD++;
             }
             // Transferts
             if ($res[type_destination][$key] == "T") {
                 $NbTransfert++;
             }
             //echo $val."--=> ".$res[type_destination][$key]." ".$age   ." ans <br>";
         }
         $balise_element = "\n<entete>";
         $balise_element .= "\n<idActeur>" . idActeur . "</idActeur>";
         $balise_element .= "\n<cleActeur>" . cleDepot . "</cleActeur>";
         $balise_element .= "\n<arRequis>" . arRequis . "</arRequis>";
         $balise_element .= "\n<mail>" . mail . "</mail>";
         $balise_element .= "\n</entete>";
         $balise_element .= "\n<element>";
         $balise_element .= "\n<nomForm>" . nomForm . "</nomForm>";
         $balise_element .= "\n<date_event>" . date_event . "</date_event>";
         $balise_element .= "\n<NbPassages>{$NbPassages}</NbPassages>";
         $balise_element .= "\n<NbPassInf1An>{$age1}</NbPassInf1An>";
         $balise_element .= "\n<NbPassageSup75Ans>{$age75}</NbPassageSup75Ans>";
         $balise_element .= "\n<NbHospit>{$NbHospit}</NbHospit>";
         $balise_element .= "\n<NbHospitUHCD>{$NbUHCD}</NbHospitUHCD>";
         $balise_element .= "\n<NbTransfert>{$NbTransfert}</NbTransfert>";
         $balise_element .= "\n</element>";
         $nom_fic = idActeur . "_" . date_file . ".xml";
         $nom_fic_export = chemin . $nom_fic;
         $xml_data = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"?>\r\n\t\t\t\n<result>" . $balise_element . "\n</result>";
         $fp = fopen($nom_fic_export, "w");
         if (!fwrite($fp, $xml_data)) {
             eko("pb ecriture fichier xml");
         }
         fclose($fp);
         copy($nom_fic_export, URLLOCAL . 'rpu/logs/' . $nom_fic);
         $affichage = "<center><h2>Export des données Urgences - CH-Hyères</h2></center>\r\n\t\t\t<u>Date d'export:</u> le " . date_envoi . "<br>\r\n\t\t\t<u>Contenu exporté :</u> {$balise_element}<br>\r\n\t\t\t<u>Fichier d'export :</u> {$nom_fic_export}";
         // Cryptage du fichier.
         $mailE = $options->getOption('RPU_Envoi_Mail');
         $gpg = new gnuPG(false, GNUPG);
         $gpg->EncryptFile($mailE, $nom_fic_export);
         if (!$gpg->error) {
             $this->message .= "<font color=\"green\">Le cryptage du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>";
         } else {
             $this->message .= "<font color=\"red\">Le cryptage du fichier ({$nom_fic_export}.gpg) a échoué :" . $gpg->error . "<br/></font>";
         }
         if ($options->getOption('RPU_TypeEnvoi') == 'mail') {
             // Envoi du fichier RPU.
             $contenuFic = fread(fopen($nom_fic_export . '.gpg', "r"), filesize($nom_fic_export . '.gpg'));
             // eko ( $contenuFic ) ;
             $mail = new mime_mail();
             $mail->to = $options->getOption("RPU_Envoi_Mail");
             //$mail->to = "*****@*****.**" ;
             //eko ( $options->getOption ( "RPU_Envoi_Mail" ) ) ;
             $mail->subject = "Données urgences (" . date_envoi . ")";
             $mail->body = "Données urgences (" . date_envoi . ")";
             $mail->from = Erreurs_MailApp;
             $mail->attach($contenuFic, $nom_fic . '.gpg');
             if ($mail->sendXham()) {
                 $this->message .= "<font color=\"green\">L'envoi du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>";
             } else {
                 $this->message .= "<font color=\"red\">L'envoi du fichier ({$nom_fic_export}.gpg) a échoué.<br/></font>";
             }
         } else {
             rename($nom_fic_export, chemin . 'ok/' . $nom_fic);
             $this->message .= "Connexion au serveur FTP '" . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . "' -> ";
             $con = ftp_connect($options->getOption('RPU_FTP_Host'));
             if (!$con) {
                 $this->message .= "<font color='red'>KO</font><br/>";
                 $errs->addErreur('RPU : Impossible de se connecter au serveur "' . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . '"');
             } else {
                 $this->message .= "<font color='green'>OK</font><br/>";
                 $this->message .= "Authentification au serveur FTP avec l'utilisateur '" . $options->getOption('RPU_FTP_User') . "' -> ";
                 $log = ftp_login($con, $options->getOption('RPU_FTP_User'), $options->getOption('RPU_FTP_Pass'));
                 if (!$log) {
                     $this->message .= "<font color='red'>KO</font><br/>";
                     $errs->addErreur('RPU : Impossible de se connecter au serveur avec l\'utilisateur "' . $options->getOption('RPU_FTP_User') . '"');
                 } else {
                     $this->message .= "<font color='green'>OK</font><br/>";
                     $r = opendir('rpu/arh/');
                     while ($fic = readdir($r)) {
                         if ($fic != "." and $fic != ".." and $fic != "ok" and $fic != "logs" and $fic != 'arh') {
                             $this->message .= "Envoi du fichier '{$fic}' -> ";
                             $put = ftp_put($con, $fic, chemin . $fic, FTP_BINARY);
                             if (!$put) {
                                 $this->message .= "<font color='red'>KO</font><br/>";
                                 $errs->addErreur('RPU : Impossible d\'envoyer le fichier "' . $fic . '".');
                             } else {
                                 $this->message .= "<font color='green'>OK</font><br/>";
                                 rename(chemin . $fic, chemin . 'ok/' . $fic);
                             }
                         }
                     }
                 }
             }
         }
         $this->af = $affichage . "<br/>" . $this->message;
     } else {
         $this->af .= "Aucun patient retourné par la requête : envoi impossible.";
     }
 }
Exemplo n.º 12
0
 function getDureeCourte($date = '')
 {
     // Si une date de naissance est transmise à la classe,
     // alors on calcul la différence avec la date d'aujourd'hui
     // et on récupère ainsi l'âge de la personne.
     if ($date) {
         // Date du jour.
         $d1 = new clDate();
         // Date de naissance de la personne.
         $d2 = new clDate($date);
         // Calcul de la différence.
         $this->setValues($d1->getDifference($d2));
     }
     // Calcul des durées.
     $res = $this->duree;
     $heures = sprintf("%d", $res / 3600);
     $res = $res - 3600 * $heures;
     $minutes = sprintf("%d", $res / 60);
     if ($heures < 10) {
         $heures = '0' . $heures;
     }
     if ($minutes < 10) {
         $minutes = '0' . $minutes;
     }
     // Fabrication de l'affichage.
     $d .= $heures . "h";
     $d .= $minutes . "m";
     // On retourne finalement l'affichage.
     return $d;
 }