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.
 
 

87 lines
4.3 KiB

<?xml version="1.0" encoding="ISO-8859-1"?>
<INDICATOR title="OVALIDE"
name="iCTI_pmsi_mat2a"
softCode="iCTI_pmsi"
eisOnly="false"
type="CTIsql"
indicatorKey=""
linkView="PMSI000255">
<reportTitle><![CDATA[OVALIDE [CONTEXT] [STATUT]]]></reportTitle>
<reportDescription></reportDescription>
<SQL database="iCTI">
<select><![CDATA[
SELECT
sum(import_manquant) AS import_manquant,
sum(CASE WHEN mat2a_ok = 0 THEN ecart_rsa_transmis ELSE 0 END) AS ecart_rsa_transmis,
sum(CASE WHEN mat2a_ok = 0 THEN ecart_rsa_traites ELSE 0 END) AS ecart_rsa_traites,
sum(CASE WHEN mat2a_ok = 0 THEN ecart_rsa_0_nuits ELSE 0 END) AS ecart_rsa_0_nuits,
sum(CASE WHEN mat2a_ok = 0 THEN ecart_rsa_seances ELSE 0 END) AS ecart_rsa_seances,
sum(CASE WHEN mat2a_ok = 0 THEN ecart_rsa_br_prestations ELSE 0 END) AS ecart_rsa_br_prestations,
sum(import_manquant + (CASE WHEN mat2a_ok = 0 THEN (ecart_rsa_transmis + ecart_rsa_traites + ecart_rsa_0_nuits + ecart_rsa_seances + ecart_rsa_br_prestations) ELSE 0 END)) AS total
FROM
(
SELECT
CASE WHEN last_mat2a_imports.annee IS NULL AND type_etablissement IN ('2', '3') THEN 1 ELSE 0 END AS import_manquant,
coalesce(abs(mat2a_rsa_transmis - nb_rsa_transmis), 0) AS ecart_rsa_transmis,
coalesce(abs(mat2a_rsa_traites - nb_rsa_traites), 0) AS ecart_rsa_traites,
coalesce(abs(mat2a_rsa_0_nuits - nb_rsa_0_nuits), 0) AS ecart_rsa_0_nuits,
coalesce(abs(mat2a_rsa_seances - nb_rsa_seances), 0) AS ecart_rsa_seances,
coalesce(abs(mat2a_rsa_prestations_base_remb - br_total_rsa_prestations), 0) AS ecart_rsa_br_prestations,
mat2a_ok
FROM
(
SELECT
p_imports.*,
p_imports_stats.*,
subq2.annee,
subq2.mois,
t_finess.type_etablissement
FROM pmsi.p_imports
JOIN pmsi.p_imports_stats on p_imports_stats.import_id = p_imports.oid
JOIN
(
SELECT
annee,
max(mois) AS mois,
(max(ARRAY [annee::text||lpad(mois, 2, '0'), oid::text]))[2] AS oid
FROM
(
SELECT
to_char(date_debut, 'YYYY') AS annee,
to_char(date_fin - '3 days'::interval, 'MM') AS mois,
oid
FROM pmsi.p_imports
WHERE 1=1
AND date_fin - date_debut < 400
AND date_debut < now()
) AS subq1
GROUP BY 1
) AS subq2 ON subq2.oid = p_imports.oid
LEFT JOIN base.t_finess ON t_finess.code = p_imports.finess
) AS last_rss_imports
LEFT JOIN
(
SELECT *
FROM pmsi.p_mat2a_import
JOIN
(
SELECT
mat2a_annee || lpad(mat2a_mois, 2, '0') AS annee,
(max(ARRAY [mat2a_date::text, oid::text]))[2] AS oid
FROM pmsi.p_mat2a_import
GROUP BY 1
) AS subq1 ON subq1.oid = p_mat2a_import.oid
) AS last_mat2a_imports ON last_rss_imports.annee||lpad(last_rss_imports.mois, 2, '0') = last_mat2a_imports.annee
WHERE 1=1
AND last_rss_imports.annee >= 2016
) AS subq_total
]]></select>
</SQL>
<ALERT rule_compareField="import_manquant" rule_compareOperator=">" rule_compareValue="0" result="WARNING" resultText="WARNING Au moins un import RSS ou OVALIDE manquant." />
<ALERT rule_compareField="ecart_rsa_transmis" rule_compareOperator=">" rule_compareValue="0" result="WARNING" resultText="WARNING Ecart sur le nombre de RSA transmis." />
<ALERT rule_compareField="ecart_rsa_traites" rule_compareOperator=">" rule_compareValue="0" result="WARNING" resultText="WARNING Ecart sur le nombre de RSA traités." />
<ALERT rule_compareField="ecart_rsa_0_nuits" rule_compareOperator=">" rule_compareValue="0" result="WARNING" resultText="WARNING Ecart sur le nombre de RSA 0 nuits." />
<ALERT rule_compareField="ecart_rsa_seances" rule_compareOperator=">" rule_compareValue="0" result="WARNING" resultText="WARNING Ecart sur le nombre de RSA séances." />
<ALERT rule_compareField="ecart_rsa_br_prestations" rule_compareOperator=">" rule_compareValue="1" result="WARNING" resultText="WARNING Ecart sur le montant total des prestations." />
<ALERT rule_compareField="total" rule_compareOperator="=" rule_compareValue="0" result="OK" resultText="OK Les données PMSI MCO sont en adéquation avec les tableaux OVALIDE (Tableau 1.D.2.RTP et 1.V.1.CP)." />
</INDICATOR>