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

CREATE TEMP TABLE w_dbsetup AS
    SELECT
    t_etude_rule.code, t_etude_rule.texte, t_etude_rule.json, t_etude.code as table_code
		FROM pmsi.t_etude_rule
		JOIN pmsi.t_etude ON t_etude.oid = t_etude_rule.etude_id
		ORDER BY 1
		 LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    code,
    texte,
    json,
    table_code
)
VALUES
('CTI_CANCERO_CHIM1', 'Chimiothérapie chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIM1'"]}, {">=": ["p_rss.age", 18]}, {"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_CHIMIOTHERAPIE_DIAG_2022'"]}, {"or": [{"in": ["p_rss.diagnostic_relie_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_CANCER_DIAG_2022'"]}, {"some": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_CANCER_DIAG_2022'"]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR1', 'Chirurgie du sein chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR1'"]}, {">=": ["p_rss.age", 18]}, {"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_SEIN_DIAG_2022'"]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_SEIN_ACTE_2022'"]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR2', 'Chirurgie digestive chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR2'"]}, {">=": ["p_rss.age", 18]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_ABDO_PELVIEN_ACTE_2022' AND to_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code IN (''CTI_CANCERO_EXERESE_OESOPHAGE_ACTE_2022'', ''CTI_CANCERO_EXERESE_FOIE_ACTE_2022'',  ''CTI_CANCERO_EXERESE_PANCREAS_ACTE_2022'', ''CTI_CANCERO_EXERESE_RECTUM_ACTE_2022'', ''CTI_CANCERO_EXERESE_ESTOMAC_ACTE_2022''))"]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_DIGESTIVE_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"none": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_GYNECOLOGIQUE_DIAG_2022'"]}]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR21', 'Chirurgie de l''estomac chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR21'"]}, {">=": ["p_rss.age", 18]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_ESTOMAC_ACTE_2022'"]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_DIGESTIVE_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"none": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_GYNECOLOGIQUE_DIAG_2022'"]}]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR22', 'Chirurgie du foie chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR22'"]}, {">=": ["p_rss.age", 18]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_FOIE_ACTE_2022'"]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_DIGESTIVE_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"none": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_GYNECOLOGIQUE_DIAG_2022'"]}]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR23', 'Chirurgie du pancreas chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR23'"]}, {">=": ["p_rss.age", 18]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_PANCREAS_ACTE_2022'"]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_DIGESTIVE_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"none": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_GYNECOLOGIQUE_DIAG_2022'"]}]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR24', 'Chirurgie de l''oesophage chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR24'"]}, {">=": ["p_rss.age", 18]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_OESOPHAGE_ACTE_2022'"]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_DIGESTIVE_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"none": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_GYNECOLOGIQUE_DIAG_2022'"]}]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR25', 'Chirurgie du rectum chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR25'"]}, {">=": ["p_rss.age", 18]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_DIGESTIVE_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"none": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_GYNECOLOGIQUE_DIAG_2022'"]}]}]}, {"or": [{"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_RECTUM_ACTE_2022'"]}, {"and": [{"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_RECTUM_DIAG_2022'"]}, {"in": ["p_rss.diagnostic_relie_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_RECTUM_DIAG_2022'"]}, {"some": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_RECTUM_DIAG_2022'"]}]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_ABDO_PELVIEN_ACTE_2022'"]}]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR3', 'Chirurgie urologique chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR3'"]}, {">=": ["p_rss.age", 18]}, {"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_UROLOGIQUE_DIAG_2022'"]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_ABDO_PELVIEN_ACTE_2022'"]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR4', 'Chirurgie thoracique chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR4'"]}, {">=": ["p_rss.age", 18]}, {"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_THORACIQUE_DIAG_2022'"]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_THORACIQUE_ACTE_2022'"]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR52', 'Chirurgie gynécologique hors cancer avancé de l''ovaire', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR52'"]}, {">=": ["p_rss.age", 18]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_ABDO_PELVIEN_ACTE_2022'"]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_AUTRES_TUMEURS_GYNECOLOGIQUES_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"some": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_AUTRES_TUMEURS_GYNECOLOGIQUES_DIAG_2022'"]}, {"none": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_OVAIRE_DIAG_2022'"]}]}]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_CHIR6', 'Chirurgie ORL chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR6'"]}, {">=": ["p_rss.age", 18]}, {"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_ORL_DIAG_2022'"]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_EXERESE_ORL_ACTE_2022'"]}]}, 'CTI_CANCERO_2022'),
('CTI_CANCERO_RAD1', 'Radiothérapie chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'RAD1'"]}, {">=": ["p_rss.age", 18]}, {"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_RADIOTHERAPIE_DIAG_2022'"]}, {"or": [{"in": ["p_rss.diagnostic_relie_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_CANCER_DIAG_2022'"]}, {"some": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_CANCER_DIAG_2022'"]}]}]}, 'CTI_CANCERO_2022'),
('CTU_CANCERO_CHIR51', 'Chirurgie du cancer avancé de l''ovaire chez l''adulte', {"and": [{"===": ["v_categorie_cancero.code", "'CHIR51'"]}, {">=": ["p_rss.age", 18]}, {"or": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_OVAIRE_DIAG_2022'"]}, {"and": [{"in": ["p_rss.diagnostic_principal_id", "SELECT to_id FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_META_PERITOINE_DIAG_2022'"]}, {"some": ["diags", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_TUMEUR_OVAIRE_DIAG_2022'"]}]}]}, {"or": [{"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_OMENTECTOMIE_LAPARO_ACTE_2022'"]}, {"and": [{"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_OMENTECTOMIE_COELIO_ACTE_2022'"]}, {"some": ["actes", "SELECT array_agg(distinct to_id) FROM pmsi.t_listes_contenu JOIN pmsi.t_listes ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = 'CTI_CANCERO_AUTRES_RESECTIONS_COELIO_ACTE_2022'"]}]}]}]}, 'CTI_CANCERO_2022')
;

-- 3/3 : Màj de la table iCTI
TRUNCATE pmsi.t_etude_rule;

INSERT INTO pmsi.t_etude_rule(code, texte, json, etude_id)
	SELECT
		w_dbsetup.code,
		w_dbsetup.texte,
		w_dbsetup.json,
		t_etude.oid
	FROM w_dbsetup
	JOIN pmsi.t_etude ON t_etude.code = w_dbsetup.table_code
;