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.
 
 

97 lines
5.3 KiB

return: text
lang: plpgsql
src: |
DECLARE result TEXT;
BEGIN
EXECUTE
'UPDATE pmsi.t_ghm_c
SET
code = v_ghm_5.ghm_code,
texte = v_ghm_5.ghm_texte,
ghm_prefixe = v_ghm_5.ghm_prefixe,
ghm_suffixe = v_ghm_5.ghm_suffixe,
cas_id = v_ghm_5.cas_id,
cas_code = v_ghm_5.cas_code,
cas_texte = v_ghm_5.cas_texte,
mco = v_ghm_5.mco,
mco_texte = v_ghm_5.mco_texte,
severite_ghm_code = v_ghm_5.severite_ghm_code,
severite_ghm_texte = v_ghm_5.severite_ghm_texte,
cmd_id = v_ghm_5.cmd_id,
cmd_code = v_ghm_5.cmd_code,
cmd_texte = v_ghm_5.cmd_texte,
cmd_24 = v_ghm_5.cmd_24,
cmd_28 = v_ghm_5.cmd_28,
cmd_n24n28 = v_ghm_5.cmd_n24n28,
groupe_activite_id = v_ghm_5.groupe_activite_id,
groupe_activite_code = v_ghm_5.groupe_activite_code,
groupe_activite_texte = v_ghm_5.groupe_activite_texte,
pole_oap_id = v_ghm_5.pole_oap_id,
pole_oap_code = v_ghm_5.pole_oap_code,
pole_oap_texte = v_ghm_5.pole_oap_texte,
ligne_oap_id = v_ghm_5.ligne_oap_id,
ligne_oap_code = v_ghm_5.ligne_oap_code,
ligne_oap_texte = v_ghm_5.ligne_oap_texte,
ht_fg11 = v_ghm_5.ht_fg11,
ghm5_id = v_ghm_5.ghm5_id,
ghm5_code = v_ghm_5.ghm5_code,
ghm5_texte = v_ghm_5.ghm5_texte
FROM pmsi.v_ghm_5
WHERE t_ghm_c.oid = v_ghm_5.oid
AND (
t_ghm_c.code IS NULL OR t_ghm_c.texte IS NULL OR
t_ghm_c.ghm_prefixe IS NULL OR t_ghm_c.ghm_suffixe IS NULL OR
t_ghm_c.mco IS NULL OR t_ghm_c.mco_texte IS NULL OR
t_ghm_c.cas_id IS NULL OR t_ghm_c.cas_code IS NULL OR t_ghm_c.cas_texte IS NULL OR
t_ghm_c.severite_ghm_code IS NULL OR t_ghm_c.severite_ghm_texte IS NULL OR
t_ghm_c.cmd_id IS NULL OR t_ghm_c.cmd_code IS NULL OR t_ghm_c.cmd_texte IS NULL OR t_ghm_c.cmd_24 IS NULL OR t_ghm_c.cmd_28 IS NULL OR t_ghm_c.cmd_n24n28 IS NULL OR
t_ghm_c.groupe_activite_id IS NULL OR t_ghm_c.groupe_activite_code IS NULL OR t_ghm_c.groupe_activite_texte IS NULL OR
t_ghm_c.pole_oap_id IS NULL OR t_ghm_c.pole_oap_code IS NULL OR t_ghm_c.pole_oap_texte IS NULL OR
t_ghm_c.ligne_oap_id IS NULL OR t_ghm_c.ligne_oap_code IS NULL OR t_ghm_c.ligne_oap_texte IS NULL OR t_ghm_c.ht_fg11 IS NULL OR
t_ghm_c.ghm5_id IS NULL OR t_ghm_c.ghm5_code IS NULL OR t_ghm_c.ghm5_texte IS NULL OR
t_ghm_c.code <> v_ghm_5.ghm_code OR t_ghm_c.texte <> v_ghm_5.ghm_texte OR
t_ghm_c.ghm_prefixe <> v_ghm_5.ghm_prefixe OR t_ghm_c.ghm_suffixe <> v_ghm_5.ghm_suffixe OR
t_ghm_c.mco <> v_ghm_5.mco OR t_ghm_c.mco_texte <> v_ghm_5.mco_texte OR
t_ghm_c.cas_id <> v_ghm_5.cas_id OR t_ghm_c.cas_code <> v_ghm_5.cas_code OR t_ghm_c.cas_texte <> v_ghm_5.cas_texte OR
t_ghm_c.severite_ghm_code <> v_ghm_5.severite_ghm_code OR t_ghm_c.severite_ghm_texte <> v_ghm_5.severite_ghm_texte OR
t_ghm_c.cmd_id <> v_ghm_5.cmd_id OR t_ghm_c.cmd_code <> v_ghm_5.cmd_code OR t_ghm_c.cmd_texte <> v_ghm_5.cmd_texte OR t_ghm_c.cmd_24 <> v_ghm_5.cmd_24 OR t_ghm_c.cmd_28 <> v_ghm_5.cmd_28 OR t_ghm_c.cmd_n24n28 <> v_ghm_5.cmd_n24n28 OR
t_ghm_c.groupe_activite_id <> v_ghm_5.groupe_activite_id OR t_ghm_c.groupe_activite_code <> v_ghm_5.groupe_activite_code OR t_ghm_c.groupe_activite_texte <> v_ghm_5.groupe_activite_texte OR
t_ghm_c.pole_oap_id <> v_ghm_5.pole_oap_id OR t_ghm_c.pole_oap_code <> v_ghm_5.pole_oap_code OR t_ghm_c.pole_oap_texte <> v_ghm_5.pole_oap_texte OR
t_ghm_c.ligne_oap_id <> v_ghm_5.ligne_oap_id OR t_ghm_c.ligne_oap_code <> v_ghm_5.ligne_oap_code OR t_ghm_c.ligne_oap_texte <> v_ghm_5.ligne_oap_texte OR t_ghm_c.ht_fg11 <> v_ghm_5.ht_fg11 OR
t_ghm_c.ghm5_id <> v_ghm_5.ghm5_id OR t_ghm_c.ghm5_code <> v_ghm_5.ghm5_code OR t_ghm_c.ghm5_texte <> v_ghm_5.ghm5_texte
)'
;
EXECUTE 'INSERT INTO pmsi.t_ghm_c(
oid, code, texte, ghm_prefixe, ghm_suffixe, cas_id, cas_code, cas_texte, mco, mco_texte, severite_ghm_code,
severite_ghm_texte, cmd_id, cmd_code, cmd_texte, ghm5_id, ghm5_code, ghm5_texte, cmd_24, cmd_28,
cmd_n24n28, groupe_activite_id, groupe_activite_code, groupe_activite_texte,
pole_oap_id, pole_oap_code, pole_oap_texte, ligne_oap_id, ligne_oap_code,
ligne_oap_texte)
SELECT oid, ghm_code, ghm_texte, ghm_prefixe, ghm_suffixe, cas_id, cas_code, cas_texte, mco, mco_texte,
severite_ghm_code, severite_ghm_texte, cmd_id, cmd_code, cmd_texte, ghm5_id, ghm5_code, ghm5_texte,
cmd_24, cmd_28, cmd_n24n28, groupe_activite_id, groupe_activite_code,
groupe_activite_texte, pole_oap_id, pole_oap_code, pole_oap_texte,
ligne_oap_id, ligne_oap_code, ligne_oap_texte
FROM pmsi.v_ghm_5
WHERE NOT EXISTS (SELECT 1 FROM pmsi.t_ghm_c WHERE v_ghm_5.oid = t_ghm_c.oid)'
;
EXECUTE 'UPDATE pmsi.t_ghm_c SET dms_1 = t_ghm.dms_1, dms_2 = t_ghm.dms_2, dms_3 = t_ghm.dms_3, dms_hospidiag = t_ghm.dms_hospidiag
FROM pmsi.t_ghm
WHERE t_ghm.oid = t_ghm_c.oid
AND (t_ghm_c.dms_1 IS DISTINCT FROM t_ghm.dms_1
OR t_ghm_c.dms_2 IS DISTINCT FROM t_ghm.dms_2
OR t_ghm_c.dms_3 IS DISTINCT FROM t_ghm.dms_3
OR t_ghm_c.dms_hospidiag IS DISTINCT FROM t_ghm.dms_hospidiag
)';
-- Compléter les ghm nationaux pour les vieux GHM et GHM 'bidon'
INSERT INTO pmsi.t_ghm_indicateurs_nationaux (ghm_id)
SELECT t_ghm.oid
FROM pmsi.t_ghm
WHERE oid not in (select ghm_id from pmsi.t_ghm_indicateurs_nationaux)
;
RETURN 'OK';
END;