Advertisement
temaon_lieto

SQL disease_progresses/patients

Feb 2nd, 2024
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- http://localhost:4000/api/v1/disease_progresses/patients
  2. WITH "limited_assocs" AS (SELECT
  3.     service_code,
  4.     patient_id,
  5.     assoc_type
  6. FROM
  7.     mv_connected_assocs_disease_progresses
  8. WHERE performed_date BETWEEN '2024-01-01 00:00:00' AND '2024-02-02 23:59:59.999999'), "limited_encounters" AS (SELECT
  9.     patient_id,
  10.     onset_date,
  11.     prof_check
  12. FROM mv_encounter_disease_progresses
  13. WHERE onset_date BETWEEN '2024-01-01 00:00:00' AND '2024-02-02 23:59:59.999999') SELECT DISTINCT mv_stat_patient_personalities.id,
  14. mv_stat_patient_personalities.full_name,
  15. mv_stat_patient_personalities.employee_id,
  16. mv_stat_patient_personalities.birth_date,
  17. DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) as age,
  18. "mv_stat_employees_parties"."DivisionId" as division_id,
  19.   CASE
  20.     WHEN (DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 40 AND mv_stat_patient_personalities.gender = 0 OR
  21.           DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 50 AND mv_stat_patient_personalities.gender = 1)
  22.     THEN CASE
  23.            WHEN EXISTS (
  24.                   SELECT 1 FROM limited_assocs WHERE
  25.                     limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  26.                     limited_assocs.service_code in ('T34006','T34011','T34013','T34024','T340001','T34004') AND
  27.                     limited_assocs.assoc_type in (0,1)
  28.                 )
  29.                   THEN 2
  30.                 ELSE 1
  31.     END ELSE 0
  32.   END hypertension,
  33.   CASE
  34.     WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 45
  35.       THEN CASE
  36.         WHEN EXISTS (
  37.           SELECT 1 FROM limited_assocs WHERE
  38.             limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  39.             limited_assocs.service_code in ('T34005','T34023','T34025','T34038') AND
  40.             limited_assocs.assoc_type in (0,1)
  41.         ) OR EXISTS (
  42.           SELECT 1 FROM limited_assocs WHERE
  43.             limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  44.             limited_assocs.assoc_type in (2)
  45.       )
  46.         THEN 2
  47.       ELSE 1
  48.     END ELSE 0
  49.   END diabetes,
  50.   CASE
  51.     WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 40 AND mv_stat_patient_personalities.gender = 0
  52.       THEN CASE
  53.         WHEN EXISTS (
  54.           SELECT 1 FROM limited_assocs WHERE
  55.             limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  56.             limited_assocs.service_code in ('U67002','Y34011','Y34003') AND
  57.             limited_assocs.assoc_type in (0)
  58.       )
  59.         THEN 2
  60.       ELSE 1
  61.     END ELSE 0
  62.   END prostate_cancer,
  63.   CASE
  64.     WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 50 AND 69 AND mv_stat_patient_personalities.gender = 1
  65.       THEN CASE
  66.         WHEN EXISTS (
  67.           SELECT 1 FROM limited_assocs WHERE
  68.             limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  69.             limited_assocs.service_code in ('TX41973','59300-00','55070-00','55076-00','Х41941') AND
  70.             limited_assocs.assoc_type in (0)
  71.       )
  72.           THEN 2
  73.         ELSE 1
  74.     END ELSE 0
  75.   END breast_cancer,
  76.   CASE
  77.     WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 50 AND 75 AND mv_stat_patient_personalities.gender = 0
  78.       THEN CASE
  79.         WHEN EXISTS (
  80.           SELECT 1 FROM limited_assocs WHERE
  81.             limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  82.             limited_assocs.service_code in ('D36003','D67006','32084-00','32090-00','32084-02','32090-02') AND
  83.             limited_assocs.assoc_type in (0)
  84.       )
  85.         THEN 2
  86.       ELSE 1
  87.     END ELSE 0
  88.   END colorectal_cancer,
  89.   CASE
  90.     WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 14
  91.       THEN CASE
  92.         WHEN EXISTS (
  93.           SELECT 1 FROM limited_assocs WHERE
  94.             limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  95.             limited_assocs.service_code in ('B33006','B33012') AND
  96.             limited_assocs.assoc_type in (0,1)
  97.       )
  98.         THEN 2
  99.       ELSE 1
  100.     END ELSE 0
  101.   END hiv,
  102.   (EXISTS (SELECT 1 FROM limited_encounters WHERE
  103.     limited_assocs.patient_id = limited_encounters.patient_id AND
  104.     DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 40 and 64)) as from_40_to_64_visits,
  105.   (EXISTS (SELECT 1 FROM limited_encounters WHERE
  106.     limited_assocs.patient_id = limited_encounters.patient_id AND
  107.     limited_encounters.prof_check = true AND
  108.     DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 40 and 64)) as from_40_to_64_prof_visits,
  109.   (EXISTS (SELECT 1 FROM limited_encounters WHERE
  110.     limited_assocs.patient_id = limited_encounters.patient_id AND
  111.     DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 65)) as upto_65_visits,
  112.   (EXISTS (SELECT 1 FROM limited_encounters WHERE
  113.     limited_assocs.patient_id = limited_encounters.patient_id AND
  114.     limited_encounters.prof_check = true AND
  115.     DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 65)) AS upto_65_prof_visits FROM "mv_stat_patient_personalities" INNER JOIN "mv_stat_declarations" ON "mv_stat_declarations"."patient_id" = "mv_stat_patient_personalities"."id" AND ("mv_stat_declarations"."declaration_status_code" = 'ACTIVE') INNER JOIN "mv_stat_employees_parties" ON "mv_stat_employees_parties"."Id" = "mv_stat_patient_personalities"."employee_id" LEFT OUTER JOIN limited_assocs ON limited_assocs.patient_id = mv_stat_patient_personalities.id WHERE "mv_stat_patient_personalities"."id" IS NOT NULL AND ("mv_stat_employees_parties"."LegalEntityId" = 3228)
  116.   ↳ app/services/disease_progresses/indicators_by_patient.rb:46:in `map'
  117.  Views::MvStatEmployeesParty Load (113.5ms)  SELECT "mv_stat_employees_parties".* FROM "mv_stat_employees_parties" WHERE "mv_stat_employees_parties"."Id" = $1 LIMIT $2  [["Id", 180499], ["LIMIT", 1]]
  118.  ↳ app/services/disease_progresses/indicators_by_patient.rb:46:in `map'
  119.  CACHE Views::MvStatEmployeesParty Load (0.1ms)  SELECT "mv_stat_employees_parties".* FROM "mv_stat_employees_parties" WHERE "mv_stat_employees_parties"."Id" = $1 LIMIT $2  [["Id", 180499], ["LIMIT", 1]]
  120.  ↳ app/services/disease_progresses/indicators_by_patient.rb:46:in `map'
  121.   Views::MvStatEmployeesParty Load (21.3ms)  SELECT "mv_stat_employees_parties".* FROM "mv_stat_employees_parties" WHERE "mv_stat_employees_parties"."Id" = $1 LIMIT $2  [["Id", 181286], ["LIMIT", 1]]
  122.   ↳ app/services/disease_progresses/indicators_by_patient.rb:46:in `map'
  123.  CACHE Views::MvStatEmployeesParty Load (0.1ms)  SELECT "mv_stat_employees_parties".* FROM "mv_stat_employees_parties" WHERE "mv_stat_employees_parties"."Id" = $1 LIMIT $2  [["Id", 181286], ["LIMIT", 1]]
  124.  ↳ app/services/disease_progresses/indicators_by_patient.rb:46:in `map'
  125.  CACHE Views::MvStatEmployeesParty Load (0.1ms)  SELECT "mv_stat_employees_parties".* FROM "mv_stat_employees_parties" WHERE "mv_stat_employees_parties"."Id" = $1 LIMIT $2  [["Id", 181286], ["LIMIT", 1]]
  126.  ↳ app/services/disease_progresses/indicators_by_patient.rb:46:in `map'
  127.   Views::MvEncounterDiseaseProgress Load (23.9ms)  SELECT "mv_encounter_disease_progresses".* FROM "mv_encounter_disease_progresses" WHERE "mv_encounter_disease_progresses"."patient_id" = $1 AND "mv_encounter_disease_progresses"."onset_date" BETWEEN $2 AND $3  [["patient_id", 11395822], ["onset_date", "2024-01-01 00:00:00"], ["onset_date", "2024-02-02 23:59:59.999999"]]
  128.   ↳ app/services/disease_progresses/indicators_by_patient.rb:143:in `build_diseases_percentage'
  129.  Views::MvEncounterDiseaseProgress Load (29.0ms)  SELECT "mv_encounter_disease_progresses".* FROM "mv_encounter_disease_progresses" WHERE "mv_encounter_disease_progresses"."patient_id" = $1 AND "mv_encounter_disease_progresses"."onset_date" BETWEEN $2 AND $3  [["patient_id", 11395824], ["onset_date", "2024-01-01 00:00:00"], ["onset_date", "2024-02-02 23:59:59.999999"]]
  130.  ↳ app/services/disease_progresses/indicators_by_patient.rb:143:in `build_diseases_percentage'
  131.  Views::MvConnectedAssocsDiseaseProgress Load (24.7ms)  SELECT "mv_connected_assocs_disease_progresses".* FROM "mv_connected_assocs_disease_progresses" WHERE "mv_connected_assocs_disease_progresses"."patient_id" IN ($1, $2, $3, $4, $5) AND "mv_connected_assocs_disease_progresses"."performed_date" BETWEEN $6 AND $7  [["patient_id", 11395822], ["patient_id", 11395824], ["patient_id", 11464974], ["patient_id", 11464976], ["patient_id", 11464994], ["performed_date", "2024-01-01 00:00:00"], ["performed_date", "2024-02-02 23:59:59.999999"]]
  132.  ↳ app/services/disease_progresses/indicators_by_patient.rb:68:in `filter'
  133.   Views::MvEncounterDiseaseProgress Load (20.7ms)  SELECT "mv_encounter_disease_progresses".* FROM "mv_encounter_disease_progresses" WHERE "mv_encounter_disease_progresses"."patient_id" = $1 AND "mv_encounter_disease_progresses"."onset_date" BETWEEN $2 AND $3  [["patient_id", 11464974], ["onset_date", "2024-01-01 00:00:00"], ["onset_date", "2024-02-02 23:59:59.999999"]]
  134.   ↳ app/services/disease_progresses/indicators_by_patient.rb:143:in `build_diseases_percentage'
  135.  Views::MvEncounterDiseaseProgress Load (21.0ms)  SELECT "mv_encounter_disease_progresses".* FROM "mv_encounter_disease_progresses" WHERE "mv_encounter_disease_progresses"."patient_id" = $1 AND "mv_encounter_disease_progresses"."onset_date" BETWEEN $2 AND $3  [["patient_id", 11464976], ["onset_date", "2024-01-01 00:00:00"], ["onset_date", "2024-02-02 23:59:59.999999"]]
  136.  ↳ app/services/disease_progresses/indicators_by_patient.rb:143:in `build_diseases_percentage'
  137.  Views::MvEncounterDiseaseProgress Load (20.2ms)  SELECT "mv_encounter_disease_progresses".* FROM "mv_encounter_disease_progresses" WHERE "mv_encounter_disease_progresses"."patient_id" = $1 AND "mv_encounter_disease_progresses"."onset_date" BETWEEN $2 AND $3  [["patient_id", 11464994], ["onset_date", "2024-01-01 00:00:00"], ["onset_date", "2024-02-02 23:59:59.999999"]]
  138.  ↳ app/services/disease_progresses/indicators_by_patient.rb:143:in `build_diseases_percentage'
  139. Completed 200 OK in 588ms (Views: 0.9ms | ActiveRecord: 426.2ms | Allocations: 21048)
  140.  
  141.  
  142. Started GET "/api/v1/disease_progresses/patients" for ::1 at 2024-02-02 11:00:16 +0200
  143. Processing by Api::V1::DiseaseProgresses::PatientsController#index as HTML
  144.   MainApplication::Dbo::LegalEntity Load (21.0ms)  SELECT "dbo"."LegalEntities".* FROM "dbo"."LegalEntities" WHERE "dbo"."LegalEntities"."Id" = $1 LIMIT $2  [["Id", 3228], ["LIMIT", 1]]
  145.   ↳ app/controllers/api/v1/disease_progresses/patients_controller.rb:28:in `legal_entity'
  146.  Views::MvStatPatientPersonality Load (31.5ms)  WITH "limited_assocs" AS (SELECT
  147.    service_code,
  148.    patient_id,
  149.    assoc_type
  150. FROM
  151.    mv_connected_assocs_disease_progresses
  152. WHERE performed_date BETWEEN '2024-01-01 00:00:00' AND '2024-02-02 23:59:59.999999'), "limited_encounters" AS (SELECT
  153.    patient_id,
  154.    onset_date,
  155.    prof_check
  156. FROM mv_encounter_disease_progresses
  157. WHERE onset_date BETWEEN '2024-01-01 00:00:00' AND '2024-02-02 23:59:59.999999') SELECT DISTINCT mv_stat_patient_personalities.id,
  158. mv_stat_patient_personalities.full_name,
  159. mv_stat_patient_personalities.employee_id,
  160. mv_stat_patient_personalities.birth_date,
  161. DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) as age,
  162. "mv_stat_employees_parties"."DivisionId" as division_id,
  163.  CASE
  164.    WHEN (DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 40 AND mv_stat_patient_personalities.gender = 0 OR
  165.          DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 50 AND mv_stat_patient_personalities.gender = 1)
  166.    THEN CASE
  167.           WHEN EXISTS (
  168.                  SELECT 1 FROM limited_assocs WHERE
  169.                    limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  170.                    limited_assocs.service_code in ('T34006','T34011','T34013','T34024','T340001','T34004') AND
  171.                    limited_assocs.assoc_type in (0,1)
  172.                )
  173.                  THEN 2
  174.                ELSE 1
  175.    END ELSE 0
  176.  END hypertension,
  177.  CASE
  178.    WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 45
  179.      THEN CASE
  180.        WHEN EXISTS (
  181.          SELECT 1 FROM limited_assocs WHERE
  182.            limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  183.            limited_assocs.service_code in ('T34005','T34023','T34025','T34038') AND
  184.            limited_assocs.assoc_type in (0,1)
  185.        ) OR EXISTS (
  186.          SELECT 1 FROM limited_assocs WHERE
  187.            limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  188.            limited_assocs.assoc_type in (2)
  189.      )
  190.        THEN 2
  191.      ELSE 1
  192.    END ELSE 0
  193.  END diabetes,
  194.  CASE
  195.    WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 40 AND mv_stat_patient_personalities.gender = 0
  196.      THEN CASE
  197.        WHEN EXISTS (
  198.          SELECT 1 FROM limited_assocs WHERE
  199.            limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  200.            limited_assocs.service_code in ('U67002','Y34011','Y34003') AND
  201.            limited_assocs.assoc_type in (0)
  202.      )
  203.        THEN 2
  204.      ELSE 1
  205.    END ELSE 0
  206.  END prostate_cancer,
  207.  CASE
  208.    WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 50 AND 69 AND mv_stat_patient_personalities.gender = 1
  209.      THEN CASE
  210.        WHEN EXISTS (
  211.          SELECT 1 FROM limited_assocs WHERE
  212.            limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  213.            limited_assocs.service_code in ('TX41973','59300-00','55070-00','55076-00','Х41941') AND
  214.            limited_assocs.assoc_type in (0)
  215.      )
  216.          THEN 2
  217.        ELSE 1
  218.    END ELSE 0
  219.  END breast_cancer,
  220.  CASE
  221.    WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 50 AND 75 AND mv_stat_patient_personalities.gender = 0
  222.      THEN CASE
  223.        WHEN EXISTS (
  224.          SELECT 1 FROM limited_assocs WHERE
  225.            limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  226.            limited_assocs.service_code in ('D36003','D67006','32084-00','32090-00','32084-02','32090-02') AND
  227.            limited_assocs.assoc_type in (0)
  228.      )
  229.        THEN 2
  230.      ELSE 1
  231.    END ELSE 0
  232.  END colorectal_cancer,
  233.  CASE
  234.    WHEN DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 14
  235.      THEN CASE
  236.        WHEN EXISTS (
  237.          SELECT 1 FROM limited_assocs WHERE
  238.            limited_assocs.patient_id = mv_stat_patient_personalities.id AND
  239.            limited_assocs.service_code in ('B33006','B33012') AND
  240.            limited_assocs.assoc_type in (0,1)
  241.      )
  242.        THEN 2
  243.      ELSE 1
  244.    END ELSE 0
  245.  END hiv,
  246.  (EXISTS (SELECT 1 FROM limited_encounters WHERE
  247.    limited_assocs.patient_id = limited_encounters.patient_id AND
  248.    DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 40 and 64)) as from_40_to_64_visits,
  249.  (EXISTS (SELECT 1 FROM limited_encounters WHERE
  250.    limited_assocs.patient_id = limited_encounters.patient_id AND
  251.    limited_encounters.prof_check = true AND
  252.    DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) BETWEEN 40 and 64)) as from_40_to_64_prof_visits,
  253.  (EXISTS (SELECT 1 FROM limited_encounters WHERE
  254.    limited_assocs.patient_id = limited_encounters.patient_id AND
  255.    DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 65)) as upto_65_visits,
  256.  (EXISTS (SELECT 1 FROM limited_encounters WHERE
  257.    limited_assocs.patient_id = limited_encounters.patient_id AND
  258.    limited_encounters.prof_check = true AND
  259.    DATE_PART('YEAR', AGE('2024-02-02 23:59:59.999999', mv_stat_patient_personalities.birth_date)) >= 65)) AS upto_65_prof_visits FROM "mv_stat_patient_personalities" INNER JOIN "mv_stat_declarations" ON "mv_stat_declarations"."patient_id" = "mv_stat_patient_personalities"."id" AND ("mv_stat_declarations"."declaration_status_code" = 'ACTIVE') INNER JOIN "mv_stat_employees_parties" ON "mv_stat_employees_parties"."Id" = "mv_stat_patient_personalities"."employee_id" LEFT OUTER JOIN limited_assocs ON limited_assocs.patient_id = mv_stat_patient_personalities.id WHERE "mv_stat_patient_personalities"."id" IS NOT NULL AND ("mv_stat_employees_parties"."LegalEntityId" = 3228)
  260.  
  261.  
  262. SELECT "mv_encounter_disease_progresses".* FROM "mv_encounter_disease_progresses" WHERE "mv_encounter_disease_progresses"."patient_id" = $1 AND "mv_encounter_disease_progresses"."onset_date" BETWEEN $2 AND $3  [["patient_id", 11395822], ["onset_date", "2024-01-01 00:00:00"], ["onset_date", "2024-02-02 23:59:59.999999"]]
  263.  
  264. SELECT "mv_connected_assocs_disease_progresses".* FROM "mv_connected_assocs_disease_progresses" WHERE "mv_connected_assocs_disease_progresses"."patient_id" IN ($1, $2, $3, $4, $5) AND "mv_connected_assocs_disease_progresses"."performed_date" BETWEEN $6 AND $7  [["patient_id", 11395822], ["patient_id", 11395824], ["patient_id", 11464974], ["patient_id", 11464976], ["patient_id", 11464994], ["performed_date", "2024-01-01 00:00:00"], ["performed_date", "2024-02-02 23:59:59.999999"]]
  265.  
  266. SELECT "mv_encounter_disease_progresses".* FROM "mv_encounter_disease_progresses" WHERE "mv_encounter_disease_progresses"."patient_id" = $1 AND "mv_encounter_disease_progresses"."onset_date" BETWEEN $2 AND $3  [["patient_id", 11464974], ["onset_date", "2024-01-01 00:00:00"], ["onset_date", "2024-02-02 23:59:59.999999"]]
  267.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement