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

CREATE TEMP TABLE w_dbsetup AS
    SELECT 
    	t_types_autorisations.code, 
    	t_types_autorisations.texte, 
    	t_types_autorisations.texte_court,
    	t_modes_hospitalisation.code AS mode_hospitalisation_code,
    	t_disciplines_sae.code AS discipline_sae_code
    FROM 
    	pmsi.t_types_autorisations 
    JOIN pmsi.t_modes_hospitalisation ON t_types_autorisations.mode_hospitalisation_id = t_modes_hospitalisation.oid
    JOIN pmsi.t_disciplines_sae ON t_types_autorisations.discipline_sae_id = t_disciplines_sae.oid
    ORDER BY t_types_autorisations.code LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    code,
    texte,
    texte_court,
    mode_hospitalisation_code,
    discipline_sae_code
)
VALUES
('', 'Sans autorisation', 'Sans autorisation', '**', '**'),
('  ', 'Sans autorisation', 'Sans autorisation', '**', '**'),
('01', 'Réanimation adultes', 'Réanimation adultes', 'HC', 'ME'),
('01A', 'Réanimation adultes hors grands brûlés', 'Réanimation adultes hors grands brûlés', 'HC', 'ME'),
('01B', 'Réanimation adultes grands brûlés', 'Réanimation adultes grands brûlés', 'HC', 'ME'),
('02', 'Soins intensifs hors unité neurovasculaire', 'SI hors UNV', 'HC', 'ME'),
('02A', 'Soins intensifs en cardiologie = USIC', 'SI USIC', 'HC', 'ME'),
('02B', 'Autres soins intensifs (hors UNV, USIC, néonatologie)', 'Autres SI (hors UNV, USIC, néonatologie)', 'HC', 'ME'),
('02C', 'Soins intensifs polyvalents adultes', 'Soins intensifs polyvalents adultes', '**', '**'),
('02D', 'Soins intensifs polyvalents dérogatoires adultes', 'Soins intensifs polyvalents dérogatoires adultes', '**', '**'),
('02E', 'Soins intensifs en cardiologie = USIC adultes ', 'Soins intensifs en cardiologie = USIC adultes ', 'HC', 'ME'),
('02F', 'Soins intensifs neurovasculaires (USINV) adultes', 'Soins intensifs neurovasculaires (USINV) adultes', 'HC', 'ME'),
('02H', 'Soins intensifs d''hématologie (USIH) adultes', 'Soins intensifs d''hématologie (USIH) adultes', 'HC', 'ME'),
('02I', 'Soins intensifs de spécialité', 'Soins intensifs de spécialité', 'HC', 'ME'),
('03', 'Surveillance continue adulte', 'Surveillance continue adulte', 'HC', 'ME'),
('03A', 'Surveillance continue adulte hors grands brûlés', 'Surveillance continue adulte hors grands brûlés', 'HC', 'ME'),
('03B', 'Surveillance continue adulte grands brûlés', 'Surveillance continue adulte grands brûlés', 'HC', 'ME'),
('04', 'Néonatalogie sans soins intensifs', 'Néonatalogie sans SI', 'HC', 'ME'),
('05', 'Soins intensifs en néonatologie', 'SI en néonatologie', 'HC', 'ME'),
('06', 'Réanimation néonatale', 'Réanimation néonatale', 'HC', 'ME'),
('07', 'Unité d''hospitalisation de courte durée', 'UHCD', 'HC', 'UR'),
('07A', 'Unité d''hospitalisation de courte durée des urgences générales', 'UHCD des urgences générales', 'HC', 'UR'),
('07B', 'Unité d''hospitalisation de courte durée des urgences pédiatriques', 'UHCD des urgences pédiatriques', 'HC', 'UR'),
('07C', 'UHCD des antennes de médecine d?urgence générale', 'UHCD des antennes de médecine d?urgence générale', '**', '**'),
('08', 'Soins et accompagnement des malades en phase terminale', 'Soins palliatifs', 'HC', 'ME'),
('09', 'Classement ex-OQN soins particulièrement coûteux (SRA)', 'Classement ex-OQN soins particulièrement coûteux (SRA)', 'HC', 'ME'),
('10', 'Classement ex-OQN surveillance continue (SSC)', 'Classement ex-OQN surveillance continue (SSC)', '**', 'CH'),
('11', 'Anesthésie ou chirurgie ambulatoire', 'Anesthésie ou chirurgie ambulatoire', '**', 'CH'),
('12', 'Hospitalisation à temps partiel de jour sauf unité gériatrique, ou de nuit', 'Hospitalisation à temps partiel de jour sauf unité gériatrique, ou de nuit', '**', 'CH'),
('13', 'Réanimation pédiatrique', 'Réanimation pédiatrique', 'HC', 'ME'),
('13A', 'Réanimation pédiatrique hors grands brûlés', 'Réanimation pédiatrique hors grands brûlés', 'HC', 'ME'),
('13B', 'Réanimation pédiatrique grands brûlés', 'Réanimation pédiatrique grands brûlés', 'HC', 'ME'),
('13G', 'Réanimation pédiatrique de recours hors grand brûlés', 'Réanimation pédiatrique de recours hors grand brûlés', '**', '**'),
('14', 'Surveillance continue pédiatrique', 'Surveillance continue pédiatrique', 'HC', 'ME'),
('14A', 'Surveillance continue pédiatrique hors grands brûlés', 'Surveillance continue pédiatrique hors grands brûlés', 'HC', 'ME'),
('14B', 'Surveillance continue pédiatrique grands brûlés', 'Surveillance continue pédiatrique grands brûlés', 'HC', 'ME'),
('15', 'Clinique ouverte', 'Clinique ouverte', '**', 'ME'),
('15C', 'Soins intensifs polyvalents pédiatriques', 'Soins intensifs polyvalents pédiatriques', '**', '**'),
('15D', 'Soins intensifs polyvalents dérogatoires pédiatriques', 'Soins intensifs polyvalents dérogatoires pédiatriques', '**', '**'),
('15E', 'Soins intensifs pédiatriques  de cardiologie', 'Soins intensifs pédiatriques de cardiologie', '**', '**'),
('15G', 'Soins intensifs polyvalents pédiatriques de recours', 'Soins intensifs polyvalents pédiatriques de recours', '**', '**'),
('15H', 'Soins intensifs d''hématologie (USIH) pédiatriques', 'Soins intensifs d''hématologie (USIH) pédiatriques', '**', '**'),
('15I', 'Soins intensifs pédiatriques de spécialité', 'Soins intensifs pédiatriques de spécialité', '**', '**'),
('16', 'Unité d''hématologie équipée d''un système de traitement de l''air', 'Unité d''hématologie équipée d''un système de traitement de l''air', 'HC', 'ME'),
('17', 'Unité neurovasculaire hors soins intensifs', 'UNV hors SI', 'HC', 'ME'),
('18', 'Soins intensifs en unité neurovasculaire', 'SI en UNV', 'HC', 'ME'),
('19', 'Unité d''addictologie de recours et de référence', 'Unité d''addictologie de recours et de référence', 'HM', 'ME'),
('20', 'Traitement des grands brûlés (hors réanimation et surveillance continue grands brûlés)', 'Traitement des grands brûlés', 'HC', 'CH'),
('21', 'Centre d''hémodialyse pour adultes', 'Centre d''hémodialyse pour adultes', 'HP', 'DI'),
('22', 'Centre d''hémodialyse pour enfants', 'Centre d''hémodialyse pour enfants', 'HP', 'DI'),
('23', 'Unité d''hémodialyse médicalisée', 'Unité d''hémodialyse médicalisée', 'HP', 'DI'),
('24', 'Unité de court séjour gériatrique hors hospitalisation de jour', 'Unité de court séjour gériatrique hors hospitalisation de jour', '**', 'CH'),
('24C', 'Unité soins intensifs polyvalents de l''adulte (USIP)', 'USIP (avec réanimation sur site)', '**', '**'),
('24D', 'Unité soins intensifs polyvalents dérogatoires (sans réanimation sur site)', 'USIP dérogatoires (sans réanimation sur site)', '**', '**'),
('25', 'Hospitalisation de jour gériatrique', 'Hospitalisation de jour gériatrique', '**', 'CH'),
('25C', 'Unité soins intensifs polyvalents pédiatrique', 'USIP pédiatrique', '**', '**'),
('25D', 'Unité soins intensifs polyvalents dérogatoire pédiatrique', 'USIP dérogatoire pédiatrique', '**', '**'),
('26', 'Unité hospitalière sécurisée interrégionale', 'UHSI', 'HC', 'ME'),
('27', 'Médecine gériatrique', 'Médecine gériatrique', 'HM', 'ME'),
('28', 'Médecine pédiatrique indifférenciée', 'Médecine pédiatrique indifférenciée', 'HM', 'ME'),
('29', 'Médecine adultes indifférenciées', 'Médecine adultes indifférenciées', 'HM', 'ME'),
('30', 'Centre identifié pour la prise en charge des infections ostéoarticulaires', 'PEC des infections ostéoarticulaires', '**', '**'),
('34', 'Hémodialyse en unité d''autodialyse', 'Hémodialyse en unité d''autodialyse', 'HP', 'DI'),
('35', 'Hémodialyse à domicile', 'Hémodialyse à domicile', 'HP', 'DI'),
('36', 'Dialyse péritonéale à domicile', 'Dialyse péritonéale à domicile', 'HP', 'DI'),
('37', 'Unité de dialyse saisonnière', 'Unité de dialyse saisonnière', 'HP', 'DI'),
('40', 'Unité d''hospitalisation d''oncologie médicale', 'Unité d''hospitalisation d''oncologie médicale', 'HM', 'ME'),
('41', 'Unité d''hospitalisation d''oncologie chirurgicale', 'Unité d''hospitalisation d''oncologie chirurgicale', 'HM', 'CH'),
('42', 'Unité de radiothérapie ambulatoire', 'Unité de radiothérapie ambulatoire', 'HP', 'ME'),
('43', 'Unité de chimiothérapie ambulatoire', 'Unité de chimiothérapie ambulatoire', 'HP', 'ME'),
('50', 'Chirurgie cardiaque', 'Chirurgie cardiaque', 'HM', 'CH'),
('51', 'Neurochirurgie', 'Neurochirurgie', 'HM', 'CH'),
('52', 'Autre chirurgie pédiatrique', 'Autre chirurgie pédiatrique', 'HM', 'CH'),
('53', 'Autre chirurgie adulte', 'Autre chirurgie adulte', 'HM', 'CH'),
('60', 'Centre pour la prise en chage des valves aortiques', 'Pose de valves aortiques', '**', '**'),
('61', 'Unité de prise en charge de la douleur chronique', 'Douleurs chroniques', 'HM', 'ME'),
('62', 'Etablissement ciblé pour le forfait diabète', 'Etablissement ciblé pour le forfait diabète', '**', '**'),
('63', 'Etablissement ciblé pour le forfait insuffisance rénale chronique', 'Etablissement ciblé pour le forfait insuffisance rénale chronique', '**', '**'),
('70', 'Gynécologie seule', 'Gynécologie seule', 'HM', 'GY'),
('71', 'Obstétrique seule', 'Obstétrique seule', 'HM', 'GY'),
('72', 'Interruption volontaire de grossesse', 'Interruption volontaire de grossesse', 'HM', 'GY'),
('73', 'Gynécologie obstétrique indifférenciée', 'Gynécologie obstétrique indifférenciée', 'HM', 'GY'),
('77', 'Plus de 2 types d''UM différents dans la même zone d''UM (type_RUM_2)', 'Plus de 2 types d''UM différents', '**', '**'),
('88', 'Fin d''autorisation de l''unité', 'Fin d''autorisation de l''unité', '**', '**')
;

