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

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

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    oid,
    code,
    texte,
    texte_court
)
VALUES
(1, '**11', 'Codes FG11 non affectés', 'Codes FG11 non affectés'),
(1, '90**', 'Erreurs de groupage', 'Erreurs de groupage'),
(1, 'AA', 'Digestif', 'Digestif'),
(1, 'AB', 'Orthopédie, Rhumatologie', 'Ortho,Rhumato'),
(1, 'AC', 'Uro-néphrologie', 'Uro-néphrologie'),
(1, 'AD', 'Système nerveux', 'Syst.nerveux'),
(1, 'AE', 'Cardiologie', 'Cardiologie'),
(1, 'AF', 'Vasculaire périphérique', 'Vasc.périphérique'),
(1, 'AG', 'Pneumologie', 'Pneumologie'),
(1, 'AH', 'ORL, Stomatologie', 'ORL,Stomatologie'),
(1, 'AI', 'Ophtalmologie', 'Opthalmologie'),
(1, 'AJ', 'Gynécologie', 'Gynécologie'),
(1, 'AK', 'Obstétrique', 'Obstétrique'),
(1, 'AL', 'Nouveau-nés', 'Nouveau-nés'),
(1, 'AM', 'Hématologie', 'Hématologie'),
(1, 'AN', 'Chimiothérapie, radiothérapie, transfusion', 'Chimio,radio,trans'),
(1, 'AO', 'Endocrinologie', 'Endocrinologie'),
(1, 'AP', 'Tissu cutané et tissu sous-cutané (dont chir obésité)', 'Tissus'),
(1, 'AQ', 'Brûlures', 'Brûlures'),
(1, 'AR', 'Maladies infectieuses (hors VIH)', 'Mal.Infec.(horsVIH)'),
(1, 'AS', 'Maladie VIH', 'Maladie VIH'),
(1, 'AU', 'Traumatismes multiples ou complexes graves', 'Traumatologie'),
(1, 'AV', 'Psychiatrie, Toxicologie, Intoxications, Alcool', 'Psy,toxico,intox.'),
(1, 'AX', 'Autres prises en charge', 'Autres PEC'),
(1, 'AZ', 'Vasculaire interventionnel', 'Vasc.interventionnel'),
(1, 'BC', 'Endoscopies sans anesthésie (GHS 9600)', 'Endoscopies sans anes'),
(1, 'BD', 'Dermatologie (externe) (GHS 9601)', 'Dermatologie externe'),
(1, 'ZZ', 'Autres pôles OAP', 'Autres pôles'),
(0, '**', 'Hors PMSI', 'Hors PMSI'),
(1, '**11', 'Codes FG11 non affectés', 'Codes FG11 non affectés')
;

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


UPDATE pmsi.t_poles_oap SET 
	texte = w_dbsetup.texte, 
	texte_court = w_dbsetup.texte_court
FROM w_dbsetup
WHERE 
	t_poles_oap.code = w_dbsetup.code
	AND (
		t_poles_oap.texte <> w_dbsetup.texte OR
		t_poles_oap.texte_court <> w_dbsetup.texte_court OR
		t_poles_oap.texte IS NULL OR
		t_poles_oap.texte_court IS NULL
	);
	
	
INSERT INTO pmsi.t_poles_oap(
	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_poles_oap);


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