exec($sqlcmd);
	
	$ok = FALSE;
	
	if ($result != false) {
	
		$record = $database->nextRecordInto();
		if ($record != FALSE) {
		
			$ok = TRUE;
		
			$oid = $record[0];
			$texte = utf8_decode(trim($record[1]));
			$date_import = trim($record[2]);
			$etat = trim($record[3]);
			$etat_en_cours = trim($record[4]);
			$finess = trim($record[5]);
			$date_debut = trim($record[6]);
			$date_fin = trim($record[7]);
			$nb_rss = trim($record[8]);
			$nb_rum = trim($record[9]);
			$nb_rsf = trim($record[10]);
			$nb_erreurs = trim($record[11]);
			$nb_avertissements = trim($record[12]);
			$rss_file_path = utf8_decode(trim($record[13]));
			$rss_data_size = $record[14] + 0;
			$rsf_file_path = utf8_decode(trim($record[15]));
			$rsf_data_size = $record[16] + 0;
			$zin_file_path = utf8_decode(trim($record[17]));
			$zin_data_size = $record[18] + 0;
			$zou_file_path = utf8_decode(trim($record[19]));
			$zou_data_size = $record[20] + 0;
			$zif_file_path = utf8_decode(trim($record[21]));
			$zif_data_size = $record[22] + 0;
			$fcp_file_path = utf8_decode(trim($record[23]));
			$fcp_data_size = $record[24] + 0;
			$med_file_path = utf8_decode(trim($record[25]));
			$med_data_size = $record[26] + 0;
			$rssmed_file_path = utf8_decode(trim($record[27]));
			$rssmed_data_size = $record[28] + 0;
			$rssnom_file_path = utf8_decode(trim($record[29]));
			$rssnom_data_size = $record[30] + 0;
			$actmed_file_path = utf8_decode(trim($record[31]));
			$actmed_data_size = $record[32] + 0;
			$finess_texte = trim($record[33]);
			$vsj_file_path = utf8_decode(trim($record[35]));
			$vsj_data_size = $record[36] + 0;
			$vse_file_path = utf8_decode(trim($record[37]));
			$vse_data_size = $record[38] + 0;
			$tsp_file_path = utf8_decode(trim($record[39]));
			$tsp_data_size = $record[40] + 0;
		}
		
	}
		
	
	
	if($ok == TRUE) {
	
		$etat_text = $etat;
		if ($etat == "C") {
			$etat = "Contrôlé";
		}
		if ($etat == "G") {
			$etat = "Généré";
		}
		
		echo "

RAPPORT DE L'IMPORT DES FICHIERS RSS/RSF

"; echo "
"; echo "

$finess_texte ($finess)

"; echo "

Import n° $import_id du $date_import (Expédié à ePMSI)

"; echo "
"; echo "
Etat $etat_text"; echo "
"; echo "
Fichiers :"; if ($zin_file_path != "") { echo "
RSS IN.ZIP : $zin_file_path ($zin_data_size octets)"; } if ($zou_file_path != "") { echo "
RSS OUT.ZIP : $zou_file_path ($zou_data_size octets)"; } if ($zif_file_path != "") { echo "
RSF IN.ZIP : $zif_file_path ($zif_data_size octets)"; } if ($rss_file_path != "") { echo "
RSS : $rss_file_path ($rss_data_size octets)"; } if ($rsf_file_path != "") { echo "
RSF : $rsf_file_path ($rsf_data_size octets)"; } if ($fcp_file_path != "") { echo "
FICHCOMP : $fcp_file_path ($fcp_data_size octets)"; } if ($med_file_path != "") { echo "
Médecins : $med_file_path ($med_data_size octets)"; } if ($rssmed_file_path != "") { echo "
RSS - Médecins : $rssmed_file_path ($rssmed_data_size octets)"; } if ($rssnom_file_path != "") { echo "
RSS - Noms : $rssnom_file_path ($rssnom_data_size octets)"; } if ($actmed_file_path != "") { echo "
Actes - Médecins : $actmed_file_path ($actmed_data_size octets)"; } if ($vsj_file_path != "") { echo "
Valorisation Séjours : $vsj_file_path ($vsj_data_size octets)"; } if ($vse_file_path != "") { echo "
Valorisation ACE : $vse_file_path ($vse_data_size octets)"; } if ($tsp_file_path != "") { echo "
FICHSUP transports : $tsp_file_path ($tsp_data_size octets)"; } echo "
"; echo "
Contenu :"; echo "
Finess $finess"; echo "
Période $date_debut - $date_fin"; echo "
$nb_rss RSS"; echo "
$nb_rum RUM"; echo "
$nb_rsf RSF"; echo "
"; echo "
Contrôle :"; if ($nb_erreurs > 0) { echo "
$nb_erreurs erreur(s) grave(s)"; } else { echo "
Aucune erreur grave"; } if ($nb_avertissements > 0) { echo "
$nb_avertissements avertissement(s)"; } else { echo "
Aucun avertissement"; } if ($nb_erreurs > 0 || $nb_avertissements > 0) { $sqlcmd = "SELECT erreur_code, erreur_texte, count(*) FROM "; $sqlcmd = $sqlcmd . "(SELECT "; $sqlcmd = $sqlcmd . "CASE "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND erreur ILIKE '%aucun rsf pour%' THEN '1_1' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%GHM%' THEN '1_2' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%code postal%' THEN '1_3' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%date naissance%' THEN '1_4' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%diagnostic principal%' THEN '1_5' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' THEN '1_9' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%date naissance%' THEN '2_1' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%date%' THEN '2_2' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND erreur ILIKE '%aucun rum pour%' THEN '2_3' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%acte ccam%' THEN '2_4' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%phase ccam%' THEN '2_4' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%activité ccam%' THEN '2_4' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%sexe%' THEN '2_5' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%civilité%' THEN '2_5' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%code prise en charge%' THEN '2_5' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' THEN '2_9' "; $sqlcmd = $sqlcmd . "ELSE '9' END as erreur_code, "; $sqlcmd = $sqlcmd . "CASE "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND erreur ILIKE '%aucun rsf pour%' THEN 'RSS : Pas de RSF pour le RSS' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%GHM%' THEN 'RSS : GHM erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%code postal%' THEN 'RSS : Code postal erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%date naissance%' THEN 'RSS : Date naissance erronée' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' AND champ ILIKE '%diagnostic principal%' THEN 'RSS : Diagnostic principal erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSS' THEN 'RSS : Autres erreurs' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%date naissance%' THEN 'RSF : Date naissance erronée' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%date%' THEN 'RSF : Date erronée' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND erreur ILIKE '%aucun rum pour%' THEN 'RSF : Pas de RUM pour le RSF' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%acte ccam%' THEN 'RSF : Acte CCAM erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%phase ccam%' THEN 'RSF : Acte CCAM erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%activité ccam%' THEN 'RSF : Acte CCAM erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%sexe%' THEN 'RSF : Sexe, civilité, PEC erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%civilité%' THEN 'RSF : Sexe, civilité, PEC erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' AND champ ILIKE '%code prise en charge%' THEN 'RSF : Sexe, civilité, PEC erroné' "; $sqlcmd = $sqlcmd . "WHEN data_type = 'RSF' THEN 'RSF : Autres erreurs' "; $sqlcmd = $sqlcmd . "ELSE 'Autres erreurs' END as erreur_texte "; $sqlcmd = $sqlcmd . "FROM pmsi.p_imports_controles "; $sqlcmd = $sqlcmd . "WHERE import_id = $import_id "; $sqlcmd = $sqlcmd . ") subview "; $sqlcmd = $sqlcmd . "GROUP BY erreur_code, erreur_texte "; $sqlcmd = $sqlcmd . "ORDER BY erreur_code "; $result = $database->exec($sqlcmd); if ($result != false) { echo "

"; echo "

Récapitulatif des erreurs et avertissements :

"; echo ""; echo ""; $ok = TRUE; $last_data_type = ""; $last_no_ligne = -1; while ($ok == TRUE) { $ok = FALSE; $record = $database->nextRecordInto(); if ($record != FALSE) { $ok = TRUE; $erreur_texte = trim($record[1]); $erreur_nb = $record[2]; echo ""; } } echo "
Nombre
$erreur_texte$erreur_nb
"; } } if ($nb_erreurs > 0) { echo "

"; echo "

Liste des erreurs graves :

"; $sqlcmd = "SELECT data_type, no_ligne, champ, gravite, ligne, erreur, commentaire, position, longueur "; $sqlcmd = $sqlcmd . "FROM pmsi.p_imports_controles "; $sqlcmd = $sqlcmd . "WHERE import_id = $import_id AND gravite >= 4 "; $sqlcmd = $sqlcmd . "ORDER BY data_type, no_ligne "; $result = $database->exec($sqlcmd); if ($result != false) { $ok = TRUE; $last_data_type = ""; $last_no_ligne = -1; while ($ok == TRUE) { $ok = FALSE; $record = $database->nextRecordInto(); if ($record != FALSE) { $ok = TRUE; $data_type = trim($record[0]); $no_ligne = $record[1]; $champ = trim($record[2]); $gravite = $record[3] + 0; $ligne = $record[4]; $erreur = trim($record[5]); $commentaire = trim($record[6]); $position = $record[7] + 0; $position2 = $record[7] + 1; $longueur = $record[8] + 0; if ($position > 0 && $longueur == 0) { $longueur = 1; } if ($longueur > 0 && $position < strlen($ligne)) { $ligne = substr($ligne, 0, $position+$longueur) . "" . substr($ligne, $position+$longueur); $ligne = substr($ligne, 0, $position) . "" . substr($ligne, $position); } if ($data_type != $last_data_type) { $last_data_type = $data_type; $last_no_ligne = -1; } if ($no_ligne != $last_no_ligne) { echo "
"; if ($data_type != "FILE" && $data_type != "EXEC") { echo "
$data_type ligne $no_ligne"; } else { if ($data_type == "FILE") { echo "

FICHIERS"; } if ($data_type == "EXEC") { echo "

EXECUTION"; } } echo "
$ligne"; $last_no_ligne = $no_ligne; } $sred = ""; $ered = ""; if ($gravite >= 9) { $sred = ""; $ered = ""; } if ($data_type != "FILE" && $data_type != "EXEC") { if ($longueur == 0) { echo "
Champ=$champ Erreur=$sred$erreur$ered"; } else { echo "
Champ=$champ (pos:$position2 lg:$longueur) Erreur=$sred$erreur$ered"; } } else { echo "
$sred$erreur$ered"; } if ($commentaire != "") { echo " - $commentaire"; } } } } } if ($nb_avertissements > 0) { echo "

"; echo "

Liste des avertissements :

"; echo "
ATTENTION, ces avertissements peuvent cacher un décalage dans la ligne

"; $sqlcmd = "SELECT data_type, no_ligne, champ, gravite, ligne, erreur, commentaire, position, longueur "; $sqlcmd = $sqlcmd . "FROM pmsi.p_imports_controles "; $sqlcmd = $sqlcmd . "WHERE import_id = $import_id AND gravite > 0 AND gravite < 4 "; $sqlcmd = $sqlcmd . "ORDER BY gravite DESC, data_type, no_ligne "; $result = $database->exec($sqlcmd); if ($result != false) { $ok = TRUE; $last_data_type = ""; $last_no_ligne = -1; while ($ok == TRUE) { $ok = FALSE; $record = $database->nextRecordInto(); if ($record != FALSE) { $ok = TRUE; $data_type = trim($record[0]); $no_ligne = $record[1]; $champ = trim($record[2]); $gravite = $record[3]; $ligne = $record[4]; $erreur = trim($record[5]); $commentaire = trim($record[6]); $position = $record[7] + 0; $position2 = $record[7] + 1; $longueur = $record[8] + 0; if ($position > 0 && $longueur == 0) { $longueur = 1; } if ($longueur > 0 && $position < strlen($ligne)) { $ligne = substr($ligne, 0, $position+$longueur) . "
" . substr($ligne, $position+$longueur); $ligne = substr($ligne, 0, $position) . "" . substr($ligne, $position); } if ($data_type != $last_data_type) { $last_data_type = $data_type; $last_no_ligne = -1; } if ($no_ligne != $last_no_ligne) { echo "
"; if ($data_type != "FILE" && $data_type != "EXEC") { echo "
$data_type ligne $no_ligne"; } else { if ($data_type == "FILE") { echo "

FICHIERS"; } if ($data_type == "EXEC") { echo "

EXECUTION"; } } echo "
$ligne"; $last_no_ligne = $no_ligne; } if ($data_type != "FILE" && $data_type != "EXEC") { if ($longueur == 0) { echo "
Champ=$champ Erreur=$erreur"; } else { echo "
Champ=$champ (pos:$position2 lg:$longueur) Erreur=$erreur"; } } else { echo "
$erreur"; } if ($commentaire != "") { echo " - $commentaire"; } } } } } } else { echo "
Rapport n° $import_id inexistant"; } ?>