pour déploiement auto v2 via gitlab
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

659 lines
30 KiB

<?php
// A CONFIGURER : Année de sortie de la Fonction Groupage
$FG_YEAR='2015';
// A CONFIGURER : Version de la Fonction Groupage et de la Classification des GHM
$FG_VERSION='fg1311g';
// A CONFIGURER : Version PRECEDENTE de la Fonction Groupage et de la Classification des GHM
$FG_PGM='fg11f11g.exe';
$workDir = $mgt_path.'/'.$FG_YEAR;
$csvColumns[$FG_YEAR] = "annee_sortie numeric(4),
no_rss bigint DEFAULT 0,
ghm_fg1_code character(6),
ghs_fg1_code numeric(4),
erreur character varying(10000) DEFAULT ''::character varying,
commentaire character varying(10000) DEFAULT ''::character varying,
nb_exh_fg1 numeric(5, 0) DEFAULT 0,
nb_exb_fg1 numeric(5, 1) DEFAULT 0,
nb_rea_fg1 numeric(5, 0) DEFAULT 0,
nb_rep_fg1 numeric(5, 0) DEFAULT 0,
nb_src_fg1 numeric(5, 0) DEFAULT 0,
nb_stf_rea_fg1 numeric(5, 0) DEFAULT 0,
nb_stf_fg1 numeric(5, 0) DEFAULT 0,
nb_nn1_fg1 numeric(5, 0) DEFAULT 0,
nb_nn2_fg1 numeric(5, 0) DEFAULT 0,
nb_nn3_fg1 numeric(5, 0) DEFAULT 0,
nb_ant_fg1 numeric(5, 0) DEFAULT 0,
nb_rap_fg1 numeric(5, 0) DEFAULT 0,
ghs_minore_code character(1)";
//group_file_2015();
// Récupère et groupe le fichier de groupage depuis le site www.ctisante.com.
function group_file_2015() {
echo "\r\n" . date("d/m/Y H:i:s") . "\t" . "groupage fichier version groupeur 2015";
global $tmp_RSSoutfile;
global $mgt_path;
global $ngExt;
global $workDir;
global $FG_YEAR;
global $FG_VERSION;
global $FG_PGM;
$absoluteWorkDir = $workDir;
$dirFG12 = Environnement::getFiness();
$tmp = explode('/'.$dirFG12.'/',$tmp_RSSoutfile);
$fileFG12 = $tmp[1];
//partie copiée de PMSI4CTI_simulationV1311X partie if ($operation == OP_GROUP_FILE) {} en enlevant get_file_from_web($fileFG12);
$rss_array = array();
$rss_dp_array = array();
$rss_dr_array = array();
$rss_da_array = array();
$diag_p_array = array();
$diag_a_array = array();
$actes_array = array();
$diag_handle = fopen($workDir . "/pgm/diags.csv", "r");
$inputR = 0;
while (($data = fgetcsv($diag_handle, 1000, ";")) !== FALSE) {
$inputR++;
if ($inputR > 1 && trim($data[2]) != "") {
$from_code = substr(trim($data[0]) . " ", 0, 8);
$to_code = substr(trim($data[2]) . " ", 0, 8);
$diag_a_array[$from_code] = $to_code;
}
if ($inputR > 1 && trim($data[3]) != "") {
$from_code = substr(trim($data[0]) . " ", 0, 8);
$to_code = substr(trim($data[3]) . " ", 0, 8);
$diag_p_array[$from_code] = $to_code;
}
}
fclose($diag_handle);
$acte_handle = fopen($workDir . "/pgm/actes.csv", "r");
$inputR = 0;
while (($data = fgetcsv($acte_handle, 1000, ";")) !== FALSE) {
$inputR++;
if ($inputR > 1 && trim($data[3]) != "") {
$from_code = substr(trim($data[0]) . " ", 0, 10);
if (trim($data[3]) != "*SUP") {
$to_code = substr(trim($data[3]) . " ", 0, 10);
} else {
$to_code = "*SUP";
}
$actes_array[$from_code] = $to_code;
}
}
fclose($acte_handle);
$typegrp = "2";
$debugFG12 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".debug";
$debugFG12_handle = fopen($workDir . "/files/$dirFG12/$debugFG12", "w");
// préparation
$tempFG12 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN";
$tempFG12_handle = fopen($workDir . "/files/$dirFG12/$tempFG12", "w");
$umFG12 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".FICUM";
$umFG12_handle = fopen($workDir . "/files/$dirFG12/$umFG12", "w");
$fg12_handle = @fopen($workDir . "/files/$dirFG12/$fileFG12", "r");
if ($fg12_handle) {
$no_ligne = 0;
while (!feof($fg12_handle)) {
$buffer = fgets($fg12_handle, 102400);
$no_ligne++;
if (trim($buffer) != "" && $no_ligne < 100000000) {
if (substr($buffer, 0, 9) == "TYPEETS=2" || substr($buffer, 0, 9) == "TYPEETS=3") {
$typegrp = "1";
} else {
if (substr($buffer, 0, 10) == "UNITEMEDIC") {
$buffer = substr($buffer, 10);
$buffer = str_replace("0101" . $FG_YEAR . "000", "0101" . ($FG_YEAR - 1) . "000", $buffer);
fwrite($umFG12_handle, "$buffer");
} else {
$no_rss = substr($buffer, 27, 20);
$cmd_code = substr($buffer, 2, 2);
$rss_array[$no_rss] = array();
$rss_array[$no_rss][0] = substr($no_rss, 0, 4);
$rss_array[$no_rss][1] = substr($no_rss, 4, 16);
$rss_array[$no_rss][2] = substr($buffer, 2, 6);
//$rss_array[$no_rss][3] = substr($buffer , 6 , 4);
$rss_array[$no_rss][3] = "0000";
$rss_array[$no_rss][4] = " ";
$rss_array[$no_rss][5] = " ";
$rss_array[$no_rss][6] = " ";
$rss_array[$no_rss][7] = " ";
$rss_array[$no_rss][8] = " ";
$rss_array[$no_rss][9] = " ";
$rss_array[$no_rss][11] = 0;
$rss_array[$no_rss][12] = 0;
$rss_array[$no_rss][13] = 0;
$rss_array[$no_rss][14] = 0;
$rss_array[$no_rss][15] = 0;
$rss_array[$no_rss][16] = 0;
$rss_array[$no_rss][17] = 0;
$rss_array[$no_rss][18] = 0;
$rss_array[$no_rss][19] = 0;
$rss_array[$no_rss][20] = 0;
$rss_dp_array[$no_rss] = "";
$rss_dr_array[$no_rss] = "";
$rss_da_array[$no_rss] = "";
$rss_array[$no_rss][4] = "";
$rss_array[$no_rss][5] = "ZZZZZZ";
$rss_array[$no_rss][6] = 9999;
$rss_array[$no_rss][7] = "";
$ghm_fg12_5 = substr($buffer, 2, 5);
$cmd = substr($buffer, 2, 2);
$buffer = substr($buffer, 15);
if (substr($buffer, 9, 3) == "015") {
$buffer = substr($buffer, 0, 108) . " " . substr($buffer, 108, 39) . " " . " " . substr($buffer, 150);
}
// Remplacement mode entree / provenance
$mode_entree = substr($buffer, 85, 1);
$provenance = substr($buffer, 86, 1);
if ($mode_entree == "8" & $provenance != " ") {
$buffer = substr_replace($buffer, " ", 86, 1);
}
// Remplacement mode sortie / destination
$mode_sortie = substr($buffer, 95, 1);
$destination = substr($buffer, 96, 1);
if ($mode_sortie == "8" & $destination != " ") {
$buffer = substr_replace($buffer, " ", 96, 1);
}
// Remplacement "Nb de séances"
if ($modeTraitement) {
$date_entree = substr($buffer, 77, 8);
$date_sortie = substr($buffer, 87, 8);
$nb_seances = (int) substr($buffer, 116, 2);
if (($date_entree == $date_sortie) && ($cmd == "28") && ($nb_seances == 0)) {
$buffer = substr_replace($buffer, '01', 116, 2);
}
}
if (substr($buffer, 125, 1) == "O") {
$buffer = substr_replace($buffer, "0107" . ($FG_YEAR - 1), 108, 8);
}
if (substr($buffer, 125, 3) == "Z35") {
$buffer = substr_replace($buffer, "0107" . ($FG_YEAR - 1), 108, 8);
}
if (substr($buffer, 177, 3) == "Z35") {
$buffer = substr_replace($buffer, "0107" . ($FG_YEAR - 1), 108, 8);
}
if (substr($buffer, 185, 3) == "Z35") {
$buffer = substr_replace($buffer, "0107" . ($FG_YEAR - 1), 108, 8);
}
if (substr($buffer, 193, 3) == "Z35") {
$buffer = substr_replace($buffer, "0107" . ($FG_YEAR - 1), 108, 8);
}
// Remplacement confirmation codage
$confirmation = substr($buffer, 144, 1);
if ($confirmation == "1") {
//$buffer = substr_replace($buffer, "2", 144, 1);
}
if ($ghm_fg12_5 == "03C26") {
//$buffer = substr_replace($buffer,"1", 144, 1);
}
// Remplacement version
$version = substr($buffer, 9, 3);
if ($version == "016") {
$buffer = substr_replace($buffer, "017", 9, 3);
echo 'in';
}
// Age gestationnel
$age = substr($buffer, 106, 2);
if ($age + 0 == 0 && $cmd_code == "14" && substr($buffer, 102, 4) != "0000") {
$buffer = substr_replace($buffer, "38", 106, 2);
}
if ($age + 0 == 0 && $cmd_code == "15" && substr($buffer, 102, 4) != "0000") {
$buffer = substr_replace($buffer, "38", 106, 2);
}
// Remplacement diagnostic principal
$diag_p_in = substr($buffer, 125, 8);
if (trim($diag_p_in) != "****") {
$diag_p = "";
$diag_p = @$diag_p_array[$diag_p_in];
if (trim($diag_p) != "MAT") {
if (strlen($diag_p) != 8) {
$diag_p = @$diag_a_array[$diag_p_in];
}
if (strlen($diag_p) == 8) {
$buffer = substr_replace($buffer, $diag_p, 125, 8);
$rss_array[$no_rss][9] = $rss_array[$no_rss][9] . "RDP " . trim($diag_p_in) . " remplacé par " . trim($diag_p) . ", ";
}
} else {
$diags_a_l = substr($buffer, 118, 2) + 0;
if ($diags_a_l > 0) {
$echange = false;
for ($i = 0; $i < $diags_a_l; $i++) {
$diag_a_in = substr($buffer, 177 + ($i * 8), 8);
if (substr($diag_a_in, 0, 3) == "O68" || substr($diag_a_in, 0, 3) == "O69") {
$buffer = substr_replace($buffer, $diag_a_in, 125, 8);
$buffer = substr_replace($buffer, $diag_p_in, 177 + ($i * 8), 8);
$rss_array[$no_rss][9] = $rss_array[$no_rss][9] . "Echange DP/DA " . trim($diag_p_in) . "-" . trim($diag_a_in) . ", ";
$echange = true;
break;
}
}
}
if ($echange == false) {
if ($diags_a_l > 0) {
$echange = false;
for ($i = 0; $i < $diags_a_l; $i++) {
$diag_a_in = substr($buffer, 177 + ($i * 8), 8);
if (substr($diag_a_in, 0, 2) == "O6") {
$buffer = substr_replace($buffer, $diag_a_in, 125, 8);
$buffer = substr_replace($buffer, $diag_p_in, 177 + ($i * 8), 8);
$rss_array[$no_rss][9] = $rss_array[$no_rss][9] . "DP/DA " . trim($diag_p_in) . "-" . trim($diag_a_in) . " échangés, ";
$echange = true;
break;
}
}
}
}
}
$diag_p = trim(substr($buffer, 125, 8));
if ($diag_p != "") {
if (trim($rss_dp_array[$no_rss]) == "") {
$rss_dp_array[$no_rss] = $diag_p . ",";
} else {
if (strpos($rss_dp_array[$no_rss], $diag_p . ",") === false) {
$rss_dp_array[$no_rss] = $rss_dp_array[$no_rss] . $diag_p . ",";
}
}
}
// Remplacement diagnostic relie
$diag_r_in = substr($buffer, 133, 8);
$diag_r = "";
$diag_r = @$diag_p_array[$diag_r_in];
if (strlen($diag_r) != 8 && trim($diag_r) != "MAT") {
$diag_r = @$diag_a_array[$diag_r_in];
}
if (strlen($diag_r) == 8) {
$buffer = substr_replace($buffer, $diag_r, 133, 8);
$rss_array[$no_rss][9] = $rss_array[$no_rss][9] . "DR " . trim($diag_r_in) . " remplacé par " . trim($diag_r) . ", ";
}
$diag_r = trim(substr($buffer, 133, 8));
if ($diag_r != "") {
if ($rss_dr_array[$no_rss] == "") {
$rss_dr_array[$no_rss] = $diag_r . ",";
} else {
if (strpos($rss_dr_array[$no_rss], $diag_r . ",") === false) {
$rss_dr_array[$no_rss] = $rss_dr_array[$no_rss] . $diag_r . ",";
}
}
}
// Remplacement diagnostics associés
$diags_a_l = substr($buffer, 118, 2) + 0;
if ($diags_a_l > 0) {
for ($i = 0; $i < $diags_a_l; $i++) {
$diag_a_in = substr($buffer, 177 + ($i * 8), 8);
$diag_a = "";
$diag_a = @$diag_a_array[$diag_a_in];
if (strlen($diag_a) == 8) {
$buffer = substr_replace($buffer, $diag_a, 177 + ($i * 8), 8);
$rss_array[$no_rss][9] = $rss_array[$no_rss][9] . "DA " . trim($diag_a_in) . " remplacé par " . trim($diag_a) . ", ";
}
$diag_a = trim(substr($buffer, 177 + ($i * 8), 8));
if ($diag_a != "") {
if ($rss_da_array[$no_rss] == "") {
$rss_da_array[$no_rss] = $diag_a . ",";
} else {
if (strpos($rss_da_array[$no_rss], $diag_a . ",") === false) {
$rss_da_array[$no_rss] = $rss_da_array[$no_rss] . $diag_a . ",";
}
}
}
}
}
// Remplacement actes
$diags_a_l = substr($buffer, 118, 2) + 0;
$diags_n_l = substr($buffer, 120, 2) + 0;
$actes_l = substr($buffer, 122, 3) + 0;
$pos_actes = 177 + ($diags_n_l * 8) + ($diags_a_l * 8);
// par rapport au passage a la V17, la taille des actes ccam a été rallongée de 3 caractères (10 maintenant)
// implémentation de ce bout de code pour traiter en 2015 les fichiers en V16 (2014)
/* if ($actes_l > 0) {
$actes_traites = "";
$actes = substr($buffer, $pos_actes , 26 * $actes_l);
$arr_actes = str_split($actes, 26);
foreach ($arr_actes as $actes_a_traiter){
$actes_traites .= substr($actes_a_traiter, 0, 15 ) . "-00" . substr($actes_a_traiter, 15, 26);
//SPECIAL RECHERCHE ACTES A DECOMMENTER SI BESOIN
// $actes_traites_2 = substr($actes_a_traiter, 8, 7 ) . "-00";
// $file_debug .= PHP_EOL . $no_rss . ";" . $actes_traites_2;
//SPECIAL RECHERCHE ACTES
}
//SPECIAL RECHERCHE ACTES A DECOMMENTER SI BESOIN
//FILE_PUT_CONTENTS("d:/cti/temp/actes_debug.txt", $file_debug, FILE_APPEND );
//$file_debug = "";
//FIN SPECIAL RECHERCHE ACTES
$buffer = substr_replace($buffer, $actes_traites, $pos_actes, strlen($actes) );
} */
// Fin implementation CCAM 10 caractères
if ($actes_l > 0) {
$nb_actes_supprimes = 0;
$actes_traites = "";
$actes = substr($buffer, $pos_actes , 29 * $actes_l);
$arr_actes = str_split($actes, 29);
foreach ($arr_actes as $actes_a_traiter){
$actes_a_remplacer = substr($actes_a_traiter, 8, 10 );
if (strlen($actes_a_remplacer) > 0){
// si actes present dans tableaux actes.csv faire le remplacement
if (array_key_exists($actes_a_remplacer, $actes_array) ){
if ($actes_array[$actes_a_remplacer] != "*SUP"){
$actes_a_traiter = preg_replace ('/' . $actes_a_remplacer . '/' , $actes_array[$actes_a_remplacer] ,$actes_a_traiter);
$rss_array[$no_rss][9] = $rss_array[$no_rss][9] . "$actes_a_remplacer remplacé par $actes_array[$actes_a_remplacer], ";
}
else {
$actes_a_traiter = "";
$rss_array[$no_rss][9] = $rss_array[$no_rss][9] . "$actes_a_remplacer supprimé, ";
$nb_actes_supprimes = $nb_actes_supprimes + 1;
}
}
$actes_traites .= $actes_a_traiter;
}
}
$buffer = substr_replace($buffer, $actes_traites, $pos_actes, strlen($actes) );
$nb_actes = $actes_l - $nb_actes_supprimes;
if ($nb_actes < 100){
$nb_actes = "0" . "$nb_actes";
if ($nb_actes < 10){
$nb_actes = "0" . "$nb_actes";
}
}
$buffer = substr_replace($buffer, "$nb_actes" , 122 , 3 );
}
fwrite($tempFG12_handle, ltrim("$buffer"));
}
}
}
}
}
fclose($fg12_handle);
}
fclose($tempFG12_handle);
fclose($umFG12_handle);
$logFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN.log";
$errFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN.err";
// Groupage
$shell_cmd = "$absoluteWorkDir/pgm/fg/bin/" . $FG_PGM . " $absoluteWorkDir/files/$dirFG12/$tempFG12 $absoluteWorkDir/pgm/fg/TABLES/ $typegrp $absoluteWorkDir/files/$dirFG12/$umFG12 $absoluteWorkDir/files/$dirFG12/";
fwrite($debugFG12_handle, "$shell_cmd");
shell_exec($shell_cmd);
fclose($debugFG12_handle);
$errFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN.err";
$errFG13_handle = @fopen($workDir . "/files/$dirFG12/$errFG13", "r");
while (($data = fgetcsv($errFG13_handle, 1000, ",")) !== FALSE) {
$no_rss = $data[0];
$rss_array[$no_rss][8] = $data[4];
}
fclose($errFG13_handle);
$rdsFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN.rds";
$rdsFG13_handle = @fopen($workDir . "/files/$dirFG12/$rdsFG13", "r");
if ($rdsFG13_handle) {
while (!feof($rdsFG13_handle)) {
$buffer = fgets($rdsFG13_handle, 10240);
$no_ligne++;
if (trim($buffer) != "" && $no_ligne < 10000000) {
$no_rss = substr($buffer, 0, 20); // N° RSS
$rss_array[$no_rss][4] = get_ghm($rss_array[$no_rss][2]);
$rss_array[$no_rss][5] = substr($buffer, 37, 6); // GHM
$rss_array[$no_rss][6] = substr($buffer, 93, 4); // GHS
$rss_array[$no_rss][7] = get_ghm($rss_array[$no_rss][5]);
$rss_array[$no_rss][8] = get_err($rss_array[$no_rss][8]);
// Supplements
$rss_array[$no_rss][11] = substr($buffer, 97, 4) + 0; // nb_exh_fg1 : nombre de journées au dela de la borne haute
$rss_array[$no_rss][12] = (substr($buffer, 102, 5) + 0); // nb_exb_fg1 : nombre de journées en dessous de la borne basse
$rss_array[$no_rss][13] = substr($buffer, 108, 3) + 0; // nb_rea_fg1 : nombre de suppléments de réanimation
$rss_array[$no_rss][14] = substr($buffer, 111, 3) + 0; // nb_rep_fg1 : nombre de suppléments de réanimation pédiatrique
$rss_array[$no_rss][15] = substr($buffer, 114, 3) + 0; // nb_src_fg1 : nombre de suppléments surveillance continue
$rss_array[$no_rss][16] = substr($buffer, 117, 3) + 0; // nb_stf_rea_fg1 : nombre de suppléments soins intensifs provenant de la réanimation
$rss_array[$no_rss][17] = substr($buffer, 120, 3) + 0; // nb_stf_fg1 : nombre total de suppléments soins intensifs, y compris les suppléments provenant de la réanimation
$rss_array[$no_rss][18] = substr($buffer, 166, 3) + 0; // nb_nn1_fg1 : nombre de journées de néonatologie type 2A
$rss_array[$no_rss][19] = substr($buffer, 169, 3) + 0; // nb_nn2_fg1 : nombre de journées de néonatologie type 2B
$rss_array[$no_rss][20] = substr($buffer, 172, 3) + 0; // nb_nn3_fg1 : nombre de journées de néonatologie type 3
$rss_array[$no_rss][21] = substr($buffer, 194, 3) + 0; // nb_ant_fg1 : Nombre de suppléments antepartum
$rss_array[$no_rss][22] = substr($buffer, 197, 3) + 0; // nb_rap_fg1 : Nombre d?actes pour le supplément radiothérapie pédiatrique
$rss_array[$no_rss][23] = substr($buffer, 200, 1) + 0; // GHS Minoré
}
}
}
fclose($rdsFG13_handle);
// detail par RSS
$rssFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".csv";
$rssFG13_handle = fopen($workDir . "/files/$dirFG12/$rssFG13", 'w');
foreach ($rss_array as $rss) {
fwrite($rssFG13_handle, implode(';',$rss).PHP_EOL);
}
fclose($rssFG13_handle);
// fichier à renvoyer
$fileFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . "." . strtoupper($FG_VERSION);
@unlink($workDir . "/files/$dirFG12/$fileFG13");
$fileFG13_handle = fopen($workDir . "/files/$dirFG12/$fileFG13", 'w');
foreach ($rss_array as $rss) {
if ($rss[0] != "") {
$torss = array();
$torss[0] = $rss[0];
$torss[1] = $rss[1];
$torss[2] = $rss[5];
$torss[3] = trim($rss[6]);
if ($torss[3] == "D09") {
$torss[3] = "9999";
}
if ($torss[3] == "D19") {
$torss[3] = "9999";
}
if (substr($torss[3], 0, 1) == "D") {
$torss[3] = "9999";
}
$torss[4] = $rss[8];
$torss[5] = $rss[9];
$torss[11] = $rss[11];
$torss[12] = $rss[12];
$torss[13] = $rss[13];
$torss[14] = $rss[14];
$torss[15] = $rss[15];
$torss[16] = $rss[16];
$torss[17] = $rss[17];
$torss[18] = $rss[18];
$torss[19] = $rss[19];
$torss[20] = $rss[20];
$torss[21] = $rss[21];
$torss[22] = $rss[22];
$torss[23] = $rss[23];
fputcsv($fileFG13_handle, $torss, ";");
}
}
fclose($fileFG13_handle);
// Log cti
$logFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN.log";
$errFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN.err";
// préparation
$tempFG12 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN";
$fg12_handle = @fopen($workDir . "/files/$dirFG12/$tempFG12", "r");
if ($fg12_handle) {
while (!feof($fg12_handle)) {
$buffer = fgets($fg12_handle, 10240);
$no_ligne++;
if (trim($buffer) != "" && $no_ligne < 100000000) {
$no_rss = substr($buffer, 12, 20);
$rss_dp_array[$no_rss] = "";
$rss_dr_array[$no_rss] = "";
$rss_da_array[$no_rss] = "";
$rss_ac_array[$no_rss] = "";
$diag_p = trim(substr($buffer, 125, 8));
if ($diag_p != "") {
if ($rss_dp_array[$no_rss] == "") {
$rss_dp_array[$no_rss] = $diag_p . "-";
} else {
if (strpos($rss_dp_array[$no_rss], $diag_p . "-") === false) {
$rss_dp_array[$no_rss] = $rss_dp_array[$no_rss] . $diag_p . "-";
}
}
}
$diag_r = trim(substr($buffer, 133, 8));
if ($diag_r != "") {
if ($rss_dr_array[$no_rss] == "") {
$rss_dr_array[$no_rss] = $diag_r . "-";
} else {
if (strpos($rss_dr_array[$no_rss], $diag_r . "-") === false) {
$rss_dr_array[$no_rss] = $rss_dr_array[$no_rss] . $diag_r . "-";
}
}
}
// Remplacement diagnostics associés
$diags_a_l = substr($buffer, 118, 2) + 0;
if ($diags_a_l > 0) {
for ($i = 0; $i < $diags_a_l; $i++) {
$diag_a = trim(substr($buffer, 177 + ($i * 8), 8));
if ($diag_a != "") {
if ($rss_da_array[$no_rss] == "") {
$rss_da_array[$no_rss] = $diag_a . "-";
} else {
if (strpos($rss_da_array[$no_rss], $diag_a . "-") === false) {
$rss_da_array[$no_rss] = $rss_da_array[$no_rss] . $diag_a . "-";
}
}
}
}
}
$diags_a_l = substr($buffer, 118, 2) + 0;
$diags_n_l = substr($buffer, 120, 2) + 0;
$actes_l = substr($buffer, 122, 3) + 0;
$pos_actes = 177 + ($diags_a_l * 8) + ($diags_n_l * 8);
if ($actes_l > 0) {
$rss_ac_array = array();
for ($i = 0; $i < $actes_l; $i++) {
$acte = substr($buffer, 177 + ($diags_a_l * 8) + ($diags_n_l * 8) + ($i * 28) + 8, 7);
if ($rss_ac_array[$no_rss] == "") {
$rss_ac_array[$no_rss] = $acte . "-";
} else {
if (strpos($rss_ac_array[$no_rss], $acte . "-") === false) {
$rss_ac_array[$no_rss] = $rss_ac_array[$no_rss] . $acte . "-";
}
}
}
}
}
}
fclose($fg12_handle);
}
$ctilogFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".CTILOG";
$ctilogFG13_handle = fopen($workDir . "/files/$dirFG12/$ctilogFG13", "w");
fwrite($ctilogFG13_handle, "Sommaire\r\n");
fwrite($ctilogFG13_handle, @file_get_contents($workDir . "/files/$dirFG12/$logFG13"));
fwrite($ctilogFG13_handle, "\r\nDétail\r\n");
$errFG13 = substr($fileFG12, 0, strlen($fileFG12) - strlen($ngExt)) . ".IN.err";
$errFG13_handle = @fopen($workDir . "/files/$dirFG12/$errFG13", "r");
while (($data = fgetcsv($errFG13_handle, 1000, ",")) !== FALSE) {
$no_rss = $data[0];
$um = $data[1];
$code_err = $data[4];
$text_err = get_err($code_err);
$dp = "Aucun DP";
$dr = "Aucun DR";
$da = "Aucun DA";
$ac = "Aucun Acte";
if ($rss_dp_array[$no_rss] != "") {
$dp = "DP=" . substr($rss_dp_array[$no_rss], 0, strlen($rss_dp_array[$no_rss]) - 1);
}
if ($rss_dr_array[$no_rss] != "") {
$dr = "DR=" . substr($rss_dr_array[$no_rss], 0, strlen($rss_dr_array[$no_rss]) - 1);
}
$da = "";
if ($rss_da_array[$no_rss] != "") {
$da = "DA=" . substr($rss_da_array[$no_rss], 0, strlen($rss_da_array[$no_rss]) - 1);
}
$ac = "";
if ($rss_ac_array[$no_rss] != "") {
$ac = "actes=" . substr($rss_ac_array[$no_rss], 0, strlen($rss_ac_array[$no_rss]) - 1);
}
fwrite($ctilogFG13_handle, "$no_rss; $um; $code_err; $text_err; $dp; $dr; $da; $ac\r\n");
}
fclose($errFG13_handle);
fclose($ctilogFG13_handle);
$return_code = "OK";
$return_message = "Regroupement terminé";
}
?>