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;