-- 3/3 : Màj de la table iCTI
UPDATE pmsi.t_types_autorisations SET 
	texte = w_dbsetup.texte, 
	texte_court = w_dbsetup.texte_court,
	mode_hospitalisation_id = t_modes_hospitalisation.oid,
	discipline_sae_id = t_disciplines_sae.oid
FROM w_dbsetup
JOIN pmsi.t_modes_hospitalisation ON w_dbsetup.mode_hospitalisation_code = t_modes_hospitalisation.code
JOIN pmsi.t_disciplines_sae ON w_dbsetup.discipline_sae_code = t_disciplines_sae.code
WHERE t_types_autorisations.code = w_dbsetup.code;


INSERT INTO pmsi.t_types_autorisations(code, texte, texte_court,mode_hospitalisation_id,discipline_sae_id)
SELECT 
w_dbsetup.code, 
w_dbsetup.texte, 
w_dbsetup.texte_court, 
t_modes_hospitalisation.oid , 
t_disciplines_sae.oid 
FROM w_dbsetup
	JOIN pmsi.t_modes_hospitalisation ON w_dbsetup.mode_hospitalisation_code = t_modes_hospitalisation.code
	JOIN pmsi.t_disciplines_sae ON w_dbsetup.discipline_sae_code = t_disciplines_sae.code
WHERE w_dbsetup.code NOT IN (SELECT code FROM pmsi.t_types_autorisations);
