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

CREATE TEMP TABLE w_dbsetup AS
SELECT
    t_etude_cardio_familles_actes.code,
    t_etude_cardio_familles_actes.texte,
    t_etude_cardio_familles_actes.texte_court,
    t_etude_cardio_familles_actes.mention,
    t_etude_cardio_familles_actes.seuil_annuel,
    t_etude_cardio_familles_actes.est_seuil,
    t_listes.code AS liste_code,
    t_etude_cardio_familles_actes.cdc,
    t_etude_cardio_modalites.code AS cardio_modalite_code,
    t_etude_cardio_mentions.code AS cardio_mention_code
FROM pmsi.t_etude_cardio_familles_actes
         JOIN pmsi.t_listes ON t_listes.oid = liste_id
         JOIN pmsi.t_etude_cardio_mentions ON t_etude_cardio_mentions.oid = t_etude_cardio_familles_actes.cardio_mention_id
         JOIN pmsi.t_etude_cardio_modalites ON t_etude_cardio_modalites.oid = t_etude_cardio_familles_actes.cardio_modalite_id
LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    code,
    texte,
    texte_court,
    mention,
    seuil_annuel,
    est_seuil,
    liste_code,
    cdc,
    cardio_modalite_code,
    cardio_mention_code
)
VALUES
    ('CONGA3', 'Fermeture du canal artériel', 'Fermeture du canal artériel', 'A', 40, 't', 'CTI_CARDIO_FERMETURE_ARTERIEL_ACTES_2022', 2022, 'CONG', 'CONGA'),
    ('CONGA2', 'Dilatation de sténose valvulaire pulmonaire', 'Dilatation de sténose valvulaire pulmonaire', 'A', 40, 't', 'CTI_CARDIO_DILATATION_STENOSE_ACTES_2022', 2022, 'CONG', 'CONGA'),
    ('CONGA1', 'Anomalies du cloisonnement interatrial', 'Anomalies du cloisonnement interatrial', 'A', 40, 't', 'CTI_CARDIO_ANOMALIES_CLOISONNEMENT_ACTES_2022', 2022, 'CONG', 'CONGA'),
    ('CONGB3', 'Intervention sur septum atrial ou ventriculaire', 'Intervention sur septum atrial ou ventriculaire', 'B', 80, 't', 'CTI_CARDIO_SEPTUM_ACTES_2022', 2022, 'CONG', 'CONGB'),
    ('CONGB21', 'Dilatation chez l''enfant', 'Dilatation chez l''enfant', 'B', 80, 't', 'CTI_CARDIO_DILATATION_ENF_ACTES_2022', 2022, 'CONG', 'CONGB'),
    ('CONGB2', 'Dilatation', 'Dilatation', 'B', 80, 't', 'CTI_CARDIO_DILATATION_ACTES_2022', 2022, 'CONG', 'CONGB'),
    ('CONGB11', 'Pose de stent ou de dispositif intracardiaque chez l''enfant', 'Pose de stent ou de dispositif intracardiaque chez l''enfant', 'B', 80, 't', 'CTI_CARDIO_POSE_STENT_ENF_ACTES_2022', 2022, 'CONG', 'CONGB'),
    ('CONGB1', 'Pose de stent ou de dispositif intracardiaque', 'Pose de stent ou de dispositif intracardiaque', 'B', 80, 't', 'CTI_CARDIO_POSE_STENT_ACTES_2022', 2022, 'CONG', 'CONGB'),
    ('ISCHA2', 'Prise en charge des cardiopathies structurelles acquises sans pose de prothèse et des fermetures de septum interauriculaires', 'Prise en charge des cardiopathies structurelles', 'A', 15, 't', 'CTI_CARDIO_FERM_SEPTUM_ACTES_2022', 2022, 'ISCH', 'ISCHA'),
    ('ISCHA1HS', 'Prise en charge des cardiopathies ischémiques (hors seuil)', 'Prise en charge des cardiopathies ischémiques (HS)', 'A', 400, 'f', 'CTI_CARDIO_ISCHEMIQUES_ACTES_HS_2022', 2022, 'ISCH', 'ISCHA'),
    ('ISCHA1', 'Prise en charge des cardiopathies ischémiques', 'Prise en charge des cardiopathies ischémiques', 'A', 400, 't', 'CTI_CARDIO_ISCHEMIQUES_ACTES_2022', 2022, 'ISCH', 'ISCHA'),
    ('RYTHA2', 'Pose de pace maker mono et double chambre avec sonde', 'Pose de pace maker mono et double chambre avec sonde', 'A', 10, 't', 'CTI_CARDIO_MAKER_MONO_DOUBLE_ACTES_2022', 2022, 'RYTH', 'RYTHA'),
    ('RYTHA1', 'Actes interventionnels d''électrophysiologie diagnostique', 'Actes interventionnels d''électrophysiologie diagnostique', 'A', 10, 't', 'CTI_CARDIO_ELECTRO_ACTES_2022', 2022, 'RYTH', 'RYTHA'),
    ('RYTHB2HS', 'Pose de défibrillateurs et de stimulateurs multisites (hors seuil)', 'Pose de défibrillateurs et de stimulateurs multisites (HS)', 'B', 50, 'f', 'CTI_CARDIO_DEFIBR_MULTI_ACTES_HS_2022', 2022, 'RYTH', 'RYTHB'),
    ('RYTHB2', 'Pose de défibrillateurs et de stimulateurs multisites', 'Pose de défibrillateurs et de stimulateurs multisites', 'B', 50, 't', 'CTI_CARDIO_DEFIBR_MULTI_ACTES_2022', 2022, 'RYTH', 'RYTHB'),
    ('RYTHB1', 'Ablations atriales droites et atrioventriculaires', 'Ablations atriales droites et atrioventriculaires', 'B', 50, 't', 'CTI_CARDIO_ABLATION_ATR_DROITE_ACTES_2022', 2022, 'RYTH', 'RYTHB'),
    ('RYTHC1HS', 'Ablations atriales avec abord transeptal (hors seuil)', 'Ablations atriales avec abord transeptal (HS)', 'C', 100, 'f', 'CTI_CARDIO_ABLATION_ATR_TRANS_ACTES_HS_2022', 2022, 'RYTH', 'RYTHC'),
    ('RYTHC1', 'Ablations atriales avec abord transeptal', 'Ablations atriales avec abord transeptal', 'C', 100, 't', 'CTI_CARDIO_ABLATION_ATR_TRANS_ACTES_2022', 2022, 'RYTH', 'RYTHC'),
    ('RYTHD1HS', 'Activités à haut risque de plaie cardiaque (hors seuil)', 'Activités à haut risque de plaie cardiaque', 'D', 100, 'f', 'CTI_CARDIO_RISQUE_PLAIE_ACTES_HS_2022', 2022, 'RYTH', 'RYTHD')
