示例#1
0
function getPatientMineur($formx)
{
    global $tool;
    $idu = $formx->getVar('ids');
    $req = new clResultQuery();
    $param = array();
    $param['cw'] = "dt_naissance";
    $param['idu'] = $idu;
    $res = $req->Execute("Fichier", "getInfoPatientFromIDU", $param, "ResultQuery");
    $DateNPat = $res['dt_naissance'][0];
    //eko($DateNPat);
    // Calcul sur les différentes dates.
    $age = new clDate($DateNPat);
    $dateSimple = $age->getDate("d-m-Y");
    $dateComple = $age->getDateText();
    $duree = new clDuree();
    $duree->getAgePrecis($age->getTimestamp());
    if ($duree->getYears() < 18) {
        return "mineur";
    } else {
        return "majeur";
    }
}
 function gestionMajorationsNGAPlesCetCS()
 {
     /******************************************************************************/
     global $options;
     global $fusion;
     global $table_patient_manuel;
     global $table_patient_automatique;
     $idEvent = $this->idEvent;
     if ($fusion == 0) {
         $agePatient = $this->agePatient;
     } else {
         // Presence d'une fusion
         $param[cw] = "WHERE idpatient='" . $idEvent . "'";
         $param[table] = $table_patient_automatique;
         $req = new clResultQuery();
         $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery");
         $age = new clDate($res["dt_naissance"][0]);
         $date = new clDate($res["dt_examen"][0]);
         $duree = new clDuree($date->getDifference($age));
         $agePatient = $duree->getYears();
     }
     unset($paramModif);
     if ($options->getOption('EnvoiMajorationsNGAPpourCetCS')) {
         // Dans le cas ou le patient revient sur le terminal on gére le mise à
         // jour de la table ccam_cotation_actes en fonction de l' option
         // de la valeur de EnvoiMajorationsNGAPpourCetCS
         $paramModif["envoi_facturation"] = 1;
     } else {
         $paramModif["envoi_facturation"] = 0;
     }
     $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif);
     // LISTE MAJO
     // MODIFICATION A FAIRE
     // Ajout des majos sages-femmes et gyneco-obstetrique  dans les requetes
     $sql = $requete->updRecord("idEvent='" . $idEvent . "' and  cotationNGAP in ('MCG 1','MNO 1','MGE 1','MCC 1','MNP 1','MPJ 1','MPC 1','MCS 1')");
     unset($paramRq);
     $paramRq["cw"] = "idEvent=" . $idEvent . " and type='ACTE'";
     $requete = new clResultQuery();
     // On récupère la liste des actes pour un patient
     $resultat = $requete->Execute("Fichier", "CCAM_getActesDiagsCotation", $paramRq, "ResultQuery");
     // On traite les informations contenues dans la table resultat
     for ($i = 0; $i <= $resultat[INDIC_SVC][2]; $i++) {
         $MajorationNGAP1 = "";
         $MajorationNGAP2 = "";
         $Majoration_A_Effectuee = "Non";
         // On regarde si la cotation NGAP est de type C 1
         // ceci concerne les consultations de généralistes (C)
         if (strcmp($resultat["cotationNGAP"][$i], "C 1") == 0) {
             // On gére les ages
             if ($agePatient < 2) {
                 $MajorationNGAP1 = "MNO 1";
                 $Majoration_A_Effectuee = "Oui";
             }
             /*
             if ( $agePatient >= 2 && $agePatient < 6 ) {
               $MajorationNGAP1        = "MGE 1";
               $Majoration_A_Effectuee = "Oui";
               }
             */
             /*if ( $agePatient >= 16 ) {
               $MajorationNGAP1        = "MCG 1";
               $Majoration_A_Effectuee = "Oui";
               }*/
         }
         //if ( strcmp($resultat["cotationNGAP"][$i],"C 1") == 0 )
         // On regarde si la cotation NGAP est de type CSC 1
         // ceci concerne les consultations de cardio
         /*
         if ( strcmp($resultat["cotationNGAP"][$i],"CSC 1") == 0 ) {
           // Cardiologues:
           if ( eregi ('Cardiologie',$resultat["libelleActe"][$i]) ){
          
               if ( $agePatient >= 16 ) {
               $MajorationNGAP1        = "MCC 1";
               $Majoration_A_Effectuee = "Oui";
               }
             }
         } 
         */
         // if ( strcmp($resultat["cotationNGAP"][$i],"CSC 1") == 0 )
         // On regarde si la cotation NGAP est de type CNPSY 1
         // ceci concerne les consultations de Spy et de Neurologue.
         /*if ( strcmp($resultat["cotationNGAP"][$i],"CNPSY 1") == 0 ) {
                 // Neurologue et Psychiatres:
                 if ( eregi ('Neurologie' ,$resultat["libelleActe"][$i] ) ||
                      eregi ('Psychiatrie',$resultat["libelleActe"][$i] ) ){
         
                     if ( $agePatient >= 16 ) {
                       //$MajorationNGAP1          = "MPC 1";
                       $MajorationNGAP1          = "MCS 1";
                       $Majoration_A_Effectuee   = "Oui";
                     }
                     
                     
                     else { 
                       $MajorationNGAP1        = "MPJ 1";
                       $Majoration_A_Effectuee = "Oui";
                     }
                 }
               } */
         //if ( strcmp($resultat["cotationNGAP"][$i],"CNPSY 1") == 0 ) {
         // On regarde si la cotation NGAP est de type CS 1
         // ceci concerne les consultations de spécialistes (CS)
         /*
               if ( strcmp($resultat["cotationNGAP"][$i],"CS 1") == 0 ) {
         
                 // Maintenant en gérant le cas des urgences pédiatriques
                 if ( (   strcmp($resultat["libelleActe"][$i],"Consultation urgentiste spécialiste") == 0
                       && strcmp($this->typeIntervenant,"PED") == 0 ) ||
                          eregi('Pédiatrie',$resultat["libelleActe"][$i]) ||
                          eregi('PEDIATRIE',$resultat["libelleActe"][$i]) ){
                   // On gére les ages 
                   if ( $agePatient < 2 ) {
         
                     $MajorationNGAP1        = "MNP 1";
                     $Majoration_A_Effectuee = "Oui";
                   }
                   if ( $agePatient >= 2 && $agePatient < 16 ) {
                     $MajorationNGAP1        = "MPJ 1";
                     $Majoration_A_Effectuee = "Oui";
                   }
                 }
                 ////////////////////////////////////////////////////////
         /*
         // Maintenant en gérant le cas des urgences Gynécologie et Obstétrique
                 elseif ( (strcmp($resultat["libelleActe"][$i],"Consultation Gynéco Obstétrique") == 0
                        && strcmp($this->typeIntervenant,"OBS") == 0 ) ||
                           eregi('Gynécologie et Obstétrique',$resultat["libelleActe"][$i]) ) {
         // MODIFICATION A FAIRE majoration suivant l'age du patient
                 eko("majoration suivant l'age du patient");
         
                 }
                 ////////////////////////////////////////////////////////
         */
         // Autres Spécialistes
         /*
           else {
               
               if ( $agePatient >= 16 )
                 $MajorationNGAP1        = "MCS 1";
               else
                 $MajorationNGAP1        = "MPJ 1";
               
               if ( $agePatient < 16 )
                 $MajorationNGAP1        = "MPJ 1";
               
               //$MajorationNGAP2          = "MPC 1";
               $Majoration_A_Effectuee   = "Oui";
           }
         } //if ( strcmp($resultat["cotationNGAP"][$i],"CS 1") == 0 )
         */
         // Maintenant on gère le cas s'il y a une Majoration à effectuer
         // pour l'acte $resultat["libelleActe"][$i]
         if (strcmp($Majoration_A_Effectuee, "Oui") == 0) {
             $paramRq = array();
             $temp = array();
             $temp = $resultat;
             while (list($key, $val) = each($temp)) {
                 $paramRq[$key] = $temp[$key][$i];
             }
             unset($paramRq[INDIC_SVC]);
             reset($temp);
             reset($paramRq);
             // On insere la majoration NGAP dans la nouvelle ligne à inserer dans
             // la table ccam_cotation_actes
             $paramRq["cotationNGAP"] = $MajorationNGAP1;
             if ($options->getOption('EnvoiMajorationsNGAPpourCetCS')) {
                 $paramRq["envoi_facturation"] = 1;
             } else {
                 $paramRq["envoi_facturation"] = 0;
             }
             // On teste si on a déjà inserer l'acte NGAP avec la mojoration
             // Au cas ou le patient revient dans le terminal
             $requete = new clResultQuery();
             $test_insertion_existe = $requete->Execute("Fichier", "CCAM_testInsertionCCAMCotationActes", $paramRq, "ResultQuery");
             if ($test_insertion_existe["INDIC_SVC"][2] == 0) {
                 // On recherche le max de identifiant pour l'incrementation
                 // dans la table
                 $requete = new clResultQuery();
                 $maxIdentifiant = $requete->Execute("Fichier", "CCAM_getMaxIdentifiantCCAMCotationActes", array(), "ResultQuery");
                 $paramRq["identifiant"] = $maxIdentifiant["maximun"][0] + 1;
                 // Insertion de la nouvelle ligne
                 $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramRq);
                 $requete->addRecord();
             }
             if ($MajorationNGAP2 != "") {
                 // On insere la majoration NGAP dans la nouvelle ligne à inserer dans
                 // la table ccam_cotation_actes
                 $paramRq["cotationNGAP"] = $MajorationNGAP2;
                 // On teste si on a déjà inserer l'acte NGAP avec la majoration
                 // Au cas ou le patient revient dans le terminal
                 $requete = new clResultQuery();
                 $test_insertion_existe = $requete->Execute("Fichier", "CCAM_testInsertionCCAMCotationActes", $paramRq, "ResultQuery");
                 if ($test_insertion_existe["INDIC_SVC"][2] == 0) {
                     // recherche de l'idEvent max
                     $requete = new clResultQuery();
                     $maxIdentifiant = $requete->Execute("Fichier", "CCAM_getMaxIdentifiantCCAMCotationActes", array(), "ResultQuery");
                     $paramRq["identifiant"] = $maxIdentifiant["maximun"][0] + 1;
                     // Insertion de la nouvelle ligne
                     $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramRq);
                     $requete->addRecord();
                 }
                 // end if
             }
             // en if
         }
         // if ( strcmp($Majoration_A_Effectuee,"Oui") == 0 )
     }
     // for ( $i = 0 ; $i <= $resultat[INDIC_SVC][2] ; $i++ )
 }
