jeniferfleurant icon

OVC_SERV mother(newly added)

jeniferfleurant | PRO | 03/27/19 12:44:32 AM UTC | 0 ⭐ | 196 👁️ | Never ⏰ | []
MySQL |

3.6 KB

|

None

|

0 👍

/

0 👎

USE caris_db;
SET
  @start_date = "2019-01-01";
SET
  @end_date = "2019-03-31";
SELECT 
    patient_code,
    dob,
    IF(TIMESTAMPDIFF(YEAR, dob, @start_date) >= 25,
        '25+',
        IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 25
                AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 18,
            '18-24',
            IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 18
                    AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 15,
                '15 17',
                IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 15
                        AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 10,
                    '10 15',
                    IF(TIMESTAMPDIFF(YEAR, dob, @start_date) < 10
                            AND TIMESTAMPDIFF(YEAR, dob, @start_date) >= 1,
                        '1 9',
                        ''))))) AS tranche,
    IF(regime.id_patient IS NOT NULL,
        'yes',
        'non') AS on_arv,
    office
FROM
    (SELECT 
        id_patient, MIN(date) AS date
    FROM
        (SELECT 
        id_patient, date
    FROM
        (SELECT 
        id_patient, date
    FROM
        (SELECT 
        id_patient, date
    FROM
        questionnaire_motherhivknowledge
    WHERE
        date IS NOT NULL
            AND date != '0000-00-00' UNION SELECT 
        id_patient, date
    FROM
        questionnaire_mothersurvey
    WHERE
        date IS NOT NULL
            AND date != '0000-00-00' UNION SELECT 
        id_patient, date
    FROM
        questionnaire_newmotherhivknowledge
    WHERE
        date IS NOT NULL
            AND date != '0000-00-00') quest
    LEFT JOIN patient ON patient.id = quest.id_patient
    WHERE
        patient.created_at >= @start_date) ques UNION SELECT 
        id_patient, date
    FROM
        (SELECT 
        patient.id AS id_patient, date_of_visit AS date
    FROM
        patient
    LEFT JOIN openfn.odk_pregnancy_visit ON patient.patient_code = health_id
    WHERE
        date_of_visit IS NOT NULL
            AND date_of_visit != '0000-00-00'
            AND patient.created_at >= @start_date) odk UNION SELECT 
        id_patient, date
    FROM
        (SELECT 
        id_patient, date
    FROM
        session
    LEFT JOIN club_session ON club_session.id = session.id_club_session
    LEFT JOIN club ON club.id = id_club
    LEFT JOIN patient ON patient.id = id_patient
    WHERE
        is_present = 1 AND club_type = 1
            AND patient.created_at >= @start_date) club UNION SELECT 
        mereenfant.id AS id_patient, date
    FROM
        (SELECT 
        patient.id, date
    FROM
        testing_mereenfant
    LEFT JOIN patient ON patient.patient_code = CONCAT(city_code, '/', hospital_code, '/', mother_code)
    WHERE
        patient.id IS NOT NULL
            AND patient.created_at >= @start_date) mereenfant) last
    GROUP BY id_patient) lastone
        LEFT JOIN
    patient ON patient.id = lastone.id_patient
        LEFT JOIN
    tracking_motherbasicinfo ON tracking_motherbasicinfo.id_patient = lastone.id_patient
        LEFT JOIN
    lookup_hospital ON CONCAT(lookup_hospital.city_code,
            '/',
            lookup_hospital.hospital_code) = LEFT(patient_code, 8)
        LEFT JOIN
    (SELECT 
       distinct id_patient
    FROM
        tracking_regime
    WHERE
        category = 'regime_mother_treatment') regime ON regime.id_patient = lastone.id_patient
WHERE
    date BETWEEN @start_date AND @end_date
        AND patient.created_at >= @start_date
        AND lastone.id_patient IS NOT NULL
        AND tracking_motherbasicinfo.id_patient IS NOT NULL

Comments