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++ ) }
function genEnvoi() { global $options; global $errs; //Attention, jour concerné = lendemain des données $dateJourConcerne = new clDate(); $tsp = $dateJourConcerne->getTimestamp(); define(nomForm, "URG"); define(idActeur, $options->getOption('RPU_IdActeur')); define(arRequis, $options->getOption('RPU_AR_Actif')); define(cleDepot, $options->getOption('RPU_CleActeur')); define(mail, $options->getOption('RPU_AR_Mail')); define(cfg_expediteur_alerte, "terminal_urgences"); define(chemin, URLRPU . 'arh/'); define(date_jour, date("Ymd", $tsp)); define(jour, substr(date_jour, 6, 2)); define(mois, substr(date_jour, 4, 2)); define(annee, substr(date_jour, 0, 4)); define(date_file, date("YmdHis")); define(date_envoi, date("d/m/Y à H:i:s")); define(date_event, date("d/m/Y", mktime(0, 0, 0, mois, jour - 1, annee))); define(from, date("Y-m-d H:i:s", mktime(0, 0, 0, mois, jour - 1, annee))); define(to, date("Y-m-d H:i:s", mktime(23, 59, 59, mois, jour - 1, annee))); $req = "select idpatient, uf , dt_naissance , type_destination\r\n from patients_sortis\r\n\t where manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1\r\n\t\tUNION\r\n\t\tselect idpatient, uf , dt_naissance , type_destination\r\n\t\tfrom patients_presents\r\n\t\twhere manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1"; $config[type] = "MySQL"; $config[host] = MYSQL_HOST; $config[login] = MYSQL_USER; $config[password] = MYSQL_PASS; $config[db] = BDD; $requete = new clResultQuery(); // On récupère le résultat de la requête sous la forme ResultQuery. $res = $requete->Execute("requete", $req, $config); eko($res[INDIC_SVC]); $age1 = 0; $age75 = 0; $NbHospit = 0; $NbUHCD = 0; $NbTransfert = 0; $ufUHCD = $options->getOption("numUFUHCD"); //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2]) { $NbPassages = $res[INDIC_SVC][2]; // On a le nombre de passages while (list($key, $val) = each($res[dt_naissance])) { $dateN = new clDate($val); $dateA = new clDate(from); $duree = new clDuree(); $duree->setValues($dateA->getDifference($dateN)); $age = $duree->getYears(); if ($age < 1) { $age1++; // Constitution du nb de passage < à 1 an } elseif ($age > 75) { $age75++; // Constitution du nb de passage > 75 ans } // Hospitalisations if ($res[type_destination][$key] == "H" and $res[uf][$key] != $ufUHCD) { $NbHospit++; } // UHCD if ($res[uf][$key] == $ufUHCD) { $NbUHCD++; } // Transferts if ($res[type_destination][$key] == "T") { $NbTransfert++; } //echo $val."--=> ".$res[type_destination][$key]." ".$age ." ans <br>"; } $balise_element = "\n<entete>"; $balise_element .= "\n<idActeur>" . idActeur . "</idActeur>"; $balise_element .= "\n<cleActeur>" . cleDepot . "</cleActeur>"; $balise_element .= "\n<arRequis>" . arRequis . "</arRequis>"; $balise_element .= "\n<mail>" . mail . "</mail>"; $balise_element .= "\n</entete>"; $balise_element .= "\n<element>"; $balise_element .= "\n<nomForm>" . nomForm . "</nomForm>"; $balise_element .= "\n<date_event>" . date_event . "</date_event>"; $balise_element .= "\n<NbPassages>{$NbPassages}</NbPassages>"; $balise_element .= "\n<NbPassInf1An>{$age1}</NbPassInf1An>"; $balise_element .= "\n<NbPassageSup75Ans>{$age75}</NbPassageSup75Ans>"; $balise_element .= "\n<NbHospit>{$NbHospit}</NbHospit>"; $balise_element .= "\n<NbHospitUHCD>{$NbUHCD}</NbHospitUHCD>"; $balise_element .= "\n<NbTransfert>{$NbTransfert}</NbTransfert>"; $balise_element .= "\n</element>"; $nom_fic = idActeur . "_" . date_file . ".xml"; $nom_fic_export = chemin . $nom_fic; $xml_data = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"?>\r\n\t\t\t\n<result>" . $balise_element . "\n</result>"; $fp = fopen($nom_fic_export, "w"); if (!fwrite($fp, $xml_data)) { eko("pb ecriture fichier xml"); } fclose($fp); copy($nom_fic_export, URLLOCAL . 'rpu/logs/' . $nom_fic); $affichage = "<center><h2>Export des données Urgences - CH-Hyères</h2></center>\r\n\t\t\t<u>Date d'export:</u> le " . date_envoi . "<br>\r\n\t\t\t<u>Contenu exporté :</u> {$balise_element}<br>\r\n\t\t\t<u>Fichier d'export :</u> {$nom_fic_export}"; // Cryptage du fichier. $mailE = $options->getOption('RPU_Envoi_Mail'); $gpg = new gnuPG(false, GNUPG); $gpg->EncryptFile($mailE, $nom_fic_export); if (!$gpg->error) { $this->message .= "<font color=\"green\">Le cryptage du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>"; } else { $this->message .= "<font color=\"red\">Le cryptage du fichier ({$nom_fic_export}.gpg) a échoué :" . $gpg->error . "<br/></font>"; } if ($options->getOption('RPU_TypeEnvoi') == 'mail') { // Envoi du fichier RPU. $contenuFic = fread(fopen($nom_fic_export . '.gpg', "r"), filesize($nom_fic_export . '.gpg')); // eko ( $contenuFic ) ; $mail = new mime_mail(); $mail->to = $options->getOption("RPU_Envoi_Mail"); //$mail->to = "*****@*****.**" ; //eko ( $options->getOption ( "RPU_Envoi_Mail" ) ) ; $mail->subject = "Données urgences (" . date_envoi . ")"; $mail->body = "Données urgences (" . date_envoi . ")"; $mail->from = Erreurs_MailApp; $mail->attach($contenuFic, $nom_fic . '.gpg'); if ($mail->sendXham()) { $this->message .= "<font color=\"green\">L'envoi du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>"; } else { $this->message .= "<font color=\"red\">L'envoi du fichier ({$nom_fic_export}.gpg) a échoué.<br/></font>"; } } else { rename($nom_fic_export, chemin . 'ok/' . $nom_fic); $this->message .= "Connexion au serveur FTP '" . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . "' -> "; $con = ftp_connect($options->getOption('RPU_FTP_Host')); if (!$con) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible de se connecter au serveur "' . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . '"'); } else { $this->message .= "<font color='green'>OK</font><br/>"; $this->message .= "Authentification au serveur FTP avec l'utilisateur '" . $options->getOption('RPU_FTP_User') . "' -> "; $log = ftp_login($con, $options->getOption('RPU_FTP_User'), $options->getOption('RPU_FTP_Pass')); if (!$log) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible de se connecter au serveur avec l\'utilisateur "' . $options->getOption('RPU_FTP_User') . '"'); } else { $this->message .= "<font color='green'>OK</font><br/>"; $r = opendir('rpu/arh/'); while ($fic = readdir($r)) { if ($fic != "." and $fic != ".." and $fic != "ok" and $fic != "logs" and $fic != 'arh') { $this->message .= "Envoi du fichier '{$fic}' -> "; $put = ftp_put($con, $fic, chemin . $fic, FTP_BINARY); if (!$put) { $this->message .= "<font color='red'>KO</font><br/>"; $errs->addErreur('RPU : Impossible d\'envoyer le fichier "' . $fic . '".'); } else { $this->message .= "<font color='green'>OK</font><br/>"; rename(chemin . $fic, chemin . 'ok/' . $fic); } } } } } } $this->af = $affichage . "<br/>" . $this->message; } else { $this->af .= "Aucun patient retourné par la requête : envoi impossible."; } }
function 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); } }