[user_details] SELECT /* p.last_name, p.first_name, p.nhs_number, */ p.initials, p.dob, p.nhs_number, pa.email, pa.patient_id, pa.last_login, pa.password, pd.address, pd.post_code, pd.contact_number, r.name as 'GP', rs.display_name as 'practice' FROM patient_access pa JOIN patients p on pa.patient_id = p.id JOIN patient_demographics pd on pd.patient_id = p.id JOIN referral_sources rs on pd.practice_id = rs.id JOIN referrers r on pd.gp_id = r.id WHERE p.nhs_number = ? OR p.id = ? [pack_dispatches] /* all requests & pack dispatches, reverse chronological order */ SELECT r.id, r.request_number, r.year, r.registered, IFNULL(d.count, 0) as 'section_data_count', so.description as 'request_status', fo.`option`, fo.`label` as 'outcome', /* p.`status` as 'patient_status', */ rpd.pack_due, rpd.pack_sent, rpd.return_due FROM requests r JOIN status_options so on r.status_option_id = so.id JOIN patient_case pc on r.patient_case_id = pc.id JOIN patients p on pc.patient_id = p.id /* for deployment with HILIS4: JOIN patient_demographics pd on pd.patient_id = p.id JOIN ( request_specimen rs JOIN specimens s on rs.specimen_id = s.id and s.sample_code = 'CMP' ) on rs.request_id = r.id */ LEFT JOIN request_pack_dispatch rpd on rpd.request_id = r.id LEFT JOIN ( request_followup rfu JOIN followup_options fo on rfu.followup_option_id = fo.id ) on rfu.request_id = r.id LEFT JOIN lab_sections_data d on d.request_id = r.id WHERE p.id = ? ORDER BY r.id DESC LIMIT 10 [results] /* not using SELECT r.id, lp.field_label, rr.result FROM outreach.request_results rr JOIN outreach.lab_params lp on rr.param_id = lp.id JOIN hilis4.requests r on rr.request_id = r.id JOIN hilis4.patient_case pc on r.patient_case_id = pc.id JOIN hilis4.patients p on pc.patient_id = p.id WHERE p.nhs_number = ? ORDER BY r.id */ [how_to_find_patients_with_all_three_options] create temporary table t1 /* any duration option (one_month, three_month, etc )*/ select distinct(pc.patient_id) from request_followup rfu join followup_options fo on rfu.followup_option_id = fo.id join hilis4.requests r on rfu.request_id = r.id join hilis4.patient_case pc on r.patient_case_id = pc.id where fo.`option` rlike 'month|week'; create temporary table t2 /* any duration + clinic_return */ select distinct(pc.patient_id) from request_followup rfu join followup_options fo on rfu.followup_option_id = fo.id join hilis4.requests r on rfu.request_id = r.id join hilis4.patient_case pc on r.patient_case_id = pc.id join t1 on pc.patient_id = t1.patient_id where fo.`option` = 'clinic_return'; /* any duration + clinic_return + pack_due in future */ select distinct(pc.patient_id) from request_pack_dispatch rpd join hilis4.requests r on rpd.request_id = r.id join hilis4.patient_case pc on r.patient_case_id = pc.id join t2 on pc.patient_id = t2.patient_id where rpd.pack_due > curdate();