|
@@ -25,325 +25,73 @@ public class LISViewRepository {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
|
|
- @Value("${fetch.QryDailySql}")
|
|
|
|
|
- private String QryDailySql;
|
|
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 查询V_JT_QCMonthReport视图的数据,并将结果存储到Map中。
|
|
|
|
|
- *
|
|
|
|
|
- * @return 包含V_JT_QCMonthReport视图数据的Map,其中键为字段名,值为字段值的字符串表示。
|
|
|
|
|
- */
|
|
|
|
|
- public List<Map<String, Object>> query(String LISTable) {
|
|
|
|
|
|
|
+ public List<Map<String, Object>> getBasicReagent() {
|
|
|
List<Map<String, Object>> retList = new ArrayList<Map<String, Object>>();
|
|
List<Map<String, Object>> retList = new ArrayList<Map<String, Object>>();
|
|
|
Map<String, Object> retMap = new HashMap<>();
|
|
Map<String, Object> retMap = new HashMap<>();
|
|
|
- String sqlQry = "SELECT * FROM "+LISTable+" WHERE DATE(CreateTime) = CURDATE() - INTERVAL 1 DAY";
|
|
|
|
|
-
|
|
|
|
|
|
|
+ String sqlQry = "SELECT * FROM v_mate_dict_Reagent where is_stop='0'";
|
|
|
|
|
+ log.info("excute sql:"+sqlQry);
|
|
|
try {
|
|
try {
|
|
|
List<Map<String, Object>> results = jdbcTemplate.queryForList(sqlQry);
|
|
List<Map<String, Object>> results = jdbcTemplate.queryForList(sqlQry);
|
|
|
- for (Map<String, Object> result : results) {
|
|
|
|
|
- for (Map.Entry<String, Object> entry : result.entrySet()) {
|
|
|
|
|
- retMap.put(entry.getKey(), entry.getValue());
|
|
|
|
|
- }
|
|
|
|
|
- retList.add(retMap);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+// for (Map<String, Object> result : results) {
|
|
|
|
|
+// for (Map.Entry<String, Object> entry : result.entrySet()) {
|
|
|
|
|
+// retMap.put(entry.getKey(), entry.getValue());
|
|
|
|
|
+// }
|
|
|
|
|
+// retList.add(retMap);
|
|
|
|
|
+// }
|
|
|
|
|
+ retList = results;
|
|
|
} catch (DataAccessException e) {
|
|
} catch (DataAccessException e) {
|
|
|
- log.error("Error querying "+LISTable+" view", e);
|
|
|
|
|
|
|
+ log.error("Error query lis ReagentInfo view", e);
|
|
|
}
|
|
}
|
|
|
return retList;
|
|
return retList;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public List<Map<String, Object>> getReagentLotVerification() {
|
|
|
|
|
+ List<Map<String, Object>> retList = new ArrayList<Map<String, Object>>();
|
|
|
|
|
+ /*
|
|
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
|
|
+ retMap.put("ReagentName", "(国J)α-羟丁酸脱氢酶(HBDH)测定试剂盒(速率法)");
|
|
|
|
|
+ retMap.put("ReagentNumber", "04010110420");
|
|
|
|
|
+ retMap.put("NewBatchNumber", "555");
|
|
|
|
|
+ retMap.put("ExpiredDate", "2029-12-30");
|
|
|
|
|
+ retMap.put("GroupCode", "lj");
|
|
|
|
|
+ retMap.put("GroupName", "临检");
|
|
|
|
|
+ retList.add(retMap);
|
|
|
|
|
+ return retList;
|
|
|
|
|
+ */
|
|
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
|
|
+ String sqlQry = "SELECT * FROM v_mate_whr_Reagent \n" +
|
|
|
|
|
+ "WHERE confDate >= to_char(CURRENT_DATE - 1, 'YYYY-MM-DD') \n" +
|
|
|
|
|
+ " AND confDate < to_char(CURRENT_DATE, 'YYYY-MM-DD') and inStoreName='医学检验科库房'";
|
|
|
|
|
+ log.info("excute sql:"+sqlQry);
|
|
|
|
|
+ try {
|
|
|
|
|
+ List<Map<String, Object>> results = jdbcTemplate.queryForList(sqlQry);
|
|
|
|
|
+// for (Map<String, Object> result : results) {
|
|
|
|
|
+// for (Map.Entry<String, Object> entry : result.entrySet()) {
|
|
|
|
|
+// retMap.put(entry.getKey(), entry.getValue());
|
|
|
|
|
+// }
|
|
|
|
|
+// retList.add(retMap);
|
|
|
|
|
+// }
|
|
|
|
|
+ retList = results;
|
|
|
|
|
+ } catch (DataAccessException e) {
|
|
|
|
|
+ log.error("Error query lis ReagentLotVerification view", e);
|
|
|
|
|
+ }
|
|
|
|
|
+ return retList;
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-// qualityIndicatorList.add("总标本不合格率"); //0
|
|
|
|
|
-// qualityIndicatorList.add("抗凝标本凝集率"); //1
|
|
|
|
|
-// qualityIndicatorList.add("标本类型错误率"); //2
|
|
|
|
|
-// qualityIndicatorList.add("标本容器错误率"); //3
|
|
|
|
|
-// qualityIndicatorList.add("标本溶血率"); //4
|
|
|
|
|
-// qualityIndicatorList.add("标本采集量错误率"); //5
|
|
|
|
|
-// qualityIndicatorList.add("急诊常规实验室内TAT中位数"); //6
|
|
|
|
|
-// qualityIndicatorList.add("急诊生化免疫实验室内TAT中位数"); //7
|
|
|
|
|
-// qualityIndicatorList.add("急诊凝血实验室内TAT中位数"); //8
|
|
|
|
|
-// qualityIndicatorList.add("急诊血常规检验前周转时间中位数"); //9
|
|
|
|
|
-// qualityIndicatorList.add("急诊血常规实验室内周转时间中位数"); //10
|
|
|
|
|
-// qualityIndicatorList.add("常规检验报告发放TAT时间符合率"); //11
|
|
|
|
|
-// qualityIndicatorList.add("检验报告不正确率"); //12
|
|
|
|
|
-// qualityIndicatorList.add("危急值通报率"); //13
|
|
|
|
|
-// qualityIndicatorList.add("危急值通报及时率"); //14
|
|
|
|
|
-// qualityIndicatorList.add("标本合格率"); //15
|
|
|
|
|
-// qualityIndicatorList.add("TAT时间合格率"); //16
|
|
|
|
|
-// qualityIndicatorList.add("报告准确率"); //17
|
|
|
|
|
-// qualityIndicatorList.add("危急值通报符合率"); //18
|
|
|
|
|
-
|
|
|
|
|
- public String query(Integer QIIndex,String dateRange) {
|
|
|
|
|
- String StartDate = dateRange.substring(0,10)+" 00:00:00";
|
|
|
|
|
- String EndDate = dateRange.substring(11)+" 23:59:59";
|
|
|
|
|
-// System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
-
|
|
|
|
|
- if (QIIndex != null) {
|
|
|
|
|
- //总标本不合格率
|
|
|
|
|
- if (QIIndex == 0) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM" +
|
|
|
|
|
- "(SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //抗凝标本凝集率
|
|
|
|
|
- if (QIIndex == 1) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount*1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
|
|
|
|
|
- "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE='02' and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE sampletypeid='00' and RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //标本类型错误率
|
|
|
|
|
- if (QIIndex == 2) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
|
|
|
|
|
- "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE='2' and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //标本容器错误率
|
|
|
|
|
- if (QIIndex == 3) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
|
|
|
|
|
- "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE='20' and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //标本溶血率
|
|
|
|
|
- if (QIIndex == 4) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
|
|
|
|
|
- "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE='01' and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //标本采集量错误率
|
|
|
|
|
- if (QIIndex == 5) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
|
|
|
|
|
- "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE in ('03','5') and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //急诊常规实验室内TAT中位数
|
|
|
|
|
- if (QIIndex == 6) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM V_JT_TAT c INNER JOIN (SELECT b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
|
|
|
|
|
- "WHERE b.INSTRUMENTGROUPCODE IN ('CG_BloodLAS','CG_UristLAS3','CG_XD6001','USF3000','CG_FA280S','CG_BC5390','CG_FA280S2') AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //急诊生化免疫实验室内TAT中位数
|
|
|
|
|
- if (QIIndex == 7) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM V_JT_TAT c INNER JOIN (SELECT b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
|
|
|
|
|
- "WHERE b.INSTRUMENTGROUPCODE='Abbott_IM_LAS_1' AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //急诊凝血实验室内TAT中位数
|
|
|
|
|
- if (QIIndex == 8) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM V_JT_TAT c INNER JOIN (SELECT b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
|
|
|
|
|
- "WHERE b.INSTRUMENTGROUPCODE='CG_StagoCompact' AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //急诊血常规检验前周转时间中位数
|
|
|
|
|
- if (QIIndex == 9) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT MEDIAN(c.PRETAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM V_JT_TAT c INNER JOIN (SELECT b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
|
|
|
|
|
- "WHERE b.INSTRUMENTGROUPCODE in ('CG_BloodLAS','CG_BC5390') AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //急诊血常规实验室内周转时间中位数
|
|
|
|
|
- if (QIIndex == 10) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM V_JT_TAT c INNER JOIN (SELECT b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
|
|
|
|
|
- "WHERE b.INSTRUMENTGROUPCODE in ('CG_BloodLAS','CG_BC5390') AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //常规检验报告发放TAT时间符合率
|
|
|
|
|
-
|
|
|
|
|
- //检验报告不正确率+
|
|
|
|
|
- if (QIIndex == 12) {
|
|
|
|
|
-// System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((CancelCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,CancelCount as Numerator,AllCount as Denominator FROM (" +
|
|
|
|
|
- "SELECT (SELECT COUNT(*) FROM V_JT_LISCANCELREPORT WHERE GROUPID in ('30','06','05','00','31','07') and CANCELAUDITREASON like '%不正确%' and CANCELAUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS CancelCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisreport WHERE GROUPID in ('30','06','05','00','31','07') and AUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //危急值通报率
|
|
|
|
|
- if (QIIndex == 13) {
|
|
|
|
|
-// System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- //String sqlQry = "select count(*) as ResultValue from v_jt_lisrequest where SampleTime between ? and ?";
|
|
|
|
|
-// String sqlQry = "SELECT ROUND((COUNT(CASE WHEN ReceiverFlag = '1' THEN 1 END)/COUNT(*))*100,2) AS ResultValue FROM V_JT_CRITICAL where BUILDCRISISTIME between TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')";
|
|
|
|
|
- String sqlQry = "SELECT ROUND((COUNT(CASE WHEN ReceiverFlag = '1' THEN 1 END)/COUNT(*))*100, 2) AS ResultValue, COUNT(CASE WHEN ReceiverFlag = '1' THEN 1 END) AS Numerator,COUNT(*) AS Denominator FROM " +
|
|
|
|
|
- "V_JT_CRITICAL WHERE BUILDCRISISTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')";
|
|
|
|
|
-
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //危急值通报及时率
|
|
|
|
|
- if (QIIndex == 14) {
|
|
|
|
|
-// System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- //String sqlQry = "select count(*) as ResultValue from v_jt_lisrequest where SampleTime between ? and ?";
|
|
|
|
|
- String sqlQry = "SELECT ROUND((COUNT(CASE WHEN AccordFlag = '1' THEN 1 END)/COUNT(*))*100, 2) AS ResultValue, COUNT(CASE WHEN AccordFlag = '1' THEN 1 END) AS Numerator,COUNT(*) AS Denominator FROM " +
|
|
|
|
|
- "V_JT_CRITICAL WHERE BUILDCRISISTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //标本合格率
|
|
|
|
|
- if (QIIndex == 15) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM " +
|
|
|
|
|
- "(SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- // 提取三个部分的字符串值
|
|
|
|
|
- String resultValueStr = lvList.get(0).getResultValue();
|
|
|
|
|
- String denominatorStr = lvList.get(0).getDenominator();
|
|
|
|
|
- String numeratorStr = lvList.get(0).getNumerator();
|
|
|
|
|
-
|
|
|
|
|
- // 将分母和分子转换为整数进行计算(假设为整数类型)
|
|
|
|
|
- int denominator = Integer.parseInt(denominatorStr);
|
|
|
|
|
- int numerator = Integer.parseInt(numeratorStr);
|
|
|
|
|
- int newNumeratorValue = denominator - numerator;
|
|
|
|
|
- float resultValue = 100-Float.parseFloat(resultValueStr);
|
|
|
|
|
-
|
|
|
|
|
- // 构造新的字符串
|
|
|
|
|
- return String.join("^", String.valueOf(resultValue), String.valueOf(newNumeratorValue), denominatorStr);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //报告准确率
|
|
|
|
|
- if (QIIndex == 17) {
|
|
|
|
|
- //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((CancelCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,CancelCount as Numerator,AllCount as Denominator FROM (" +
|
|
|
|
|
- "SELECT (SELECT COUNT(*) FROM V_JT_LISCANCELREPORT WHERE CANCELAUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS CancelCount," +
|
|
|
|
|
- "(SELECT COUNT(*) FROM v_jt_lisreport WHERE AUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- // 提取三个部分的字符串值
|
|
|
|
|
- String resultValueStr = lvList.get(0).getResultValue();
|
|
|
|
|
- String denominatorStr = lvList.get(0).getDenominator();
|
|
|
|
|
- String numeratorStr = lvList.get(0).getNumerator();
|
|
|
|
|
-
|
|
|
|
|
- // 将分母和分子转换为整数进行计算(假设为整数类型)
|
|
|
|
|
- int denominator = Integer.parseInt(denominatorStr);
|
|
|
|
|
- int numerator = Integer.parseInt(numeratorStr);
|
|
|
|
|
- int newNumeratorValue = denominator - numerator;
|
|
|
|
|
- float resultValue = 100-Float.parseFloat(resultValueStr);
|
|
|
|
|
-
|
|
|
|
|
- // 构造新的字符串
|
|
|
|
|
- return String.join("^", String.valueOf(resultValue), String.valueOf(newNumeratorValue), denominatorStr);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //危急值通报符合率
|
|
|
|
|
- if (QIIndex == 18) {
|
|
|
|
|
-// System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
|
|
|
|
|
- //String sqlQry = "select count(*) as ResultValue from v_jt_lisrequest where SampleTime between ? and ?";
|
|
|
|
|
- String sqlQry = "SELECT ROUND((COUNT(CASE WHEN AccordFlag = '1' THEN 1 END)/COUNT(*))*100, 2) AS ResultValue, COUNT(CASE WHEN AccordFlag = '1' THEN 1 END) AS Numerator,COUNT(*) AS Denominator FROM " +
|
|
|
|
|
- "V_JT_CRITICAL WHERE BUILDCRISISTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')";
|
|
|
|
|
- log.info("excute sql:"+sqlQry);
|
|
|
|
|
- RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
|
|
|
|
|
- List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
|
|
|
|
|
- //System.out.println(lvList.get(0).getResultValue());
|
|
|
|
|
- return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ public void LisTest(){
|
|
|
|
|
+ log.info("in Test Mode...");
|
|
|
|
|
+ List<Map<String, Object>> BasicReagentList = getBasicReagent();
|
|
|
|
|
+ for (Map<String, Object> reagent : BasicReagentList) {
|
|
|
|
|
+ log.info("reagent:"+reagent);
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Map<String, Object>> ReagentLotVerificationList = getReagentLotVerification();
|
|
|
|
|
+ for (Map<String, Object> reagentLot : ReagentLotVerificationList) {
|
|
|
|
|
+ log.info("reagentLot:"+reagentLot);
|
|
|
}
|
|
}
|
|
|
- return "";
|
|
|
|
|
|
|
+ log.info("Test Mode finished!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public String query2(Integer QIIndex,String dateRange) {
|
|
public String query2(Integer QIIndex,String dateRange) {
|