Commit 77270c65830f1f6920a9da1b2193d34737f79220

Authored by wtt
1 parent 392ea8d9c6

秦皇岛双胎问题update

Showing 1 changed file with 101 additions and 139 deletions

platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java View file @ 77270c6
... ... @@ -111,25 +111,15 @@
111 111 babyMap.put("1", b5);
112 112 babyMap.put("0", b6);
113 113 }
  114 +
114 115 public void fmTimerWork() {
115   - /* SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  116 + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
116 117 Date end = new Date();
117 118 Date start = new Date(end.getTime() - 1000 * 60 * 60);
118 119 String startStr = fmt.format(start);
119 120 String endStr = fmt.format(end);
120 121 System.out.println("start=" + startStr + "end=" + endStr);
121   - queryFmPatient(startStr, endStr, null);*/
122   -
123   - Date dNow = new Date();
124   - Date dBefore = new Date();
125   - Calendar calendar = Calendar.getInstance();
126   - calendar.setTime(dNow);
127   - calendar.add(Calendar.DAY_OF_MONTH, -1);
128   - dBefore = calendar.getTime(); //得到前一天的时间
129   - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
130   - String startStr = sdf.format(dBefore);
131   - startStr = startStr+" 00:00:00";
132   - String endStr = startStr.substring(0,10)+" 23:59:59";
  122 +// queryFmPatient(startStr, endStr, null);
133 123 queryFmPatientPolyembryony(startStr, endStr, null);
134 124 }
135 125  
136 126  
137 127  
138 128  
139 129  
... ... @@ -663,23 +653,33 @@
663 653 String cloumns = getPolyembryonyStr();
664 654 try {
665 655  
666   - String sql = "select " + cloumns + " from JHMK_FMJL_LYMS where CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) > CONVERT(DATETIME,'" + start
  656 + String sql = "select " + cloumns + " from JHMK_FMJL_LYMS where CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) > CONVERT(DATETIME,'" + start
667 657 + "', 120) and CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) <= CONVERT(DATETIME,'" + end
668 658 + "', 120) and JSZ IS NOT NULL AND SC IS NOT NULL AND TZ IS NOT NULL AND YFZ IS NOT NULL AND SH IS NOT NULL AND CCQK IS NOT NULL AND CCQK <> '' ";
669 659  
670 660 if (StringUtils.isNotEmpty(syxh)) {
671   - sql += " and SYXH= " + syxh ;
  661 + sql += " and SYXH= " + syxh;
672 662 }
673   -
674   - System.out.println("0==========="+sql);
675 663 List<FmItem> list = queryRunner.query(conn, sql, new BeanListHandler<FmItem>(FmItem.class));
676 664 if (CollectionUtils.isNotEmpty(list)) {
677 665 for (FmItem item : list) {
678   - try {
679   - if (!("活产".equals(item.getCcqk()) || "死胎".equals(item.getCcqk()))) {
  666 + String sql1 = "select " + cloumns + " from JHMK_FMJL_LYMS where CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) > CONVERT(DATETIME,'" + start
  667 + + "', 120) and CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) <= CONVERT(DATETIME,'" + end
  668 + + "', 120) and JSZ IS NOT NULL AND SC IS NOT NULL AND TZ IS NOT NULL AND YFZ IS NOT NULL AND SH IS NOT NULL AND CCQK IS NOT NULL AND CCQK <> '' ";
  669 +
  670 + if (StringUtils.isNotEmpty(item.getSyxh())) {
  671 + sql1 += " and SYXH= " + item.getSyxh();
  672 + }
  673 + List<FmItem> list1 = queryRunner.query(conn, sql1, new BeanListHandler<FmItem>(FmItem.class));
  674 + MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest();
  675 + setDekuverAddRequest(item, deliverAddRequest);//固定参数
  676 + Users users1 = null;
  677 + List<MatDeliverAddRequest.Baby> babies = new ArrayList<>();
  678 + for (int i = 0; i < list1.size(); i++) {
  679 + if (!("活产".equals(list1.get(i).getCcqk()) || "死胎".equals(list1.get(i).getCcqk()))) {
680 680 continue;
681 681 }
682   - String dueDateStr = item.getSsrq();
  682 + String dueDateStr = list1.get(i).getSsrq();
683 683 if (!StringUtils.isNotEmpty(dueDateStr)) {
684 684 continue;
685 685 }
686 686  
687 687  
688 688  
... ... @@ -692,18 +692,17 @@
692 692  
693 693 Date dueTime = null;
694 694 try {
695   - dueTime = fmt.parse(item.getCsrq());
  695 + dueTime = fmt.parse(list1.get(i).getCsrq());
696 696 } catch (Exception e) {
697   - dueTime = fmt2.parse(item.getCsrq());
  697 + dueTime = fmt2.parse(list1.get(i).getCsrq());
698 698 }
699   -
700   - FmPatInfo patInfo = getFmPatInfoById(item.getSyxh());
  699 + FmPatInfo patInfo = getFmPatInfoById(list1.get(i).getSyxh());
701 700 if (patInfo != null && (StringUtils.isNotEmpty(patInfo.getPhone()) || StringUtils.isNotEmpty(patInfo.getCardNo()))) {
702 701 PatientsQuery query = new PatientsQuery();
703 702 query.setYn(YnEnums.YES.getId());
704 703 query.setDesc(" desc");
705 704 query.setSort(" created ");
706   - //query.setType(1); //孕妇
  705 + query.setType(1); //孕妇
707 706 query.setDueStatus(0); //未终止妊娠
708 707 String[] strs = new String[]{patInfo.getPhone(), patInfo.getCardNo()};
709 708 query.setPc(strs);
... ... @@ -711,7 +710,7 @@
711 710 if (CollectionUtils.isNotEmpty(patientses)) {
712 711 Patients patient = patientses.get(0);
713 712 UsersQuery usersQuery = new UsersQuery();
714   - usersQuery.setName(item.getJsz());
  713 + usersQuery.setName(list1.get(i).getJsz());
715 714 usersQuery.setYn(YnEnums.YES.getId());
716 715 usersQuery.setOrgId(216);
717 716 List<Users> users = usersService.queryUsers(usersQuery);
718 717  
... ... @@ -719,10 +718,9 @@
719 718 usersQuery.setName("产房");
720 719 users = usersService.queryUsers(usersQuery);
721 720 }
722   -
723 721 if (CollectionUtils.isNotEmpty(users) && users.get(0).getId() != null) {
724   - MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest();
725   - if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(item.getSsrq())) {
  722 + users1 = users.get(0);
  723 + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(list1.get(i).getSsrq())) {
726 724 continue;
727 725 }
728 726 deliverAddRequest.setDeliverDoctor(users.get(0).getId() + "");
729 727  
730 728  
... ... @@ -731,114 +729,32 @@
731 729 deliverAddRequest.setPid(patient.getPid());
732 730 deliverAddRequest.setOperationCause("-");
733 731 String week = "";
734   - if (StringUtils.isNotEmpty(item.getRc())) {
735   - week = item.getRc() + "周";
736   - if (StringUtils.isNotEmpty(item.getRc()) && StringUtils.isNotEmpty(item.getJts())) {
737   - week += item.getJts() + "天";
  732 + if (StringUtils.isNotEmpty(list1.get(i).getRc())) {
  733 + week = list1.get(i).getRc() + "周";
  734 + if (StringUtils.isNotEmpty(list1.get(i).getRc()) && StringUtils.isNotEmpty(list1.get(i).getJts())) {
  735 + week += list1.get(i).getJts() + "天";
738 736 }
739 737 deliverAddRequest.setDueWeek(week);
740 738 }
741   - deliverAddRequest.setTireNumber(1);// 胎数
742   - deliverAddRequest.setPlacenta("1");// 胎盘
743   - deliverAddRequest.setFmType("1"); //默认住院分娩
744   -
745   - //会阴撕裂
746   - if ("完好".equals(item.getHyqk()) || "无".equals(item.getHyqk())) {
747   - deliverAddRequest.setPerinealCondition("full");
748   - } else if ("会阴切开".equals(item.getHyqk()) || "侧切".equals(item.getHyqk())) {
749   - deliverAddRequest.setPerinealCondition("split");
750   - }
751   - if ("一度裂伤".equals(item.getHyqk())) {
752   - deliverAddRequest.setSiLielevel(1);
753   - } else if ("二度裂伤".equals(item.getHyqk())) {
754   - deliverAddRequest.setSiLielevel(2);
755   - } else if ("三度裂伤".equals(item.getHyqk())) {
756   - deliverAddRequest.setSiLielevel(3);
757   - }
758   - if (StringUtils.isNotEmpty(item.getChexxsxl())) {
759   - deliverAddRequest.settHloseBloodL(Double.parseDouble(item.getChexxsxl()));
760   - }
761   - //分娩方式
762   - Map deliveryMode = new HashMap();
763   - String fmfs = "";
764   - if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) {
765   - fmfs = FmTypeEnums.O1.getId();
766   - } else {
767   - fmfs = FmTypeEnums.O.getId();
768   - }
769   - deliveryMode.put("fmfs", fmfs);
770   - deliverAddRequest.setDeliveryMode(deliveryMode);
771   -
772   - //胎盘信息
773   - List<MaternalDeliverModel.ExtPlacenta> extPlacentas = new ArrayList<>();
774   - MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta();
775   - String tpmcType = ""; //胎盘娩出方式
776   - if ("手术产".equals(item.getTpmcfs()) || "手取胎盘".equals(item.getTpmcfs())) {
777   - tpmcType = TpmcTypeEnums.O2.getId();
778   - } else if ("自然产出".equals(item.getTpmcfs()) || "自然娩出".equals(item.getTpmcfs())) {
779   - tpmcType = TpmcTypeEnums.O.getId();
780   - }
781   - extPlacenta.setTpmcType(tpmcType);
782   - extPlacentas.add(extPlacenta);
783   - deliverAddRequest.setExtPlacentas(extPlacentas);
784   -
785   - //当前儿童
786   - List<MatDeliverAddRequest.Baby> babies = new ArrayList<>();
787   - MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby();
788   - Map<String, String> as = new HashMap<>();
789   - as.put("pf1", item.getYfz());
790   - as.put("pf5", item.getWfz());
791   - as.put("pf10", item.getSfz());
792   - baby.setApgarScore(as);
793   - baby.setBabyGender("男".equals(item.getYexb()) ? "1" : "0");
794   - baby.setBabyHeight(item.getSc());//新生儿生长
795   - baby.setBabyWeight(item.getTz());//新生儿重量
796   - baby.setDeformity("无".equals(item.getJx()) ? 0 : 1); //畸形 0非畸形 1畸形
797   - baby.setAsphyxiaM(item.getZx()); //窒息分钟
798   - baby.setPregnancyOut(RenShenJieJuEnums.getIdByName(item.getCcqk())); // 妊娠结局
799   - baby.setDueTime(fmt1.format(dueTime));//分娩时间
800   - babies.add(baby);
801   - deliverAddRequest.setBabies(babies);
802   -
803   - deliverAddRequest.setFmHospital("216"); //设置为秦皇岛分娩医院
804   -
805   - /*
806   - 查询是否存在分娩信息,存在就只更新baby
807   - */
808   - MatDeliverQuery matDeliverQuery = new MatDeliverQuery();
809   - matDeliverQuery.setParentId(deliverAddRequest.getParentId());
810   - matDeliverQuery.setYn(YnEnums.YES.getId());
811   - List<MaternalDeliverModel> list2 = matDeliverService.query(matDeliverQuery);
812   - if (CollectionUtils.isNotEmpty(list2)) {
813   - MaternalDeliverModel maternalDeliverModel = list2.get(0);
814   - deliverAddRequest.setId(maternalDeliverModel.getId());
815   -
816   - //前面儿童分娩信息遍历添加到这次儿童信息,通过id使用更新分娩信息
817   - List<MaternalDeliverModel.Baby> baby1 = maternalDeliverModel.getBaby();
818   - for (int i = 0; i <baby1.size() ; i++) {
819   - deliverAddRequest.setTireNumber(2+i);// 胎数
820   - MatDeliverAddRequest.Baby baby11 = new MatDeliverAddRequest.Baby();
821   - try {
822   - Gson gson = new Gson();
823   - Map<String, Object> map = new HashMap<String, Object>();
824   - baby11.setApgarScore(gson.fromJson(baby1.get(i).getApgarScore(), map.getClass()));
825   - } catch (JsonSyntaxException e) {
826   - e.printStackTrace();
827   - }
828   - baby11.setBabyGender(baby1.get(i).getBabyGender());
829   - baby11.setBabyHeight(baby1.get(i).getBabyHeight());//新生儿生长
830   - baby11.setBabyWeight(baby1.get(i).getBabyWeight());//新生儿重量
831   - baby11.setDeformity(baby1.get(i).getDeformity()); //畸形 0非畸形 1畸形
832   - baby11.setAsphyxiaM(baby1.get(i).getAsphyxiaM()); //窒息分钟
833   - baby11.setPregnancyOut(baby1.get(i).getPregnancyOut()); // 妊娠结局
834   - baby11.setDueTime(baby1.get(i).getDueTime());//分娩时间
835   - babies.add(baby11);
836   - }
837   - }
838   -
839   - matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users.get(0).getId());
840   - deleteFmHistoryRecord(item.getSyxh());
  739 + } else {
  740 + continue;
841 741 }
  742 + deliverAddRequest.setTireNumber(i + 1);// 胎数
  743 + //当前儿童
  744 + MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby();
  745 + Map<String, String> as = new HashMap<>();
  746 + as.put("pf1", list1.get(i).getYfz());
  747 + as.put("pf5", list1.get(i).getWfz());
  748 + as.put("pf10", list1.get(i).getSfz());
  749 + baby.setApgarScore(as);
  750 + baby.setBabyGender("男".equals(list1.get(i).getYexb()) ? "1" : "0");
  751 + baby.setBabyHeight(list1.get(i).getSc());//新生儿生长
  752 + baby.setBabyWeight(list1.get(i).getTz());//新生儿重量
  753 + baby.setDeformity("无".equals(list1.get(i).getJx()) ? 0 : 1); //畸形 0非畸形 1畸形
  754 + baby.setAsphyxiaM(list1.get(i).getZx()); //窒息分钟
  755 + baby.setPregnancyOut(RenShenJieJuEnums.getIdByName(list1.get(i).getCcqk())); // 妊娠结局
  756 + baby.setDueTime(fmt1.format(dueTime));//分娩时间
  757 + babies.add(baby);
842 758  
843 759 } else { //秦皇岛服务器有分娩记录,但是在这边系统没有对于孕妇 取分娩信息建档儿童数据
844 760 //由于秦皇岛打印出生医学证明的时候建档调用了该方法怕导致重复创建儿童 所以注释掉
845 761  
846 762  
... ... @@ -851,16 +767,17 @@
851 767 saveFmrecord(item.getSyxh(), format.parse(item.getJlrq()));
852 768 }
853 769  
854   - } catch (Exception e) {
855   - ExceptionUtils.catchException(e, "数据异常");
856   - continue;
857 770 }
858   -
859   -
  771 + deliverAddRequest.setBabies(babies);
  772 + if (users1 != null && users1.getId() != null) {
  773 + matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users1.getId());
  774 + deleteFmHistoryRecord(item.getSyxh());
  775 + }
  776 + continue; //执行一次
860 777 }
861 778 }
862 779  
863   - }catch (SQLException e) {
  780 + } catch (SQLException e) {
864 781 ExceptionUtils.catchException(e, "sql执行异常");
865 782 e.printStackTrace();
866 783 } catch (Exception e) {
... ... @@ -869,6 +786,51 @@
869 786 } finally {
870 787 DbUtils.closeQuietly(conn);
871 788 }
  789 + }
  790 +
  791 + private void setDekuverAddRequest(FmItem item, MatDeliverAddRequest deliverAddRequest) {
  792 + //会阴撕裂
  793 + if ("完好".equals(item.getHyqk()) || "无".equals(item.getHyqk())) {
  794 + deliverAddRequest.setPerinealCondition("full");
  795 + } else if ("会阴切开".equals(item.getHyqk()) || "侧切".equals(item.getHyqk())) {
  796 + deliverAddRequest.setPerinealCondition("split");
  797 + }
  798 + if ("一度裂伤".equals(item.getHyqk())) {
  799 + deliverAddRequest.setSiLielevel(1);
  800 + } else if ("二度裂伤".equals(item.getHyqk())) {
  801 + deliverAddRequest.setSiLielevel(2);
  802 + } else if ("三度裂伤".equals(item.getHyqk())) {
  803 + deliverAddRequest.setSiLielevel(3);
  804 + }
  805 + if (StringUtils.isNotEmpty(item.getChexxsxl())) {
  806 + deliverAddRequest.settHloseBloodL(Double.parseDouble(item.getChexxsxl()));
  807 + }
  808 + //分娩方式
  809 + Map deliveryMode = new HashMap();
  810 + String fmfs = "";
  811 + if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) {
  812 + fmfs = FmTypeEnums.O1.getId();
  813 + } else {
  814 + fmfs = FmTypeEnums.O.getId();
  815 + }
  816 + deliveryMode.put("fmfs", fmfs);
  817 + deliverAddRequest.setDeliveryMode(deliveryMode);
  818 +
  819 + //胎盘信息
  820 + List<MaternalDeliverModel.ExtPlacenta> extPlacentas = new ArrayList<>();
  821 + MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta();
  822 + String tpmcType = ""; //胎盘娩出方式
  823 + if ("手术产".equals(item.getTpmcfs()) || "手取胎盘".equals(item.getTpmcfs())) {
  824 + tpmcType = TpmcTypeEnums.O2.getId();
  825 + } else if ("自然产出".equals(item.getTpmcfs()) || "自然娩出".equals(item.getTpmcfs())) {
  826 + tpmcType = TpmcTypeEnums.O.getId();
  827 + }
  828 + extPlacenta.setTpmcType(tpmcType);
  829 + extPlacentas.add(extPlacenta);
  830 + deliverAddRequest.setExtPlacentas(extPlacentas);
  831 + deliverAddRequest.setPlacenta("1");// 胎盘
  832 + deliverAddRequest.setFmType("1"); //默认住院分娩
  833 + deliverAddRequest.setFmHospital("216"); //设置为秦皇岛分娩医院
872 834 }
873 835  
874 836 private String getPolyembryonyStr() {