-- 1/3 : Création de la table temporaire DROP TABLE IF EXISTS w_dbsetup ; CREATE TEMP TABLE w_dbsetup AS SELECT CASE WHEN t_classes.oid = 0 THEN t_classes.oid ELSE 1 END AS oid, t_classes.code, t_classes.texte, t_classes.is_cti, t_classes.sequence, t_listes_tables.code as table_code, t_classes.contenu_by_code FROM pmsi.t_classes, pmsi.t_listes_tables WHERE (is_cti = '1' OR t_classes.code ilike 'CTI_%') AND table_id = t_listes_tables.oid ORDER BY t_classes.code LIMIT 0 ; -- 2/3 : Peuplement de la table temporaire INSERT INTO w_dbsetup( oid, code, texte, is_cti, sequence, table_code, contenu_by_code ) VALUES (1, 'CTI_ACTCL', 'Actes classants', '1', 11, 'ACTE', '0'), (1, 'CTI_AGE_TX_RECOURS', 'Tranches d''âge taux de recours', '1', 11, 'AGE', '0'), (1, 'CTI_APP_CIM10', 'Cancérologie appareil', '1', 10, 'DIAG', '0'), (1, 'CTI_ARRETEVERS', 'Prestations Arrêté versement', '1', 10, 'PRESTA', '1'), (1, 'CTI_CLASSES_OMEDIT', 'Classes OMEDIT', '1', 7, 'LPP', '0'), (1, 'CTI_CMA_2025', 'CMA', '1', 14, 'DIAG', '0'), (1, 'CTI_DUROVA', 'Durées OVALIDE', '1', 8, 'DURSEJ', '0'), (1, 'CTI_EXPERTCTL_OVA', 'Categorie Controles OVALIDE', '1', 9, 'EXPERTCTL', '0'), (1, 'CTI_GHMDA', 'Domaines d''activité ATIH', '1', 9, 'GHM', '0'), (1, 'CTI_GHMGA', 'Groupes d''activité ATIH', '1', 7, 'GHM', '0'), (1, 'CTI_GHMGP', 'Groupes de planification ATIH', '1', 8, 'GHM', '0'), (1, 'CTI_GHM_DEDO', 'GHM dédoublé 2017', '1', 10, 'GHM', '0'), (1, 'CTI_GM2009', 'Gestes marqueurs MSAP 2009', '1', 7, 'ACTE', '0'), (1, 'CTI_GM2010', 'Gestes marqueurs MSAP 2010', '1', 8, 'ACTE', '0'), (1, 'CTI_GM2012', 'Gestes marqueurs nationaux 2012', '1', 6, 'ACTE', '0'), (1, 'CTI_GM_MSAP_2012', 'Gestes marqueurs MSAP 2012', '1', 9, 'ACTE', '0'), (1, 'CTI_GM_MSAP_2014', 'Gestes marqueurs MSAP 2014', '1', 10, 'ACTE', '0'), (1, 'CTI_GM_MSAP_2015', 'Gestes marqueurs MSAP 2015', '1', 12, 'ACTE', '0'), (1, 'CTI_HOSAMB', 'Ambulatoires - Hospitalisés', '1', 7, 'DURSEJ', '0'), (1, 'CTI_IND_UCD_1', 'Indications UCD Niveau 1', '1', 10, 'INDICATIONUCD', '0'), (1, 'CTI_IND_UCD_2', 'Indications UCD Niveau 2', '1', 11, 'INDICATIONUCD', '0'), (1, 'CTI_LCIM10_POLYHL', 'CIM10 polyhandicap lourd', '1', 13, 'DIAG', '0'), (1, 'CTI_LPP_CLADIMED_1', 'CLADIMED', '1', 10, 'LPP', '0'), (1, 'CTI_LPP_CLADIMED_2', 'CLADIMED (2)', '1', 11, 'LPP', '0'), (1, 'CTI_LPP_CLADIMED_3', 'CLADIMED (3)', '1', 12, 'LPP', '0'), (1, 'CTI_LPP_CLADIMED_4', 'CLADIMED (4)', '1', 13, 'LPP', '0'), (1, 'CTI_LPP_CLADIMED_5', 'CLADIMED (5)', '1', 14, 'LPP', '0'), (1, 'CTI_ORG_CIM10', 'Cancérologie organe', '1', 11, 'DIAG', '0'), (1, 'CTI_ORG_DET_CIM10', 'Cancérologie organe détaillé', '1', 12, 'DIAG', '0'), (1, 'CTI_OVA_UCD', 'Groupe UCD', '1', 10, 'UCD', '0'), (1, 'CTI_PER_CTL', 'Périodicité contrôles', '1', 11, 'EXPERTCTL', '0'), (1, 'CTI_PREDCA', 'Décomposition CA (CTI)', '1', 9, 'PRESTA', '0'), (1, 'CTI_RAFA_P', 'Prestations OVALIDE (CTI)', '1', 8, 'PRESTA', '0'), (1, 'CTI_REG', 'Nouvelles Régions', '1', 10, 'CODEPOST', '0'), (1, 'CTI_REGRP_OMEDIT', 'Regroupements OMEDIT', '1', 8, 'LPP', '0'), (1, 'CTI_SEV_CPOM', 'Sévérités CPOM', '1', 6, 'GHM', '0'), (1, 'CTI_SEV_MAHOS', 'Sévérités MAHOS', '1', 5, 'GHM', '0'), (1, 'CTI_TAGE', 'Tranches d''âge', '1', 9, 'AGE', '0'), (1, 'CTI_TER_SAN', 'Territoires de Santé', '1', 11, 'CODEPOST', '0'), (1, 'CTI_TRA_AG_OVA', 'Tranches d''âge Ovalide', '1', 10, 'AGE', '0'), (1, 'CTI_TX_REC', 'Classe Age tx de rec', '1', 31, 'AGE', '0'), (1, 'CTI_TYPEFACT', 'Type facturation', '1', 7, 'TYPEFACT', '0'), (1, 'CTI_TYP_EXP', 'Type de contrôle expert', '1', 10, 'EXPERTCTL', '0'), (1, 'ETUDE_BARIATRIQUE_2022', 'Etude chirurgie bariatrique 2022', '1', 13, 'ACTE', '0') ; -- 3/3 : Màj de la table iCTI DELETE FROM pmsi.t_classes WHERE oid NOT IN ( SELECT t_classes.oid FROM w_dbsetup, pmsi.t_listes_tables, pmsi.t_classes WHERE w_dbsetup.table_code = t_listes_tables.code AND t_classes.sequence = w_dbsetup.sequence AND t_classes.table_id = t_listes_tables.oid ) AND is_cti = '1'; UPDATE pmsi.t_classes SET code = w_dbsetup.code, texte = w_dbsetup.texte, table_id = t_listes_tables.oid, is_cti = w_dbsetup.is_cti, contenu_by_code = w_dbsetup.contenu_by_code FROM w_dbsetup, pmsi.t_listes_tables WHERE w_dbsetup.table_code = t_listes_tables.code AND t_classes.sequence = w_dbsetup.sequence AND t_classes.table_id = t_listes_tables.oid ; INSERT INTO pmsi.t_classes(code, texte, table_id, is_cti, sequence, contenu_by_code) SELECT w_dbsetup.code, w_dbsetup.texte, t_listes_tables.oid, w_dbsetup.is_cti, w_dbsetup.sequence, w_dbsetup.contenu_by_code FROM w_dbsetup, pmsi.t_listes_tables WHERE w_dbsetup.table_code = t_listes_tables.code AND t_listes_tables.oid::text || '-'::text || w_dbsetup.sequence::text NOT IN (SELECT table_id::text || '-'::text || sequence::text FROM pmsi.t_classes) AND w_dbsetup.texte NOT LIKE '*SUPPRIME%';