Commit 77270c65830f1f6920a9da1b2193d34737f79220
1 parent
392ea8d9c6
Exists in
master
and in
6 other branches
秦皇岛双胎问题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() { |