示例#3
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.";
     }
 }
示例#4
0
 function createActes($res, $j = '', $tous = '', $id = '')
 {
     //eko($res);
     //eko($id);
     global $options;
     if (!$tous) {
         $deb = $j;
         $max = $j;
     } else {
         $deb = 0;
         $max = $res['INDIC_SVC'][2] - 1;
     }
     $mod = new ModeliXe("HprimXMLActes.html");
     $mod->SetModeliXe();
     $tabActe = explode('|', XhamTools::sansAccent($res['CONTENU'][$deb]));
     $type = $res['TYPE'][$deb];
     $idpass = $tabActe[0];
     $idu = $tabActe[1];
     $nomu = $tabActe[2];
     $pren = $tabActe[3];
     $sexe = $tabActe[4];
     $dtnai = $tabActe[5];
     $dtdem = $tabActe[6];
     $hhdem = $tabActe[7];
     $ufd = $tabActe[8];
     $action = $tabActe[9];
     $date = new clDate($dtdem . ' ' . $hhdem);
     $date = new clDate();
     if ($options->getOption("HprimXML_UF")) {
         $ufr = $options->getOption("HprimXML_UF");
         $ufd = $options->getOption("HprimXML_UF");
     }
     if ($options->getOption('HprimXML_AttributsESA')) {
         $mod->MxText("attributsesa", ' version="1.03a" xsi:schemaLocation="http://www.hprim.org/hprimXML msgEvenementsServeurActes103a.xsd" xmlns="http://www.hprim.org/hprimXML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"');
     } else {
         $mod->MxText("attributsesa", "");
     }
     if ($options->getOption('HprimXML_EnvoiGroupeParIntervenant')) {
         if ($options->getOption('HprimXML_EmetInterv') == 'ID') {
             $emetti = $id + 1;
         } else {
             $emetti = $res['DISCR'][$deb];
         }
     } else {
         if ($options->getOption('HprimXML_EmetInterv') == 'ID') {
             $emetti = $res['ID'][$deb];
         } elseif ($options->getOption('HprimXML_EmetInterv')) {
             $emetti = $options->getOption('HprimXML_EmetInterv');
         } else {
             $emetti = $res['DISCR'][$deb];
         }
     }
     if ($options->getOption('HprimXML_EnvoiGroupeParIntervenant')) {
         if ($options->getOption('HprimXML_EmetInterv') == 'ID') {
             $mod->MxText('identifiantMessage', $id);
             //eko("avignon");
         } else {
             $mod->MxText('identifiantMessage', $res['ID'][$deb]);
         }
     } else {
         $mod->MxText('identifiantMessage', $res['ID'][$deb]);
         // eko("reste");
     }
     $mod->MxText('codeEmetteur', $options->getOption('HprimXML_Emet') ? $options->getOption('HprimXML_Emet') : $res['DISCR'][$deb]);
     $mod->MxText('codeDestinataire', $options->getOption('HprimXML_Dest'));
     $mod->MxText('patientEmetteur', $idu);
     $mod->MxText('patientRecepteur', $idu);
     $mod->MxText('sexe', $sexe);
     $mod->MxText('patientNom', $nomu);
     $mod->MxText('patientPrenom', $pren);
     if ($dtnai != "00/00/0000") {
         $mod->MxText('patientNaissance', $dtnai);
     } else {
         $mod->MxText('patientNaissance', "");
     }
     $pati = new clPatient($res['DISCR'][$deb], '');
     if (!$pati->getID()) {
         $pati = new clPatient($res['DISCR'][$deb], 'Sortis');
     }
     //$pati -> debugInfos ( ) ;
     //eko ( "UUUUUUUUUUUUUUUUUUUUUUUUFFFFFFFFFFFFFFFFFF : ".$pati->getInformation('uf').' pour '.$pati->getDateNaissance() ) ;
     // Correction date foireuse module ccam
     $datadmi = new clDate($pati->getDateAdmission());
     $datexam = new clDate($pati->getDateExamen());
     $datsort = new clDate($pati->getDateSortie());
     if ($options->getOption("ChoixHeureAffectationActes") == "Heure d'admission") {
         $datdema = $datadmi;
     } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure d'examen") {
         $datdema = $datexam;
     } elseif ($options->getOption("ChoixHeureAffectationActes") == "Heure de sorti") {
         $datdema = $datsort;
     } else {
         if ($datadmi->getDatetime() != '1999-12-31 00:00:00' and $datsort->getDatetime() != '1999-12-31 00:00:00') {
             $time = (int) ($datadmi->getTimestamp() / 2) + $datsort->getTimestamp() / 2;
         } elseif ($datadmi->getDatetime() != '1999-12-31 00:00:00') {
             $time = $datadmi->getTimestamp();
         } else {
             $time = $datsort->getTimestamp();
         }
         $datdema = new clDate($time);
         $datmed = new clDate($time);
         //eko ( $datadmi->getTimestamp ( ).' + '.$datsort->getTimestamp ( ).' = '.$time.' = '.$datdema -> getTimestamp ( ) ) ;
         //eko ( $datadmi->getDatetime ( ).' + '.$datsort->getDatetime ( ).' = '.$time.' = '.$datdema -> getDatetime ( ) ) ;
     }
     $dtdem = $datdema->getDate('Y-m-d');
     $hhdem = $datdema->getDate('H:i:s');
     if ($options->getOption('HprimXML_DateProduction') == 'Heure médiane') {
         $date = $datmed;
     } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure admission') {
         $date = $datadmi;
     } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure examen') {
         $date = $datadmi;
     } elseif ($options->getOption('HprimXML_DateProduction') == 'Heure sortie') {
         $date = $datsort;
     }
     if ($options->getOption('HprimXML_DateT')) {
         $mod->MxText('dateHeureProduction', $date->getDate("Y-m-d\\TH:i:s"));
     } else {
         $mod->MxText('dateHeureProduction', $date->getDatetime());
     }
     if ($options->getOption('HprimXML_DateVenue') == 'Heure médiane') {
         $dateve = $datmed;
     } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure admission') {
         $dateve = $datadmi;
     } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure examen') {
         $dateve = $datadmi;
     } elseif ($options->getOption('HprimXML_DateVenue') == 'Heure sortie') {
         $dateve = $datsort;
     } else {
         $dateve = $datdema;
     }
     $dtven = $dateve->getDate('Y-m-d');
     $hhven = $dateve->getDate('H:i:s');
     $mod->MxText('venueEmetteur', $idpass);
     $mod->MxText('venueRecepteur', $idpass);
     $mod->MxText('venueDate', $dtven);
     $mod->MxText('venueHeure', $hhven);
     $mod->MxText('interventionDate', $dtdem);
     $mod->MxText('interventionHeure', $hhdem);
     $mod->MxText('interventionEmetteur', $emetti);
     $mod->MxText('interventionDemandeDate', $dtdem);
     $mod->MxText('interventionDemandeHeure', $hhdem);
     $mod->MxText('interventionUF', $pati->getUF() ? $pati->getUF() : $ufr);
     $nbngap = 0;
     $nbccam = 0;
     $datenai = new clDate($pati->getDateNaissance());
     $duree = new clDuree($datenai->getTimestamp());
     $duree->getDuree($datenai->getTimestamp());
     $ageannees = $duree->getYears();
     //eko ( $ageannees ) ;
     for ($i = $deb; $i <= $max; $i++) {
         $tabActe = explode('|', XhamTools::sansAccent($res['CONTENU'][$i]));
         $type = $res['TYPE'][$i];
         $idpass = $tabActe[0];
         $idu = $tabActe[1];
         $nomu = $tabActe[2];
         $pren = $tabActe[3];
         $sexe = $tabActe[4];
         $dtnai = $tabActe[5];
         $dtdem = $tabActe[6];
         $hhdem = $tabActe[7];
         $ufd = $tabActe[8];
         $action = $tabActe[9];
         $idact = $tabActe[10];
         $cdccam = $tabActe[11];
         $cddiags = $tabActe[12];
         $cdacti = $tabActe[13];
         $cdphase = $tabActe[14];
         $dtr = $tabActe[15];
         $hhr = $tabActe[16];
         $nomumed = $tabActe[17];
         $prenmed = $tabActe[18];
         $adeli = $tabActe[19];
         $ufr = $tabActe[20];
         $modif = $tabActe[21];
         $ngapl = $tabActe[22];
         $ngapc = $tabActe[23];
         $factu = $tabActe[24];
         $cdasso = $tabActe[25];
         $nuitjf = $tabActe[26];
         $tabm = explode('~', $modif);
         if ($options->getOption("HprimXML_UF")) {
             $ufr = $options->getOption("HprimXML_UF");
             $ufd = $options->getOption("HprimXML_UF");
         }
         if (!$this->adeliMedecin) {
             if ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI9') {
                 $this->adeliMedecin = '<code>' . sprintf('%09d', $adeli) . '</code>';
             } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED') {
                 $this->adeliMedecin = '<code>' . $nomumed . ' ' . $prenmed . '</code>';
             } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'NOMMED10') {
                 $this->adeliMedecin = '<code>' . substr($nomumed . ' ' . $prenmed, 0, 10) . '</code>';
             } elseif ($options->getOption("HprimXML_CodeMedecinInterv") == 'ADELI') {
                 $this->adeliMedecin = '<code>' . $adeli . '</code>';
             } else {
                 $this->adeliMedecin = '';
             }
         } elseif (!ereg('<code>', $this->adeliMedecin)) {
             $this->adeliMedecin = '<code>' . $adeli . '</code>';
         }
         if ($options->getOption("HprimXML_CodeMedecin") == 'ADELI') {
             $codeade = '<code>' . $adeli . '</code>';
         } elseif ($options->getOption("HprimXML_CodeMedecin") == 'NOMMED') {
             $codeade = '<code>' . $nomumed . '</code>';
         } elseif ($options->getOption("HprimXML_CodeMedecin") == 'ADELI9') {
             $codeade = '<code>' . sprintf('%09d', $adeli) . '</code>';
         } elseif ($options->getOption("HprimXML_CodeMedecin") == 'VIDE') {
             $codeade = '';
         } else {
             $codeade = '<code>' . 'x' . '</code>';
         }
         //eko ( "CODE MEDECIN : $codeade" ) ;
         if ($options->getOption("HprimXML_ExecPrinc")) {
             $medExec = ' principal="oui"';
         } else {
             $medExec = '';
         }
         if ($options->getOption('HprimXML_StatutFT')) {
             $modStatut = ' statut="ft"';
         } else {
             $modStatut = '';
         }
         if ($action == 'creation') {
             $action = utf8_encode('création');
         }
         if ($nuitjf == 'F') {
             $isFerie = "oui";
         } else {
             // Encore une gestion supplémentaire d'un bug du module CACAM
             if ($type == 'NGAP' and $ngapl == 'AMI' and $datdema->getDate('w') == 6 and $datdema->getDate('H') >= 8) {
                 $isFerie = "oui";
             } else {
                 $isFerie = "non";
             }
         }
         if ($nuitjf == 'N') {
             $isNuit = '1t';
         } elseif ($nuitjf == 'NM') {
             $isNuit = '2t';
         } else {
             $isNuit = 'non';
         }
         $listeTraited[$res['ID'][$i]] = $res['ID'][$i];
         if ($options->getOption('LettreCleCSPsy') and $ngapl == 'CNPSY') {
             $ngapl = $options->getOption('LettreCleCSPsy');
         }
         //$mod -> MxText ( 'identifiantMessage', $res['ID'][$deb] ) ;
         // Correction date foireuse module ccam
         $dtdem = $datdema->getDate('Y-m-d');
         $hhdem = $datdema->getDate('H:i:s');
         if ($type == 'NGAP') {
             if ($ngapl == 'MNO' and $ageannees > 2) {
                 $erreurngap = 1;
             }
             if (!($ngapl == 'AMI' and $factu == 'non') and !$erreurngap) {
                 if ($ngapl == 'C' or $ngapl == 'CS') {
                     $tri = '2.';
                 } else {
                     $tri = '3.';
                 }
                 $mod->MxText('codeAdeliMedecin', $this->codeMedecinUrgentiste);
                 $mod->MxText('actesngap.ngap.action', $action);
                 $mod->MxText('actesngap.ngap.facturable', $factu);
                 if ($ngapl == 'C' and isset($this->deqp[$pati->getID()]['U'])) {
                     $isNuit = 'non';
                 }
                 $mod->MxText('actesngap.ngap.executionNuit', $isNuit);
                 if ($ngapl == 'C' and isset($this->deqp[$pati->getID()]['F'])) {
                     $isFerie = 'non';
                 }
                 $mod->MxText('actesngap.ngap.executionDimancheJourFerie', $isFerie);
                 $mod->MxText('actesngap.ngap.ngapEmetteur', $idact);
                 $mod->MxText('actesngap.ngap.lettreCle', $ngapl);
                 $mod->MxText('actesngap.ngap.coefficient', $ngapc);
                 $mod->MxText('actesngap.ngap.ngapDate', $dtdem);
                 $mod->MxText('actesngap.ngap.ngapHeure', $hhdem);
                 $mod->MxText('actesngap.ngap.medecinADELI', $adeli);
                 $mod->MxText('actesngap.ngap.medecinCode', $codeade);
                 $mod->MxText('actesngap.ngap.medecinNom', $nomumed);
                 if ($ngapl == 'CS') {
                     $mod->MxText('actesngap.ngap.medecinUF', $ufr);
                 } else {
                     $mod->MxText('actesngap.ngap.medecinUF', $pati->getUF() ? $pati->getUF() : $ufr);
                 }
                 $mod->MxBloc('actesngap.ngap', 'loop');
                 $nbngap++;
                 if ($ngapl == 'ATU') {
                     $repfic = "atuxml/";
                 } else {
                     $repfic = "ngapxml/";
                 }
             }
             $erreurngap = 0;
         } elseif ($type == 'CCAM') {
             $tri = '1.';
             $mod->MxText('codeAdeliMedecin', $this->codeMedecinUrgentiste);
             $mod->MxText('actesccam.ccam.action', $action);
             $mod->MxText('actesccam.ccam.ccamEmetteur', $idact);
             if ($options->getOption('HprimXML_Recepteur')) {
                 $mod->MxText('actesccam.ccam.ccamRecepteur', '<recepteur>' . $options->getOption('HprimXML_Recepteur') . '</recepteur');
             } else {
                 $mod->MxText('actesccam.ccam.ccamRecepteur', '');
             }
             $mod->MxText('actesccam.ccam.codeActe', $cdccam);
             $mod->MxText('actesccam.ccam.codeActivite', $cdacti);
             $mod->MxText('actesccam.ccam.codePhase', $cdphase);
             $mod->MxText('actesccam.ccam.ccamDate', $dtdem);
             $mod->MxText('actesccam.ccam.ccamHeure', $hhdem);
             $mod->MxText('actesccam.ccam.medExec', $medExec);
             $mod->MxText('actesccam.ccam.medecinADELI', $adeli);
             $mod->MxText('actesccam.ccam.medecinCode', $codeade);
             $mod->MxText('actesccam.ccam.medecinNom', $nomumed);
             //$mod -> MxText ( 'actesccam.ccam.medecinUF', $ufr ) ;
             $mod->MxText('actesccam.ccam.medecinUF', $pati->getUF() ? $pati->getUF() : $ufr);
             //if ( $options -> getOption ( 'HprimXML_AssoNonVide' ) ) $asso = ($cdasso==''?1:$cdasso) ;
             //else $asso = $cdasso ;
             if ($cdasso) {
                 $asso = '<codeAssociationNonPrevue>' . $cdasso . '</codeAssociationNonPrevue>';
             } else {
                 $asso = '';
             }
             $mod->MxText('actesccam.ccam.codeAssociationNonPrevue', $asso);
             $nbMod = 0;
             for ($k = 0; isset($tabm[$k]); $k++) {
                 if ($tabm[$k]) {
                     $mod->MxText('actesccam.ccam.modificateur.modificateur', $tabm[$k]);
                     $mod->MxText('actesccam.ccam.modificateur.modStatut', $modStatut);
                     $mod->MxBloc('actesccam.ccam.modificateur', 'loop');
                     if ($cdccam == 'DEQP003') {
                         if ($tabm[$k] == 'U') {
                             $this->deqp[$pati->getID()]['U'] = 1;
                         }
                         if ($tabm[$k] == 'P') {
                             $this->deqp[$pati->getID()]['U'] = 1;
                         }
                         if ($tabm[$k] == 'S') {
                             $this->deqp[$pati->getID()]['U'] = 1;
                         }
                         if ($tabm[$k] == 'F') {
                             $this->deqp[$pati->getID()]['F'] = 1;
                         }
                     }
                     $nbMod++;
                 }
             }
             if ($nbMod == 0) {
                 $mod->MxBloc('actesccam.ccam.modificateur', 'delete');
             }
             $mod->MxBloc('actesccam.ccam', 'loop');
             $nbccam++;
             $repfic = "ccamxml/";
         }
     }
     if ($nbngap == 0) {
         $mod->MxBloc('actesngap', 'delete');
     }
     if ($nbccam == 0) {
         $mod->MxBloc('actesccam', 'delete');
     }
     if ($options->getOption("HprimXML_tri_CCAM_CCS_NGAP")) {
         $numfic = $tri . $res['ID'][$deb];
     } else {
         $numfic = $res['ID'][$deb];
     }
     if ($options->getOption('HprimXML_NomFic')) {
         $nomFic = $options->getOption('HprimXML_NomFic') . '_' . $numfic . '';
     } else {
         $nomFic = 'fic' . $options->getOption('HprimXML_ChaineFic') . 'TV2_' . $numfic . '';
     }
     if ($options->getOption('HprimXML_NomFic') and $options->getOption('HprimXML_NomModulo')) {
         $nomFic = $options->getOption('HprimXML_NomFic') . sprintf('%03d', $res['ID'][$deb] % 1000);
     }
     $num = $res['ID'][$deb];
     if (!$pati->getManuel()) {
         $this->genFile($mod->MxWrite("1"), $num, $nomFic, $listeTraited, $repfic);
     }
 }