jeniferfleurant icon

Viral Load Supression club/nclub

jeniferfleurant | PRO | 04/03/19 02:12:39 PM UTC | 0 ⭐ | 232 👁️ | Never ⏰ | []
MySQL |

2.18 KB

|

None

|

0 👍

/

0 👎

USE caris_db;
SET @start_date="2018-10-01";
SET @end_date="2019-03-31";
SELECT 
    first.*,
    IF(tf1.id_patient IS NOT NULL,
        'yes',
        'no') AS viral_load,
    viral_load_count,
    viral_load_indetectable,
    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
    ,viral_load_date,
     timestampdiff(year, dob, viral_load_date) as viral_load_age
FROM
    (SELECT DISTINCT
        ti.id_patient,
            patient_code,
            IF(club.id_patient IS NOT NULL, 'yes', 'non') AS club,
            dob
    FROM
        tracking_infant ti
    LEFT JOIN tracking_followup tf ON tf.id_patient = ti.id_patient
    LEFT JOIN (SELECT 
        *
    FROM
        (SELECT 
        patient.id AS id_patient, date_of_visit 
    FROM
        openfn.odk_child_visit odk1
    LEFT JOIN patient ON patient.patient_code = odk1.patient_code
    WHERE
        date_of_visit BETWEEN @start_date AND @end_date)x) odk ON odk.id_patient = ti.id_patient
    LEFT JOIN (SELECT DISTINCT
        id_patient
    FROM
        session
    LEFT JOIN club_session ON club_session.id = session.id_club_session
    WHERE
        date BETWEEN @start_date AND @end_date
            AND is_present = 1) club ON club.id_patient = ti.id_patient
    LEFT JOIN patient ON patient.id = ti.id_patient
    WHERE
        (date BETWEEN @start_date AND @end_date or date_of_visit BETWEEN @start_date AND @end_date)
            AND linked_to_id_patient = 0) first
        LEFT JOIN
    (SELECT DISTINCT
        id_patient,
            viral_load_count,
            viral_load_indetectable,
            viral_load_date
    FROM
        tracking_followup tff
    WHERE
        took_viral_load_test = 1
            AND date BETWEEN @start_date AND @end_date
            AND viral_load_date = (SELECT 
                MAX(viral_load_date)
            FROM
                tracking_followup tfff
            WHERE
                tff.id_patient = tfff.id_patient
                    AND date BETWEEN @start_date AND @end_date)) tf1 ON tf1.id_patient = first.id_patient
 
group by first.id_patient

Comments