Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- SQL query to calculate patient statuses for a specific indicators based on:
- -- service requests,
- -- diagnostic reports,
- -- observations,
- -- actions
- -- AND additional conditions
- WITH reporting_periods AS (SELECT period_name,
- original_period_type,
- original_period_value,
- toDate32('2025-05-01 23:59:59') AS period_end_date,
- IF(original_period_type = 'DAY',
- dateDiff('day', period_end_date - toIntervalDay(original_period_value),
- period_end_date),
- dateDiff('day', period_end_date - toIntervalYear(original_period_value),
- period_end_date)
- ) AS calculated_period_start_days,
- (period_end_date - toIntervalDay(calculated_period_start_days)) AS period_start_date
- FROM dict_reporting_periods rp),
- period_interval AS (SELECT MIN(reporting_periods.period_start_date) AS period_start,
- MAX(reporting_periods.period_end_date) AS period_end
- FROM reporting_periods),
- patients AS (SELECT DISTINCT ON (id) IF(declaration_status = 'ACTIVE', declaration_end_date,
- declaration_updated_at) AS declaration_end_date,
- declaration_start_date,
- age('day', date_of_birth, (SELECT period_end FROM period_interval)) AS current_age_in_days,
- age('year', date_of_birth, (SELECT period_end FROM period_interval)) AS current_age_in_years,
- cascade_lvl02_patient_declarations.id,
- cascade_lvl02_patient_declarations.gender,
- cascade_lvl02_patient_declarations.full_address,
- cascade_lvl02_patient_declarations.patient_full_name,
- cascade_lvl02_patient_declarations.legal_entity_id,
- cascade_lvl02_patient_declarations.employee_id,
- cascade_lvl02_patient_declarations.doctor_full_name,
- cascade_lvl02_patient_declarations.doctor_position,
- cascade_lvl02_patient_declarations.division_id,
- cascade_lvl02_patient_declarations.date_of_birth
- FROM cascade_lvl02_patient_declarations
- WHERE cascade_lvl02_patient_declarations.legal_entity_id = 3228
- AND (declaration_start_date <= toDate32('2025-07-04 23:59:59') AND
- declaration_end_date >= toDate32('1960-01-01 00:00:00'))),
- joined_resources AS (SELECT cascade_lvl01_progress_diseases_services.id,
- cascade_lvl01_progress_diseases_services.code,
- cascade_lvl01_progress_diseases_services.employee_id,
- cascade_lvl01_progress_diseases_services.legal_entity_id,
- cascade_lvl01_progress_diseases_services.asserted_date,
- cascade_lvl01_progress_diseases_services.encounter_id,
- cascade_lvl01_progress_diseases_services.patient_id,
- cascade_lvl01_progress_diseases_services.STATUS,
- cascade_lvl01_progress_diseases_services.resource_type
- FROM cascade_lvl01_progress_diseases_services
- WHERE cascade_lvl01_progress_diseases_services.legal_entity_id = 3228
- AND cascade_lvl01_progress_diseases_services.resource_type IN
- ('observation', 'diagnostic_report', 'service_request')
- AND (asserted_date BETWEEN (SELECT period_start FROM period_interval) AND (SELECT period_end FROM period_interval))),
- progress_disease_codes AS (SELECT cascade_lvl00_progress_disease_codes.id,
- cascade_lvl00_progress_disease_codes.code,
- cascade_lvl00_progress_disease_codes.employee_id,
- cascade_lvl00_progress_disease_codes.legal_entity_id,
- cascade_lvl00_progress_disease_codes.asserted_date,
- cascade_lvl00_progress_disease_codes.encounter_id,
- cascade_lvl00_progress_disease_codes.patient_id,
- cascade_lvl00_progress_disease_codes.ROLE,
- cascade_lvl00_progress_disease_codes.code_type
- FROM cascade_lvl00_progress_disease_codes
- WHERE cascade_lvl00_progress_disease_codes.legal_entity_id = 3228
- AND cascade_lvl00_progress_disease_codes.ehealth_status = 'finished'
- AND (asserted_date <= (SELECT period_end FROM period_interval))),
- actions AS (SELECT cascade_lvl00_actions.id,
- cascade_lvl00_actions.code,
- cascade_lvl00_actions.patient_id,
- cascade_lvl00_actions.asserted_date
- FROM cascade_lvl00_actions
- WHERE cascade_lvl00_actions.legal_entity_id = 3228
- AND cascade_lvl00_actions.code IN ('K45', 'D45', 'T45')
- AND (asserted_date BETWEEN (SELECT period_start FROM period_interval) AND (SELECT period_end FROM period_interval))),
- joined_groups AS (SELECT cascade_lvl00_progress_disease_groups.group_name,
- cascade_lvl00_progress_disease_groups.indicator_name,
- cascade_lvl00_progress_disease_groups.date_restriction,
- cascade_lvl00_progress_disease_groups.condition_codes,
- cascade_lvl00_progress_disease_groups.condition_exclude_codes,
- cascade_lvl00_progress_disease_groups.condition_female_age_from,
- cascade_lvl00_progress_disease_groups.condition_female_age_to,
- cascade_lvl00_progress_disease_groups.condition_male_age_from,
- cascade_lvl00_progress_disease_groups.condition_male_age_to,
- cascade_lvl00_progress_disease_groups.condition_reason_code,
- cascade_lvl00_progress_disease_groups.condition_observation_codes,
- cascade_lvl00_progress_disease_groups.condition_service_request_codes,
- cascade_lvl00_progress_disease_groups.condition_optional_observation_codes,
- cascade_lvl00_progress_disease_groups.condition_diagnostic_report_codes,
- cascade_lvl00_progress_disease_groups.service_statuses,
- cascade_lvl00_progress_disease_groups.disease_roles,
- cascade_lvl00_progress_disease_groups.condition_action_codes,
- cascade_lvl00_progress_disease_groups.is_no_risk,
- cascade_lvl00_progress_disease_groups.need_to_check_female_age,
- cascade_lvl00_progress_disease_groups.skip_female,
- cascade_lvl00_progress_disease_groups.need_to_check_male_age,
- cascade_lvl00_progress_disease_groups.skip_male,
- cascade_lvl00_progress_disease_groups.need_to_check_reason_code,
- cascade_lvl00_progress_disease_groups.need_to_check_condition_codes,
- cascade_lvl00_progress_disease_groups.need_to_check_condition_exclude_codes,
- cascade_lvl00_progress_disease_groups.need_to_check_observation_codes,
- cascade_lvl00_progress_disease_groups.need_to_check_service_request_codes,
- cascade_lvl00_progress_disease_groups.need_to_check_optional_observation_codes,
- cascade_lvl00_progress_disease_groups.need_to_check_diagnostic_report_codes,
- cascade_lvl00_progress_disease_groups.need_to_check_condition_action_codes,
- cascade_lvl00_progress_disease_groups.need_to_check_disease_roles,
- cascade_lvl00_progress_disease_groups.need_to_check_service_statuses,
- reporting_periods.original_period_type,
- reporting_periods.original_period_value,
- reporting_periods.calculated_period_start_days,
- reporting_periods.period_start_date,
- reporting_periods.period_end_date
- FROM cascade_lvl00_progress_disease_groups
- JOIN reporting_periods ON cascade_lvl00_progress_disease_groups.date_restriction =
- reporting_periods.period_name),
- observations AS (SELECT joined_resources.code AS code,
- joined_resources.legal_entity_id AS legal_entity_id,
- joined_resources.asserted_date AS asserted_date,
- joined_resources.patient_id AS patient_id,
- joined_resources.STATUS AS STATUS,
- joined_resources.resource_type AS resource_type
- FROM joined_resources
- WHERE joined_resources.resource_type = 'observation'
- AND joined_resources.STATUS = 'valid'),
- diagnostic_reports AS (SELECT joined_resources.code AS code,
- joined_resources.legal_entity_id AS legal_entity_id,
- joined_resources.asserted_date AS asserted_date,
- joined_resources.patient_id AS patient_id,
- joined_resources.STATUS AS STATUS,
- joined_resources.resource_type AS resource_type
- FROM joined_resources
- WHERE joined_resources.resource_type = 'diagnostic_report'
- AND joined_resources.STATUS = 'final'),
- service_requests AS (SELECT joined_resources.code AS code,
- joined_resources.legal_entity_id AS legal_entity_id,
- joined_resources.asserted_date AS asserted_date,
- joined_resources.patient_id AS patient_id,
- joined_resources.STATUS AS STATUS,
- joined_resources.resource_type AS resource_type
- FROM joined_resources
- WHERE joined_resources.resource_type = 'service_request'
- AND joined_resources.STATUS IN ('active', 'completed')),
- patient_joined_groups AS (SELECT p.patient_full_name,
- p.current_age_in_years,
- p.id AS patient_id,
- p.employee_id,
- p.legal_entity_id,
- p.gender AS patient_gender,
- jg.group_name,
- jg.indicator_name,
- jg.condition_codes,
- jg.condition_exclude_codes,
- jg.condition_female_age_from,
- jg.condition_female_age_to,
- jg.condition_male_age_from,
- jg.condition_male_age_to,
- jg.condition_reason_code,
- jg.condition_observation_codes,
- jg.condition_service_request_codes,
- jg.condition_optional_observation_codes,
- jg.condition_diagnostic_report_codes,
- jg.service_statuses,
- jg.disease_roles,
- jg.condition_action_codes,
- jg.is_no_risk,
- jg.need_to_check_female_age,
- jg.skip_female,
- jg.need_to_check_male_age,
- jg.skip_male,
- jg.need_to_check_reason_code,
- jg.need_to_check_condition_codes,
- jg.need_to_check_condition_exclude_codes,
- jg.need_to_check_observation_codes,
- jg.need_to_check_service_request_codes,
- jg.need_to_check_optional_observation_codes,
- jg.need_to_check_diagnostic_report_codes,
- jg.need_to_check_condition_action_codes,
- jg.need_to_check_disease_roles,
- jg.need_to_check_service_statuses,
- jg.period_start_date,
- jg.period_end_date
- FROM patients p
- CROSS JOIN joined_groups jg),
- patient_joined_groups_with_services AS (SELECT patient_joined_groups.patient_id,
- patient_joined_groups.indicator_name,
- patient_joined_groups.group_name,
- jrsr.*
- FROM patient_joined_groups
- JOIN service_requests jrsr
- ON patient_joined_groups.need_to_check_service_request_codes =
- TRUE AND
- jrsr.patient_id = patient_joined_groups.patient_id
- AND jrsr.asserted_date >=
- patient_joined_groups.period_start_date AND
- jrsr.asserted_date <=
- patient_joined_groups.period_end_date
- AND
- (patient_joined_groups.need_to_check_service_statuses AND
- has(patient_joined_groups.service_statuses, jrsr.STATUS))
- WHERE (patient_joined_groups.need_to_check_service_request_codes = TRUE AND
- arrayExists(x -> x = jrsr.code,
- patient_joined_groups.condition_service_request_codes)
- ) SETTINGS allow_experimental_join_condition = 1),
- patient_joined_groups_with_dos AS (SELECT patient_joined_groups.patient_id,
- patient_joined_groups.indicator_name,
- patient_joined_groups.group_name,
- jrdo.*
- FROM patient_joined_groups
- JOIN diagnostic_reports jrdo
- ON (patient_joined_groups.need_to_check_diagnostic_report_codes =
- TRUE OR
- patient_joined_groups.need_to_check_optional_observation_codes =
- TRUE)
- AND jrdo.patient_id = patient_joined_groups.patient_id
- AND
- has(patient_joined_groups.condition_diagnostic_report_codes,
- jrdo.code)
- AND
- jrdo.asserted_date >= patient_joined_groups.period_start_date
- AND
- jrdo.asserted_date <= patient_joined_groups.period_end_date
- WHERE (patient_joined_groups.need_to_check_diagnostic_report_codes = TRUE AND
- arrayExists(x -> x = jrdo.code,
- patient_joined_groups.condition_diagnostic_report_codes)
- AND
- (NOT patient_joined_groups.need_to_check_optional_observation_codes = TRUE OR
- jrdo.asserted_date < toDate('2024-06-01'))
- ) SETTINGS allow_experimental_join_condition = 1),
- patient_joined_groups_with_observations AS (SELECT patient_joined_groups.patient_id,
- patient_joined_groups.indicator_name,
- patient_joined_groups.group_name,
- jro.*
- FROM patient_joined_groups
- JOIN observations jro
- ON (patient_joined_groups.need_to_check_observation_codes =
- TRUE OR
- patient_joined_groups.need_to_check_optional_observation_codes =
- TRUE) AND
- jro.patient_id = patient_joined_groups.patient_id
- AND jro.asserted_date >=
- patient_joined_groups.period_start_date
- AND jro.asserted_date <=
- patient_joined_groups.period_end_date
- AND
- (has(patient_joined_groups.condition_observation_codes, jro.code) OR
- has(
- patient_joined_groups.condition_optional_observation_codes,
- jro.code))
- WHERE ((patient_joined_groups.need_to_check_observation_codes AND
- arrayExists(x -> x = jro.code,
- patient_joined_groups.condition_observation_codes))
- OR
- (patient_joined_groups.need_to_check_optional_observation_codes AND
- arrayExists(x -> x = jro.code,
- patient_joined_groups.condition_optional_observation_codes))
- ) SETTINGS allow_experimental_join_condition = 1),
- patient_joined_groups_with_reasons AS (SELECT patient_joined_groups.patient_id,
- patient_joined_groups.indicator_name,
- patient_joined_groups.group_name,
- pdrc.*
- FROM patient_joined_groups
- JOIN progress_disease_codes pdrc
- ON patient_joined_groups.need_to_check_reason_code = TRUE AND
- pdrc.patient_id = patient_joined_groups.patient_id
- AND
- has(patient_joined_groups.condition_reason_code, pdrc.code)
- AND pdrc.asserted_date >=
- patient_joined_groups.period_start_date
- AND
- pdrc.asserted_date <= patient_joined_groups.period_end_date
- WHERE (patient_joined_groups.need_to_check_reason_code AND
- arrayExists(x -> x = pdrc.code,
- patient_joined_groups.condition_reason_code)) SETTINGS allow_experimental_join_condition = 1),
- patient_joined_groups_with_actions AS (SELECT patient_joined_groups.patient_id,
- patient_joined_groups.indicator_name,
- patient_joined_groups.group_name,
- a.*
- FROM patient_joined_groups
- JOIN actions a
- ON patient_joined_groups.need_to_check_condition_action_codes =
- TRUE AND a.patient_id = patient_joined_groups.patient_id
- AND
- a.asserted_date >= patient_joined_groups.period_start_date
- AND
- a.asserted_date <= patient_joined_groups.period_end_date
- AND
- has(patient_joined_groups.condition_action_codes, a.code)
- WHERE (patient_joined_groups.need_to_check_condition_action_codes = TRUE AND
- arrayExists(x -> x = a.code,
- patient_joined_groups.condition_action_codes)
- ) SETTINGS allow_experimental_join_condition = 1),
- patient_joined_groups_with_pdc AS (SELECT patient_joined_groups.patient_id,
- patient_joined_groups.indicator_name,
- patient_joined_groups.group_name,
- pdc.*
- FROM patient_joined_groups
- JOIN progress_disease_codes pdc
- ON (patient_joined_groups.need_to_check_condition_codes = TRUE OR
- patient_joined_groups.need_to_check_condition_exclude_codes =
- TRUE) AND pdc.patient_id = patient_joined_groups.patient_id
- AND pdc.asserted_date <= patient_joined_groups.period_end_date
- AND (has(patient_joined_groups.condition_codes, pdc.code) OR
- has(patient_joined_groups.condition_exclude_codes, pdc.code))
- WHERE (pdc.asserted_date <= patient_joined_groups.period_end_date
- AND ((patient_joined_groups.need_to_check_condition_codes = TRUE AND
- arrayExists(x -> x = pdc.code, patient_joined_groups.condition_codes))
- OR
- (patient_joined_groups.need_to_check_condition_exclude_codes = TRUE AND
- arrayExists(x -> x = pdc.code,
- patient_joined_groups.condition_exclude_codes)))
- ) SETTINGS allow_experimental_join_condition = 1),
- patient_groups AS (SELECT pjg.legal_entity_id AS legal_entity_id,
- pjg.patient_id AS patient_id,
- pjg.indicator_name AS indicator_name,
- pjg.group_name AS group_name,
- pjg.employee_id AS employee_id,
- groupUniqArray(pjgd.code) AS result_condition_diagnostic_report_codes,
- groupUniqArray(pjgo.code) AS result_condition_observation_codes,
- groupUniqArray(pjgs.code) AS result_condition_service_request_codes,
- groupUniqArray(pjgr.code) AS result_reason_codes,
- groupUniqArray(pjga.code) AS result_action_codes,
- groupUniqArray(pjgp.code) AS result_condition_codes,
- pjg.patient_gender,
- pjg.current_age_in_years AS patient_age,
- pjg.need_to_check_female_age,
- pjg.need_to_check_male_age,
- pjg.need_to_check_reason_code,
- pjg.need_to_check_condition_codes,
- pjg.need_to_check_condition_exclude_codes,
- pjg.need_to_check_observation_codes,
- pjg.need_to_check_service_request_codes,
- pjg.need_to_check_diagnostic_report_codes,
- pjg.need_to_check_condition_action_codes,
- pjg.need_to_check_optional_observation_codes,
- pjg.condition_female_age_from,
- pjg.condition_female_age_to,
- pjg.condition_male_age_from,
- pjg.condition_male_age_to,
- (patient_gender IS NULL OR
- (pjg.skip_male AND patient_gender = 0)
- OR (group_name IN
- ('hiv_screening_no_risk', 'checkup_40_64_with_risk', 'checkup_65_plus_no_risk',
- 'tb_screening_no_risk', 'hypertension_eval_no_risk'))
- OR (pjg.skip_female AND patient_gender = 1)
- OR (need_to_check_male_age AND patient_gender = 0 AND
- patient_age NOT BETWEEN condition_male_age_from AND condition_male_age_to)
- OR (need_to_check_female_age AND patient_gender = 1 AND
- patient_age NOT BETWEEN condition_female_age_from AND condition_female_age_to)
- ) AS skip_check,
- pjg.is_no_risk,
- pjg.condition_reason_code AS condition_reason_codes,
- pjg.condition_action_codes,
- pjg.condition_codes,
- pjg.condition_exclude_codes,
- pjg.condition_observation_codes,
- pjg.condition_optional_observation_codes,
- pjg.condition_diagnostic_report_codes,
- pjg.condition_service_request_codes,
- (need_to_check_reason_code AND LENGTH(result_reason_codes) = 0) AS force_quit_reason_check,
- (need_to_check_condition_action_codes AND LENGTH(result_action_codes) = 0) AS force_quit_action_check,
- (need_to_check_condition_codes AND LENGTH(result_condition_codes) = 0) AS force_quit_condition_check,
- (need_to_check_service_request_codes AND LENGTH(result_condition_service_request_codes) =
- 0) AS force_quit_service_request_check,
- (need_to_check_observation_codes AND LENGTH(result_condition_observation_codes) =
- 0) AS force_quit_observation_check,
- (need_to_check_diagnostic_report_codes AND
- LENGTH(result_condition_diagnostic_report_codes) =
- 0) AS force_quit_diagnostic_report_check,
- (need_to_check_condition_exclude_codes AND LENGTH(result_condition_codes) =
- 0) AS force_quit_condition_exclude_check,
- IF(skip_check OR NOT need_to_check_diagnostic_report_codes, TRUE,
- IF(force_quit_diagnostic_report_check, FALSE,
- need_to_check_diagnostic_report_codes AND
- arrayExists(x -> has(result_condition_diagnostic_report_codes, x),
- condition_diagnostic_report_codes)
- )) AS diagnostic_report_check,
- IF(skip_check OR NOT need_to_check_reason_code, TRUE,
- IF(force_quit_reason_check, FALSE,
- arrayExists(x -> has(condition_reason_codes, x), result_condition_codes) OR
- arrayExists(x -> has(condition_reason_codes, x), result_reason_codes)
- )) AS reason_check,
- IF(skip_check OR NOT need_to_check_condition_action_codes, TRUE,
- IF(force_quit_action_check, FALSE,
- arrayExists(x -> has(condition_action_codes, x), result_action_codes)
- )) AS action_check,
- IF(skip_check OR NOT need_to_check_condition_codes, TRUE,
- IF(force_quit_condition_check, FALSE,
- arrayExists(x -> has(condition_codes, x),
- result_condition_codes))) AS condition_check,
- IF(skip_check OR NOT need_to_check_service_request_codes, TRUE,
- IF(force_quit_service_request_check, FALSE,
- need_to_check_service_request_codes AND
- arrayExists(x -> has(condition_service_request_codes, x),
- result_condition_service_request_codes))) AS service_request_check,
- IF(skip_check OR NOT need_to_check_condition_exclude_codes, TRUE,
- IF(force_quit_condition_exclude_check, TRUE,
- NOT arrayExists(x -> has(condition_exclude_codes, x),
- result_condition_codes))) AS condition_exclude_check,
- IF(skip_check OR NOT need_to_check_observation_codes, TRUE,
- IF(force_quit_observation_check, FALSE,
- (
- (NOT need_to_check_optional_observation_codes AND
- LENGTH(arrayIntersect(condition_observation_codes,
- result_condition_observation_codes)) =
- LENGTH(condition_observation_codes))
- OR (
- need_to_check_optional_observation_codes AND
- (
- (LENGTH(arrayIntersect(condition_observation_codes,
- result_condition_observation_codes)) =
- LENGTH(condition_observation_codes) AND
- ((need_to_check_diagnostic_report_codes AND diagnostic_report_check) OR
- (need_to_check_service_request_codes AND service_request_check)))
- OR LENGTH(arrayIntersect(arrayConcat(condition_observation_codes,
- condition_optional_observation_codes),
- result_condition_observation_codes)) =
- LENGTH(arrayConcat(condition_observation_codes,
- condition_optional_observation_codes))
- )
- )
- )
- )) AS observation_check,
- CASE
- WHEN skip_check OR
- (need_to_check_condition_exclude_codes AND NOT condition_exclude_check)
- THEN 'no_need_done'
- WHEN condition_check AND action_check AND reason_check AND condition_exclude_check
- AND IF(need_to_check_optional_observation_codes = TRUE, observation_check,
- (need_to_check_observation_codes AND observation_check) OR
- ((need_to_check_service_request_codes AND service_request_check) OR
- (need_to_check_diagnostic_report_codes AND diagnostic_report_check)))
- THEN 'done'
- WHEN need_to_check_condition_codes AND condition_check AND
- need_to_check_condition_exclude_codes AND condition_exclude_check
- THEN 'need_done'
- WHEN (is_no_risk AND NOT condition_exclude_check) OR
- (NOT is_no_risk AND NOT condition_check) THEN 'no_need_done'
- ELSE 'need_done'
- END AS STATUS,
- ROW_NUMBER() OVER (PARTITION BY pjg.patient_id, pjg.indicator_name ORDER BY IF(STATUS = 'done', 1, IF(STATUS = 'need_done', 2, 3))) AS status_rank
- FROM patient_joined_groups pjg
- LEFT JOIN patient_joined_groups_with_dos pjgd
- USING (patient_id, indicator_name, group_name)
- LEFT JOIN patient_joined_groups_with_services pjgs
- USING (patient_id, indicator_name, group_name)
- LEFT JOIN patient_joined_groups_with_observations pjgo
- USING (patient_id, indicator_name, group_name)
- LEFT JOIN patient_joined_groups_with_reasons pjgr
- USING (patient_id, indicator_name, group_name)
- LEFT JOIN patient_joined_groups_with_actions pjga
- USING (patient_id, indicator_name, group_name)
- LEFT JOIN patient_joined_groups_with_pdc pjgp
- USING (patient_id, indicator_name, group_name)
- GROUP BY pjg.legal_entity_id,
- pjg.patient_id,
- pjg.legal_entity_id,
- pjg.employee_id,
- pjg.indicator_name,
- pjg.group_name,
- pjg.patient_gender,
- pjg.current_age_in_years,
- pjg.need_to_check_female_age,
- pjg.need_to_check_male_age,
- pjg.need_to_check_reason_code,
- pjg.need_to_check_condition_codes,
- pjg.need_to_check_condition_exclude_codes,
- pjg.need_to_check_observation_codes,
- pjg.need_to_check_service_request_codes,
- pjg.need_to_check_diagnostic_report_codes,
- pjg.need_to_check_condition_action_codes,
- pjg.need_to_check_optional_observation_codes,
- pjg.condition_female_age_from,
- pjg.condition_female_age_to,
- pjg.condition_male_age_from,
- pjg.condition_male_age_to,
- pjg.skip_male,
- pjg.skip_female,
- pjg.is_no_risk,
- pjg.condition_reason_code,
- pjg.condition_action_codes,
- pjg.condition_codes,
- pjg.condition_exclude_codes,
- pjg.condition_observation_codes,
- pjg.condition_optional_observation_codes,
- pjg.condition_diagnostic_report_codes,
- pjg.condition_service_request_codes)
- SELECT patient_groups.legal_entity_id AS legal_entity_id,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'checkup_40_64' AND STATUS IN ('need_done',
- 'done')) AS checkup_40_64_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'checkup_40_64' AND STATUS IN
- ('done')) AS checkup_40_64_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'checkup_65_plus' AND STATUS IN ('need_done',
- 'done')) AS checkup_65_plus_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'checkup_65_plus' AND STATUS IN
- ('done')) AS checkup_65_plus_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'prostate_referral' AND STATUS IN ('need_done',
- 'done')) AS prostate_referral_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'prostate_referral' AND STATUS IN
- ('done')) AS prostate_referral_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'prostate_referral' AND STATUS IN
- ('done')) AS prostate_completed_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'prostate_completed' AND STATUS IN
- ('done')) AS prostate_completed_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'colorectal_referral' AND STATUS IN ('need_done',
- 'done')) AS colorectal_referral_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'colorectal_referral' AND STATUS IN
- ('done')) AS colorectal_referral_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'colorectal_referral' AND STATUS IN
- ('done')) AS colorectal_completed_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'colorectal_completed' AND STATUS IN
- ('done')) AS colorectal_completed_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'breast_referral' AND STATUS IN ('need_done',
- 'done')) AS breast_referral_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'breast_referral' AND STATUS IN
- ('done')) AS breast_referral_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'breast_referral' AND STATUS IN
- ('done')) AS breast_completed_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'breast_completed' AND STATUS IN
- ('done')) AS breast_completed_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'cv_risk_assessment' AND STATUS IN ('need_done',
- 'done')) AS cv_risk_assessment_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'cv_risk_assessment' AND STATUS IN
- ('done')) AS cv_risk_assessment_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'diabetes_screening' AND STATUS IN ('need_done',
- 'done')) AS diabetes_screening_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'diabetes_screening' AND STATUS IN
- ('done')) AS diabetes_screening_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'hiv_screening' AND STATUS IN ('need_done',
- 'done')) AS hiv_screening_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'hiv_screening' AND STATUS IN
- ('done')) AS hiv_screening_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'hypertension_eval' AND STATUS IN ('need_done',
- 'done')) AS hypertension_eval_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'hypertension_eval' AND STATUS IN
- ('done')) AS hypertension_eval_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'tb_screening' AND STATUS IN ('need_done',
- 'done')) AS tb_screening_total_counter,
- countIf(DISTINCT (patient_groups.patient_id), indicator_name = 'tb_screening' AND STATUS IN
- ('done')) AS tb_screening_counter
- FROM patient_groups
- WHERE patient_groups.status_rank = 1
- AND patient_groups.STATUS IN ('need_done', 'done')
- GROUP BY patient_groups.legal_entity_id
- LIMIT 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement