-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;

CREATE TEMP TABLE w_dbsetup AS
    SELECT 
    	age_max,
    	age_min,
    	code,
    	CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
    	texte,
    	texte_court
    FROM pmsi.t_gestes_marqueurs
    ORDER BY code LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    age_max,
    age_min,
    code,
    oid,
    texte,
    texte_court
)
VALUES
(0, 0, 'GM01', 1, 'Accès vasculaire', 'Accès vasculaire'),
(0, 0, 'GM02', 1, 'Adénoidectomies', 'Adénoidectomies'),
(0, 0, 'GM03', 1, 'Angioplasties membre sup', 'Angioplasties membre sup'),
(0, 0, 'GM04', 1, 'Angioplasties périphériques', 'Angioplasties périphériques'),
(0, 0, 'GM05', 1, 'Arthroscopie de la cheville', 'Arthroscopie de la cheville'),
(0, 0, 'GM06', 1, 'Arthroscopies du genou hors ligamentoplasties', 'Arthroscopies du genou hors ligamentoplasties'),
(0, 0, 'GM07', 1, 'Avulsion dentaire', 'Avulsion dentaire'),
(0, 0, 'GM08', 1, 'Chirurgie anale', 'Chirurgie anale'),
(0, 0, 'GM09', 1, 'Chirurgie de la conjonctive', 'Chirurgie de la conjonctive'),
(0, 0, 'GM10', 1, 'Chirurgie de la main', 'Chirurgie de la main'),
(0, 0, 'GM11', 1, 'Chirurgie de la main Chirurgie de la maladie de Dupuytren', 'Chirurgie de la main Chirurgie de la maladie de Dupuytren'),
(0, 0, 'GM12', 1, 'Chirurgie de la main Chirurgie reparatrice des ligaments et tendons(main)', 'Chirurgie de la main Chirurgie reparatrice des ligaments et tendons(main)'),
(0, 0, 'GM13', 1, 'Chirurgie de avant pied', 'Chirurgie de avant pied'),
(0, 0, 'GM14', 1, 'Chirurgie de épaule', 'Chirurgie de épaule'),
(0, 0, 'GM15', 1, 'Chirurgie uterus', 'Chirurgie uterus'),
(0, 0, 'GM16', 1, 'Chirurgie des bourses', 'Chirurgie des bourses'),
(16, 1, 'GM17', 1, 'Chirurgie des bourses enfant', 'Chirurgie des bourses enfant'),
(16, 1, 'GM18', 1, 'Chirurgie des hernies enfant', 'Chirurgie des hernies enfant'),
(0, 0, 'GM19', 1, 'Chirurgie des hernies abdominales', 'Chirurgie des hernies abdominales'),
(0, 0, 'GM20', 1, 'Chirurgie des hernies inguinales', 'Chirurgie des hernies inguinales'),
(0, 0, 'GM21', 1, 'Chirurgie des maxillaires', 'Chirurgie des maxillaires'),
(0, 0, 'GM22', 1, 'Chirurgie des sinus', 'Chirurgie des sinus'),
(0, 0, 'GM23', 1, 'Chirurgie des varices', 'Chirurgie des varices'),
(0, 0, 'GM24', 1, 'Chirurgie canal carpienet autres liberations nerveuses', 'Chirurgie canal carpienet autres liberations nerveuses'),
(0, 0, 'GM25', 1, 'Chirurgie col,vulve,vagin', 'Chirurgie col,vulve,vagin'),
(0, 0, 'GM26', 1, 'Chirurgie du cristallin', 'Chirurgie du cristallin'),
(0, 0, 'GM27', 1, 'Chirurgie du glaucome', 'Chirurgie du glaucome'),
(0, 0, 'GM28', 1, 'Chirurgie du nez', 'Chirurgie du nez'),
(0, 0, 'GM29', 1, 'Chirurgie du pied', 'Chirurgie du pied'),
(0, 0, 'GM30', 1, 'Chirurgie du poignet', 'Chirurgie du poignet'),
(0, 0, 'GM31', 1, 'Chirurgie du sein/tumorectomie', 'Chirurgie du sein/tumorectomie'),
(0, 0, 'GM32', 1, 'Chirurgie du trou maculaire', 'Chirurgie du trou maculaire'),
(0, 0, 'GM33', 1, 'Chirurgie du tympan', 'Chirurgie du tympan'),
(0, 7, 'GM34', 1, 'Chirurgie strabisme', 'Chirurgie du strabisme'),
(0, 0, 'GM35', 1, 'Cholecystectomie', 'Cholecystectomie'),
(16, 1, 'GM36', 1, 'Cure de paraphimosis', 'Cure de paraphimosis'),
(0, 0, 'GM37', 1, 'Exereses de kystes synoviaux', 'Exereses de kystes synoviaux'),
(0, 0, 'GM38', 1, 'Exerese de lésion cutanée', 'Exerese de lésions cutanées'),
(0, 0, 'GM39', 1, 'Exerese de la bouche', 'Exerese de la bouche'),
(0, 0, 'GM40', 1, 'Exerese de lésion sous-cutanée', 'Exerese de lésion sous-cutanée'),
(0, 0, 'GM41', 1, 'Fermeture de la fistule buccale', 'Fermeture de la fistule buccale'),
(0, 0, 'GM42', 1, 'Fistules artérioveineuses', 'Fistules artérioveineuses'),
(0, 0, 'GM43', 1, 'Geste secondaire sur le lambeau', 'Geste secondaire sur le lambeau'),
(0, 0, 'GM44', 1, 'Geste sur la vessie', 'Geste sur la vessie'),
(0, 0, 'GM45', 1, 'Geste sur les glandes salivaires', 'Geste sur les glandes salivaires'),
(0, 0, 'GM46', 1, 'Geste sur uretère', 'Geste sur uretère'),
(0, 0, 'GM47', 1, 'Geste sur urètre', 'Geste sur urètre'),
(0, 0, 'GM48', 1, 'Interruption tubaire', 'Interruption tubaire'),
(0, 0, 'GM49', 1, 'LEC', 'LEC'),
(0, 0, 'GM50', 1, 'Plastie des lèvres', 'Plastie des lèvres'),
(0, 0, 'GM51', 1, 'Prélèvement ovocyte', 'Prélèvement ovocyte'),
(0, 0, 'GM52', 1, 'Réparation de perte de substance de l extrémité céphalique', 'Réparation de perte de substance de l extrémité céphalique'),
(0, 0, 'GM53', 1, 'Réparation de perte de substance en dehors de l extrémité céphalique', 'Réparation de perte de substance en dehors de l extrémité céphalique'),
(0, 0, 'GM54', 1, 'Vitrectomie avec pelage de membrane', 'Vitrectomie avec pelage de membrane'),
(0, 0, 'GM55', 1, 'Vitrectomie postérieure isolée', 'Vitrectomie postérieure isolée'),
(0, 0, '**', 0, '', '')
;

-- 3/3 : Màj de la table iCTI
UPDATE pmsi.t_gestes_marqueurs SET 
	code = w_dbsetup.code
FROM w_dbsetup
WHERE t_gestes_marqueurs.oid = w_dbsetup.oid AND w_dbsetup.oid = 0;


UPDATE pmsi.t_gestes_marqueurs SET 
	texte = w_dbsetup.texte, 
	texte_court = w_dbsetup.texte_court,
	age_min = w_dbsetup.age_min,
	age_max = w_dbsetup.age_max
FROM w_dbsetup
WHERE t_gestes_marqueurs.code = w_dbsetup.code;


INSERT INTO pmsi.t_gestes_marqueurs(oid, code, texte, texte_court, age_min, age_max)
	SELECT oid, code, texte, texte_court, age_min, age_max 
	FROM w_dbsetup 
	WHERE oid = 0 AND oid NOT IN (SELECT oid FROM pmsi.t_gestes_marqueurs);


INSERT INTO pmsi.t_gestes_marqueurs(code, texte, texte_court, age_min, age_max)
	SELECT code, texte, texte_court, age_min, age_max 
	FROM w_dbsetup 
	WHERE oid <> 0 AND code NOT IN (SELECT code FROM pmsi.t_gestes_marqueurs);