-- 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_type_uf_consultation
    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é', 'N/R'),
(1, '01', 'Consultations mémoire effectuées exclusivement dans les centres mémoire de ressources et de recherche (CM2R)', 'Consultations mémoire dans CM2R'),
(1, '02', 'Consultations des centres référents pour les troubles spécifiques d''apprentissage du langage', 'Consultations troubles langage'),
(1, '03', 'Consultations ''maladies rares'' effectuées exclusivement dans les centres de référence pour la prise en charge des maladies rares', 'Consultations maladies rares'),
(1, '04', 'Consultations pour la mucoviscidose effectuées exclusivement dans les centres de ressources et de compétences sur la mucoviscidose', 'Consultations mucoviscidose'),
(1, '05', 'Consultations destinées à effectuer la prévention, le dépistage et le diagnostic de l''infection par le VIH (mentionnées à l''article L.3121-2 CSP) effectuées dans les centres de dépistage anonyme et gratuit (CDAG)', 'Consultations VIH'),
(1, '06', 'Consultations mémoire effectuées dans les établissements ne disposant pas de centre mémoire de ressources et de recherche (CM2R)', 'Consultations mémoire hors CM2R'),
(1, '07', 'Consultations hospitalières d''addictologie', 'Consultations addictologie'),
(1, '08', 'Consultations hospitalières de génétique', 'Consultations génétique'),
(1, '09', 'Consultations de prise en charge des patients atteints de la maladie de Parkinson ou de syndromes parkinsoniens effectuées exclusivement dans les centres experts de la maladie de Parkinson', 'Consultations Parkinson'),
(1, '10', 'UCSA (soins aux détenus)', 'UCSA (soins aux détenus)')
;

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

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

INSERT INTO pmsi.t_type_uf_consultation(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_type_uf_consultation)
;

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