Commit 31dcb1b61c71924a4327def6e0079b3bb5b283ad

Authored by gengxiaokai
1 parent 1f4b488e26

新生儿实验室

Showing 3 changed files with 279 additions and 22 deletions

platform-dal/src/main/java/com/lyms/platform/query/BabySieveQuery.java View file @ 31dcb1b
... ... @@ -25,7 +25,25 @@
25 25 private Date applyDateEnd;//申请结束时间
26 26 private String testNumber;//血样码
27 27 private String collectHospitalId;//申请医院(采血单位)
  28 + private String sendCheckHospitalId;//送检医院
  29 + private String order;
28 30  
  31 + public String getOrder() {
  32 + return order;
  33 + }
  34 +
  35 + public void setOrder(String order) {
  36 + this.order = order;
  37 + }
  38 +
  39 + public String getSendCheckHospitalId() {
  40 + return sendCheckHospitalId;
  41 + }
  42 +
  43 + public void setSendCheckHospitalId(String sendCheckHospitalId) {
  44 + this.sendCheckHospitalId = sendCheckHospitalId;
  45 + }
  46 +
29 47 public Date getApplyDateStrat() {
30 48 return applyDateStrat;
31 49 }
... ... @@ -121,6 +139,9 @@
121 139 }
122 140 if(collectHospitalId != null){
123 141 condition = condition.and("collectHospitalId", collectHospitalId, MongoOper.IS);
  142 + }
  143 + if(sendCheckHospitalId != null){
  144 + condition = condition.and("sendCheckHospitalId", sendCheckHospitalId, MongoOper.IS);
124 145 }
125 146 Criteria c = null;
126 147 if(null != applyDateStrat){
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabySieveFacede.java View file @ 31dcb1b
... ... @@ -27,6 +27,7 @@
27 27 import com.lyms.platform.query.BabySieveQuery;
28 28 import com.lyms.platform.query.MatDeliverQuery;
29 29 import com.lyms.platform.query.PatientsQuery;
  30 +import com.mchange.v1.util.ListUtils;
30 31 import org.apache.commons.collections.CollectionUtils;
31 32 import org.apache.commons.lang.StringUtils;
32 33 import org.springframework.beans.factory.annotation.Autowired;
33 34  
34 35  
35 36  
36 37  
37 38  
38 39  
39 40  
40 41  
41 42  
... ... @@ -442,38 +443,262 @@
442 443 * @return
443 444 */
444 445 public BabySieveManagerResult getBabySieveLab(BabySieveAddRequest babySieveAddRequest){
  446 + int status = 0;
445 447 BabySieveManagerResult babySieveManagerResult = new BabySieveManagerResult();
446 448 BabySieveQuery babySieveQuery = new BabySieveQuery();
447   - if(StringUtils.isNotEmpty(babySieveAddRequest.getCollectHospitalId())){
448   - babySieveQuery.setCollectHospitalId(babySieveAddRequest.getCollectHospitalId());
449   - }
450   - if(StringUtils.isNotEmpty(babySieveAddRequest.getApplyDate())){
451   - try {
452   - babySieveQuery.setApplyDateStrat(DateUtil.getSNDate(babySieveAddRequest.getApplyDate())[0]);
453   - babySieveQuery.setApplyDateEnd(DateUtil.getSNDate(babySieveAddRequest.getApplyDate())[1]);
454   - } catch (Exception e) {
455   - e.printStackTrace();
  449 + //只能查询出送检医院为本机构的筛查信息
  450 + //babySieveQuery.setSendCheckHospitalId(autoMatchFacade.getHospitalId(babySieveAddRequest.getOperatorId()));
  451 + babySieveQuery.setSendCheckHospitalId("216");
  452 + babySieveQuery.setPage(babySieveAddRequest.getPage());
  453 + babySieveQuery.setLimit(babySieveAddRequest.getLimit());
  454 + babySieveQuery.setNeed("Need");
  455 + babySieveQuery.setOrder("created");
  456 + List<BabySieveModel> babySieveList = babySieveService.getBabySieveQuery(babySieveQuery);
  457 + List<BabySieveManager> babySieveManagerLiat = new ArrayList<BabySieveManager>();
  458 + //判断是否有筛查申请及结果数据
  459 + if(babySieveList != null && babySieveList.size() > 0){
  460 + if(StringUtils.isNotEmpty(babySieveAddRequest.getCollectHospitalId())){
  461 + babySieveQuery.setCollectHospitalId(babySieveAddRequest.getCollectHospitalId());
  462 + status = 1;
456 463 }
457   - }
458   - if(StringUtils.isNotEmpty(babySieveAddRequest.getTestNumber())){
459   - babySieveQuery.setTestNumber(babySieveAddRequest.getTestNumber());
460   - }
461   - List<BabySieveModel> list = babySieveService.getBabySieveQuery(babySieveQuery);
462   - //明天继续
  464 + if(StringUtils.isNotEmpty(babySieveAddRequest.getApplyDate())){
  465 + try {
  466 + babySieveQuery.setApplyDateStrat(DateUtil.getSNDate(babySieveAddRequest.getApplyDate())[0]);
  467 + babySieveQuery.setApplyDateEnd(DateUtil.getSNDate(babySieveAddRequest.getApplyDate())[1]);
  468 + status = 1;
  469 + } catch (Exception e) {
  470 + e.printStackTrace();
  471 + }
  472 + }
  473 + if(StringUtils.isNotEmpty(babySieveAddRequest.getTestNumber())){
  474 + babySieveQuery.setTestNumber(babySieveAddRequest.getTestNumber());
  475 + status = 1;
  476 + }
  477 + if(status == 1){
  478 + List<BabySieveModel> list = babySieveService.getBabySieveQuery(babySieveQuery);
  479 + if(list != null && list.size() > 0){
  480 + for(BabySieveModel babySieveModel : list){
  481 + BabyModelQuery babyModelQuery = new BabyModelQuery();
  482 + if(StringUtils.isNotEmpty(babySieveAddRequest.getQueryNo())){
  483 + babyModelQuery.setQueryNo(babySieveAddRequest.getQueryNo());
  484 + }
  485 + if(StringUtils.isNotEmpty(babySieveAddRequest.getSieveStatus())){
  486 + babyModelQuery.setSieveStatus(babySieveAddRequest.getSieveStatus());
  487 + }
  488 + babyModelQuery.setDataStatus(false);
  489 + babyModelQuery.setId(babySieveModel.getBabyId());
  490 + List<BabyModel> babyModelList = babyService.queryBabyWithQuery(babyModelQuery);
  491 + BabyModel model = null;
  492 + if (babyModelList != null && babyModelList.size() > 0) {
  493 + model = babyModelList.get(0);
  494 + MatDeliverQuery matDeliverQuery = new MatDeliverQuery();
  495 + matDeliverQuery.setYn(YnEnums.YES.getId());
  496 + matDeliverQuery.setParentId(model.getParentId());
  497 + List<MaternalDeliverModel> maternalDeliverModelList = matDeliverService.query(matDeliverQuery);
  498 + if(maternalDeliverModelList != null && maternalDeliverModelList.size() > 0){
  499 + BabySieveManager babySieveManager = new BabySieveManager();
  500 + babySieveManager.setId(babySieveModel.getId());
  501 + babySieveManager.setTestNumber(babySieveModel.getTestNumber());
  502 + //获取母亲基本信息
  503 + Patients patients = patientsService.findOnePatientById(model.getParentId());
  504 + //获取高危因素,高危评分
  505 + HighScoreResult highScoreResult = antenatalExaminationFacade.findLastRisk(patients.getPid(), false);
  506 + babySieveManager.setRiskFactor(highScoreResult.getHighRisk());
  507 + babySieveManager.setRiskScore(highScoreResult.getScoreStr());
  508 + if(null != patients.getDueDate()){
  509 + babySieveManager.setyChanQi(DateUtil.getyyyy_MM_dd(patients.getDueDate()));
  510 + }
  511 + babySieveManager.setPatientId(patients.getId());
  512 + babySieveManager.setCardNo(patients.getCardNo());
  513 + babySieveManager.setPhone(patients.getPhone());
  514 + babySieveManager.setBabyId(model.getId());
  515 + if(patients.getBirth() != null){
  516 + babySieveManager.setAge(DateUtil.getAge(patients.getBirth()));
  517 + }
  518 + List<MaternalDeliverModel.Baby> babies = maternalDeliverModelList.get(0).getBaby();
  519 + if(babies != null && babies.size() > 0){
  520 + for(MaternalDeliverModel.Baby baby : babies){
  521 + if(StringUtils.isNotEmpty(baby.getId()) && model.getId().equals(baby.getId())){
  522 + if(maternalDeliverModelList.get(0).getDueWeek() != null){
  523 + babySieveManager.setDueWeek(maternalDeliverModelList.get(0).getDueWeek());
  524 + }
  525 + String time = baby.getDueTime();
  526 + if(StringUtils.isNotEmpty(time)){
  527 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  528 + try {
  529 + Date date = format.parse(time);
  530 + babySieveManager.setBirthHM(new SimpleDateFormat("HH:mm").format(date));
  531 + babySieveManager.setBirthYMD(DateUtil.getyyyy_MM_dd(date));
  532 + } catch (ParseException e) {
  533 + ExceptionUtils.catchException(e, "新生儿管理娩出时间格式异常" + time);
  534 + }
  535 + }else{
  536 + babySieveManager.setBirthHM(new SimpleDateFormat("HH:mm").format(model.getBirth()));
  537 + babySieveManager.setBirthYMD(DateUtil.getyyyy_MM_dd(model.getBirth()));
  538 + }
  539 + break;
  540 + }
  541 + }
  542 + }else{
  543 + babySieveManager.setBirthHM(new SimpleDateFormat("HH:mm").format(model.getBirth()));
  544 + babySieveManager.setBirthYMD(DateUtil.getyyyy_MM_dd(model.getBirth()));
  545 + }
463 546  
  547 + babySieveManager.setBabyName(model.getName());
  548 + for (SexEnum sexEnum : SexEnum.values()) {
  549 + if (sexEnum.getId().equals(model.getSex())) {
  550 + babySieveManager.setSex(sexEnum.getText());
  551 + break;
  552 + }
  553 + }
  554 + babySieveManager.setBirthDays(DateUtil.getDays(model.getBirth(), new Date()));
  555 + Integer highRisk = model.getHighRisk();
  556 + if (new Integer(0).equals(highRisk)) {
  557 + babySieveManager.setHighRisk("健康");
  558 + }
  559 + if (new Integer(1).equals(highRisk)) {
  560 + babySieveManager.setHighRisk("高危");
  561 + }
  562 + String dueType = babySieveManager.getDueType();
  563 + if ("1".equals(dueType)) {
  564 + babySieveManager.setDueType("顺产");
  565 + }
  566 + if ("2".equals(dueType)) {
  567 + babySieveManager.setDueType("剖宫产");
  568 + }
  569 + babySieveManager.setSieveStatus(StringUtils.isEmpty(model.getSieveStatus()) ? "0" : model.getSieveStatus());
  570 + babySieveManager.setmName(model.getMname());
464 571  
  572 + babySieveManagerLiat.add(babySieveManager);
  573 + }
  574 + }
465 575  
466   - BabyModelQuery babyModelQuery = new BabyModelQuery();
467   - if(StringUtils.isNotEmpty(babySieveAddRequest.getSieveStatus())){
468   - babyModelQuery.setSieveStatus(babySieveAddRequest.getSieveStatus());
469   - }
  576 + babySieveManagerResult.setData(babySieveManagerLiat);
  577 + babySieveManagerResult.setPageInfo(babyModelQuery.getPageInfo());
  578 + babySieveManagerResult.setErrorcode(ErrorCodeConstants.SUCCESS);
  579 + babySieveManagerResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION);
  580 + return babySieveManagerResult;
470 581  
  582 + }
  583 + }else{
  584 + babySieveManagerResult.setData(babySieveManagerLiat);
  585 + babySieveManagerResult.setPageInfo(babySieveQuery.getPageInfo());
  586 + babySieveManagerResult.setErrorcode(ErrorCodeConstants.SUCCESS);
  587 + babySieveManagerResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION);
  588 + return babySieveManagerResult;
  589 + }
471 590  
472   - //查询号
473   - babyModelQuery.setQueryNo(StringUtils.isEmpty(babySieveAddRequest.getQueryNo()) ? null : babySieveAddRequest.getQueryNo());
474   - babyModelQuery.setDataStatus(false);
  591 + }else{
  592 + BabyModelQuery babyModelQuery = new BabyModelQuery();
  593 + for(BabySieveModel babySieveModel : babySieveList){
  594 + if(StringUtils.isNotEmpty(babySieveAddRequest.getQueryNo())){
  595 + babyModelQuery.setQueryNo(babySieveAddRequest.getQueryNo());
  596 + }
  597 + if(StringUtils.isNotEmpty(babySieveAddRequest.getSieveStatus())){
  598 + babyModelQuery.setSieveStatus(babySieveAddRequest.getSieveStatus());
  599 + }
  600 + babyModelQuery.setDataStatus(false);
  601 + babyModelQuery.setId(babySieveModel.getBabyId());
  602 + List<BabyModel> babyModelList = babyService.queryBabyWithQuery(babyModelQuery);
  603 + BabyModel model = null;
  604 + if (babyModelList != null && babyModelList.size() > 0) {
  605 + model = babyModelList.get(0);
  606 + MatDeliverQuery matDeliverQuery = new MatDeliverQuery();
  607 + matDeliverQuery.setYn(YnEnums.YES.getId());
  608 + matDeliverQuery.setParentId(model.getParentId());
  609 + List<MaternalDeliverModel> maternalDeliverModelList = matDeliverService.query(matDeliverQuery);
  610 + if(maternalDeliverModelList != null && maternalDeliverModelList.size() > 0){
  611 + BabySieveManager babySieveManager = new BabySieveManager();
  612 + babySieveManager.setId(babySieveModel.getId());
  613 + babySieveManager.setTestNumber(babySieveModel.getTestNumber());
  614 + //获取母亲基本信息
  615 + Patients patients = patientsService.findOnePatientById(model.getParentId());
  616 + //获取高危因素,高危评分
  617 + HighScoreResult highScoreResult = antenatalExaminationFacade.findLastRisk(patients.getPid(), false);
  618 + babySieveManager.setRiskFactor(highScoreResult.getHighRisk());
  619 + babySieveManager.setRiskScore(highScoreResult.getScoreStr());
  620 + if(null != patients.getDueDate()){
  621 + babySieveManager.setyChanQi(DateUtil.getyyyy_MM_dd(patients.getDueDate()));
  622 + }
  623 + babySieveManager.setPatientId(patients.getId());
  624 + babySieveManager.setCardNo(patients.getCardNo());
  625 + babySieveManager.setPhone(patients.getPhone());
  626 + babySieveManager.setBabyId(model.getId());
  627 + if(patients.getBirth() != null){
  628 + babySieveManager.setAge(DateUtil.getAge(patients.getBirth()));
  629 + }
  630 + List<MaternalDeliverModel.Baby> babies = maternalDeliverModelList.get(0).getBaby();
  631 + if(babies != null && babies.size() > 0){
  632 + for(MaternalDeliverModel.Baby baby : babies){
  633 + if(StringUtils.isNotEmpty(baby.getId()) && model.getId().equals(baby.getId())){
  634 + if(maternalDeliverModelList.get(0).getDueWeek() != null){
  635 + babySieveManager.setDueWeek(maternalDeliverModelList.get(0).getDueWeek());
  636 + }
  637 + String time = baby.getDueTime();
  638 + if(StringUtils.isNotEmpty(time)){
  639 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  640 + try {
  641 + Date date = format.parse(time);
  642 + babySieveManager.setBirthHM(new SimpleDateFormat("HH:mm").format(date));
  643 + babySieveManager.setBirthYMD(DateUtil.getyyyy_MM_dd(date));
  644 + } catch (ParseException e) {
  645 + ExceptionUtils.catchException(e, "新生儿管理娩出时间格式异常" + time);
  646 + }
  647 + }else{
  648 + babySieveManager.setBirthHM(new SimpleDateFormat("HH:mm").format(model.getBirth()));
  649 + babySieveManager.setBirthYMD(DateUtil.getyyyy_MM_dd(model.getBirth()));
  650 + }
  651 + break;
  652 + }
  653 + }
  654 + }else{
  655 + babySieveManager.setBirthHM(new SimpleDateFormat("HH:mm").format(model.getBirth()));
  656 + babySieveManager.setBirthYMD(DateUtil.getyyyy_MM_dd(model.getBirth()));
  657 + }
475 658  
  659 + babySieveManager.setBabyName(model.getName());
  660 + for (SexEnum sexEnum : SexEnum.values()) {
  661 + if (sexEnum.getId().equals(model.getSex())) {
  662 + babySieveManager.setSex(sexEnum.getText());
  663 + break;
  664 + }
  665 + }
  666 + babySieveManager.setBirthDays(DateUtil.getDays(model.getBirth(), new Date()));
  667 + Integer highRisk = model.getHighRisk();
  668 + if (new Integer(0).equals(highRisk)) {
  669 + babySieveManager.setHighRisk("健康");
  670 + }
  671 + if (new Integer(1).equals(highRisk)) {
  672 + babySieveManager.setHighRisk("高危");
  673 + }
  674 + String dueType = babySieveManager.getDueType();
  675 + if ("1".equals(dueType)) {
  676 + babySieveManager.setDueType("顺产");
  677 + }
  678 + if ("2".equals(dueType)) {
  679 + babySieveManager.setDueType("剖宫产");
  680 + }
  681 + babySieveManager.setSieveStatus(StringUtils.isEmpty(model.getSieveStatus()) ? "0" : model.getSieveStatus());
  682 + babySieveManager.setmName(model.getMname());
476 683  
  684 + babySieveManagerLiat.add(babySieveManager);
  685 + }
  686 + }
  687 + }
  688 +
  689 + babySieveManagerResult.setData(babySieveManagerLiat);
  690 + babySieveManagerResult.setPageInfo(babyModelQuery.getPageInfo());
  691 + babySieveManagerResult.setErrorcode(ErrorCodeConstants.SUCCESS);
  692 + babySieveManagerResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION);
  693 + return babySieveManagerResult;
  694 + }
  695 + }else{//lyms_baby_sieve表中无数据
  696 + babySieveManagerResult.setData(babySieveManagerLiat);
  697 + babySieveManagerResult.setPageInfo(babySieveQuery.getPageInfo());
  698 + babySieveManagerResult.setErrorcode(ErrorCodeConstants.SUCCESS);
  699 + babySieveManagerResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION);
  700 + return babySieveManagerResult;
  701 + }
477 702 return babySieveManagerResult;
478 703 }
479 704  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabySieveManager.java View file @ 31dcb1b
... ... @@ -70,6 +70,17 @@
70 70 //母亲姓名
71 71 private String mName;
72 72  
  73 + //试验号
  74 + private String testNumber;
  75 +
  76 + public String getTestNumber() {
  77 + return testNumber;
  78 + }
  79 +
  80 + public void setTestNumber(String testNumber) {
  81 + this.testNumber = testNumber;
  82 + }
  83 +
73 84 public Integer getAge() {
74 85 return age;
75 86 }