From 3988aa2a8dabb1e3939098b79ef0837e38af7fe0 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Fri, 3 Jan 2020 17:39:21 +0800 Subject: [PATCH] update --- .../com/lyms/hospitalapi/pojo/QhdZyBaseInfo.java | 17 +++++ .../lyms/hospitalapi/qhdfy/QhdfyHisService.java | 29 ++++++++ .../operate/web/controller/ViewController.java | 21 ++++++ .../platform/operate/web/facade/ViewFacade.java | 86 ++++++++++++++++++++++ .../service/impl/DefectiveChildServiceImpl.java | 4 +- 5 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/QhdZyBaseInfo.java diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/QhdZyBaseInfo.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/QhdZyBaseInfo.java new file mode 100644 index 0000000..b12210d --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/QhdZyBaseInfo.java @@ -0,0 +1,17 @@ +package com.lyms.hospitalapi.pojo; + +/** + * Created by Administrator on 2020-01-03. + */ +public class QhdZyBaseInfo { + + private String cardNo; + + public String getCardNo() { + return cardNo; + } + + public void setCardNo(String cardNo) { + this.cardNo = cardNo; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java index 1d39de0..9f2f8e5 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java @@ -1007,4 +1007,33 @@ public class QhdfyHisService { } + /** + * + * 根据病历号(住院号)查询对应人的身份证号码 + * @param blNo + * @return + */ + public String queryPatientCardNoByBlNo(String blNo) { + + Connection conn = null; + String sql = "select blh,syxh,hzxm,birth,birthtime,sex from VW_LYMS_XSE_BRSYK where "; + try { + + conn = com.lyms.hospitalapi.qhdfy.ConnTools.makeHisConnection(); + QueryRunner queryRunner = new QueryRunner(); + + List list = queryRunner.query(conn, sql, new BeanListHandler(QhdZyBaseInfo.class)); + if (CollectionUtils.isNotEmpty(list)) + { + QhdZyBaseInfo info = list.get(0); + return (info != null && StringUtils.isNotEmpty(info.getCardNo())) ? info.getCardNo().trim() : ""; + } + } catch (Exception e) { + ExceptionUtils.catchException(e, "queryPatientCardNoByBlNo error. sql:" + sql); + } finally { + DbUtils.closeQuietly(conn); + } + return ""; + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java index 0a736f2..2e4252b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java @@ -988,4 +988,25 @@ public class ViewController extends BaseController { return viewFacade.getCheckList(id); } + + /** + * 因秦皇岛市妇幼保健院新筛(串联质谱)业务需要,现需要与第三方软件进行数据对接, + * 通过请求接口返回本院新生儿及家长的基本信息。 + * @param blNo + * @param Authorization + * @return + */ + @RequestMapping(value = "/getBabyScreeningInfo", method = RequestMethod.GET) + @ResponseBody + public BaseObjectResponse getBabyScreeningInfo(@RequestParam(required = true) String blNo, + @RequestHeader(required = true) String Authorization) { + + if (StringUtils.isEmpty(Authorization) || !"1a8152fc04c86b9cca3244e0e52ecb33".equals(Authorization)) + { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.TOKEN_EXPIRE).setErrormsg("Authorization验证失败"); + } + + return viewFacade.getBabyScreeningInfo(blNo); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java index fa72645..0b53c33 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java @@ -17,6 +17,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import com.lyms.hospitalapi.qhdfy.QhdfyHisService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.map.HashedMap; @@ -231,6 +232,12 @@ public class ViewFacade { @Autowired private BabyEvaluationCriterionService babyEvaluationCriterionService; + + + @Autowired + private QhdfyHisService qhdfyHisService; + + /** * 建档查询 * @@ -6659,4 +6666,83 @@ public class ViewFacade { } + public BaseObjectResponse getBabyScreeningInfo(String blNo) { + + //String cardNo = qhdfyHisService.queryPatientCardNoByBlNo(blNo); + String cardNo = blNo; + System.out.println("query qhd cardno " + cardNo); + if (StringUtils.isEmpty(cardNo)) + { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.DATA_EXIST).setErrormsg("住院信息中没有身份证信息"); + } + Map data = new HashMap(); + + PersonModel personModel = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(cardNo).and("type").ne(2)), PersonModel.class); + if (personModel != null) { + String personModelId = personModel.getId(); + List models = mongoTemplate.find(Query.query(Criteria.where("pid").is(personModelId)). + with(new Sort(Sort.Direction.DESC, "created")), MaternalDeliverModel.class); + if (CollectionUtils.isNotEmpty(models)) { + MaternalDeliverModel deliverModel = models.get(0); + String parentId = deliverModel.getParentId(); + Patients patientsModel = mongoTemplate.findOne(Query.query(Criteria.where("id").is(parentId)), Patients.class); + if (patientsModel != null) { + data.put("blNo",blNo);//住院号 + data.put("mommyName",patientsModel.getUsername()); + data.put("phone",patientsModel.getPhone()); + + String dueWeek = ""; + String week = (patientsModel.getFmWeek() / 7) + ""; + int day = (patientsModel.getFmWeek() % 7); + dueWeek = "孕" + week + "周" + (day > 0 ? "+" + day + "天" : ""); + Map handDueWeekMap = deliverModel.getHandDueWeek(); + if (handDueWeekMap != null && handDueWeekMap.size() > 0 && handDueWeekMap.get("week") != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(String.valueOf(handDueWeekMap.get("week")))) + { + dueWeek = "孕"+String.valueOf(handDueWeekMap.get("week"))+"周"+((handDueWeekMap.get("day") == null + || String.valueOf(handDueWeekMap.get("day")).equals("0") || String.valueOf(handDueWeekMap.get("day")).equals("")) ? "" : "+"+String.valueOf(handDueWeekMap.get("day"))+"天" ); + } + data.put("week",dueWeek); + + List babies = new ArrayList<>(); + for (MaternalDeliverModel.Baby baby : deliverModel.getBaby()) + { + Map b = new HashMap(); + + Date dueTime = DateUtil.parseYMDHM(baby.getDueTime()); + b.put("dueTime",dueTime); + b.put("weight",baby.getBabyWeight()); + b.put("hegint",baby.getBabyHeight()); + b.put("sex",SexEnum.getTextById( + Integer.parseInt(baby.getBabyGender()))); + babies.add(b); + } + + data.put("babies",babies); + + data.put("cardNo",patientsModel.getCardNo()); + String registered = ""; //居住性质 + if(StringUtils.isNotEmpty(patientsModel.getPcensusTypeId())){ + patientsModel.getPcensusTypeId(); + } + + String live = ""; //户口性质 + if(StringUtils.isNotEmpty(patientsModel.getPliveTypeId())){ + live = patientsModel.getPliveTypeId(); + } + + data.put("registered",registered); + data.put("live",live); + } + } + else + { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.DATA_EXIST).setErrormsg("孕产婴系统没有找到对应的产妇分娩信息"); + } + } + else + { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.DATA_EXIST).setErrormsg("孕产婴系统没有找到对应的产妇"); + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefectiveChildServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefectiveChildServiceImpl.java index 7c9fa66..7985fd2 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefectiveChildServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefectiveChildServiceImpl.java @@ -253,10 +253,12 @@ public class DefectiveChildServiceImpl implements DefectiveChildService { */ @Override public BaseResponse getPatientInfoByIdCard(CommonParamRequest param,Integer userId) { + String hospitalId = autoMatchFacade.getHospitalId(userId); String inHospitalId = param.getCardNo(); List results = new LinkedList<>(); if (StringUtils.isNotEmpty(inHospitalId)) { - List defectiveChildModels = mongoTemplate.find(Query.query(Criteria.where("inHospitalId").is(inHospitalId)), DefectiveChildModel.class); + List defectiveChildModels = mongoTemplate.find(Query.query(Criteria.where("inHospitalId").is(inHospitalId). + and("hospitalId").is(hospitalId)), DefectiveChildModel.class); for (DefectiveChildModel model : defectiveChildModels) { DefectiveChildModelResult result = getResultByModel(model); results.add(result); -- 1.8.3.1