<?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.lymsh.platform.reportdata.dao.StatisticsMapper">

    <resultMap id="AreaDataResultMap" type="com.lymsh.platform.reportdata.model.AreaData">
        <result column="province_id" property="provinceId" jdbcType="VARCHAR"/>
        <result column="province_name" property="provinceName" jdbcType="VARCHAR"/>
        <result column="city_id" property="cityId" jdbcType="VARCHAR"/>
        <result column="city_name" property="cityName" jdbcType="VARCHAR"/>
        <result column="area_id" property="areaId" jdbcType="VARCHAR"/>
        <result column="area_name" property="areaName" jdbcType="VARCHAR"/>
        <result column="group_name" property="groupName" jdbcType="VARCHAR"/>
        <result column="risk_name" property="riskName" jdbcType="VARCHAR"/>
        <result column="year" property="year" jdbcType="VARCHAR"/>
        <result column="val" property="val" jdbcType="INTEGER"/>
        <result column="val2" property="val2" jdbcType="INTEGER"/>
        <result column="ymd" property="ymd" jdbcType="TIMESTAMP"/>
        <result column="hospitalId" property="hospitalId" jdbcType="VARCHAR"/>
        <result column="hospitalName" property="hospitalName" jdbcType="VARCHAR"/>
        <result column="localHospitalId" property="localHospitalId" jdbcType="VARCHAR"/>
    </resultMap>

    <select id="queryProvincePatientsByYear" resultMap="AreaDataResultMap" parameterType="java.lang.String">
        SELECT
        ODS_D_PROVINCE.PROVINCE_ID as province_id,
        ODS_D_PROVINCE.PROVINCE as province_name,
        <if test="year != null and year != ''">
            ODS_D_DIM_DATE.YEAR_1 as year,
        </if>
        COUNT(ODS_F_GRAVIDA_RECORD.RECORD_ID) as val
        FROM
        ODS_D_PROVINCE,
        ODS_D_DIM_DATE,
        ODS_F_GRAVIDA_RECORD,
        ODS_D_HOSPITAL,
        ODS_D_CITY
        WHERE
        ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO )
        AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID )
        AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 )
        AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) )
        <if test="year != null and year != ''">
            AND ODS_D_DIM_DATE.YEAR_1=${year}
        </if>
        GROUP BY
        ODS_D_PROVINCE.PROVINCE_ID,
        ODS_D_PROVINCE.PROVINCE
        <if test="year != null and year != ''">
            ,ODS_D_DIM_DATE.YEAR_1
        </if>
    </select>

    <select id="queryProvinceRiskPatients" resultMap="AreaDataResultMap" parameterType="java.lang.String">
        SELECT
        ODS_D_PROVINCE.PROVINCE_ID as province_id,
        ODS_D_PROVINCE.PROVINCE as province_name,
        <if test="year != null and year != ''">
            ODS_D_DIM_DATE.YEAR_1 as year,
        </if>
        COUNT(ODS_F_GRAVIDA_RECORD.RECORD_ID) as val
        FROM
        ODS_D_PROVINCE,
        ODS_D_DIM_DATE,
        ODS_F_GRAVIDA_RECORD,
        ODS_F_EXAMINE_HISTORY,
        ODS_D_HOSPITAL,
        ODS_D_CITY
        WHERE
        ( ODS_F_GRAVIDA_RECORD.RECORD_ID=ODS_F_EXAMINE_HISTORY.RECORD_ID(+) )
        AND ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO )
        AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID )
        AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 )
        AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) )
        AND
        (
        ODS_F_EXAMINE_HISTORY.EXAMINE_HISTORY_NUM = 1
        AND
        ODS_F_EXAMINE_HISTORY.HIGH_RISK_FACTOR NOT IN ( '健康','健康,无' )
        )
        <if test="year != null and year != ''">
            AND ODS_D_DIM_DATE.YEAR_1=${year}
        </if>
        GROUP BY
        ODS_D_PROVINCE.PROVINCE_ID,
        ODS_D_PROVINCE.PROVINCE
        <if test="year != null and year != ''">
            ,ODS_D_DIM_DATE.YEAR_1
        </if>
    </select>

    <!--1. 查询每个省当前的高危总人数危总人数-->
    <select id="queryProvinceRisks" resultMap="AreaDataResultMap">
        <![CDATA[
        SELECT D.PROVINCE_ID as province_id,
        D.PROVINCE as province_name,
        COUNT(A.RECORD_ID) AS val
        FROM ODS_F_GRAVIDA_RECORD A,
        ODS_F_EXAMINE_HISTORY B,
        ODS_D_HOSPITAL C,
        ODS_D_AREA_COUNTY D,
        ODS_D_DIM_DATE E
        WHERE A.RECORD_ID=B.RECORD_ID
        AND A.HOSPITAL_NO=C.HOSPITAL_NO
        AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
        AND B.INSERT_DATE=E.DATE_1
        AND A.NOW_WEEKS<42
        AND B.HIGH_RISK_FACTOR<>'健康'
        AND B.HIGH_RISK_FACTOR IS NOT NULL
        AND B.EXAMINE_HISTORY_NUM=1
        AND B.INSERT_DATE<=TRUNC(SYSDATE)
        GROUP BY D.PROVINCE_ID,
        D.PROVINCE
        ]]>
    </select>

    <!--1.1. 查询每个省内各地区当前的高危总人数-->
    <select id="queryRisksByProvince" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        <![CDATA[
        SELECT D.PROVINCE_ID as province_id,
       D.PROVINCE as province_name,
       D.CITY_ID as city_id,
       D.CITY as city_name,
       COUNT(A.RECORD_ID) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_F_EXAMINE_HISTORY B,
     ODS_D_HOSPITAL C,
     ODS_D_AREA_COUNTY D,
     ODS_D_DIM_DATE E
WHERE A.RECORD_ID=B.RECORD_ID
  AND A.HOSPITAL_NO=C.HOSPITAL_NO
  AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  AND B.INSERT_DATE=E.DATE_1
  AND B.HIGH_RISK_FACTOR<>'健康'
  AND B.HIGH_RISK_FACTOR IS NOT NULL
  AND A.NOW_WEEKS<42
  AND B.EXAMINE_HISTORY_NUM=1
  AND B.INSERT_DATE<=TRUNC(SYSDATE)
  AND D.PROVINCE_ID=#{provinceId}
GROUP BY D.PROVINCE_ID,
         D.PROVINCE,
         D.CITY_ID,
         D.CITY
        ]]>
    </select>

    <!--1.2. 查询每个地区内各区县当前的高危总人数-->
    <select id="queryRisksByCity" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        <![CDATA[
        SELECT D.PROVINCE_ID as province_id,
       D.PROVINCE as province_name,
       D.CITY_ID as city_id,
       D.CITY as city_name,
       D.AREA_COUNTY_ID as area_id,
       D.AREA_COUNTY as area_name,
       COUNT(A.RECORD_ID) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_F_EXAMINE_HISTORY B,
     ODS_D_HOSPITAL C,
     ODS_D_AREA_COUNTY D,
     ODS_D_DIM_DATE E
WHERE A.RECORD_ID=B.RECORD_ID
  AND A.HOSPITAL_NO=C.HOSPITAL_NO
  AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  AND B.INSERT_DATE=E.DATE_1
  AND A.NOW_WEEKS<42
  AND B.HIGH_RISK_FACTOR<>'健康'
  AND B.HIGH_RISK_FACTOR IS NOT NULL
  AND B.EXAMINE_HISTORY_NUM=1
  AND B.INSERT_DATE<=TRUNC(SYSDATE)
--   AND D.PROVINCE_ID=130000
  AND D.CITY_ID=#{cityId}
GROUP BY D.PROVINCE_ID,
         D.PROVINCE,
         D.CITY_ID,
         D.CITY,
         D.AREA_COUNTY_ID,
         D.AREA_COUNTY
        ]]>
    </select>

    <!--2. 查询每个省近30天的建档总人数-->
    <select id="queryProvincePatients" resultMap="AreaDataResultMap">
        <![CDATA[
        SELECT D.PROVINCE_ID as province_id,
       D.PROVINCE as province_name,
       COUNT(A.RECORD_ID) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_D_HOSPITAL C,
     ODS_D_AREA_COUNTY D,
     ODS_D_DIM_DATE E
WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  AND A.CREATE_DATE=E.DATE_1
  AND A.CREATE_DATE<=TRUNC(SYSDATE)
  AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
GROUP BY D.PROVINCE_ID,
         D.PROVINCE
        ]]>
    </select>

    <!--2.1. 查询每个省内各地区近30天的建档总人数-->
    <select id="queryPatientsByProvince" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        <![CDATA[
SELECT D.PROVINCE_ID as province_id,
       D.PROVINCE as province_name,
       D.CITY_ID as city_id,
       D.CITY as city_name,
       COUNT(A.RECORD_ID) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_D_HOSPITAL C,
     ODS_D_AREA_COUNTY D,
     ODS_D_DIM_DATE E
WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  AND A.CREATE_DATE=E.DATE_1
  AND D.PROVINCE_ID=#{provinceId}
  AND A.CREATE_DATE<=TRUNC(SYSDATE)
  AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
GROUP BY D.PROVINCE_ID,
         D.PROVINCE,
         D.CITY_ID,
         D.CITY
        ]]>
    </select>

    <!--2.2. 查询每个地区内各区县近30天的建档总人数-->
    <select id="queryPatientsByCity" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        <![CDATA[
SELECT D.PROVINCE_ID as province_id,
       D.PROVINCE as province_name,
       D.CITY_ID as city_id,
       D.CITY as city_name,
       D.AREA_COUNTY_ID as area_id,
       D.AREA_COUNTY as area_name,
       COUNT(A.RECORD_ID) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_D_HOSPITAL C,
     ODS_D_AREA_COUNTY D,
     ODS_D_DIM_DATE E
WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  AND A.CREATE_DATE=E.DATE_1
  AND D.CITY_ID=#{cityId}
  AND A.CREATE_DATE<=TRUNC(SYSDATE)
  AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
GROUP BY D.PROVINCE_ID,
         D.PROVINCE,
         D.CITY_ID,
         D.CITY,
         D.AREA_COUNTY_ID,
         D.AREA_COUNTY
        ]]>
    </select>

    <!--3. 按省或市或地区查询区域内当前高危总数（按颜色分组、按高危项分组）-->
    <select id="queryRisks" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
SELECT D.PROVINCE_ID as province_id,
       D.PROVINCE as province_name,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
        </if>
        <if test="cityId != null and cityId != ''">
       D.CITY_ID as city_id,
       D.CITY as city_name,
       D.AREA_COUNTY_ID as area_id,
       D.AREA_COUNTY as area_name,
        </if>
       F.HIGH_RISK_GROUP as group_name,
       F.HIGH_RISK_CONTENT as risk_name,
       COUNT(A.RECORD_ID) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_F_EXAMINE_HISTORY B,
     ODS_D_HOSPITAL C,
     ODS_D_AREA_COUNTY D,
     ODS_D_DIM_DATE E,
     ODS_F_HIGH_RISK_VALUE F

        <![CDATA[
WHERE A.RECORD_ID=B.RECORD_ID
  AND A.HOSPITAL_NO=C.HOSPITAL_NO
  AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  AND B.INSERT_DATE=E.DATE_1
  AND B.EXAMINE_ID=F.EXAMINE_ID
  AND A.NOW_WEEKS<42
  AND F.HIGH_RISK_CONTENT<>'健康'
  AND B.EXAMINE_HISTORY_NUM=1
    ]]>
  <if test="provinceId != null and provinceId != ''">
  AND D.PROVINCE_ID=#{provinceId}
  </if>
        <if test="cityId != null and cityId != ''">
  AND D.CITY_ID=#{cityId}
        </if>

GROUP BY D.PROVINCE_ID,
         D.PROVINCE,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID,
            D.CITY,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID,
            D.CITY,
            D.AREA_COUNTY_ID,
            D.AREA_COUNTY,
        </if>
         F.HIGH_RISK_GROUP,
         F.HIGH_RISK_CONTENT
    </select>

    <!--4. 按省或市或地区查询区域内近12个自然月每月建档人数-->
    <select id="queryMonthPatients" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
SELECT D.PROVINCE_ID as province_id,
       D.PROVINCE as province_name,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
            D.AREA_COUNTY_ID as area_id,
            D.AREA_COUNTY as area_name,
        </if>
       E.YEAR_MONTH as year,
       COUNT(A.RECORD_ID) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_D_HOSPITAL C,
     ODS_D_AREA_COUNTY D,
     ODS_D_DIM_DATE E
WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  AND A.CREATE_DATE=E.DATE_1
        <if test="provinceId != null and provinceId != ''">
            AND D.PROVINCE_ID=#{provinceId}
        </if>
        <if test="cityId != null and cityId != ''">
            AND D.CITY_ID=#{cityId}
        </if>
        <![CDATA[
  AND A.CREATE_DATE<=TRUNC(SYSDATE)
  AND A.CREATE_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11))
  ]]>
GROUP BY D.PROVINCE_ID,
         D.PROVINCE,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID,
            D.CITY,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID,
            D.CITY,
            D.AREA_COUNTY_ID,
            D.AREA_COUNTY,
        </if>
         E.YEAR_MONTH
ORDER BY E.YEAR_MONTH
    </select>


    <!--4.1. 按省或市或地区查询区域内近12个自然周每周建档人数（如不能按周就同4.2查询近90天按天的）-->
    <!--4.2. 按省或市或地区查询区域内近12个自然周每周建档人数（如不能按周就同4.2查询近30天按天的）-->
    <select id="queryDayPatients" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        SELECT D.PROVINCE_ID as province_id,
        D.PROVINCE as province_name,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
            D.AREA_COUNTY_ID as area_id,
            D.AREA_COUNTY as area_name,
        </if>
        E.DATE_1 as ymd,
        COUNT(A.RECORD_ID) AS val
        FROM ODS_F_GRAVIDA_RECORD A,
        ODS_D_HOSPITAL C,
        ODS_D_AREA_COUNTY D,
        ODS_D_DIM_DATE E
        WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
        AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
        AND A.CREATE_DATE=E.DATE_1
        <if test="provinceId != null and provinceId != ''">
            AND D.PROVINCE_ID=#{provinceId}
        </if>
        <if test="cityId != null and cityId != ''">
            AND D.CITY_ID=#{cityId}
        </if>
        <![CDATA[ AND A.CREATE_DATE<=TRUNC(SYSDATE)   ]]>
        AND A.CREATE_DATE>=(TRUNC(SYSDATE)-${days})
        GROUP BY D.PROVINCE_ID,
        D.PROVINCE,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID,
            D.CITY,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID,
            D.CITY,
            D.AREA_COUNTY_ID,
            D.AREA_COUNTY,
        </if>
        E.DATE_1
        ORDER BY E.DATE_1
    </select>

    <!--5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数-->
    <select id="queryMonthReports" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        SELECT D.PROVINCE_ID as province_id,
        D.PROVINCE as province_name,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
            D.AREA_COUNTY_ID as area_id,
            D.AREA_COUNTY as area_name,
        </if>
        E.YEAR_MONTH as year,
        SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val,
        SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2
        FROM ODS_F_GRAVIDA_RECORD A,
        ODS_F_EXAMINE_HISTORY B,
        ODS_D_HOSPITAL C,
        ODS_D_AREA_COUNTY D,
        ODS_D_DIM_DATE E
        WHERE A.RECORD_ID=B.RECORD_ID
        AND A.HOSPITAL_NO=C.HOSPITAL_NO
        AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
        AND B.INSERT_DATE=E.DATE_1
        <![CDATA[ AND B.INSERT_DATE<=TRUNC(SYSDATE) ]]>
        AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11))
        <if test="provinceId != null and provinceId != ''">
            AND D.PROVINCE_ID=#{provinceId}
        </if>
        <if test="cityId != null and cityId != ''">
            AND D.CITY_ID=#{cityId}
        </if>
        GROUP BY D.PROVINCE_ID,
        D.PROVINCE,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID,
            D.CITY,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID,
            D.CITY,
            D.AREA_COUNTY_ID,
            D.AREA_COUNTY,
        </if>
        E.YEAR_MONTH
        ORDER BY E.YEAR_MONTH
    </select>


    <!--5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数（如不能按周就同5.2查询近90天按天的）-->
    <!--5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数-->
    <select id="queryDayReports" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        SELECT D.PROVINCE_ID as province_id,
        D.PROVINCE as province_name,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
            D.AREA_COUNTY_ID as area_id,
            D.AREA_COUNTY as area_name,
        </if>
        E.DATE_1 as ymd,
        SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val,
        SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2
        FROM ODS_F_GRAVIDA_RECORD A,
        ODS_F_EXAMINE_HISTORY B,
        ODS_D_HOSPITAL C,
        ODS_D_AREA_COUNTY D,
        ODS_D_DIM_DATE E
        WHERE A.RECORD_ID=B.RECORD_ID
        AND A.HOSPITAL_NO=C.HOSPITAL_NO
        AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
        AND B.INSERT_DATE=E.DATE_1
        <![CDATA[ AND B.INSERT_DATE<=TRUNC(SYSDATE)  ]]>
        AND B.INSERT_DATE>=(TRUNC(SYSDATE)-${days})
        <if test="provinceId != null and provinceId != ''">
            AND D.PROVINCE_ID=#{provinceId}
        </if>
        <if test="cityId != null and cityId != ''">
            AND D.CITY_ID=#{cityId}
        </if>
        GROUP BY D.PROVINCE_ID,
        D.PROVINCE,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID,
            D.CITY,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID,
            D.CITY,
            D.AREA_COUNTY_ID,
            D.AREA_COUNTY,
        </if>
        E.DATE_1
        ORDER BY E.DATE_1
    </select>

    <!--6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数（按颜色分组）-->
    <select id="queryHrefYearRisks" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        SELECT D.PROVINCE_ID as province_id,
        D.PROVINCE as province_name,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
            D.AREA_COUNTY_ID as area_id,
            D.AREA_COUNTY as area_name,
        </if>
        F.HIGH_RISK_GROUP as group_name,
        E.YEAR_MONTH as year,
        COUNT(A.RECORD_ID) AS val
        FROM ODS_F_GRAVIDA_RECORD A,
        ODS_F_EXAMINE_HISTORY B,
        ODS_D_HOSPITAL C,
        ODS_D_AREA_COUNTY D,
        ODS_D_DIM_DATE E,
        ODS_F_HIGH_RISK_VALUE F
        WHERE A.RECORD_ID=B.RECORD_ID
        AND A.HOSPITAL_NO=C.HOSPITAL_NO
        AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
        AND B.INSERT_DATE=E.DATE_1
        AND B.EXAMINE_ID=F.EXAMINE_ID
        <![CDATA[
        AND F.HIGH_RISK_CONTENT<>'健康'
        AND F.HIGH_RISK_GROUP<>'其他'
        AND B.EXAMINE_HISTORY_NUM=1
        AND B.INSERT_DATE<=TRUNC(SYSDATE)
        AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-${days}))
         ]]>
        <if test="provinceId != null and provinceId != ''">
            AND D.PROVINCE_ID=#{provinceId}
        </if>
        <if test="cityId != null and cityId != ''">
            AND D.CITY_ID=#{cityId}
        </if>
        GROUP BY D.PROVINCE_ID,
        D.PROVINCE,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID,
            D.CITY,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID,
            D.CITY,
            D.AREA_COUNTY_ID,
            D.AREA_COUNTY,
        </if>
        F.HIGH_RISK_GROUP,
        E.YEAR_MONTH
        ORDER BY F.HIGH_RISK_GROUP,E.YEAR_MONTH
    </select>

    <!--6.1. 按省或市或地区查询区域内近30天每天产检中历史高危人数（按颜色分组）-->
    <select id="queryDaysRisks" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        SELECT D.PROVINCE_ID as province_id,
        D.PROVINCE as province_name,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID as city_id,
            D.CITY as city_name,
            D.AREA_COUNTY_ID as area_id,
            D.AREA_COUNTY as area_name,
        </if>
        F.HIGH_RISK_GROUP as group_name,
        E.DATE_2 as year,
        COUNT(A.RECORD_ID) AS val
        FROM ODS_F_GRAVIDA_RECORD A,
        ODS_F_EXAMINE_HISTORY B,
        ODS_D_HOSPITAL C,
        ODS_D_AREA_COUNTY D,
        ODS_D_DIM_DATE E,
        ODS_F_HIGH_RISK_VALUE F
        WHERE A.RECORD_ID=B.RECORD_ID
        AND A.HOSPITAL_NO=C.HOSPITAL_NO
        AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
        AND B.INSERT_DATE=E.DATE_1
        AND B.EXAMINE_ID=F.EXAMINE_ID
        <![CDATA[
        AND F.HIGH_RISK_CONTENT<>'健康'
        AND F.HIGH_RISK_GROUP<>'其他'
        AND B.EXAMINE_HISTORY_NUM=1
        AND B.INSERT_DATE<=TRUNC(SYSDATE)
        AND B.INSERT_DATE>=(TRUNC(SYSDATE)-${days})
         ]]>
        <if test="provinceId != null and provinceId != ''">
            AND D.PROVINCE_ID=#{provinceId}
        </if>
        <if test="cityId != null and cityId != ''">
            AND D.CITY_ID=#{cityId}
        </if>
        GROUP BY D.PROVINCE_ID,
        D.PROVINCE,
        <if test="provinceId != null and provinceId != ''">
            D.CITY_ID,
            D.CITY,
        </if>
        <if test="cityId != null and cityId != ''">
            D.CITY_ID,
            D.CITY,
            D.AREA_COUNTY_ID,
            D.AREA_COUNTY,
        </if>
        F.HIGH_RISK_GROUP,
        E.DATE_2
        ORDER BY F.HIGH_RISK_GROUP,E.DATE_2;
    </select>


    <select id="queryYunChanQiRenShu" resultMap="AreaDataResultMap"
            parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
        SELECT
       B.PROVINCE as province_name,
       B.PROVINCE_ID as province_id,
       B.CITY as city_name,
       B.CITY_ID as city_id,
       B.AREA_COUNTY as area_name,
       B.AREA_COUNTY_ID as area_id,
       B.HOSPITAL_NAME as hospitalName,
       B.HOSPITAL_NO as hospitalId,
       B.YCY_STSTEM_ID as localHospitalId,
       A.EDD_DATE as ymd,
       COUNT(*) AS val
FROM ODS_F_GRAVIDA_RECORD A,
     ODS_D_HOSPITAL B
WHERE A.HOSPITAL_NO=B.HOSPITAL_NO
  AND A.EDD_DATE IS NOT NULL
  AND A.IS_CHILDBIRTH=1
  AND B.YCY_STSTEM_ID=#{localHospitalId}
        <if test="start != null">
            <![CDATA[ and A.EDD_DATE >= #{start,jdbcType=TIMESTAMP} ]]>
        </if>
        <if test="end != null">
            <![CDATA[ and A.EDD_DATE <= #{end,jdbcType=TIMESTAMP} ]]>
        </if>
GROUP BY
      B.PROVINCE,
      B.PROVINCE_ID,
      B.CITY,
      B.CITY_ID,
      B.AREA_COUNTY,
      B.AREA_COUNTY_ID,
      B.HOSPITAL_NAME,
      B.HOSPITAL_NO,
      B.YCY_STSTEM_ID,
      A.EDD_DATE
ORDER BY A.EDD_DATE
    </select>

</mapper>