-- 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 activite.t_forme_activite
    ORDER BY code LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    oid,
    code,
    texte,
    texte_court
)
VALUES
(0, '***', 'Non renseignée', 'Non renseignée'),
(1, '111', 'Hospitalisation complète MCO Médecine', 'Hospitalisation complète MCO Médecine'),
(1, '112', 'Hospitalisation complète MCO Chirurgie', 'Hospitalisation complète MCO Chirurgie'),
(1, '113', 'Hospitalisation complète MCO Obstétrique', 'Hospitalisation complète MCO Obstétrique'),
(1, '114', 'Hospitalisation complète MCO Esthétique', 'Hospitalisation complète MCO Esthétique'),
(1, '117', 'Hospitalisation complète MCO A préciser', 'Hospitalisation complète MCO A préciser'),
(1, '118', 'Hospitalisation complète MCO A préciser', 'Hospitalisation complète MCO A préciser'),
(1, '119', 'Hospitalisation complète MCO Autre', 'Hospitalisation complète MCO Autre'),
(1, '121', 'Hospitalisation de jour MCO Médecine', 'Hospitalisation de jour MCO Médecine'),
(1, '122', 'Hospitalisation de jour MCO Chirurgie', 'Hospitalisation de jour MCO Chirurgie'),
(1, '123', 'Hospitalisation de jour MCO Obstétrique', 'Hospitalisation de jour MCO Obstétrique'),
(1, '124', 'Hospitalisation de jour MCO Esthétique', 'Hospitalisation de jour MCO Esthétique'),
(1, '127', 'Hospitalisation de jour MCO A préciser', 'Hospitalisation de jour MCO A préciser'),
(1, '128', 'Hospitalisation de jour MCO A préciser', 'Hospitalisation de jour MCO A préciser'),
(1, '129', 'Hospitalisation de jour MCO Autre', 'Hospitalisation de jour MCO Autre'),
(1, '131', 'Séances de dialyse', 'Séances de dialyse'),
(1, '132', 'Séances de chimiothérapie', 'Séances de chimiothérapie'),
(1, '133', 'Séances de transfusion', 'Séances de transfusion'),
(1, '139', 'Autres séances', 'Autres séances'),
(1, '211', 'Hospitalisation complète SSR Soins de Suite Médicalisés', 'Hospitalisation complète SSR Soins de Suite Médicalisés'),
(1, '212', 'Hospitalisation complète SSR Rééducation Fonctionnelle', 'Hospitalisation complète SSR Rééducation Fonctionnelle'),
(1, '217', 'Hospitalisation complète SSR A préciser', 'Hospitalisation complète SSR A préciser'),
(1, '218', 'Hospitalisation complète SSR A préciser', 'Hospitalisation complète SSR A préciser'),
(1, '219', 'Hospitalisation complète SSR Autre', 'Hospitalisation complète SSR Autre'),
(1, '221', 'Hospitalisation de jour SSR Soins de Suite Médicalisés', 'Hospitalisation de jour SSR Soins de Suite Médicalisés'),
(1, '222', 'Hospitalisation de jour SSR Rééducation Fonctionnelle', 'Hospitalisation de jour SSR Rééducation Fonctionnelle'),
(1, '227', 'Hospitalisation de jour SSR A préciser', 'Hospitalisation de jour SSR A préciser'),
(1, '228', 'Hospitalisation de jour SSR A préciser', 'Hospitalisation de jour SSR A préciser'),
(1, '229', 'Hospitalisation de jour SSR Autre', 'Hospitalisation de jour SSR Autre'),
(1, '311', 'Hospitalisation complète PSY', 'Hospitalisation complète PSY'),
(1, '317', 'Hospitalisation complète PSY A préciser', 'Hospitalisation complète PSY A préciser'),
(1, '318', 'Hospitalisation complète PSY A préciser', 'Hospitalisation complète PSY A préciser'),
(1, '319', 'Hospitalisation complète PSY Autre', 'Hospitalisation complète PSY Autre'),
(1, '321', 'Hospitalisation de jour PSY', 'Hospitalisation de jour PSY'),
(1, '327', 'Hospitalisation de jour PSY A préciser', 'Hospitalisation de jour PSY A préciser'),
(1, '328', 'Hospitalisation de jour PSY A préciser', 'Hospitalisation de jour PSY A préciser'),
(1, '329', 'Hospitalisation de jour PSY Autre', 'Hospitalisation de jour PSY Autre'),
(1, '401', 'Hospitalisation à Domicile', 'Hospitalisation à Domicile'),
(1, '501', 'EHPAD', 'EHPAD'),
(1, '502', 'USLD', 'USLD'),
(1, '503', 'Foyer de vie', 'Foyer de vie'),
(1, '701', 'Activité SE', 'Activité SE'),
(1, '702', 'Urgences Externes', 'Urgences Externes'),
(1, '709', 'Autres externes', 'Autres externes'),
(1, '999', 'Autres formes d''activité', 'Autres formes d''activité')
;

-- 3/3 : Màj de la table iCTI
UPDATE activite.t_forme_activite SET 
	code = w_dbsetup.code,
	texte = w_dbsetup.texte, texte_court = w_dbsetup.texte_court 
FROM w_dbsetup
WHERE w_dbsetup.oid = t_forme_activite.oid AND w_dbsetup.oid = 0;

UPDATE activite.t_forme_activite SET
	texte = w_dbsetup.texte,
	texte_court = w_dbsetup.texte
FROM w_dbsetup
WHERE activite.t_forme_activite.code = w_dbsetup.code AND
    (
    activite.t_forme_activite.texte IS DISTINCT FROM w_dbsetup.texte OR
    activite.t_forme_activite.texte_court IS DISTINCT FROM w_dbsetup.texte_court
    )
;

INSERT INTO activite.t_forme_activite(oid, code, texte, texte_court)
	SELECT oid, code, texte, texte_court
	FROM w_dbsetup 
	WHERE oid = 0 AND
		oid NOT IN (SELECT oid FROM activite.t_forme_activite)
;
	
INSERT INTO activite.t_forme_activite(code, texte, texte_court)
	SELECT code, texte, texte_court
	FROM w_dbsetup 
	WHERE oid <> 0 AND 
		code NOT IN (SELECT code FROM activite.t_forme_activite WHERE code IS NOT NULL)
;

SELECT activite.cti_update_schema_classes('FORMEACTIVITE');