jeniferfleurant

Viral Load Supression club/nclub

Apr 3rd, 2019
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.18 KB | None | 0 0
  1. USE caris_db;
  2. SET @start_date="2018-10-01";
  3. SET @end_date="2019-03-31";
  4. SELECT
  5.     first.*,
  6.     IF(tf1.id_patient IS NOT NULL,
  7.         'yes',
  8.         'no') AS viral_load,
  9.     viral_load_count,
  10.     viral_load_indetectable,
  11.     if(viral_load_indetectable=1,'<1000 copies',if(viral_load_count<1000,'<1000 copies', if(viral_load_count>1000,'>1000 copies',''))) as viral_load_result
  12.     ,viral_load_date,
  13.      timestampdiff(year, dob, viral_load_date) as viral_load_age
  14. FROM
  15.     (SELECT DISTINCT
  16.         ti.id_patient,
  17.             patient_code,
  18.             IF(club.id_patient IS NOT NULL, 'yes', 'non') AS club,
  19.             dob
  20.     FROM
  21.         tracking_infant ti
  22.     LEFT JOIN tracking_followup tf ON tf.id_patient = ti.id_patient
  23.     LEFT JOIN (SELECT
  24.         *
  25.     FROM
  26.         (SELECT
  27.         patient.id AS id_patient, date_of_visit
  28.     FROM
  29.         openfn.odk_child_visit odk1
  30.     LEFT JOIN patient ON patient.patient_code = odk1.patient_code
  31.     WHERE
  32.         date_of_visit BETWEEN @start_date AND @end_date)x) odk ON odk.id_patient = ti.id_patient
  33.     LEFT JOIN (SELECT DISTINCT
  34.         id_patient
  35.     FROM
  36.         session
  37.     LEFT JOIN club_session ON club_session.id = session.id_club_session
  38.     WHERE
  39.         date BETWEEN @start_date AND @end_date
  40.             AND is_present = 1) club ON club.id_patient = ti.id_patient
  41.     LEFT JOIN patient ON patient.id = ti.id_patient
  42.     WHERE
  43.         (date BETWEEN @start_date AND @end_date or date_of_visit BETWEEN @start_date AND @end_date)
  44.             AND linked_to_id_patient = 0) first
  45.         LEFT JOIN
  46.     (SELECT DISTINCT
  47.         id_patient,
  48.             viral_load_count,
  49.             viral_load_indetectable,
  50.             viral_load_date
  51.     FROM
  52.         tracking_followup tff
  53.     WHERE
  54.         took_viral_load_test = 1
  55.             AND date BETWEEN @start_date AND @end_date
  56.             AND viral_load_date = (SELECT
  57.                 MAX(viral_load_date)
  58.             FROM
  59.                 tracking_followup tfff
  60.             WHERE
  61.                 tff.id_patient = tfff.id_patient
  62.                     AND date BETWEEN @start_date AND @end_date)) tf1 ON tf1.id_patient = first.id_patient
  63.  
  64. group by first.id_patient
Advertisement
Add Comment
Please, Sign In to add comment