jeniferfleurant

OVC_SERV mother(newly added)

Mar 26th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.60 KB | None | 0 0
  1. USE caris_db;
  2. SET
  3.   @start_date = "2019-01-01";
  4. SET
  5.   @end_date = "2019-03-31";
  6. SELECT
  7.     patient_code,
  8.     dob,
  9.     IF(TIMESTAMPDIFF(YEAR, dob, @start_date) >= 25,
  10.         '25+',
  11.         IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 25
  12.                 AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 18,
  13.             '18-24',
  14.             IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 18
  15.                     AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 15,
  16.                 '15 17',
  17.                 IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 15
  18.                         AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 10,
  19.                     '10 15',
  20.                     IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 10
  21.                             AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 1,
  22.                         '1 9',
  23.                         ''))))) AS tranche,
  24.     IF(regime.id_patient IS NOT NULL,
  25.         'yes',
  26.         'non') AS on_arv,
  27.     office
  28. FROM
  29.     (SELECT
  30.         id_patient, MIN(date) AS date
  31.     FROM
  32.         (SELECT
  33.         id_patient, date
  34.     FROM
  35.         (SELECT
  36.         id_patient, date
  37.     FROM
  38.         (SELECT
  39.         id_patient, date
  40.     FROM
  41.         questionnaire_motherhivknowledge
  42.     WHERE
  43.         date IS NOT NULL
  44.             AND date != '0000-00-00' UNION SELECT
  45.         id_patient, date
  46.     FROM
  47.         questionnaire_mothersurvey
  48.     WHERE
  49.         date IS NOT NULL
  50.             AND date != '0000-00-00' UNION SELECT
  51.         id_patient, date
  52.     FROM
  53.         questionnaire_newmotherhivknowledge
  54.     WHERE
  55.         date IS NOT NULL
  56.             AND date != '0000-00-00') quest
  57.     LEFT JOIN patient ON patient.id = quest.id_patient
  58.     WHERE
  59.         patient.created_at >= @start_date) ques UNION SELECT
  60.         id_patient, date
  61.     FROM
  62.         (SELECT
  63.         patient.id AS id_patient, date_of_visit AS date
  64.     FROM
  65.         patient
  66.     LEFT JOIN openfn.odk_pregnancy_visit ON patient.patient_code = health_id
  67.     WHERE
  68.         date_of_visit IS NOT NULL
  69.             AND date_of_visit != '0000-00-00'
  70.             AND patient.created_at >= @start_date) odk UNION SELECT
  71.         id_patient, date
  72.     FROM
  73.         (SELECT
  74.         id_patient, date
  75.     FROM
  76.         session
  77.     LEFT JOIN club_session ON club_session.id = session.id_club_session
  78.     LEFT JOIN club ON club.id = id_club
  79.     LEFT JOIN patient ON patient.id = id_patient
  80.     WHERE
  81.         is_present = 1 AND club_type = 1
  82.             AND patient.created_at >= @start_date) club UNION SELECT
  83.         mereenfant.id AS id_patient, date
  84.     FROM
  85.         (SELECT
  86.         patient.id, date
  87.     FROM
  88.         testing_mereenfant
  89.     LEFT JOIN patient ON patient.patient_code = CONCAT(city_code, '/', hospital_code, '/', mother_code)
  90.     WHERE
  91.         patient.id IS NOT NULL
  92.             AND patient.created_at >= @start_date) mereenfant) last
  93.     GROUP BY id_patient) lastone
  94.         LEFT JOIN
  95.     patient ON patient.id = lastone.id_patient
  96.         LEFT JOIN
  97.     tracking_motherbasicinfo ON tracking_motherbasicinfo.id_patient = lastone.id_patient
  98.         LEFT JOIN
  99.     lookup_hospital ON CONCAT(lookup_hospital.city_code,
  100.             '/',
  101.             lookup_hospital.hospital_code) = LEFT(patient_code, 8)
  102.         LEFT JOIN
  103.     (SELECT
  104.        distinct id_patient
  105.     FROM
  106.         tracking_regime
  107.     WHERE
  108.         category = 'regime_mother_treatment') regime ON regime.id_patient = lastone.id_patient
  109. WHERE
  110.     date BETWEEN @start_date AND @end_date
  111.         AND patient.created_at >= @start_date
  112.         AND lastone.id_patient IS NOT NULL
  113.         AND tracking_motherbasicinfo.id_patient IS NOT NULL
Add Comment
Please, Sign In to add comment