;

-- 3/3 : Màj de la table iCTI
UPDATE pmsi.t_etude_cardio_familles_actes SET
                                              texte = w_dbsetup.texte,
                                              texte_court = w_dbsetup.texte_court,
                                              mention = w_dbsetup.mention,
                                              seuil_annuel = w_dbsetup.seuil_annuel,
                                              est_seuil = w_dbsetup.est_seuil,
                                              liste_id = t_listes.oid,
                                              cardio_modalite_id = t_etude_cardio_modalites.oid,
                                              cardio_mention_id = t_etude_cardio_mentions.oid
FROM w_dbsetup
         JOIN pmsi.t_listes ON t_listes.code = liste_code
         JOIN pmsi.t_etude_cardio_mentions ON t_etude_cardio_mentions.code = cardio_mention_code
         JOIN pmsi.t_etude_cardio_modalites ON t_etude_cardio_modalites.code = cardio_modalite_code
WHERE 1=1
  AND t_etude_cardio_familles_actes.code = w_dbsetup.code
  AND t_etude_cardio_familles_actes.cdc = w_dbsetup.cdc
  AND (
    t_etude_cardio_familles_actes.texte IS DISTINCT FROM w_dbsetup.texte
        OR t_etude_cardio_familles_actes.texte_court IS DISTINCT FROM w_dbsetup.texte_court
        OR t_etude_cardio_familles_actes.mention IS DISTINCT FROM w_dbsetup.mention
        OR t_etude_cardio_familles_actes.seuil_annuel IS DISTINCT FROM w_dbsetup.seuil_annuel
        OR t_etude_cardio_familles_actes.est_seuil IS DISTINCT FROM w_dbsetup.est_seuil
        OR t_etude_cardio_familles_actes.liste_id IS DISTINCT FROM t_listes.oid
        OR t_etude_cardio_familles_actes.cardio_modalite_id IS DISTINCT FROM t_etude_cardio_modalites.oid
        OR t_etude_cardio_familles_actes.cardio_mention_id IS DISTINCT FROM t_etude_cardio_mentions.oid
    )
;


INSERT INTO pmsi.t_etude_cardio_familles_actes(
    code,
    texte,
    texte_court,
    mention,
    seuil_annuel,
    est_seuil,
    liste_id,
    cdc,
    cardio_modalite_id,
    cardio_mention_id
)
SELECT
    w_dbsetup.code,
    w_dbsetup.texte,
    w_dbsetup.texte_court,
    w_dbsetup.mention,
    w_dbsetup.seuil_annuel,
    w_dbsetup.est_seuil,
    t_listes.oid,
    w_dbsetup.cdc,
    t_etude_cardio_modalites.oid,
    t_etude_cardio_mentions.oid
FROM w_dbsetup
         JOIN pmsi.t_listes ON t_listes.code = w_dbsetup.liste_code
         JOIN pmsi.t_etude_cardio_mentions ON t_etude_cardio_mentions.code = w_dbsetup.cardio_mention_code
         JOIN pmsi.t_etude_cardio_modalites ON t_etude_cardio_modalites.code = w_dbsetup.cardio_modalite_code
         LEFT JOIN pmsi.t_etude_cardio_familles_actes
                   ON t_etude_cardio_familles_actes.code = w_dbsetup.code
                       AND t_etude_cardio_familles_actes.cdc = w_dbsetup.cdc
WHERE t_etude_cardio_familles_actes.code IS NULL OR t_etude_cardio_familles_actes.cdc IS NULL
;