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.
 
 

535 lines
19 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML lang=fr>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>i-CTI. Rapport d'import</title>
<LINK REL="ICON" type="image/x-icon" href="../../base/images/ctisante2.ico">
<LINK REL="SHORTCUT ICON" type="image/x-icon" href="../../base/images/ctisante2.ico">
</head>
<body>
<PRE>
<?php
require_once("../../base/php/startSession.php");
require_once("../../base/php/Environnement.php" );
require_once( "../../base/php/Functions.php" );
require_once("../../base/php/classDatabase.php");
$import_id = @$_POST["import_id"];
if ($import_id == "") {
$import_id = @$_GET["import_id"];
}
$import_id = $import_id + 0;
$dbname = @$_POST["dbname"];
if ($dbname == "") {
$dbname = @$_GET["dbname"];
}
$dbuser = @$_POST["dbuser"];
if ($dbuser == "") {
$dbuser = @$_GET["dbuser"];
}
$dbpassword = @$_POST["dbpassword"];
if ($dbpassword == "") {
$dbpassword = @$_GET["dbpassword"];
}
if ($dbname == "") {
$database = new Database("iCTI");
}
else {
$database = new Database("*NODEF_PG", "localhost", 5432, $dbname, $dbuser, $dbpassword);
}
$sqlcmd = "SELECT p_imports.oid, p_imports.texte, p_imports.date_import, p_imports.etat, p_imports.etat_en_cours,
finess, date_debut, date_fin, nb_rss, nb_rum, nb_rsf, nb_erreurs, nb_avertissements ,
p_imports_data_rss.file_path AS rss_file_path, p_imports_data_rss.file_size AS rss_data_size,
p_imports_data_rsf.file_path AS rsf_file_path, p_imports_data_rsf.file_size AS rsf_data_size,
p_imports_data_zin.file_path AS zin_file_path, p_imports_data_zin.file_size AS zin_data_size,
p_imports_data_zou.file_path AS zou_file_path, p_imports_data_zou.file_size AS zou_data_size,
p_imports_data_zif.file_path AS zif_file_path, p_imports_data_zif.file_size AS zif_data_size,
p_imports_data_fcp.file_path AS fcp_file_path, p_imports_data_fcp.file_size AS fcp_data_size,
p_imports_data_med.file_path AS med_file_path, p_imports_data_med.file_size AS med_data_size,
p_imports_data_rssmed.file_path AS rssmed_file_path, p_imports_data_rssmed.file_size AS rssmed_data_size,
p_imports_data_rssnom.file_path AS rssnom_file_path, p_imports_data_rssnom.file_size AS rssnom_data_size,
p_imports_data_actmed.file_path AS actmed_file_path, p_imports_data_actmed.file_size AS actmed_data_size,
t_finess.texte,
p_imports_data_vsj.file_path AS vsj_file_path, p_imports_data_vsj.file_size AS vsj_data_size,
p_imports_data_vse.file_path AS vse_file_path, p_imports_data_vse.file_size AS vse_data_size,
p_imports_data_tsp.file_path AS tsp_file_path, p_imports_data_tsp.file_size AS tsp_data_size
FROM pmsi.p_imports
LEFT JOIN pmsi.p_imports_data p_imports_data_rss ON (p_imports.oid = p_imports_data_rss.import_id AND p_imports_data_rss.data_type = 'RSS' AND p_imports_data_rss.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_rsf ON (p_imports.oid = p_imports_data_rsf.import_id AND p_imports_data_rsf.data_type = 'RSF' AND p_imports_data_rsf.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_zin ON (p_imports.oid = p_imports_data_zin.import_id AND p_imports_data_zin.data_type = 'ZIN' AND p_imports_data_zin.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_zou ON (p_imports.oid = p_imports_data_zou.import_id AND p_imports_data_zou.data_type = 'ZOU' AND p_imports_data_zou.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_zif ON (p_imports.oid = p_imports_data_zif.import_id AND p_imports_data_zif.data_type = 'ZIF' AND p_imports_data_zif.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_fcp ON (p_imports.oid = p_imports_data_fcp.import_id AND p_imports_data_fcp.data_type = 'FCP' AND p_imports_data_fcp.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_med ON (p_imports.oid = p_imports_data_med.import_id AND p_imports_data_med.data_type = 'MED' AND p_imports_data_med.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_rssmed ON (p_imports.oid = p_imports_data_rssmed.import_id AND p_imports_data_rssmed.data_type = 'RSSMED' AND p_imports_data_rssmed.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_rssnom ON (p_imports.oid = p_imports_data_rssnom.import_id AND p_imports_data_rssnom.data_type = 'RSSNOM' AND p_imports_data_rssnom.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_actmed ON (p_imports.oid = p_imports_data_actmed.import_id AND p_imports_data_actmed.data_type = 'ACTMED' AND p_imports_data_actmed.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_vsj ON (p_imports.oid = p_imports_data_vsj.import_id AND p_imports_data_vsj.data_type = 'VSJ' AND p_imports_data_vsj.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_vse ON (p_imports.oid = p_imports_data_vse.import_id AND p_imports_data_vse.data_type = 'VSE' AND p_imports_data_vse.data_num = 0)
LEFT JOIN pmsi.p_imports_data p_imports_data_tsp ON (p_imports.oid = p_imports_data_tsp.import_id AND p_imports_data_tsp.data_type = 'TSP' AND p_imports_data_tsp.data_num = 0)
LEFT JOIN base.t_finess ON (t_finess.code = p_imports.finess)
WHERE p_imports.oid = $import_id ";
$result = @$database->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 "<BR><H2><U>RAPPORT DE L'IMPORT DES FICHIERS RSS/RSF</U></H2>";
echo "<BR>";
echo "<BR><H3>$finess_texte ($finess)</H3>";
echo "<BR><H3>Import $import_id du $date_import (Expédié à ePMSI)</H3>";
echo "<BR>";
echo "<BR>Etat <B>$etat_text</B>";
echo "<BR>";
echo "<BR><U>Fichiers</U> :";
if ($zin_file_path != "") {
echo "<BR> RSS IN.ZIP : $zin_file_path ($zin_data_size octets)";
}
if ($zou_file_path != "") {
echo "<BR> RSS OUT.ZIP : $zou_file_path ($zou_data_size octets)";
}
if ($zif_file_path != "") {
echo "<BR> RSF IN.ZIP : $zif_file_path ($zif_data_size octets)";
}
if ($rss_file_path != "") {
echo "<BR> RSS : $rss_file_path ($rss_data_size octets)";
}
if ($rsf_file_path != "") {
echo "<BR> RSF : $rsf_file_path ($rsf_data_size octets)";
}
if ($fcp_file_path != "") {
echo "<BR> FICHCOMP : $fcp_file_path ($fcp_data_size octets)";
}
if ($med_file_path != "") {
echo "<BR> Médecins : $med_file_path ($med_data_size octets)";
}
if ($rssmed_file_path != "") {
echo "<BR> RSS - Médecins : $rssmed_file_path ($rssmed_data_size octets)";
}
if ($rssnom_file_path != "") {
echo "<BR> RSS - Noms : $rssnom_file_path ($rssnom_data_size octets)";
}
if ($actmed_file_path != "") {
echo "<BR> Actes - Médecins : $actmed_file_path ($actmed_data_size octets)";
}
if ($vsj_file_path != "") {
echo "<BR> Valorisation Séjours : $vsj_file_path ($vsj_data_size octets)";
}
if ($vse_file_path != "") {
echo "<BR> Valorisation ACE : $vse_file_path ($vse_data_size octets)";
}
if ($tsp_file_path != "") {
echo "<BR> FICHSUP transports : $tsp_file_path ($tsp_data_size octets)";
}
echo "<BR>";
echo "<BR><U>Contenu</U> :";
echo "<BR> Finess <B>$finess</B>";
echo "<BR> Période <B>$date_debut - $date_fin</B>";
echo "<BR> <B>$nb_rss</B> RSS";
echo "<BR> <B>$nb_rum</B> RUM";
echo "<BR> <B>$nb_rsf</B> RSF";
echo "<BR>";
echo "<BR><U>Contrôle</U> :";
if ($nb_erreurs > 0) {
echo "<BR> <B>$nb_erreurs</B> erreur(s) grave(s)";
}
else {
echo "<BR> Aucune erreur grave";
}
if ($nb_avertissements > 0) {
echo "<BR> <B>$nb_avertissements</B> avertissement(s)";
}
else {
echo "<BR> 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 "<P> </P>";
echo "<P><H3><U>Récapitulatif des erreurs et avertissements</U> :</H3>";
echo "<TABLE width=100%>";
echo "<TR><TH align=left> </TH><TH align=left>Nombre</TH></TR>";
$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 "<TR><TD align=left>$erreur_texte</TD><TD align=left>$erreur_nb</TD></TR>";
}
}
echo "</TABLE>";
}
}
if ($nb_erreurs > 0) {
echo "<P> </P>";
echo "<P><H3><U>Liste des erreurs graves</U> :</H3>";
$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) . "</U></B></SPAN>" . substr($ligne, $position+$longueur);
$ligne = substr($ligne, 0, $position) . "<SPAN style=\"font-size:larger;color:red\"><B><U>" . 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 "<BR>";
if ($data_type != "FILE" && $data_type != "EXEC") {
echo "<BR><U>$data_type ligne $no_ligne</U>";
}
else {
if ($data_type == "FILE") {
echo "<P> </P><U>FICHIERS</U>";
}
if ($data_type == "EXEC") {
echo "<P> </P><U>EXECUTION</U>";
}
}
echo "<BR> $ligne";
$last_no_ligne = $no_ligne;
}
$sred = "";
$ered = "";
if ($gravite >= 9) {
$sred = "<SPAN style=\"font-size:large;color:red\"><B>";
$ered = "</B></SPAN>";
}
if ($data_type != "FILE" && $data_type != "EXEC") {
if ($longueur == 0) {
echo "<BR> Champ=$champ Erreur=$sred$erreur$ered";
}
else {
echo "<BR> Champ=$champ (pos:$position2 lg:$longueur) Erreur=$sred$erreur$ered";
}
}
else {
echo "<BR> $sred$erreur$ered";
}
if ($commentaire != "") {
echo " - $commentaire";
}
}
}
}
}
if ($nb_avertissements > 0) {
echo "<P> </P>";
echo "<P><H3><U>Liste des avertissements</U> :</H3>";
echo "<BR>ATTENTION, ces avertissements peuvent cacher un décalage dans la ligne</BR> <BR>";
$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) . "</U></B></SPAN>" . substr($ligne, $position+$longueur);
$ligne = substr($ligne, 0, $position) . "<SPAN style=\"font-size:larger;color:red\"><B><U>" . 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 "<BR>";
if ($data_type != "FILE" && $data_type != "EXEC") {
echo "<BR><U>$data_type ligne $no_ligne</U>";
}
else {
if ($data_type == "FILE") {
echo "<P> </P><U>FICHIERS</U>";
}
if ($data_type == "EXEC") {
echo "<P> </P><U>EXECUTION</U>";
}
}
echo "<BR> $ligne";
$last_no_ligne = $no_ligne;
}
if ($data_type != "FILE" && $data_type != "EXEC") {
if ($longueur == 0) {
echo "<BR> Champ=$champ Erreur=$erreur";
}
else {
echo "<BR> Champ=$champ (pos:$position2 lg:$longueur) Erreur=$erreur";
}
}
else {
echo "<BR> $erreur";
}
if ($commentaire != "") {
echo " - $commentaire";
}
}
}
}
}
}
else {
echo "<BR>Rapport n° $import_id inexistant";
}
?>
</PRE>
</body>
</HTML>