Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH protocol_procedures AS (SELECT cascade_lvl03_surgical_procedures.*
- FROM cascade_lvl03_surgical_procedures
- WHERE cascade_lvl03_surgical_procedures.procedure_performed_date BETWEEN '2024-01-01 00:00:00' AND '2025-01-01 23:59:59'
- AND cascade_lvl03_surgical_procedures.legal_entity_id = 3382),
- groups_mappers AS (SELECT dict_table3500service_mappers.*
- FROM dict_table3500service_mappers
- WHERE dict_table3500service_mappers.line_number != '4.7'),
- main_table AS (SELECT MAX(mappers.surgery_type_title) AS surgery_name,
- mappers.line_number AS line_number,
- mappers.major AS major,
- mappers.minor AS minor,
- countIf(DISTINCT (sp.id), (sp.patient_id IS NOT NULL AND
- (mappers.line_number != '7.2' OR sp.patient_age < 1) AND
- ((mappers.has_icd10_codes = 0 OR dtim.code != '') AND
- (mappers.has_addition_icd10_codes = 0 OR dtaim.code != '')))) AS surgeries_count,
- countIf(DISTINCT (sp.id), (sp.patient_id IS NOT NULL AND
- (mappers.line_number != '7.2' OR sp.patient_age < 1) AND
- ((mappers.has_icd10_codes = 0 OR dtim.code != '') AND
- (mappers.has_addition_icd10_codes = 0 OR dtaim.code != '')) AND
- (CASE
- WHEN mappers.line_number IN ('13.2', '13.0')
- THEN mappers.line_number = '13.0' AND patient_age < 18
- WHEN mappers.line_number = '12.0' THEN FALSE
- ELSE patient_age < 18 END))) AS under_17_years_count,
- countIf(DISTINCT (sp.patient_id), (sp.patient_id IS NOT NULL AND
- (mappers.line_number != '7.2' OR sp.patient_age < 1) AND
- ((mappers.has_icd10_codes = 0 OR dtim.code != '') AND
- (mappers.has_addition_icd10_codes = 0 OR dtaim.code != '')) AND
- (sp.discharge_disposition_code = 'death'))) AS deaths_count,
- countIf(DISTINCT (sp.patient_id), (sp.patient_id IS NOT NULL AND
- (mappers.line_number != '7.2' OR sp.patient_age < 1) AND
- ((mappers.has_icd10_codes = 0 OR dtim.code != '') AND
- (mappers.has_addition_icd10_codes = 0 OR dtaim.code != '')) AND
- sp.discharge_disposition_code = 'death' AND (CASE
- WHEN mappers.line_number IN ('13.2', '13.0')
- THEN mappers.line_number = '13.0' AND patient_age < 18
- WHEN mappers.line_number = '12.0'
- THEN FALSE
- ELSE patient_age < 18 END))) AS under_17_years_deaths_count,
- countIf(DISTINCT (sp.patient_id), (sp.patient_id IS NOT NULL AND
- (mappers.line_number != '7.2' OR sp.patient_age < 1) AND
- ((mappers.has_icd10_codes = 0 OR dtim.code != '') AND
- (mappers.has_addition_icd10_codes = 0 OR dtaim.code != '')) AND
- sp.is_village =
- 1)) AS villagers_count
- FROM groups_mappers mappers
- LEFT JOIN protocol_procedures sp ON mappers.code = sp.service_code
- LEFT JOIN dict_table3500_icd10_mappers dtim
- ON dtim.code = sp.icd10_code AND mappers.mapper_id = dtim.mapper_id
- LEFT JOIN dict_table3500_addition_icd10_mappers dtaim
- ON dtaim.code = sp.icd10_code AND mappers.mapper_id = dtaim.mapper_id
- GROUP BY mappers.line_number, mappers.major, mappers.minor
- ORDER BY (mappers.major, mappers.minor) ASC),
- header_table AS (SELECT 'Усього операцій, у тому числі:' AS surgery_name,
- '1.0' AS line_number,
- 1 AS major,
- 0 AS minor,
- SUM(mt.surgeries_count) AS surgeries_count,
- SUM(mt.under_17_years_count) AS under_17_years_count,
- SUM(mt.deaths_count) AS deaths_count,
- SUM(mt.under_17_years_deaths_count) AS under_17_years_deaths_count,
- SUM(mt.villagers_count) AS villagers_count
- FROM main_table mt
- WHERE mt.minor = 0)
- SELECT header_table.*
- FROM header_table
- UNION ALL
- SELECT main_table.*
- FROM main_table
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement