|
@@ -5,11 +5,17 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import thyyxxk.webserver.dao.his.casefrontsheet.SheetSearchDao;
|
|
|
import thyyxxk.webserver.entity.ResultVo;
|
|
|
+import thyyxxk.webserver.entity.casefrontsheet.StatisticsBySeason;
|
|
|
import thyyxxk.webserver.entity.dictionary.PureCodeName;
|
|
|
import thyyxxk.webserver.entity.dictionary.SearchDataParam;
|
|
|
+import thyyxxk.webserver.entity.examinations.covidexam.CovidExamResult;
|
|
|
import thyyxxk.webserver.service.yibao.DictionaryService;
|
|
|
+import thyyxxk.webserver.utils.DateUtil;
|
|
|
+import thyyxxk.webserver.utils.ExcelUtil;
|
|
|
import thyyxxk.webserver.utils.ResultVoUtil;
|
|
|
+import thyyxxk.webserver.utils.StringUtil;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -143,4 +149,98 @@ public class SheetSearchService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 1. 报送范围为出院日期在2019年1月1日—2021年12月31日,包括城镇职工、城乡居民基本医疗保险病人的住院数据(排除全自费、异地就医、工伤、生育保险类住院数据);
|
|
|
+ * 2. NO41表以CSV文件格式提取,并按季度上传数据。单个上传文件上限为5万条病例数,如果数据量过大,也可按月度上传数据。(文件命名格式:“医疗机构名称_201901.csv”);
|
|
|
+ * 3. 报送规范以《长株潭数据报送标准-附件1、2》为准,相关编码要按照贯标后报送,疾病编码、手术编码要按照医保编码2.0目录报送,AKC190、AKB020作为唯一联合主键。
|
|
|
+ * */
|
|
|
+ public void fetchStatisticsBySeason(HttpServletResponse response, String season) {
|
|
|
+ String begntime, endtime;
|
|
|
+ switch (season) {
|
|
|
+ case "2019S1":
|
|
|
+ begntime = "2019-01-01 00:00:00";
|
|
|
+ endtime = "2019-03-31 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2019S2":
|
|
|
+ begntime = "2019-04-01 00:00:00";
|
|
|
+ endtime = "2019-06-30 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2019S3":
|
|
|
+ begntime = "2019-07-01 00:00:00";
|
|
|
+ endtime = "2019-09-30 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2019S4":
|
|
|
+ begntime = "2019-10-01 00:00:00";
|
|
|
+ endtime = "2019-12-31 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2020S1":
|
|
|
+ begntime = "2020-01-01 00:00:00";
|
|
|
+ endtime = "2020-03-31 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2020S2":
|
|
|
+ begntime = "2020-04-01 00:00:00";
|
|
|
+ endtime = "2020-06-30 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2020S3":
|
|
|
+ begntime = "2020-07-01 00:00:00";
|
|
|
+ endtime = "2020-09-30 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2020S4":
|
|
|
+ begntime = "2020-10-01 00:00:00";
|
|
|
+ endtime = "2020-12-31 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2021S1":
|
|
|
+ begntime = "2021-01-01 00:00:00";
|
|
|
+ endtime = "2021-03-31 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2021S2":
|
|
|
+ begntime = "2021-04-01 00:00:00";
|
|
|
+ endtime = "2021-06-30 23:59:59";
|
|
|
+ break;
|
|
|
+ case "2021S3":
|
|
|
+ begntime = "2021-07-01 00:00:00";
|
|
|
+ endtime = "2021-09-30 23:59:59";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ begntime = "2021-10-01 00:00:00";
|
|
|
+ endtime = "2021-12-31 23:59:59";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<StatisticsBySeason> list = dao.selectStatisticsBySeason(begntime, endtime);
|
|
|
+ list.removeIf(itm -> StringUtil.isBlank(itm.getJBDM()));
|
|
|
+ if (season.equals("2021S4")) {
|
|
|
+ list.removeIf(itm -> !itm.getSFZH().startsWith("4301"));
|
|
|
+ }
|
|
|
+
|
|
|
+ String[] title = {"AKC190", "AKB020", "USERNAME", "ZYCS", "BAH", "XM", "XB", "CSRQ", "NL", "GJ", "XSECSTZ",
|
|
|
+ "XSERYTZ", "SFZH", "ZY", "HY", "RYSJ", "CYSJ", "SJZYTS", "ZYZD", "JBDM", "LYFS", "ZFY" };
|
|
|
+ String[][] content = new String[list.size()][];
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ content[i] = new String[title.length];
|
|
|
+ StatisticsBySeason result = list.get(i);
|
|
|
+ content[i][0] = result.getAKC190();
|
|
|
+ content[i][1] = result.getAKB020();
|
|
|
+ content[i][2] = result.getUSERNAME();
|
|
|
+ content[i][3] = result.getZYCS();
|
|
|
+ content[i][4] = result.getBAH();
|
|
|
+ content[i][5] = result.getXM();
|
|
|
+ content[i][6] = result.getXB();
|
|
|
+ content[i][7] = result.getCSRQ();
|
|
|
+ content[i][8] = result.getNL();
|
|
|
+ content[i][9] = result.getGJ();
|
|
|
+ content[i][10] = result.getXSECSTZ();
|
|
|
+ content[i][11] = result.getXSERYTZ();
|
|
|
+ content[i][12] = result.getSFZH();
|
|
|
+ content[i][13] = result.getZY();
|
|
|
+ content[i][14] = result.getHY();
|
|
|
+ content[i][15] = result.getRYSJ();
|
|
|
+ content[i][16] = result.getCYSJ();
|
|
|
+ content[i][17] = result.getSJZYTS();
|
|
|
+ content[i][18] = result.getZYZD();
|
|
|
+ content[i][19] = result.getJBDM();
|
|
|
+ content[i][20] = result.getLYFS();
|
|
|
+ content[i][21] = result.getZFY();
|
|
|
+ }
|
|
|
+ ExcelUtil.exportExcel(response, title, content);
|
|
|
+ }
|
|
|
}
|