From 5c69e8ccc4911d0915dea4bf27d4e1a0f14ee86c Mon Sep 17 00:00:00 2001 From: liquanyu Date: Tue, 2 May 2017 20:25:38 +0800 Subject: [PATCH] update --- .../main/resources/mainOrm/master/MasterLis.xml | 9 +-- .../com/lyms/platform/query/PatientsQuery.java | 20 +++++++ .../operate/web/controller/LisController.java | 26 ++++++++- .../platform/operate/web/facade/LisFacade.java | 68 ++++++++++++++++------ 4 files changed, 97 insertions(+), 26 deletions(-) diff --git a/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml b/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml index ce00c75..eb4f618 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml @@ -108,14 +108,9 @@ AND LIS_ID = #{lisId} - - AND VCCARDNO = #{vcCardNo} + + AND (VCCARDNO = #{vcCardNo} OR PHONE = #{phone}) - - - AND PHONE = #{phone} - - AND HOSPITAL_ID = #{hospitalId} diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index dc81083..07db86e 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -212,6 +212,15 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private String phoneOrCert; private String[] pc; + private String[] pv; + + public String[] getPv() { + return pv; + } + + public void setPv(String[] pv) { + this.pv = pv; + } public String[] getPc() { return pc; @@ -1039,6 +1048,17 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } } + if (null != pv) { + MongoCondition c = MongoCondition.newInstance(); + MongoCondition con1 = MongoCondition.newInstance("phone", pc[0], MongoOper.IS); + MongoCondition con2 = MongoCondition.newInstance("vcCardNo", pc[1], MongoOper.IS); + if(c1!=null) { + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con2}).getCriteria()); + }else { + c1 = c.orCondition(new MongoCondition[]{con1, con2}).getCriteria(); + } + } + if (CollectionUtils.isNotEmpty(fmHospitalQueryList)) { MongoCondition c = MongoCondition.newInstance(); MongoCondition con1 = MongoCondition.newInstance("hospitalId", fmHospitalQueryList, MongoOper.IN); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java index 00381e3..3d1f813 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java @@ -108,11 +108,12 @@ public class LisController extends BaseController { @RequestMapping(method = RequestMethod.GET, value = "/getLisAndRisData") @ResponseBody @TokenRequired - public BaseResponse getLisAndRisData(@RequestParam("vcCardNo") String vcCardNo, + public BaseResponse getLisAndRisData(@RequestParam(required = false) String vcCardNo, @RequestParam("sortType") Integer sortType, + @RequestParam(required = false) String phone, HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return lisFacade.getLisAndRisData(vcCardNo, sortType, loginState.getId()); + return lisFacade.getLisAndRisData(vcCardNo,phone, sortType, loginState.getId()); } @@ -140,6 +141,27 @@ public class LisController extends BaseController { return lisFacade.getAppLisList(patientId, status, page, limit); } + + /** + * 查询每一个检验明细包括检验项的内容 + * @param id + * @param token + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getAppLisById") + @ResponseBody + public BaseResponse getAppLisById(@RequestParam("id") Integer id, + @RequestHeader("Authorization") String token) { + + if (!"3d19960bf3e81e7d816c4f26051c49ba".equals(token)) + { + ExceptionUtils.catchException("The request token is " + token); + return new BaseResponse().setErrorcode(ErrorCodeConstants.TOKEN_EXPIRE).setErrormsg("Token is error"); + } + + return lisFacade.getAppLisById(id); + } + /** * 更新lis为已经推送状态 * @param ids diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java index f65805d..5f73551 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java @@ -76,12 +76,12 @@ public class LisFacade { * @param sortType 排序类型(1,根据日期分类;2,根据检查项目分类) * @return */ - public BaseResponse getLisAndRisData(String vcCardNo,Integer sortType,Integer userId) { + public BaseResponse getLisAndRisData(String vcCardNo,String phone,Integer sortType,Integer userId) { List checkByDate=new ArrayList(); if(1 == sortType){ List result = new ArrayList<>(); //获取lis数据 - result.addAll(queryLisCheckList(vcCardNo,userId)); + result.addAll(queryLisCheckList(vcCardNo,phone,userId)); //result.addAll(queryPacsCheckList(cardNo)); List keyList = new ArrayList<>(); // 去重 @@ -163,7 +163,7 @@ public class LisFacade { } }else{ List result = new ArrayList(); - result.addAll(queryLisCheckList(vcCardNo,userId)); + result.addAll(queryLisCheckList(vcCardNo,phone,userId)); //result.addAll(queryPacsCheckList(cardNo)); List keyList = new ArrayList<>(); List listtype=new ArrayList<>(); @@ -266,11 +266,12 @@ public class LisFacade { * 2、再根据pid查询到这个孕妇在区域所有的建档记录 * 3、分别取每个建档中的医院id和就诊卡号在lis记录表中查询数据 * 4、封装lis数据 - * @param vcCardNo + * @param vcCardNo 就诊卡号 + * @param phone 手机号码 * @param userId 用户ID * @return */ - public List queryLisCheckList(String vcCardNo,Integer userId) { + public List queryLisCheckList(String vcCardNo,String phone,Integer userId) { //保存这个人在所有医院的lis记录 List result = new ArrayList<>(); @@ -285,10 +286,11 @@ public class LisFacade { organizationQuery.setYn(YnEnums.YES.getId()); PatientsQuery patientsQuery=new PatientsQuery(); - patientsQuery.setVcCardNo(vcCardNo); + String[] strs = new String[]{phone, vcCardNo}; + patientsQuery.setPv(strs); patientsQuery.setHospitalId(hospitalId); patientsQuery.setYn(YnEnums.YES.getId()); - //通过医院id和就诊卡号查询到孕妇信息 + //通过医院id和就诊卡号或者手机号码查询到孕妇信息 List list= patientsService.queryPatient(patientsQuery); if(CollectionUtils.isNotEmpty(list)){ @@ -305,7 +307,7 @@ public class LisFacade { if (pat != null && StringUtils.isNotEmpty(pat.getHospitalId())) { - if (StringUtils.isNotEmpty(pat.getVcCardNo()) && StringUtils.isNotEmpty(pat.getPhone())) + if (StringUtils.isEmpty(pat.getVcCardNo()) && StringUtils.isEmpty(pat.getPhone())) { continue; } @@ -407,6 +409,7 @@ public class LisFacade { patientsQuery.setId(patientId); patientsQuery.setYn(YnEnums.YES.getId()); List list= patientsService.queryPatient(patientsQuery); + List lises = null; if (CollectionUtils.isNotEmpty(list)) { Patients patients = list.get(0); @@ -422,7 +425,7 @@ public class LisFacade { query.setStatus(status); query.setHospitalId(patients.getHospitalId()); - List lises = lisService.queryLisDataByQuery(query); + lises = lisService.queryLisDataByQuery(query); if (CollectionUtils.isNotEmpty(lises)) { for(LisReportModel lisReportModel : lises) @@ -430,20 +433,20 @@ public class LisFacade { String json = lisReportModel.getItemJson(); if (StringUtils.isNotEmpty(json)) { - List items = JsonUtil.toList(json,LisReportItemModel.class); - lisReportModel.setItems(items); + List items = JsonUtil.toList(json, LisReportItemModel.class); + lisReportModel.setItems(items.size() > 3 ? items.subList(0, 3) : items.subList(0,items.size())); lisReportModel.setItemJson(null); } } } - BaseObjectResponse objectResponse = new BaseObjectResponse(); - objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); - objectResponse.setData(lises); - objectResponse.setErrormsg("成功"); - return objectResponse; + } - return null; + BaseObjectResponse objectResponse = new BaseObjectResponse(); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setData(lises); + objectResponse.setErrormsg("成功"); + return objectResponse; } /** @@ -470,4 +473,35 @@ public class LisFacade { } return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); } + + /** + * 通过id查询到lis检查报告详情 + * @param id + * @return + */ + public BaseResponse getAppLisById(Integer id) { + + LisReportQuery query = new LisReportQuery(); + query.setId(id); + + List lises = lisService.queryLisDataByQuery(query); + if (CollectionUtils.isNotEmpty(lises)) + { + for(LisReportModel lisReportModel : lises) + { + String json = lisReportModel.getItemJson(); + if (StringUtils.isNotEmpty(json)) + { + List items = JsonUtil.toList(json, LisReportItemModel.class); + lisReportModel.setItems(items); + lisReportModel.setItemJson(null); + } + } + } + BaseObjectResponse objectResponse = new BaseObjectResponse(); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setData(lises); + objectResponse.setErrormsg("成功"); + return objectResponse; + } } \ No newline at end of file -- 1.8.3.1