Advertisement
jeniferfleurant

ovc_serv 2017 commcare included

Oct 20th, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.70 KB | None | 0 0
  1. USE caris_db;
  2. SET @start_date= "2017-10-01";
  3. SET @end_date="2018-03-31";
  4. SELECT left(patient_code,8) AS hospital_code, count(*) as total
  5. ,sum(if(dob between (@start_date - interval 364 day) and @end_date
  6.             and dob != '0000-00-00',1,0)) as under1
  7. ,
  8. sum(if(dob between (@start_date - interval 9 year + interval 1 day) and @end_date - interval 1 year
  9.             and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>=1
  10.             ,1,0)) as bt_1_9,
  11. sum(if(dob between (@start_date - interval 364 day) and @end_date
  12.             and dob != '0000-00-00'
  13.             and gender = 1,1,0)) as m_under1,
  14. sum(if(dob between (@start_date - interval 364 day) and @end_date
  15.             and dob != '0000-00-00'
  16.             and gender = 2,1,0)) as f_under1,
  17. sum(if(dob between (@start_date - interval 9 year + interval 1 day) and @end_date - interval 1 year
  18.             and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>=1
  19.             and gender = 1,1,0)) as m_bt_1_9,
  20. sum(if(dob between (@start_date - interval 9 year + interval 1 day) and @end_date - interval 1 year
  21.             and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>=1
  22.             and gender = 2,1,0)) as f_bt_1_9,
  23. sum(if(dob between (@start_date - interval 14 year + interval 1 day) and @end_date - interval 10 year
  24.               and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 10
  25.               and gender = 1,1,0)) as m_bt_10_14,
  26. sum(if(dob between (@start_date - interval 14 year + interval 1 day) and @end_date - interval 10 year
  27.               and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 10
  28.               and gender = 2,1,0)) as f_bt_10_14,
  29. sum(if(dob between (@start_date - interval 17 year + interval 1 day) and @end_date - interval 15 year
  30.               and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 15
  31.               and gender = 1,1,0)) as m_bt_15_17,
  32. sum(if(dob between (@start_date - interval 17 year + interval 1 day) and @end_date - interval 15 year
  33.               and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 15
  34.               and gender = 2,1,0)) as f_bt_15_17,
  35. sum(if(dob between (@start_date - interval 24 year + interval 1 day) and @end_date - interval 18 year
  36.               and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 18
  37.               and gender = 1,1,0)) as m_bt_18_24,
  38. sum(if(dob between (@start_date - interval 24 year + interval 1 day) and @end_date - interval 18 year
  39.               and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 18
  40.               and gender = 2,1,0)) as f_bt_18_24,
  41. sum(if(dob <= @end_date - interval 25 year and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 25
  42.             and gender = 1,1,0)) as m_25,
  43. sum(if(dob <= @end_date - interval 25 year and dob != '0000-00-00' and timestampdiff(year, dob, @start_date)>= 25
  44.             and gender = 2,1,0)) as f_25
  45.  from  (select * from (
  46. select testing_mereenfant.id_patient, infant_dob as dob, infant_gender as gender from testing_mereenfant where date between @start_date and @end_date
  47. union
  48. select testing_specimen.id_patient, date_of_birth as dob, gender from testing_specimen left join tracking_infant on testing_specimen.id_patient=tracking_infant.id_patient where date_blood_taken between @start_date and @end_date
  49. union
  50. select id_patient, dob, gender from tracking_infant where (positive_pcr_1 between @start_date and @end_date
  51.  or positive_pcr_2 between @start_date and @end_date) or id_patient in
  52. (select * from (
  53. select id_patient from tracking_regime where category='regime_infant_treatment' and start_date between @start_date and @end_date
  54. union
  55. select id_patient from tracking_followup where date between @start_date and @end_date
  56. union
  57. select distinct id_patient from
  58.     (select odk.patient_code, patient.id as id_patient from openfn.odk_child_visit as odk
  59.         left join patient on patient.patient_code= odk.patient_code
  60.        where is_available_at_time_visit=1 and date_of_visit between @start_date and @end_date
  61.     )e
  62. union
  63. select distinct session.id_patient from session where is_present=1 and
  64. id_club_session in
  65. (select club_session.id from club_session
  66.    left join club on club.id=club_session.id_club
  67. where date between @start_date and @end_date and club_type!=1
  68.  
  69. )
  70. )nj)
  71. )n
  72. where dob is not null and dob!='0000-00-00' and (gender=1 or gender=2) and id_patient
  73.  not in (select id_patient from tracking_infant where (is_dead=1 and death_date<@start_date) or (is_abandoned=1 and abandoned_date<@start_date))
  74.  and id_patient in (select id from patient where linked_to_id_patient=0)
  75.  group by id_patient
  76.  )e left join patient on patient.id=id_patient
  77.  group by hospital_code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement