Commit d8d335d9cdd80ff863c0d9ac71a57eaac69c0761

Authored by baohanddd
1 parent ce51ff5052

add statistics(map) common index

Showing 7 changed files with 1294 additions and 12 deletions

platform-reportData/src/main/java/com/lymsh/platform/reportdata/dao/StatisticsMapper.java View file @ d8d335d
1 1 package com.lymsh.platform.reportdata.dao;
2 2  
3 3 import com.lymsh.platform.reportdata.model.AreaData;
  4 +import com.lymsh.platform.reportdata.model.AreaDataQuery;
4 5  
5 6 import java.util.List;
6 7  
... ... @@ -12,6 +13,90 @@
12 13 public List<AreaData> queryProvincePatients(String year);
13 14  
14 15 public List<AreaData> queryProvinceRiskPatients(String year);
  16 +
  17 + /**
  18 + * 1. 查询每个省当前的高危总人数危总人数
  19 + * @return
  20 + */
  21 + public List<AreaData> queryProvinceRisks();
  22 +
  23 + /**
  24 + * 1.1. 查询每个省内各地区当前的高危总人数
  25 + * @param query
  26 + * @return
  27 + */
  28 + public List<AreaData> queryRisksByProvince(AreaDataQuery query);
  29 +
  30 + /**
  31 + * 1.2. 查询每个地区内各区县当前的高危总人数
  32 + * @param query
  33 + * @return
  34 + */
  35 + public List<AreaData> queryRisksByCity(AreaDataQuery query);
  36 +
  37 + /**
  38 + * 2. 查询每个省近30天的建档总人数
  39 + * @return
  40 + */
  41 + public List<AreaData> queryProvincePatients();
  42 +
  43 + /**
  44 + * 2.1. 查询每个省内各地区近30天的建档总人数
  45 + * @param query
  46 + * @return
  47 + */
  48 + public List<AreaData> queryPatientsByProvince(AreaDataQuery query);
  49 +
  50 + /**
  51 + * 2.2. 查询每个地区内各区县近30天的建档总人数
  52 + * @param query
  53 + * @return
  54 + */
  55 + public List<AreaData> queryPatientsByCity(AreaDataQuery query);
  56 +
  57 + /**
  58 + * 3. 按省或市或地区查询区域内当前高危总数(按颜色分组、按高危项分组)
  59 + * @param query
  60 + * @return
  61 + */
  62 + public List<AreaData> queryRisks(AreaDataQuery query);
  63 +
  64 + /**
  65 + * 4. 按省或市或地区查询区域内近12个自然月每月建档人数
  66 + * @param query
  67 + * @return
  68 + */
  69 + public List<AreaData> queryMonthPatients(AreaDataQuery query);
  70 +
  71 + /**
  72 + * 4.1. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近90天按天的)
  73 + * 4.2. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近30天按天的
  74 + * @param query days必填
  75 + * @return
  76 + */
  77 + public List<AreaData> queryDayPatients(AreaDataQuery query);
  78 +
  79 + /**
  80 + * 5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数
  81 + * @param query
  82 + * @return
  83 + */
  84 + public List<AreaData> queryMonthReports(AreaDataQuery query);
  85 +
  86 + /**
  87 + * 5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数(如不能按周就同5.2查询近90天按天的)
  88 + * 5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数
  89 + * @param query days必填
  90 + * @return
  91 + */
  92 + public List<AreaData> queryDayReports(AreaDataQuery query);
  93 +
  94 + /**
  95 + * 6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数(按颜色分组)
  96 + * @param query
  97 + * @return
  98 + */
  99 + public List<AreaData> queryHrefYearRisks(AreaDataQuery query);
15 100  
16 101 }
platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaData.java View file @ d8d335d
1 1 package com.lymsh.platform.reportdata.model;
2 2  
  3 +import java.util.Date;
  4 +
3 5 /**
4 6 * Created by Administrator on 2016/6/28 0028.
5 7 */
6 8  
7 9  
... ... @@ -11,8 +13,44 @@
11 13 private String cityName;
12 14 private String areaId;
13 15 private String areaName;
  16 + private String groupName;
  17 + private String riskName;
14 18 private Integer val;
  19 + private Integer val2;
15 20 private String year;
  21 + private Date ymd;
  22 +
  23 + public String getGroupName() {
  24 + return groupName;
  25 + }
  26 +
  27 + public void setGroupName(String groupName) {
  28 + this.groupName = groupName;
  29 + }
  30 +
  31 + public String getRiskName() {
  32 + return riskName;
  33 + }
  34 +
  35 + public void setRiskName(String riskName) {
  36 + this.riskName = riskName;
  37 + }
  38 +
  39 + public Integer getVal2() {
  40 + return val2;
  41 + }
  42 +
  43 + public void setVal2(Integer val2) {
  44 + this.val2 = val2;
  45 + }
  46 +
  47 + public Date getYmd() {
  48 + return ymd;
  49 + }
  50 +
  51 + public void setYmd(Date ymd) {
  52 + this.ymd = ymd;
  53 + }
16 54  
17 55 public String getProvinceId() {
18 56 return provinceId;
platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaDataQuery.java View file @ d8d335d
  1 +package com.lymsh.platform.reportdata.model;
  2 +
  3 +/**
  4 + * Created by Administrator on 2016/6/30 0030.
  5 + */
  6 +public class AreaDataQuery {
  7 +
  8 + private String provinceId;
  9 + private String cityId;
  10 + private String areaId;
  11 + private String year;
  12 + private Integer days;
  13 +
  14 + public Integer getDays() {
  15 + return days;
  16 + }
  17 +
  18 + public void setDays(Integer days) {
  19 + this.days = days;
  20 + }
  21 +
  22 + public String getYear() {
  23 + return year;
  24 + }
  25 +
  26 + public void setYear(String year) {
  27 + this.year = year;
  28 + }
  29 +
  30 + public String getProvinceId() {
  31 + return provinceId;
  32 + }
  33 +
  34 + public void setProvinceId(String provinceId) {
  35 + this.provinceId = provinceId;
  36 + }
  37 +
  38 + public String getCityId() {
  39 + return cityId;
  40 + }
  41 +
  42 + public void setCityId(String cityId) {
  43 + this.cityId = cityId;
  44 + }
  45 +
  46 + public String getAreaId() {
  47 + return areaId;
  48 + }
  49 +
  50 + public void setAreaId(String areaId) {
  51 + this.areaId = areaId;
  52 + }
  53 +}
platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/StatisticsService.java View file @ d8d335d
1 1 package com.lymsh.platform.reportdata.service;
2 2  
3 3 import com.lymsh.platform.reportdata.model.AreaData;
  4 +import com.lymsh.platform.reportdata.model.AreaDataQuery;
4 5  
5 6 import java.util.List;
6 7  
... ... @@ -12,6 +13,90 @@
12 13 public List<AreaData> queryProvincePatients(String year);
13 14  
14 15 public List<AreaData> queryProvinceRiskPatients(String year);
  16 +
  17 + /**
  18 + * 1. 查询每个省当前的高危总人数危总人数
  19 + * @return
  20 + */
  21 + public List<AreaData> queryProvinceRisks();
  22 +
  23 + /**
  24 + * 1.1. 查询每个省内各地区当前的高危总人数
  25 + * @param query
  26 + * @return
  27 + */
  28 + public List<AreaData> queryRisksByProvince(AreaDataQuery query);
  29 +
  30 + /**
  31 + * 1.2. 查询每个地区内各区县当前的高危总人数
  32 + * @param query
  33 + * @return
  34 + */
  35 + public List<AreaData> queryRisksByCity(AreaDataQuery query);
  36 +
  37 + /**
  38 + * 2. 查询每个省近30天的建档总人数
  39 + * @return
  40 + */
  41 + public List<AreaData> queryProvincePatients();
  42 +
  43 + /**
  44 + * 2.1. 查询每个省内各地区近30天的建档总人数
  45 + * @param query
  46 + * @return
  47 + */
  48 + public List<AreaData> queryPatientsByProvince(AreaDataQuery query);
  49 +
  50 + /**
  51 + * 2.2. 查询每个地区内各区县近30天的建档总人数
  52 + * @param query
  53 + * @return
  54 + */
  55 + public List<AreaData> queryPatientsByCity(AreaDataQuery query);
  56 +
  57 + /**
  58 + * 3. 按省或市或地区查询区域内当前高危总数(按颜色分组、按高危项分组)
  59 + * @param query
  60 + * @return
  61 + */
  62 + public List<AreaData> queryRisks(AreaDataQuery query);
  63 +
  64 + /**
  65 + * 4. 按省或市或地区查询区域内近12个自然月每月建档人数
  66 + * @param query
  67 + * @return
  68 + */
  69 + public List<AreaData> queryMonthPatients(AreaDataQuery query);
  70 +
  71 + /**
  72 + * 4.1. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近90天按天的)
  73 + * 4.2. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近30天按天的
  74 + * @param query days必填
  75 + * @return
  76 + */
  77 + public List<AreaData> queryDayPatients(AreaDataQuery query);
  78 +
  79 + /**
  80 + * 5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数
  81 + * @param query
  82 + * @return
  83 + */
  84 + public List<AreaData> queryMonthReports(AreaDataQuery query);
  85 +
  86 + /**
  87 + * 5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数(如不能按周就同5.2查询近90天按天的)
  88 + * 5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数
  89 + * @param query days必填
  90 + * @return
  91 + */
  92 + public List<AreaData> queryDayReports(AreaDataQuery query);
  93 +
  94 + /**
  95 + * 6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数(按颜色分组)
  96 + * @param query
  97 + * @return
  98 + */
  99 + public List<AreaData> queryHrefYearRisks(AreaDataQuery query);
15 100  
16 101 }
platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/impl/StatisticsServiceImpl.java View file @ d8d335d
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.lymsh.platform.reportdata.dao.StatisticsMapper;
4 4 import com.lymsh.platform.reportdata.model.AreaData;
  5 +import com.lymsh.platform.reportdata.model.AreaDataQuery;
5 6 import com.lymsh.platform.reportdata.service.StatisticsService;
6 7 import org.springframework.beans.factory.annotation.Autowired;
7 8 import org.springframework.stereotype.Service;
... ... @@ -25,6 +26,66 @@
25 26 @Override
26 27 public List<AreaData> queryProvinceRiskPatients(String year) {
27 28 return statisticsMapper.queryProvinceRiskPatients(year);
  29 + }
  30 +
  31 + @Override
  32 + public List<AreaData> queryProvinceRisks() {
  33 + return statisticsMapper.queryProvinceRisks();
  34 + }
  35 +
  36 + @Override
  37 + public List<AreaData> queryRisksByProvince(AreaDataQuery query) {
  38 + return statisticsMapper.queryRisksByProvince(query);
  39 + }
  40 +
  41 + @Override
  42 + public List<AreaData> queryRisksByCity(AreaDataQuery query) {
  43 + return statisticsMapper.queryRisksByCity(query);
  44 + }
  45 +
  46 + @Override
  47 + public List<AreaData> queryProvincePatients() {
  48 + return statisticsMapper.queryProvincePatients();
  49 + }
  50 +
  51 + @Override
  52 + public List<AreaData> queryPatientsByProvince(AreaDataQuery query) {
  53 + return statisticsMapper.queryPatientsByProvince(query);
  54 + }
  55 +
  56 + @Override
  57 + public List<AreaData> queryPatientsByCity(AreaDataQuery query) {
  58 + return statisticsMapper.queryPatientsByCity(query);
  59 + }
  60 +
  61 + @Override
  62 + public List<AreaData> queryRisks(AreaDataQuery query) {
  63 + return statisticsMapper.queryRisks(query);
  64 + }
  65 +
  66 + @Override
  67 + public List<AreaData> queryMonthPatients(AreaDataQuery query) {
  68 + return statisticsMapper.queryMonthPatients(query);
  69 + }
  70 +
  71 + @Override
  72 + public List<AreaData> queryDayPatients(AreaDataQuery query) {
  73 + return statisticsMapper.queryDayPatients(query);
  74 + }
  75 +
  76 + @Override
  77 + public List<AreaData> queryMonthReports(AreaDataQuery query) {
  78 + return statisticsMapper.queryMonthReports(query);
  79 + }
  80 +
  81 + @Override
  82 + public List<AreaData> queryDayReports(AreaDataQuery query) {
  83 + return statisticsMapper.queryDayReports(query);
  84 + }
  85 +
  86 + @Override
  87 + public List<AreaData> queryHrefYearRisks(AreaDataQuery query) {
  88 + return statisticsMapper.queryHrefYearRisks(query);
28 89 }
29 90 }
platform-reportData/src/main/resources/reportOrm/StatisticsMapper.xml View file @ d8d335d
... ... @@ -5,8 +5,16 @@
5 5 <resultMap id="AreaDataResultMap" type="com.lymsh.platform.reportdata.model.AreaData">
6 6 <result column="province_id" property="provinceId" jdbcType="VARCHAR"/>
7 7 <result column="province_name" property="provinceName" jdbcType="VARCHAR"/>
  8 + <result column="city_id" property="cityId" jdbcType="VARCHAR"/>
  9 + <result column="city_name" property="cityName" jdbcType="VARCHAR"/>
  10 + <result column="area_id" property="areaId" jdbcType="VARCHAR"/>
  11 + <result column="area_name" property="areaName" jdbcType="VARCHAR"/>
  12 + <result column="group_name" property="groupName" jdbcType="VARCHAR"/>
  13 + <result column="risk_name" property="riskName" jdbcType="VARCHAR"/>
8 14 <result column="year" property="year" jdbcType="VARCHAR"/>
9 15 <result column="val" property="val" jdbcType="INTEGER"/>
  16 + <result column="val2" property="val2" jdbcType="INTEGER"/>
  17 + <result column="ymd" property="ymd" jdbcType="TIMESTAMP"/>
10 18 </resultMap>
11 19  
12 20 <select id="queryProvincePatients" resultMap="AreaDataResultMap" parameterType="java.lang.String">
... ... @@ -24,10 +32,10 @@
24 32 ODS_D_HOSPITAL,
25 33 ODS_D_CITY
26 34 WHERE
27   - ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO )
28   - AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID )
29   - AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 )
30   - AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) )
  35 + ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO )
  36 + AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID )
  37 + AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 )
  38 + AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) )
31 39 <if test="year != null and year != ''">
32 40 AND ODS_D_DIM_DATE.YEAR_1=${year}
33 41 </if>
34 42  
35 43  
... ... @@ -55,16 +63,16 @@
55 63 ODS_D_HOSPITAL,
56 64 ODS_D_CITY
57 65 WHERE
58   - ( ODS_F_GRAVIDA_RECORD.RECORD_ID=ODS_F_EXAMINE_HISTORY.RECORD_ID(+) )
59   - AND ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO )
60   - AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID )
61   - AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 )
62   - AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) )
  66 + ( ODS_F_GRAVIDA_RECORD.RECORD_ID=ODS_F_EXAMINE_HISTORY.RECORD_ID(+) )
  67 + AND ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO )
  68 + AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID )
  69 + AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 )
  70 + AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) )
63 71 AND
64 72 (
65   - ODS_F_EXAMINE_HISTORY.EXAMINE_HISTORY_NUM = 1
  73 + ODS_F_EXAMINE_HISTORY.EXAMINE_HISTORY_NUM = 1
66 74 AND
67   - ODS_F_EXAMINE_HISTORY.HIGH_RISK_FACTOR NOT IN ( '健康','健康,无' )
  75 + ODS_F_EXAMINE_HISTORY.HIGH_RISK_FACTOR NOT IN ( '健康','健康,无' )
68 76 )
69 77 <if test="year != null and year != ''">
70 78 AND ODS_D_DIM_DATE.YEAR_1=${year}
... ... @@ -77,6 +85,494 @@
77 85 </if>
78 86 </select>
79 87  
  88 + <!--1. 查询每个省当前的高危总人数危总人数-->
  89 + <select id="queryProvinceRisks" resultMap="AreaDataResultMap">
  90 + <![CDATA[
  91 + SELECT D.PROVINCE_ID as province_id,
  92 + D.PROVINCE as province_name,
  93 + COUNT(A.RECORD_ID) AS val
  94 + FROM ODS_F_GRAVIDA_RECORD A,
  95 + ODS_F_EXAMINE_HISTORY B,
  96 + ODS_D_HOSPITAL C,
  97 + ODS_D_AREA_COUNTY D,
  98 + ODS_D_DIM_DATE E
  99 + WHERE A.RECORD_ID=B.RECORD_ID
  100 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  101 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  102 + AND B.INSERT_DATE=E.DATE_1
  103 + AND A.NOW_WEEKS<42
  104 + AND B.HIGH_RISK_FACTOR<>'健康'
  105 + AND B.HIGH_RISK_FACTOR IS NOT NULL
  106 + AND B.EXAMINE_HISTORY_NUM=1
  107 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  108 + GROUP BY D.PROVINCE_ID,
  109 + D.PROVINCE
  110 + ]]>
  111 + </select>
  112 +
  113 + <!--1.1. 查询每个省内各地区当前的高危总人数-->
  114 + <select id="queryRisksByProvince" resultMap="AreaDataResultMap"
  115 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  116 + <![CDATA[
  117 + SELECT D.PROVINCE_ID as province_id,
  118 + D.PROVINCE as province_name,
  119 + D.CITY_ID as city_id,
  120 + D.CITY as city_name,
  121 + COUNT(A.RECORD_ID) AS val
  122 +FROM ODS_F_GRAVIDA_RECORD A,
  123 + ODS_F_EXAMINE_HISTORY B,
  124 + ODS_D_HOSPITAL C,
  125 + ODS_D_AREA_COUNTY D,
  126 + ODS_D_DIM_DATE E
  127 +WHERE A.RECORD_ID=B.RECORD_ID
  128 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  129 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  130 + AND B.INSERT_DATE=E.DATE_1
  131 + AND B.HIGH_RISK_FACTOR<>'健康'
  132 + AND B.HIGH_RISK_FACTOR IS NOT NULL
  133 + AND A.NOW_WEEKS<42
  134 + AND B.EXAMINE_HISTORY_NUM=1
  135 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  136 + AND D.PROVINCE_ID=#{provinceId}
  137 +GROUP BY D.PROVINCE_ID,
  138 + D.PROVINCE,
  139 + D.CITY_ID,
  140 + D.CITY
  141 + ]]>
  142 + </select>
  143 +
  144 + <!--1.2. 查询每个地区内各区县当前的高危总人数-->
  145 + <select id="queryRisksByCity" resultMap="AreaDataResultMap"
  146 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  147 + <![CDATA[
  148 + SELECT D.PROVINCE_ID as province_id,
  149 + D.PROVINCE as province_name,
  150 + D.CITY_ID as city_id,
  151 + D.CITY as city_name,
  152 + D.AREA_COUNTY_ID as area_id,
  153 + D.AREA_COUNTY as area_name,
  154 + COUNT(A.RECORD_ID) AS val
  155 +FROM ODS_F_GRAVIDA_RECORD A,
  156 + ODS_F_EXAMINE_HISTORY B,
  157 + ODS_D_HOSPITAL C,
  158 + ODS_D_AREA_COUNTY D,
  159 + ODS_D_DIM_DATE E
  160 +WHERE A.RECORD_ID=B.RECORD_ID
  161 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  162 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  163 + AND B.INSERT_DATE=E.DATE_1
  164 + AND A.NOW_WEEKS<42
  165 + AND B.HIGH_RISK_FACTOR<>'健康'
  166 + AND B.HIGH_RISK_FACTOR IS NOT NULL
  167 + AND B.EXAMINE_HISTORY_NUM=1
  168 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  169 +-- AND D.PROVINCE_ID=130000
  170 + AND D.CITY_ID=#{cityId}
  171 +GROUP BY D.PROVINCE_ID,
  172 + D.PROVINCE,
  173 + D.CITY_ID,
  174 + D.CITY,
  175 + D.AREA_COUNTY_ID,
  176 + D.AREA_COUNTY
  177 + ]]>
  178 + </select>
  179 +
  180 + <!--2. 查询每个省近30天的建档总人数-->
  181 + <select id="queryProvincePatients" resultMap="AreaDataResultMap">
  182 + <![CDATA[
  183 + SELECT D.PROVINCE_ID as province_id,
  184 + D.PROVINCE as province_name,
  185 + COUNT(A.RECORD_ID) AS val
  186 +FROM ODS_F_GRAVIDA_RECORD A,
  187 + ODS_D_HOSPITAL C,
  188 + ODS_D_AREA_COUNTY D,
  189 + ODS_D_DIM_DATE E
  190 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  191 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  192 + AND A.CREATE_DATE=E.DATE_1
  193 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  194 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
  195 +GROUP BY D.PROVINCE_ID,
  196 + D.PROVINCE
  197 + ]]>
  198 + </select>
  199 +
  200 + <!--2.1. 查询每个省内各地区近30天的建档总人数-->
  201 + <select id="queryPatientsByProvince" resultMap="AreaDataResultMap"
  202 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  203 + <![CDATA[
  204 +SELECT D.PROVINCE_ID as province_id,
  205 + D.PROVINCE as province_name,
  206 + D.CITY_ID as city_id,
  207 + D.CITY as city_name,
  208 + COUNT(A.RECORD_ID) AS val
  209 +FROM ODS_F_GRAVIDA_RECORD A,
  210 + ODS_D_HOSPITAL C,
  211 + ODS_D_AREA_COUNTY D,
  212 + ODS_D_DIM_DATE E
  213 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  214 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  215 + AND A.CREATE_DATE=E.DATE_1
  216 + AND D.PROVINCE_ID=#{provinceId}
  217 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  218 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
  219 +GROUP BY D.PROVINCE_ID,
  220 + D.PROVINCE,
  221 + D.CITY_ID,
  222 + D.CITY
  223 + ]]>
  224 + </select>
  225 +
  226 + <!--2.2. 查询每个地区内各区县近30天的建档总人数-->
  227 + <select id="queryPatientsByCity" resultMap="AreaDataResultMap"
  228 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  229 + <![CDATA[
  230 +SELECT D.PROVINCE_ID as province_id,
  231 + D.PROVINCE as province_name,
  232 + D.CITY_ID as city_id,
  233 + D.CITY as city_name,
  234 + D.AREA_COUNTY_ID as area_id,
  235 + D.AREA_COUNTY as area_name,
  236 + COUNT(A.RECORD_ID) AS val
  237 +FROM ODS_F_GRAVIDA_RECORD A,
  238 + ODS_D_HOSPITAL C,
  239 + ODS_D_AREA_COUNTY D,
  240 + ODS_D_DIM_DATE E
  241 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  242 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  243 + AND A.CREATE_DATE=E.DATE_1
  244 + AND D.CITY_ID=#{cityId}
  245 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  246 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
  247 +GROUP BY D.PROVINCE_ID,
  248 + D.PROVINCE,
  249 + D.CITY_ID,
  250 + D.CITY,
  251 + D.AREA_COUNTY_ID,
  252 + D.AREA_COUNTY
  253 + ]]>
  254 + </select>
  255 +
  256 + <!--3. 按省或市或地区查询区域内当前高危总数(按颜色分组、按高危项分组)-->
  257 + <select id="queryRisks" resultMap="AreaDataResultMap"
  258 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  259 +SELECT D.PROVINCE_ID as province_id,
  260 + D.PROVINCE as province_name,
  261 + <if test="provinceId != null and provinceId != ''">
  262 + D.CITY_ID as city_id,
  263 + D.CITY as city_name,
  264 + </if>
  265 + <if test="cityId != null and cityId != ''">
  266 + D.CITY_ID as city_id,
  267 + D.CITY as city_name,
  268 + D.AREA_COUNTY_ID as area_id,
  269 + D.AREA_COUNTY as area_name,
  270 + </if>
  271 + F.HIGH_RISK_GROUP as group_name,
  272 + F.HIGH_RISK_CONTENT as risk_name,
  273 + COUNT(A.RECORD_ID) AS val
  274 +FROM ODS_F_GRAVIDA_RECORD A,
  275 + ODS_F_EXAMINE_HISTORY B,
  276 + ODS_D_HOSPITAL C,
  277 + ODS_D_AREA_COUNTY D,
  278 + ODS_D_DIM_DATE E,
  279 + ODS_F_HIGH_RISK_VALUE F
  280 +
  281 + <![CDATA[
  282 +WHERE A.RECORD_ID=B.RECORD_ID
  283 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  284 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  285 + AND B.INSERT_DATE=E.DATE_1
  286 + AND B.EXAMINE_ID=F.EXAMINE_ID
  287 + AND A.NOW_WEEKS<42
  288 + AND F.HIGH_RISK_CONTENT<>'健康'
  289 + AND B.EXAMINE_HISTORY_NUM=1
  290 + ]]>
  291 + <if test="provinceId != null and provinceId != ''">
  292 + AND D.PROVINCE_ID=#{provinceId}
  293 + </if>
  294 + <if test="cityId != null and cityId != ''">
  295 + AND D.CITY_ID=#{cityId}
  296 + </if>
  297 +
  298 +GROUP BY D.PROVINCE_ID,
  299 + D.PROVINCE,
  300 + <if test="provinceId != null and provinceId != ''">
  301 + D.CITY_ID,
  302 + D.CITY,
  303 + </if>
  304 + <if test="cityId != null and cityId != ''">
  305 + D.CITY_ID,
  306 + D.CITY,
  307 + D.AREA_COUNTY_ID,
  308 + D.AREA_COUNTY,
  309 + </if>
  310 + F.HIGH_RISK_GROUP,
  311 + F.HIGH_RISK_CONTENT
  312 + </select>
  313 +
  314 + <!--4. 按省或市或地区查询区域内近12个自然月每月建档人数-->
  315 + <select id="queryMonthPatients" resultMap="AreaDataResultMap"
  316 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  317 +SELECT D.PROVINCE_ID as province_id,
  318 + D.PROVINCE as province_name,
  319 + <if test="provinceId != null and provinceId != ''">
  320 + D.CITY_ID as city_id,
  321 + D.CITY as city_name,
  322 + </if>
  323 + <if test="cityId != null and cityId != ''">
  324 + D.CITY_ID as city_id,
  325 + D.CITY as city_name,
  326 + D.AREA_COUNTY_ID as area_id,
  327 + D.AREA_COUNTY as area_name,
  328 + </if>
  329 + E.YEAR_MONTH as year,
  330 + COUNT(A.RECORD_ID) AS val
  331 +FROM ODS_F_GRAVIDA_RECORD A,
  332 + ODS_D_HOSPITAL C,
  333 + ODS_D_AREA_COUNTY D,
  334 + ODS_D_DIM_DATE E
  335 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  336 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  337 + AND A.CREATE_DATE=E.DATE_1
  338 + <if test="provinceId != null and provinceId != ''">
  339 + AND D.PROVINCE_ID=#{provinceId}
  340 + </if>
  341 + <if test="cityId != null and cityId != ''">
  342 + AND D.CITY_ID=#{cityId}
  343 + </if>
  344 + <![CDATA[
  345 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  346 + AND A.CREATE_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11))
  347 + ]]>
  348 +GROUP BY D.PROVINCE_ID,
  349 + D.PROVINCE,
  350 + <if test="provinceId != null and provinceId != ''">
  351 + D.CITY_ID,
  352 + D.CITY,
  353 + </if>
  354 + <if test="cityId != null and cityId != ''">
  355 + D.CITY_ID,
  356 + D.CITY,
  357 + D.AREA_COUNTY_ID,
  358 + D.AREA_COUNTY,
  359 + </if>
  360 + E.YEAR_MONTH
  361 +ORDER BY E.YEAR_MONTH
  362 + </select>
  363 +
  364 +
  365 + <!--4.1. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近90天按天的)-->
  366 + <!--4.2. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近30天按天的)-->
  367 + <select id="queryDayPatients" resultMap="AreaDataResultMap"
  368 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  369 + SELECT D.PROVINCE_ID as province_id,
  370 + D.PROVINCE as province_name,
  371 + <if test="provinceId != null and provinceId != ''">
  372 + D.CITY_ID as city_id,
  373 + D.CITY as city_name,
  374 + </if>
  375 + <if test="cityId != null and cityId != ''">
  376 + D.CITY_ID as city_id,
  377 + D.CITY as city_name,
  378 + D.AREA_COUNTY_ID as area_id,
  379 + D.AREA_COUNTY as area_name,
  380 + </if>
  381 + E.DATE_1 as ymd,
  382 + COUNT(A.RECORD_ID) AS val
  383 + FROM ODS_F_GRAVIDA_RECORD A,
  384 + ODS_D_HOSPITAL C,
  385 + ODS_D_AREA_COUNTY D,
  386 + ODS_D_DIM_DATE E
  387 + WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  388 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  389 + AND A.CREATE_DATE=E.DATE_1
  390 + <if test="provinceId != null and provinceId != ''">
  391 + AND D.PROVINCE_ID=#{provinceId}
  392 + </if>
  393 + <if test="cityId != null and cityId != ''">
  394 + AND D.CITY_ID=#{cityId}
  395 + </if>
  396 + <![CDATA[ AND A.CREATE_DATE<=TRUNC(SYSDATE) ]]>
  397 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-${days})
  398 + GROUP BY D.PROVINCE_ID,
  399 + D.PROVINCE,
  400 + <if test="provinceId != null and provinceId != ''">
  401 + D.CITY_ID,
  402 + D.CITY,
  403 + </if>
  404 + <if test="cityId != null and cityId != ''">
  405 + D.CITY_ID,
  406 + D.CITY,
  407 + D.AREA_COUNTY_ID,
  408 + D.AREA_COUNTY,
  409 + </if>
  410 + E.DATE_1
  411 + ORDER BY E.DATE_1
  412 + </select>
  413 +
  414 + <!--5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数-->
  415 + <select id="queryMonthReports" resultMap="AreaDataResultMap"
  416 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  417 + SELECT D.PROVINCE_ID as province_id,
  418 + D.PROVINCE as province_name,
  419 + <if test="provinceId != null and provinceId != ''">
  420 + D.CITY_ID as city_id,
  421 + D.CITY as city_name,
  422 + </if>
  423 + <if test="cityId != null and cityId != ''">
  424 + D.CITY_ID as city_id,
  425 + D.CITY as city_name,
  426 + D.AREA_COUNTY_ID as area_id,
  427 + D.AREA_COUNTY as area_name,
  428 + </if>
  429 + E.YEAR_MONTH as year,
  430 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val,
  431 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2
  432 + FROM ODS_F_GRAVIDA_RECORD A,
  433 + ODS_F_EXAMINE_HISTORY B,
  434 + ODS_D_HOSPITAL C,
  435 + ODS_D_AREA_COUNTY D,
  436 + ODS_D_DIM_DATE E
  437 + WHERE A.RECORD_ID=B.RECORD_ID
  438 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  439 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  440 + AND B.INSERT_DATE=E.DATE_1
  441 + <![CDATA[ AND B.INSERT_DATE<=TRUNC(SYSDATE) ]]>
  442 + AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11))
  443 + <if test="provinceId != null and provinceId != ''">
  444 + AND D.PROVINCE_ID=#{provinceId}
  445 + </if>
  446 + <if test="cityId != null and cityId != ''">
  447 + AND D.CITY_ID=#{cityId}
  448 + </if>
  449 + GROUP BY D.PROVINCE_ID,
  450 + D.PROVINCE,
  451 + <if test="provinceId != null and provinceId != ''">
  452 + D.CITY_ID,
  453 + D.CITY,
  454 + </if>
  455 + <if test="cityId != null and cityId != ''">
  456 + D.CITY_ID,
  457 + D.CITY,
  458 + D.AREA_COUNTY_ID,
  459 + D.AREA_COUNTY,
  460 + </if>
  461 + E.YEAR_MONTH
  462 + ORDER BY E.YEAR_MONTH
  463 + </select>
  464 +
  465 +
  466 + <!--5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数(如不能按周就同5.2查询近90天按天的)-->
  467 + <!--5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数-->
  468 + <select id="queryDayReports" resultMap="AreaDataResultMap"
  469 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  470 + SELECT D.PROVINCE_ID as province_id,
  471 + D.PROVINCE as province_name,
  472 + <if test="provinceId != null and provinceId != ''">
  473 + D.CITY_ID as city_id,
  474 + D.CITY as city_name,
  475 + </if>
  476 + <if test="cityId != null and cityId != ''">
  477 + D.CITY_ID as city_id,
  478 + D.CITY as city_name,
  479 + D.AREA_COUNTY_ID as area_id,
  480 + D.AREA_COUNTY as area_name,
  481 + </if>
  482 + E.DATE_1 as ymd,
  483 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val,
  484 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2
  485 + FROM ODS_F_GRAVIDA_RECORD A,
  486 + ODS_F_EXAMINE_HISTORY B,
  487 + ODS_D_HOSPITAL C,
  488 + ODS_D_AREA_COUNTY D,
  489 + ODS_D_DIM_DATE E
  490 + WHERE A.RECORD_ID=B.RECORD_ID
  491 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  492 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  493 + AND B.INSERT_DATE=E.DATE_1
  494 + <![CDATA[ AND B.INSERT_DATE<=TRUNC(SYSDATE) ]]>
  495 + AND B.INSERT_DATE>=(TRUNC(SYSDATE)-${days})
  496 + <if test="provinceId != null and provinceId != ''">
  497 + AND D.PROVINCE_ID=#{provinceId}
  498 + </if>
  499 + <if test="cityId != null and cityId != ''">
  500 + AND D.CITY_ID=#{cityId}
  501 + </if>
  502 + GROUP BY D.PROVINCE_ID,
  503 + D.PROVINCE,
  504 + <if test="provinceId != null and provinceId != ''">
  505 + D.CITY_ID,
  506 + D.CITY,
  507 + </if>
  508 + <if test="cityId != null and cityId != ''">
  509 + D.CITY_ID,
  510 + D.CITY,
  511 + D.AREA_COUNTY_ID,
  512 + D.AREA_COUNTY,
  513 + </if>
  514 + E.DATE_1
  515 + ORDER BY E.DATE_1
  516 + </select>
  517 +
  518 + <!--6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数(按颜色分组)-->
  519 + <select id="queryHrefYearRisks" resultMap="AreaDataResultMap"
  520 + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery">
  521 + SELECT D.PROVINCE_ID as province_id,
  522 + D.PROVINCE as province_name,
  523 + <if test="provinceId != null and provinceId != ''">
  524 + D.CITY_ID as city_id,
  525 + D.CITY as city_name,
  526 + </if>
  527 + <if test="cityId != null and cityId != ''">
  528 + D.CITY_ID as city_id,
  529 + D.CITY as city_name,
  530 + D.AREA_COUNTY_ID as area_id,
  531 + D.AREA_COUNTY as area_name,
  532 + </if>
  533 + F.HIGH_RISK_GROUP as group_name,
  534 + E.YEAR_MONTH as year,
  535 + COUNT(A.RECORD_ID) AS val
  536 + FROM ODS_F_GRAVIDA_RECORD A,
  537 + ODS_F_EXAMINE_HISTORY B,
  538 + ODS_D_HOSPITAL C,
  539 + ODS_D_AREA_COUNTY D,
  540 + ODS_D_DIM_DATE E,
  541 + ODS_F_HIGH_RISK_VALUE F
  542 + WHERE A.RECORD_ID=B.RECORD_ID
  543 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  544 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  545 + AND B.INSERT_DATE=E.DATE_1
  546 + AND B.EXAMINE_ID=F.EXAMINE_ID
  547 + <![CDATA[
  548 + AND F.HIGH_RISK_CONTENT<>'健康'
  549 + AND F.HIGH_RISK_GROUP<>'其他'
  550 + AND B.EXAMINE_HISTORY_NUM=1
  551 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  552 + AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-6))
  553 + ]]>
  554 + <if test="provinceId != null and provinceId != ''">
  555 + AND D.PROVINCE_ID=#{provinceId}
  556 + </if>
  557 + <if test="cityId != null and cityId != ''">
  558 + AND D.CITY_ID=#{cityId}
  559 + </if>
  560 + GROUP BY D.PROVINCE_ID,
  561 + D.PROVINCE,
  562 + <if test="provinceId != null and provinceId != ''">
  563 + D.CITY_ID,
  564 + D.CITY,
  565 + </if>
  566 + <if test="cityId != null and cityId != ''">
  567 + D.CITY_ID,
  568 + D.CITY,
  569 + D.AREA_COUNTY_ID,
  570 + D.AREA_COUNTY,
  571 + </if>
  572 + F.HIGH_RISK_GROUP,
  573 + E.YEAR_MONTH
  574 + ORDER BY F.HIGH_RISK_GROUP,E.YEAR_MONTH
  575 + </select>
80 576  
81 577 </mapper>
platform-reportData/src/test/sql.txt View file @ d8d335d
... ... @@ -54,4 +54,458 @@
54 54 ODS_D_PROVINCE.PROVINCE_ID,
55 55 ODS_D_PROVINCE.PROVINCE,
56 56 ODS_D_DIM_DATE.YEAR_1
  57 +
  58 +------------------------------------------------------------------------
  59 +根据省ID,年份查询和地市(1-12月)的建档孕妇数
  60 +
  61 +
  62 +
  63 +
  64 +
  65 +------------------------------------------------------------------------
  66 +根据省ID,年份查询和地市的高危孕妇数(高危颜色、高危值对应的数量)
  67 +
  68 +
  69 +
  70 +
  71 +
  72 +
  73 +
  74 +
  75 +------------------------------------------------------
  76 +1. 查询每个省当前的高危总人数
  77 +SELECT D.PROVINCE_ID as province_id,
  78 + D.PROVINCE as province_name,
  79 + COUNT(A.RECORD_ID) AS val
  80 +FROM ODS_F_GRAVIDA_RECORD A,
  81 + ODS_F_EXAMINE_HISTORY B,
  82 + ODS_D_HOSPITAL C,
  83 + ODS_D_AREA_COUNTY D,
  84 + ODS_D_DIM_DATE E
  85 +WHERE A.RECORD_ID=B.RECORD_ID
  86 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  87 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  88 + AND B.INSERT_DATE=E.DATE_1
  89 + AND A.NOW_WEEKS<42
  90 + AND B.HIGH_RISK_FACTOR<>'健康'
  91 + AND B.HIGH_RISK_FACTOR IS NOT NULL
  92 + AND B.EXAMINE_HISTORY_NUM=1
  93 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  94 +GROUP BY D.PROVINCE_ID,
  95 + D.PROVINCE
  96 +
  97 +
  98 +------------------------------------------------------
  99 +1.1. 查询每个省内各地区当前的高危总人数
  100 +SELECT D.PROVINCE_ID as province_id,
  101 + D.PROVINCE as province_name,
  102 + D.CITY_ID as city_id,
  103 + D.CITY as city_name,
  104 + COUNT(A.RECORD_ID) AS val
  105 +FROM ODS_F_GRAVIDA_RECORD A,
  106 + ODS_F_EXAMINE_HISTORY B,
  107 + ODS_D_HOSPITAL C,
  108 + ODS_D_AREA_COUNTY D,
  109 + ODS_D_DIM_DATE E
  110 +WHERE A.RECORD_ID=B.RECORD_ID
  111 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  112 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  113 + AND B.INSERT_DATE=E.DATE_1
  114 + AND B.HIGH_RISK_FACTOR<>'健康'
  115 + AND B.HIGH_RISK_FACTOR IS NOT NULL
  116 + AND A.NOW_WEEKS<42
  117 + AND B.EXAMINE_HISTORY_NUM=1
  118 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  119 + AND D.PROVINCE_ID=130000
  120 +GROUP BY D.PROVINCE_ID,
  121 + D.PROVINCE,
  122 + D.CITY_ID,
  123 + D.CITY
  124 +
  125 +
  126 +------------------------------------------------------
  127 +1.2. 查询每个地区内各区县当前的高危总人数
  128 +SELECT D.PROVINCE_ID as province_id,
  129 + D.PROVINCE as province_name,
  130 + D.CITY_ID as city_id,
  131 + D.CITY as city_name,
  132 + D.AREA_COUNTY_ID as area_id,
  133 + D.AREA_COUNTY as area_name,
  134 + COUNT(A.RECORD_ID) AS val
  135 +FROM ODS_F_GRAVIDA_RECORD A,
  136 + ODS_F_EXAMINE_HISTORY B,
  137 + ODS_D_HOSPITAL C,
  138 + ODS_D_AREA_COUNTY D,
  139 + ODS_D_DIM_DATE E
  140 +WHERE A.RECORD_ID=B.RECORD_ID
  141 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  142 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  143 + AND B.INSERT_DATE=E.DATE_1
  144 + AND A.NOW_WEEKS<42
  145 + AND B.HIGH_RISK_FACTOR<>'健康'
  146 + AND B.HIGH_RISK_FACTOR IS NOT NULL
  147 + AND B.EXAMINE_HISTORY_NUM=1
  148 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  149 + AND D.PROVINCE_ID=130000
  150 + AND D.CITY_ID=130300
  151 +GROUP BY D.PROVINCE_ID,
  152 + D.PROVINCE,
  153 + D.CITY_ID,
  154 + D.CITY,
  155 + D.AREA_COUNTY_ID,
  156 + D.AREA_COUNTY
  157 +
  158 +
  159 +
  160 +------------------------------------------------------
  161 +2. 查询每个省近30天的建档总人数
  162 +SELECT D.PROVINCE_ID as province_id,
  163 + D.PROVINCE as province_name,
  164 + COUNT(A.RECORD_ID) AS val
  165 +FROM ODS_F_GRAVIDA_RECORD A,
  166 + ODS_D_HOSPITAL C,
  167 + ODS_D_AREA_COUNTY D,
  168 + ODS_D_DIM_DATE E
  169 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  170 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  171 + AND A.CREATE_DATE=E.DATE_1
  172 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  173 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
  174 +GROUP BY D.PROVINCE_ID,
  175 + D.PROVINCE
  176 +
  177 +
  178 +------------------------------------------------------
  179 +2.1. 查询每个省内各地区近30天的建档总人数
  180 +SELECT D.PROVINCE_ID as province_id,
  181 + D.PROVINCE as province_name,
  182 + D.CITY_ID as city_id,
  183 + D.CITY as city_name,
  184 + COUNT(A.RECORD_ID) AS val
  185 +FROM ODS_F_GRAVIDA_RECORD A,
  186 + ODS_D_HOSPITAL C,
  187 + ODS_D_AREA_COUNTY D,
  188 + ODS_D_DIM_DATE E
  189 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  190 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  191 + AND A.CREATE_DATE=E.DATE_1
  192 + AND D.PROVINCE_ID=130000
  193 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  194 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
  195 +GROUP BY D.PROVINCE_ID,
  196 + D.PROVINCE,
  197 + D.CITY_ID,
  198 + D.CITY
  199 +
  200 +
  201 +------------------------------------------------------
  202 +2.2. 查询每个地区内各区县近30天的建档总人数
  203 +SELECT D.PROVINCE_ID as province_id,
  204 + D.PROVINCE as province_name,
  205 + D.CITY_ID as city_id,
  206 + D.CITY as city_name,
  207 + D.AREA_COUNTY_ID as area_id,
  208 + D.AREA_COUNTY as area_name,
  209 + COUNT(A.RECORD_ID) AS val
  210 +FROM ODS_F_GRAVIDA_RECORD A,
  211 + ODS_D_HOSPITAL C,
  212 + ODS_D_AREA_COUNTY D,
  213 + ODS_D_DIM_DATE E
  214 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  215 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  216 + AND A.CREATE_DATE=E.DATE_1
  217 + AND D.PROVINCE_ID=130000
  218 + AND D.CITY_ID=130300
  219 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  220 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
  221 +GROUP BY D.PROVINCE_ID,
  222 + D.PROVINCE,
  223 + D.CITY_ID,
  224 + D.CITY,
  225 + D.AREA_COUNTY_ID,
  226 + D.AREA_COUNTY
  227 +
  228 +
  229 +
  230 +------------------------------------------------------
  231 +3. 按省或市或地区查询区域内当前高危总数(按颜色分组、按高危项分组)
  232 +SELECT D.PROVINCE_ID as province_id,
  233 + D.PROVINCE as province_name,
  234 + D.CITY_ID as city_id,
  235 + D.CITY as city_name,
  236 + D.AREA_COUNTY_ID as area_id,
  237 + D.AREA_COUNTY as area_name,
  238 + F.HIGH_RISK_GROUP as group_name,
  239 + F.HIGH_RISK_CONTENT as risk_name,
  240 + COUNT(A.RECORD_ID) AS val
  241 +FROM ODS_F_GRAVIDA_RECORD A,
  242 + ODS_F_EXAMINE_HISTORY B,
  243 + ODS_D_HOSPITAL C,
  244 + ODS_D_AREA_COUNTY D,
  245 + ODS_D_DIM_DATE E,
  246 + ODS_F_HIGH_RISK_VALUE F
  247 +WHERE A.RECORD_ID=B.RECORD_ID
  248 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  249 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  250 + AND B.INSERT_DATE=E.DATE_1
  251 + AND B.EXAMINE_ID=F.EXAMINE_ID
  252 + AND A.NOW_WEEKS<42
  253 + AND F.HIGH_RISK_CONTENT<>'健康'
  254 + AND B.EXAMINE_HISTORY_NUM=1
  255 + AND E.YEAR_1=2016
  256 + AND D.PROVINCE_ID=130000
  257 + AND D.CITY_ID=130300
  258 +GROUP BY D.PROVINCE_ID,
  259 + D.PROVINCE,
  260 + D.CITY_ID,
  261 + D.CITY,
  262 + D.AREA_COUNTY_ID,
  263 + D.AREA_COUNTY,
  264 + F.HIGH_RISK_GROUP,
  265 + F.HIGH_RISK_CONTENT
  266 +
  267 +
  268 +
  269 +------------------------------------------------------
  270 +4. 按省或市或地区查询区域内近12个自然月每月建档人数
  271 +SELECT D.PROVINCE_ID as province_id,
  272 + D.PROVINCE as province_name,
  273 + D.CITY_ID as city_id,
  274 + D.CITY as city_name,
  275 + D.AREA_COUNTY_ID as area_id,
  276 + D.AREA_COUNTY as area_name,
  277 + E.YEAR_MONTH as year,
  278 + COUNT(A.RECORD_ID) AS val
  279 +FROM ODS_F_GRAVIDA_RECORD A,
  280 + ODS_D_HOSPITAL C,
  281 + ODS_D_AREA_COUNTY D,
  282 + ODS_D_DIM_DATE E
  283 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  284 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  285 + AND A.CREATE_DATE=E.DATE_1
  286 + AND D.PROVINCE_ID=130000
  287 + AND D.CITY_ID=130300
  288 + AND D.AREA_COUNTY_ID=130302
  289 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  290 + AND A.CREATE_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11))
  291 +GROUP BY D.PROVINCE_ID,
  292 + D.PROVINCE,
  293 + D.CITY_ID,
  294 + D.CITY,
  295 + D.AREA_COUNTY_ID,
  296 + D.AREA_COUNTY,
  297 + E.YEAR_MONTH
  298 +ORDER BY E.YEAR_MONTH
  299 +
  300 +
  301 +------------------------------------------------------
  302 +4.1. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近90天按天的)
  303 +SELECT D.PROVINCE_ID as province_id,
  304 + D.PROVINCE as province_name,
  305 + D.CITY_ID as city_id,
  306 + D.CITY as city_name,
  307 + D.AREA_COUNTY_ID as area_id,
  308 + D.AREA_COUNTY as area_name,
  309 + E.DATE_1 as ymd,
  310 + COUNT(A.RECORD_ID) AS val
  311 +FROM ODS_F_GRAVIDA_RECORD A,
  312 + ODS_D_HOSPITAL C,
  313 + ODS_D_AREA_COUNTY D,
  314 + ODS_D_DIM_DATE E
  315 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  316 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  317 + AND A.CREATE_DATE=E.DATE_1
  318 + AND D.PROVINCE_ID=130000
  319 + AND D.CITY_ID=130300
  320 + AND D.AREA_COUNTY_ID=130302
  321 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  322 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-91)
  323 +GROUP BY D.PROVINCE_ID,
  324 + D.PROVINCE,
  325 + D.CITY_ID,
  326 + D.CITY,
  327 + D.AREA_COUNTY_ID,
  328 + D.AREA_COUNTY,
  329 + E.DATE_1
  330 +ORDER BY E.DATE_1
  331 +
  332 +
  333 +------------------------------------------------------
  334 +4.2. 按省或市或地区查询区域内近30天每天建档人数
  335 +SELECT D.PROVINCE_ID as province_id,
  336 + D.PROVINCE as province_name,
  337 + D.CITY_ID as city_id,
  338 + D.CITY as city_name,
  339 + D.AREA_COUNTY_ID as area_id,
  340 + D.AREA_COUNTY as area_name,
  341 + E.DATE_1 as ymd,
  342 + COUNT(A.RECORD_ID) AS val
  343 +FROM ODS_F_GRAVIDA_RECORD A,
  344 + ODS_D_HOSPITAL C,
  345 + ODS_D_AREA_COUNTY D,
  346 + ODS_D_DIM_DATE E
  347 +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO
  348 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  349 + AND A.CREATE_DATE=E.DATE_1
  350 + AND D.PROVINCE_ID=130000
  351 + AND D.CITY_ID=130300
  352 + AND D.AREA_COUNTY_ID=130302
  353 + AND A.CREATE_DATE<=TRUNC(SYSDATE)
  354 + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30)
  355 +GROUP BY D.PROVINCE_ID,
  356 + D.PROVINCE,
  357 + D.CITY_ID,
  358 + D.CITY,
  359 + D.AREA_COUNTY_ID,
  360 + D.AREA_COUNTY,
  361 + E.DATE_1
  362 +ORDER BY E.DATE_1
  363 +
  364 +
  365 +
  366 +------------------------------------------------------
  367 +5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数
  368 +SELECT D.PROVINCE_ID as province_id,
  369 + D.PROVINCE as province_name,
  370 + D.CITY_ID as city_id,
  371 + D.CITY as city_name,
  372 + D.AREA_COUNTY_ID as area_id,
  373 + D.AREA_COUNTY as area_name,
  374 + E.YEAR_MONTH as year,
  375 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val,
  376 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2
  377 +FROM ODS_F_GRAVIDA_RECORD A,
  378 + ODS_F_EXAMINE_HISTORY B,
  379 + ODS_D_HOSPITAL C,
  380 + ODS_D_AREA_COUNTY D,
  381 + ODS_D_DIM_DATE E
  382 +WHERE A.RECORD_ID=B.RECORD_ID
  383 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  384 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  385 + AND B.INSERT_DATE=E.DATE_1
  386 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  387 + AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11))
  388 + AND D.PROVINCE_ID=130000
  389 + AND D.CITY_ID=130300
  390 + AND D.AREA_COUNTY_ID=130302
  391 +GROUP BY D.PROVINCE_ID,
  392 + D.PROVINCE,
  393 + D.CITY_ID,
  394 + D.CITY,
  395 + D.AREA_COUNTY_ID,
  396 + D.AREA_COUNTY,
  397 + E.YEAR_MONTH
  398 +ORDER BY E.YEAR_MONTH
  399 +
  400 +
  401 +------------------------------------------------------
  402 +5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数(如不能按周就同5.2查询近90天按天的)
  403 +SELECT D.PROVINCE_ID as province_id,
  404 + D.PROVINCE as province_name,
  405 + D.CITY_ID as city_id,
  406 + D.CITY as city_name,
  407 + D.AREA_COUNTY_ID as area_id,
  408 + D.AREA_COUNTY as area_name,
  409 + E.DATE_1 as ymd,
  410 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val,
  411 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2
  412 +FROM ODS_F_GRAVIDA_RECORD A,
  413 + ODS_F_EXAMINE_HISTORY B,
  414 + ODS_D_HOSPITAL C,
  415 + ODS_D_AREA_COUNTY D,
  416 + ODS_D_DIM_DATE E
  417 +WHERE A.RECORD_ID=B.RECORD_ID
  418 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  419 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  420 + AND B.INSERT_DATE=E.DATE_1
  421 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  422 + AND B.INSERT_DATE>=(TRUNC(SYSDATE)-90)
  423 + AND D.PROVINCE_ID=130000
  424 + AND D.CITY_ID=130300
  425 + AND D.AREA_COUNTY_ID=130302
  426 +GROUP BY D.PROVINCE_ID,
  427 + D.PROVINCE,
  428 + D.CITY_ID,
  429 + D.CITY,
  430 + D.AREA_COUNTY_ID,
  431 + D.AREA_COUNTY,
  432 + E.DATE_1
  433 +ORDER BY E.DATE_1
  434 +
  435 +
  436 +------------------------------------------------------
  437 +5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数
  438 +SELECT D.PROVINCE_ID as province_id,
  439 + D.PROVINCE as province_name,
  440 + D.CITY_ID as city_id,
  441 + D.CITY as city_name,
  442 + D.AREA_COUNTY_ID as area_id,
  443 + D.AREA_COUNTY as area_name,
  444 + E.DATE_1 as ymd,
  445 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val,
  446 + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2
  447 +FROM ODS_F_GRAVIDA_RECORD A,
  448 + ODS_F_EXAMINE_HISTORY B,
  449 + ODS_D_HOSPITAL C,
  450 + ODS_D_AREA_COUNTY D,
  451 + ODS_D_DIM_DATE E
  452 +WHERE A.RECORD_ID=B.RECORD_ID
  453 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  454 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  455 + AND B.INSERT_DATE=E.DATE_1
  456 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  457 + AND B.INSERT_DATE>=(TRUNC(SYSDATE)-30)
  458 + AND D.PROVINCE_ID=130000
  459 + AND D.CITY_ID=130300
  460 + AND D.AREA_COUNTY_ID=130302
  461 +GROUP BY D.PROVINCE_ID,
  462 + D.PROVINCE,
  463 + D.CITY_ID,
  464 + D.CITY,
  465 + D.AREA_COUNTY_ID,
  466 + D.AREA_COUNTY,
  467 + E.DATE_1
  468 +ORDER BY E.DATE_1
  469 +
  470 +
  471 +
  472 +------------------------------------------------------
  473 +6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数(按颜色分组)
  474 +SELECT D.PROVINCE_ID as province_id,
  475 + D.PROVINCE as province_name,
  476 + D.CITY_ID as city_id,
  477 + D.CITY as city_name,
  478 + D.AREA_COUNTY_ID as area_id,
  479 + D.AREA_COUNTY as area_name,
  480 + F.HIGH_RISK_GROUP as group_name,
  481 + E.YEAR_MONTH as year,
  482 + COUNT(A.RECORD_ID) AS val
  483 +FROM ODS_F_GRAVIDA_RECORD A,
  484 + ODS_F_EXAMINE_HISTORY B,
  485 + ODS_D_HOSPITAL C,
  486 + ODS_D_AREA_COUNTY D,
  487 + ODS_D_DIM_DATE E,
  488 + ODS_F_HIGH_RISK_VALUE F
  489 +WHERE A.RECORD_ID=B.RECORD_ID
  490 + AND A.HOSPITAL_NO=C.HOSPITAL_NO
  491 + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID
  492 + AND B.INSERT_DATE=E.DATE_1
  493 + AND B.EXAMINE_ID=F.EXAMINE_ID
  494 + AND F.HIGH_RISK_CONTENT<>'健康'
  495 + AND F.HIGH_RISK_GROUP<>'其他'
  496 + AND B.EXAMINE_HISTORY_NUM=1
  497 + AND B.INSERT_DATE<=TRUNC(SYSDATE)
  498 + AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-6))
  499 + AND D.PROVINCE_ID=130000
  500 + AND D.CITY_ID=130300
  501 + AND D.AREA_COUNTY_ID=130302
  502 +GROUP BY D.PROVINCE_ID,
  503 + D.PROVINCE,
  504 + D.CITY_ID,
  505 + D.CITY,
  506 + D.AREA_COUNTY_ID,
  507 + D.AREA_COUNTY,
  508 + F.HIGH_RISK_GROUP,
  509 + E.YEAR_MONTH
  510 +ORDER BY F.HIGH_RISK_GROUP,E.YEAR_MONTH