-- 1/3 : Création de la table temporaire DROP TABLE IF EXISTS w_dbsetup ; CREATE TEMP TABLE w_dbsetup AS SELECT code, CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, texte, texte_court FROM pmsi.t_cmd ORDER BY code LIMIT 0 ; -- 2/3 : Peuplement de la table temporaire INSERT INTO w_dbsetup( code, oid, texte, texte_court ) VALUES ('01', 1, 'Affections du système nerveux', 'Aff.Système nerveux'), ('02', 1, 'Affections de l''oeil', 'Aff.Oeil'), ('03', 1, 'Affections des oreilles, du nez, de la gorge, de la bouche et des dents', 'Aff.O.N.G.B.D'), ('04', 1, 'Affections de l''appareil respiratoire', 'Aff.Appareil respiratoire'), ('05', 1, 'Affections de l''appareil circulatoire', 'Aff.Appareil circulatoire'), ('06', 1, 'Affections du tube digestif', 'Aff.Tube digestif'), ('07', 1, 'Affections du système hépatobiliaire et du pancréas', 'Aff.Syst.hépato.&Pancréas'), ('08', 1, 'Affections et traumatismes de l''appareil musculo-squelettique et du tissu conjonctif', 'Aff.traumato.app M.S&T.C'), ('09', 1, 'Affections de la peau, des tissus souscutanés et des seins', 'Aff.Peau Tissus S.C Seins'), ('10', 1, 'Affections endocriniennes, métaboliques et nutritionnelles', 'Aff.Endo.Métabo.Nutrition'), ('11', 1, 'Affections du rein et des voies urinaires', 'Aff.Rein & voies urinaire'), ('12', 1, 'Affections de l''appareil génital masculin', 'Aff.App.Gén.Masculin'), ('13', 1, 'Affections de l''appareil génital féminin', 'Aff.App.Gén.Féminin'), ('14', 1, 'Grossesses pathologiques, accouchements et affections du post-partum', 'Gros.Patho,Acc.&Aff.P.P'), ('15', 1, 'Nouveau-nés, prématurés et affections de la période périnatale', 'N.nés,prématurés&Aff.P.P'), ('16', 1, 'Affections du sang et des organes hématopoïétiques', 'Aff.Sang & org.hématopoï.'), ('17', 1, 'Affections myéloprolifératives et tumeurs de siège imprécis ou diffus', 'Aff.Myélo.&tumeurs S.I.'), ('18', 1, 'Maladies infectieuses et parasitaires', 'Mal.Infectieuses ¶sit'), ('19', 1, 'Maladies et troubles mentaux', 'Mal. & troubles mentaux'), ('20', 1, 'Troubles mentaux organiques liés à l''absorption de drogues ou induits par celles-ci', 'T. mentaux liés abs.drog.'), ('21', 1, 'Traumatismes, allergies et empoisonnements', 'Traum.Allerg.&Empoison.'), ('22', 1, 'Brûlures', 'Brûlures'), ('23', 1, 'Facteurs influant sur l''état de santé et autres motifs de recours aux services de santé', 'Fact.influant/état santé'), ('24', 1, '@Séjours de moins de 2 jours', '@Séjours.<2j'), ('25', 1, 'Maladies dues à une infection par le VIH', 'Mal.dues à infec.VIH'), ('26', 1, 'Traumatismes multiples graves', 'Traumat.mult.graves'), ('27', 1, 'Transplantations d''organes', '@Transplant.organes'), ('28', 1, 'Séances', 'Séances'), ('77', 1, 'Forfaits innovation', 'Forfaits innovation'), ('90', 1, 'Erreurs et autres séjours inclassables', '@Erreurs&aut.séj.incl.'), ('99', 1, 'Non attribué', 'Non attribué'), ('ZZ', 1, 'Autres CMD...', 'Autres CMD'), ('**', 0, 'Hors PMSI', 'Hors PMSI') ; -- 3/3 : Màj de la table iCTI UPDATE pmsi.t_cmd SET code = w_dbsetup.code FROM w_dbsetup WHERE t_cmd.oid = w_dbsetup.oid AND w_dbsetup.oid = 0; UPDATE pmsi.t_cmd SET texte = w_dbsetup.texte, texte_court = w_dbsetup.texte_court FROM w_dbsetup WHERE t_cmd.code = w_dbsetup.code AND ( t_cmd.texte <> w_dbsetup.texte OR t_cmd.texte_court <> w_dbsetup.texte_court OR t_cmd.texte IS NULL OR t_cmd.texte_court IS NULL ); INSERT INTO pmsi.t_cmd( oid, code, texte, texte_court) SELECT oid, code, texte, texte_court FROM w_dbsetup WHERE oid = 0 AND oid NOT IN (SELECT oid FROM pmsi.t_cmd); INSERT INTO pmsi.t_cmd( code, texte, texte_court) SELECT code, texte, texte_court FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM pmsi.t_cmd);