Advertisement
Guest User

LPU2

a guest
Oct 15th, 2019
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 9.53 KB | None | 0 0
  1.     SELECT pat.id_lpu_fk,
  2.            lpu.st_bol_name,
  3.            otd.kodotd,
  4.            COALESCE(pm.otd_num,0) AS otd_num,
  5.            otd.naimotd || COALESCE(' № ' || CAST(pm.otd_num AS VARCHAR(2)), '')
  6.                          AS NAIMOTD,
  7.            pat.numcard,
  8.            RIGHT(EXTRACT(YEAR FROM pat.dt_receipt),2) || RIGHT('000' ||
  9.              COALESCE(pm.sprotd_id_fk,''),3) || RIGHT('00000' ||
  10.              COALESCE(pat.numcard,''),5) AS NUM_CARD,
  11.            peo.lname || ' ' || peo.fname || COALESCE(' ' || peo.mname, '')
  12.                          AS FIO,
  13.            pm.diagnos    AS DIAGNOS,
  14.            CASE                                -- BDC 20.02.2019
  15.              WHEN n18.id_reas = 0 THEN 'Перв'  -- BDC 20.02.2019
  16.              WHEN n18.id_reas = 1 THEN 'Рецид' -- BDC 20.02.2019
  17.              WHEN n18.id_reas = 2 THEN 'Прогр' -- BDC 20.02.2019
  18.              WHEN n18.id_reas = 3 THEN 'Динам' -- BDC 20.02.2019
  19.              WHEN n18.id_reas = 4 THEN 'Дисп'  -- BDC 20.02.2019
  20.              WHEN n18.id_reas = 5 THEN 'Диагн' -- BDC 20.02.2019
  21.              WHEN n18.id_reas = 6 THEN 'Симпт' -- BDC 20.02.2019
  22.              ELSE n18.reas_name
  23.            END           AS DS1_T,
  24.            n03.kod_t     AS T,
  25.            n04.kod_n     AS N,
  26.            n05.kod_m     AS M,
  27.            n02.kod_st    AS KOD_ST,
  28.            CASE
  29.              WHEN pm.sprpaiment_id_fk = 1 THEN 'ОМС'
  30.              WHEN pm.sprpaiment_id_fk = 9 THEN 'ВМП ОМС'
  31.              ELSE '???'
  32.            END           AS OPL,
  33.            pm.ksg_select AS KSG,
  34.            -- "первая" услуга
  35.            (SELECT FIRST 1 srv_id
  36.               FROM
  37.                 (SELECT
  38.                        su.srv_id_fk  AS srv_id,
  39.                        su.cl_oper    AS cl
  40.                   FROM wt_surgical_operation su
  41.                   JOIN wt_patient_move      pm1 ON pm1.wt_patient_move_id = su.wt_pm_id_fk
  42.                   JOIN wt_patient          pat1 ON pat1.wt_patient_id     = pm1.wt_patient_id_fk
  43.                  WHERE su.wt_pm_id_fk = pm.wt_patient_move_id
  44.                    AND pat1.payment IN (1,9)                                         -- только ОМС или ВМП по ОМС
  45.                    AND pm1.cl_otd > 0                                                -- только оплачиваемый случай
  46.                    AND ((su.srv_id_fk IS NOT NULL) AND (su.srv_id_fk <> ''))         -- только с мед услугой для операции
  47.                    AND ((pat1.payment = 9) OR (su.cl_oper > 0))                      -- только оплачиваемая операция (ОМС)
  48.                 UNION ALL
  49.                 SELECT
  50.                        sr.srv_id_fk  AS srv_id,
  51.                        sr.cl_srv     AS cl
  52.                   FROM wt_srv sr
  53.                   JOIN wt_patient_move      pm2 ON pm2.wt_patient_move_id = sr.wt_pm_id_fk
  54.                   JOIN wt_patient          pat2 ON pat2.wt_patient_id     = pm2.wt_patient_id_fk
  55.                  WHERE sr.wt_pm_id_fk = pm.wt_patient_move_id
  56.                    AND pat2.payment IN (1,9)                                         -- только ОМС или ВМП по ОМС
  57.                    AND pm2.cl_otd > 0                                                -- только оплачиваемый случай
  58.                    AND ((pat2.payment = 9) OR (sr.cl_srv > 0))                       -- только оплачиваемая операция (ОМС)
  59.                  ORDER BY 2
  60.                 )
  61.            )             AS SRV_ID,
  62.            -- доп критерии
  63.          --COALESCE(                                                            -- BDC 20.02.2019
  64.          --(SELECT FIRST 1 SUBSTRING(dt.data_value_kod FROM 1 FOR 2) ||         -- BDC 20.02.2019
  65.          --        '=' || SUBSTRING(dt.data_value_kod FROM 3 FOR 99) || ';'     -- BDC 20.02.2019
  66.          --   FROM dt_spr dt                                                    -- BDC 20.02.2019
  67.          --  WHERE dt.def_set_data_id_fk IN (87,88,89)                          -- BDC 20.02.2019
  68.          --    AND dt.data_value_kod IS NOT NULL                                -- BDC 20.02.2019
  69.          --    AND dt.wt_patient_id_fk      = pat.wt_patient_id                 -- BDC 20.02.2019
  70.          --    AND dt.wt_patient_move_id_fk = pm.wt_patient_move_id), '') ||    -- BDC 20.02.2019
  71.            (SELECT ADD_CR FROM list_cr(pm.wt_patient_move_id)) ||               -- BDC 20.02.2019
  72.            COALESCE(
  73.            (SELECT FIRST 1 'EKO=' || CAST(srv.eko AS CHAR(1)) || ';'
  74.              FROM wt_srv srv
  75.             WHERE srv.wt_pm_id_fk = pm.wt_patient_move_id
  76.               AND srv.srv_id_fk = 'A11.20.017'), '') -- ЭКО
  77.                          AS ADD_CR,
  78.            COALESCE(sch.mnn,'') ||                                                      -- BDC 20.02.2010
  79.            COALESCE(                                                                    -- BDC 20.02.2010
  80.            (SELECT FIRST 1                                                              -- BDC 20.02.2010
  81.                    mnn.mnn                                                              -- BDC 20.02.2010
  82.               FROM wt_srv sr                                                            -- BDC 20.02.2010
  83.               JOIN wt_patient_move pm2 ON pm2.wt_patient_move_id = sr.wt_pm_id_fk       -- BDC 20.02.2010
  84.               JOIN wt_patient     pat2 ON pat2.wt_patient_id     = pm2.wt_patient_id_fk -- BDC 20.02.2010
  85.          LEFT JOIN st_sprmnn       mnn ON mnn.kod                = sr.mnn               -- BDC 20.02.2010
  86.              WHERE sr.wt_pm_id_fk = pm.wt_patient_move_id                               -- BDC 20.02.2010
  87.                AND pat2.payment IN (1,9)                                                -- BDC 20.02.2010
  88.                AND pm2.cl_otd > 0                                                       -- BDC 20.02.2010
  89.              ORDER BY sr.cl_srv DESC),'') AS mnn,                                       -- BDC 20.02.2010
  90.            ------------------
  91.            doc.naimdoc   AS DOC, -- BDC 20.02.2019
  92.            pm.cl_otd     AS CL_OTD,
  93.            pm.kd         AS KD,     -- BDC 15.08.2019
  94.            pm.koef_07    AS KOEF_07 -- BDC 15.08.2019                                                                                                                          
  95.       FROM wt_patient_move     pm
  96.       JOIN wt_patient          pat ON pat.wt_patient_id         = pm.wt_patient_id_fk
  97.       JOIN peoples_loc         peo ON peo.people_id             = pat.people_id_fk
  98.       JOIN st_bol              lpu ON lpu.kodbol                = pat.id_lpu_fk
  99.       JOIN st_sprotd           otd ON otd.kodotd                = pm.sprotd_id_fk
  100.  LEFT JOIN wt_patient_move_can can ON can.wt_patient_move_id_fk = pm.wt_patient_move_id
  101.  LEFT JOIN n003$onkt           n03 ON n03.id_t                  = can.onk_t
  102.                                   AND pat.dtextract BETWEEN n03.datebeg AND COALESCE(n03.dateend,'31.12.2099') -- BDC 20.02.2019
  103.  LEFT JOIN n004$onkn           n04 ON n04.id_n                  = can.onk_n
  104.                                   AND pat.dtextract BETWEEN n04.datebeg AND COALESCE(n04.dateend,'31.12.2099') -- BDC 20.02.2019
  105.  LEFT JOIN n005$metastasis     n05 ON n05.id_m                  = can.onk_m
  106.                                   AND pat.dtextract BETWEEN n05.datebeg AND COALESCE(n05.dateend,'31.12.2099') -- BDC 20.02.2019
  107.  LEFT JOIN n002$onkstad        n02 ON n02.id_st                 = can.stad
  108.                                   AND pat.dtextract BETWEEN n02.datebeg AND COALESCE(n02.dateend,'31.12.2099') -- BDC 20.02.2019
  109.  LEFT JOIN n018$onkreas        n18 ON n18.id_reas               = can.ds1_t                                    -- BDC 20.02.2019
  110.                                   AND pat.dtextract BETWEEN n18.datebeg AND COALESCE(n18.dateend,'31.12.2099') -- BDC 20.02.2019
  111.  LEFT JOIN st_sprdoc           doc ON doc.koddoc                = pm.sprdoc_id_fk                              -- BDC 20.02.2019
  112.                                   AND doc.id_lpu_fk             = pat.id_lpu_fk                                -- BDC 20.02.2019
  113.  LEFT JOIN st_sprscheme        sch ON sch.kod =                                                                -- BDC 20.02.2019
  114.                                (SELECT FIRST 1 dt.data_value_kod                                               -- BDC 20.02.2019
  115.                                    FROM dt_spr dt                                                              -- BDC 20.02.2019
  116.                                   WHERE dt.def_set_data_id_fk = 87 -- схема                                    -- BDC 20.02.2019
  117.                                     AND dt.data_value_kod IS NOT NULL                                          -- BDC 20.02.2019
  118.                                     AND dt.wt_patient_move_id_fk = pm.wt_patient_move_id)                      -- BDC 20.02.2019
  119.                                   AND pat.dtextract BETWEEN sch.datebeg AND COALESCE(sch.dateend,'31.12.2099') -- BDC 20.02.2019
  120.      WHERE lpu.key3 = :LPU_ID      -- включая и подчиненные
  121.        AND ((pat.dtextract IS NOT NULL) AND (pat.dtextract BETWEEN :DATE_BEG AND :DATE_END))    
  122.        AND ((:KOD = 0) OR (kodotd = :KOD))  
  123.        AND ((:NUM = 0) OR (otd_num = :NUM))                                                                                        
  124.        AND pm.sprpaiment_id_fk IN (1,9) -- ОМС или ВМП по ОМС
  125.        AND pm.cl_otd IS NOT NULL AND pm.cl_otd > 0
  126.      ORDER BY id_lpu_fk, kodotd, otd_num, NUM_CARD
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement