From bc453eaff1e5e71da69c2cdf04d4e610616c0a76 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Thu, 8 Nov 2018 13:36:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E7=AD=9B=E7=BB=9F=E8=AE=A1=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/biz/service/DiagnosisService.java | 5 ++ .../lyms/platform/biz/service/SieveService.java | 4 + .../com/lyms/platform/query/DiagnosisQuery.java | 12 +++ .../java/com/lyms/platform/query/SieveQuery.java | 13 +++ .../com/lyms/hospitalapi/rcfy/RcGlxtService.java | 22 ++--- .../operate/web/controller/SieveController.java | 16 ++++ .../platform/operate/web/facade/SieveFacade.java | 95 ++++++++++++++++++++++ .../operate/web/request/CqSieveQueryRequest.java | 48 +++++++++++ 8 files changed, 205 insertions(+), 10 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/DiagnosisService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/DiagnosisService.java index bc1d834..a628a1a 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/DiagnosisService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/DiagnosisService.java @@ -30,6 +30,11 @@ public class DiagnosisService { return diagnosisDao.queryDiagnosis(query.addOrder(Sort.Direction.DESC, "created")); } + public int queryDiagnosisCount(DiagnosisQuery diagnosisQuery){ + MongoQuery query = diagnosisQuery.convertToQuery(); + return diagnosisDao.queryDiagnosisCount(query); + } + public DiagnosisModel findOneDiagnosisById(String id){ return diagnosisDao.findOneDiagnosisById(id); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java index 85e59e7..6463f91 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java @@ -78,6 +78,10 @@ public class SieveService { return iSieveDao.queryList(mongoQuery.addOrder(Sort.Direction.DESC, "modified")); } + public int queryListCount(SieveQuery sieveQuery) { + return (int) iSieveDao.count(sieveQuery.convertToQuery()); + } + public SieveModel findOneById(String id) { return iSieveDao.findOneById(id); } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/DiagnosisQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/DiagnosisQuery.java index 7c1687f..f633709 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/DiagnosisQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/DiagnosisQuery.java @@ -25,6 +25,7 @@ public class DiagnosisQuery extends BaseQuery implements IConvertToNativeQuery { private String queryNo;//查询号 private String order;//排序字段 private String hospitalId;//医院ID + private List hospitalIds;//医院ID private String cardNo;//身份证 private String vcCardNo;//就诊卡号 private String diaResult;//诊断结果 @@ -41,6 +42,14 @@ public class DiagnosisQuery extends BaseQuery implements IConvertToNativeQuery { private String collectHospitalId;//申请医院 private List parentIdList;//孕妇ID集合 + public List getHospitalIds() { + return hospitalIds; + } + + public void setHospitalIds(List hospitalIds) { + this.hospitalIds = hospitalIds; + } + public List getParentIdList() { return parentIdList; } @@ -230,6 +239,9 @@ public class DiagnosisQuery extends BaseQuery implements IConvertToNativeQuery { if(null != id){ condition = condition.and("id", id, MongoOper.IS); } + if(null != hospitalIds && hospitalIds.size() > 0){ + condition = condition.and("hospitalId", hospitalIds, MongoOper.IS); + } if(null != parentId){ condition = condition.and("parentId", parentId, MongoOper.IS); } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/SieveQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/SieveQuery.java index 9676172..8de1ceb 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/SieveQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/SieveQuery.java @@ -20,6 +20,7 @@ public class SieveQuery extends BaseQuery implements IConvertToNativeQuery { private String id; private String hospitalId; + private List hospitalIds; //患者id private String parentId; //姓名 @@ -242,6 +243,14 @@ public class SieveQuery extends BaseQuery implements IConvertToNativeQuery { this.lastMensesStart = lastMensesStart; } + public List getHospitalIds() { + return hospitalIds; + } + + public void setHospitalIds(List hospitalIds) { + this.hospitalIds = hospitalIds; + } + @Override public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); @@ -258,6 +267,10 @@ public class SieveQuery extends BaseQuery implements IConvertToNativeQuery { condition = condition.and("hospitalId", hospitalId, MongoOper.IS); } + if (null != hospitalIds && hospitalIds.size() > 0) { + condition = condition.and("hospitalId", hospitalIds, MongoOper.IN); + } + if (null != sieveHospitalId) { condition = condition.and("sieveHospitalId", sieveHospitalId, MongoOper.IS); } diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/rcfy/RcGlxtService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/rcfy/RcGlxtService.java index a053100..8292d03 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/rcfy/RcGlxtService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/rcfy/RcGlxtService.java @@ -236,7 +236,7 @@ public class RcGlxtService { result+= model.getHivktSelect().equals("1") ? "(初诊结果)" : "(已确诊)"; } ps.setString(10, result); - ps.setString(11, CommonsHelper.getHospitalName(model.getHospitalId(), organizationService)); + ps.setString(11, hospitalsMap.get(model.getHospitalId())); ps.setString(12, StringUtils.isNum(model.getProdDoctor()) ? CommonsHelper.getUserName(model.getProdDoctor(), usersService) : model.getProdDoctor()); ps.setString(13, CommonsHelper.getUserName(model.getOperator()+"", usersService)); ps.setTimestamp(14, new Timestamp(model.getCreated().getTime())); @@ -612,7 +612,7 @@ public class RcGlxtService { ps.setString(13, null); ps.setString(14, highScoreResult.gethighRiskStr()); ps.setString(15, null); - ps.setString(16, null); + ps.setString(16, CommonsHelper.getHospitalName(patients.getHospitalId(), organizationService)); ps.setString(17, null); ps.setString(18, null); ps.setString(19, null); @@ -733,7 +733,7 @@ public class RcGlxtService { ps.setString(5, StringUtils.isNum(model.getOperatorId()) ? CommonsHelper.getUserName(model.getOperatorId(), usersService) : model.getOperatorId()); - ps.setString(6, CommonsHelper.getHospitalName(model.getHospitalId(), organizationService)); + ps.setString(6, hospitalsMap.get(model.getHospitalId())); ps.setString(7,resident.getUsername()); ps.setTimestamp(8, new Timestamp(model.getDrawTime().getTime())); ps.setString(9, StringUtils.isNum(model.getOperatorId()) ? CommonsHelper.getUserName(model.getOperatorId(), usersService) : model.getOperatorId()); @@ -972,8 +972,8 @@ public class RcGlxtService { //孕妇分娩信息 String fmInfoSql = "insert into NEW_BORN_INFO(ID,PUERPERANT_ID,PUERPERANT_NAME,PUERPERANT_ID_CARD,CHILD_NAME,GENDER,BIRTH_TIME,BIRTH_HEIGHT," + "BIRTH_GEST_WEEKS,BIRTH_WEIGHT,APGAR_SCORE,WEAKNESS,HOSPITAL,MIDWIFE_DOCTOR,PREGNANT_ADDRESS," + - "CREATE_TIME,UPDATE_TIME) " + - " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + "CREATE_TIME,UPDATE_TIME,SIGN_ORG_NAME) " + + " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; ps = conn.prepareStatement(fmInfoSql); ps.setString(1,baby.getId() == null ? StringUtils.uuid() : baby.getId()); ps.setString(2,model.getId()); @@ -1002,7 +1002,7 @@ public class RcGlxtService { } ps.setString(11,p1Score == null ? null : p1Score); ps.setString(12,null);//缺陷 - ps.setString(13, CommonsHelper.getHospitalName(model.getFmHospital(), organizationService)); + ps.setString(13, hospitalsMap.get(model.getFmHospital())); ps.setString(14, CommonsHelper.getUserName(model.getDeliverDoctor(), usersService)); String postAddress = CommonsHelper.getResidence(patients.getProvincePostRestId(), patients.getCityPostRestId(), patients.getAreaPostRestId(), patients.getStreetPostRestId(), patients.getAddressPostRest(), basicConfigService); @@ -1010,6 +1010,7 @@ public class RcGlxtService { ps.setTimestamp(16, new Timestamp(model.getCreated().getTime())); ps.setTimestamp(17, new Timestamp(model.getModified().getTime())); + ps.setString(18, CommonsHelper.getHospitalName(model.getFmHospital(), organizationService)); int saveRcNewBabyInfoCount = ps.executeUpdate(); System.out.println("saveRcNewBabyInfo="+saveRcNewBabyInfoCount); @@ -1138,7 +1139,7 @@ public class RcGlxtService { ps.setString(11, StringUtils.isNum(model.getDeliverDoctor()) ? CommonsHelper.getUserName(model.getDeliverDoctor(), usersService) : model.getDeliverDoctor()); - ps.setString(12, CommonsHelper.getHospitalName(model.getFmHospital(), organizationService)); + ps.setString(12, hospitalsMap.get(model.getFmHospital())); ps.setString(13, CommonsHelper.getUserName(model.getDeliverDoctor(), usersService)); ps.setTimestamp(14, new Timestamp(model.getCreated().getTime())); @@ -1183,8 +1184,8 @@ public class RcGlxtService { "REGISTER_ADDRESS, REGISTER_PROVINCE,REGISTER_CITY,REGISTER_COUNTRY,REGISTER_TOWN,REGISTER_HOURCE_NO," + "BIRTH_DATE,CONTACT_NAME,CONTACT_TEL_NO,HUSBAND_NAME,HUSBAND_ID_CARD,HUSBAND_TEL,HUSBAND_CERTIFICATE_TYPE," + "HUSBAND_CERTIFICATE_NO,HUSBAND_RESIDENCE_ADDRESS,HUSBAND_COMPANY," + - "STATUS,DATA_FROM_HOSPITAL,CREATE_TIME,UPDATE_TIME,OPERATOR,OPERAT_TIME,HEALTH_RECORD,TELPHONE) " + - " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + "STATUS,DATA_FROM_HOSPITAL,CREATE_TIME,UPDATE_TIME,OPERATOR,OPERAT_TIME,HEALTH_RECORD,TELPHONE,BELONG_HOSPITAL) " + + " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; ps = conn.prepareStatement(baseInfoSql); ps.setString(1,patients.getId()); ps.setString(2,patients.getUsername()); @@ -1301,7 +1302,7 @@ public class RcGlxtService { } ps.setString(30, status); - ps.setString(31, CommonsHelper.getHospitalName(patients.getHospitalId(), organizationService)); + ps.setString(31, hospitalsMap.get(patients.getHospitalId())); ps.setTimestamp(32, new Timestamp(patients.getCreated().getTime())); ps.setTimestamp(33, patients.getModified() == null ? new Timestamp(patients.getCreated().getTime()) : new Timestamp(patients.getModified().getTime())); @@ -1309,6 +1310,7 @@ public class RcGlxtService { ps.setTimestamp(35, new Timestamp(patients.getCreated().getTime())); ps.setString(36, patients.getFileCode()); ps.setString(37, patients.getPhone()); + ps.setString(38, hospitalsMap.get(patients.getHospitalId())); int saveCount = ps.executeUpdate(); System.out.println("saveCount="+saveCount); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java index 02431f1..7e7cde5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java @@ -273,4 +273,20 @@ public class SieveController extends BaseController { public BaseResponse saveCqRemark(@RequestParam(required = true)String cqId,@RequestParam(required = false)String csRemarkTypeId,@RequestParam(required = false)String detail) { return sieveFacade.saveCqRemark(cqId,csRemarkTypeId,detail); } + + + /** + * 区域产前诊断及新生儿疾病筛查统计报表 + * @param cqSieveQueryRequest + * @param request + * @param response + */ + @ResponseBody + @RequestMapping(value = "/queryCqsievesReport",method = RequestMethod.GET) + @TokenRequired + public BaseResponse queryCqsievesReport(@Valid CqSieveQueryRequest cqSieveQueryRequest,HttpServletRequest request,HttpServletResponse response){ + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return sieveFacade.queryCqsievesReport(cqSieveQueryRequest, loginState.getId()); + } + } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java index d1efef5..657253a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java @@ -1108,4 +1108,99 @@ public class SieveFacade { } return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } + + public BaseResponse queryCqsievesReport(CqSieveQueryRequest cqSieveQueryRequest, Integer userId) { + //获取用户权限医院和筛选条件的交集 + List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, cqSieveQueryRequest.getProvinceId(), + cqSieveQueryRequest.getCityId(), cqSieveQueryRequest.getAreaId()); + + + BasicConfigQuery basicQuery = new BasicConfigQuery(); + basicQuery.setYn(YnEnums.YES.getId()); + basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd"); + + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(cqSieveQueryRequest.getProvinceId())) { + basicQuery.setParentId(cqSieveQueryRequest.getProvinceId()); + } + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(cqSieveQueryRequest.getCityId())) { + basicQuery.setParentId(cqSieveQueryRequest.getCityId()); + } + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(cqSieveQueryRequest.getAreaId())) { + basicQuery.setParentId(cqSieveQueryRequest.getAreaId()); + } + + //x轴标题数据 + List xAxis = new ArrayList<>(); + + //获取地址列表 + List configList = basicConfigService.queryBasicConfig(basicQuery); + + if (CollectionUtils.isNotEmpty(configList)) { + for (BasicConfig addr : configList) { + xAxis.add(addr.getName()); + } + } + + //分类标题 + List titleItems = new LinkedList<>(); + titleItems.add("产筛人数"); + titleItems.add("诊断人数"); + + //图标数据 + List> series = new LinkedList<>(); + + SieveQuery sieveQuery = new SieveQuery(); + sieveQuery.setHospitalIds(currentUserHospPermissions); + sieveQuery.setYn(YnEnums.YES.getId()); + sieveQuery.setStatus(3); + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getTime())) { + String[] dates = cqSieveQueryRequest.getTime().split(" - "); + sieveQuery.setResultTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + sieveQuery.setResultTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); + } + } + + int sieveFinishCount = sieveService.queryListCount(sieveQuery); + List csItems = new ArrayList<>(); + csItems.add(String.valueOf(sieveFinishCount)); + Map map = new HashMap(); + map.put("name", "产筛人数"); + map.put("type", "bar"); + map.put("data", csItems); + + + DiagnosisQuery diagnosisQuery = new DiagnosisQuery(); + diagnosisQuery.setHospitalIds(currentUserHospPermissions); + + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getTime())) { + String[] dates = cqSieveQueryRequest.getTime().split(" - "); + sieveQuery.setResultTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + sieveQuery.setResultTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); + } + } + + int diagnosisCount = diagnosisService.queryDiagnosisCount(diagnosisQuery); + List dItems = new ArrayList<>(); + csItems.add(String.valueOf(diagnosisCount)); + Map dMap = new HashMap(); + map.put("name", "产筛人数"); + map.put("type", "bar"); + map.put("data", dItems); + series.add(dMap); + + Map datas = new HashMap<>(); + datas.put("series", series); + datas.put("xAxis", xAxis); + datas.put("legend", titleItems); + return new BaseObjectResponse() + .setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas); + } + + @Autowired + private BasicConfigService basicConfigService; + + @Autowired + private AreaCountFacade areaCountFacade; } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CqSieveQueryRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CqSieveQueryRequest.java index 2a1c82a..08c4d19 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CqSieveQueryRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CqSieveQueryRequest.java @@ -63,6 +63,54 @@ public class CqSieveQueryRequest extends BasePageQueryRequest{ //标本号 private String number; + //省市区地址 + private String provinceId; + private String cityId; + private String areaId; + private String streetId; + + private String time; + + public String getProvinceId() { + return provinceId; + } + + public void setProvinceId(String provinceId) { + this.provinceId = provinceId; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getStreetId() { + return streetId; + } + + public void setStreetId(String streetId) { + this.streetId = streetId; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getCityId() { + return cityId; + } + + public void setCityId(String cityId) { + this.cityId = cityId; + } + public String getNumber() { return number; } -- 1.8.3.1