<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lyms.talkonlineweb.mapper.LymsPushIllnessMsgMapper">

    <select id="getPatientIllenssType" resultType="com.lyms.talkonlineweb.result.PushIllnessTypeDataResult">
        SELECT
            p.id,
            IF
                ( p.enrolment_phone IS NULL, pc.mobile, p.enrolment_phone ) AS phone,
            p.ppasswd AS passwd,
            p.gzopenid AS gzopenid,
            p.pname,
            pc.pcid,
            pc.hname,
            pc.dname,
            pc.dtname,
            d.`code`,
            d.`value`,
            d.illness_type AS illnessType,
            m.illness_type AS pushIllness,
            m.push_count AS pushCount,
            m.push_type AS pushType,
            pc.createdtime AS createdtime,
            m.id AS mid
        FROM
            lyms_patient p
                LEFT JOIN lyms_pcase pc ON pc.pid = p.id
                LEFT JOIN lyms_illness i ON i.pcid = pc.pcid
                LEFT JOIN lyms_dict d ON d.`code` = i.iid
                AND d.vtype = 3
                LEFT JOIN lyms_push_illness_msg m ON m.pcid = pc.pcid AND m.`code` = d.`code`
        WHERE
            d.illness_type IS NOT NULL
          AND
            IF
                (
                        ( m.illness_type = 2 AND m.push_type = 1 AND m.push_count = 2 )
                        OR ( m.illness_type = 1 AND m.push_type = 1 ),
                        m.pcid IS NULL,
                        1 = 1
                )
        ORDER BY
            id
    </select>
</mapper>
