Commit 44730b8f9d419e8eac5d631b2f5802ac7a7dd016

Authored by liquanyu
1 parent edf3764351

update

Showing 3 changed files with 191 additions and 68 deletions

platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/JDBCUtil.java View file @ 44730b8
1 1 package com.lyms.hospitalapi.hs;
2 2  
3 3  
  4 +
4 5 import java.sql.*;
5 6 import java.util.ArrayList;
6 7 import java.util.HashMap;
... ... @@ -15,6 +16,9 @@
15 16 static String oracle_url = "jdbc:oracle:thin:@172.16.7.250:1521:prmi";
16 17 static String oracle_name = "LYMS_HENGSHUI_ZHENGSHI";
17 18 static String oracle_pwd = "lyms2018";
  19 +// static String oracle_url = "jdbc:oracle:thin:@119.90.57.26:1522:orcl";
  20 +// static String oracle_name = "LYMS_ODS";
  21 +// static String oracle_pwd = "Welcome1";
18 22  
19 23 static String mysql_url = "jdbc:mysql://127.0.0.1:3306/platform?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8";
20 24 static String mysql_name = "lyms_chengdu";
... ... @@ -79,8 +83,10 @@
79 83 while (rs.next()) {
80 84 Map<String, Object> maps = new HashMap<>();
81 85 for (int i = 1; i <= count; i++) {
82   - String columnName = rs.getMetaData().getColumnName(i);
83   - Object obj = rs.getObject(columnName);
  86 + ResultSetMetaData resultSetMetaData = rs.getMetaData();
  87 + String columnName = resultSetMetaData.getColumnName(i);
  88 + Integer typeId = resultSetMetaData.getColumnType(i);
  89 + Object obj = (typeId != null && Types.DATE == typeId) ? rs.getTimestamp(columnName) : rs.getObject(columnName);
84 90 if (obj != null) {
85 91 maps.put(columnName, obj);
86 92 } else {
... ... @@ -96,6 +102,11 @@
96 102 }
97 103 return list;
98 104 }
  105 +
  106 +// public static void main(String[] args) {
  107 +// List<Map<String, Object>> list = getOracleListDataBySql("select last_login_time from USERS t where t.id=1");
  108 +// System.out.println(DateUtil.gety_m_dhm(HsDataUtil.getDate(list.get(0).get("LAST_LOGIN_TIME"))));
  109 +// }
99 110  
100 111  
101 112 public static List<Map<String, Object>> getMysqlListDataBySql(String sql) {
platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncHsPatientService.java View file @ 44730b8
... ... @@ -2,8 +2,10 @@
2 2  
3 3  
4 4 import com.lyms.platform.biz.service.CommonService;
  5 +import com.lyms.platform.common.enums.RenShenJieJuEnums;
5 6 import com.lyms.platform.common.enums.YnEnums;
6 7 import com.lyms.platform.common.utils.*;
  8 +import com.lyms.platform.operate.web.request.MatDeliverAddRequest;
7 9 import com.lyms.platform.pojo.*;
8 10 import org.apache.commons.collections.CollectionUtils;
9 11 import org.springframework.beans.factory.InitializingBean;
... ... @@ -39,7 +41,7 @@
39 41 @Override
40 42 public void afterPropertiesSet() throws Exception {
41 43 //初始化数据
42   - //HsDataUtil.initData(mongoTemplate);
  44 + HsDataUtil.initData(mongoTemplate);
43 45 }
44 46  
45 47 /**
... ... @@ -51,11 +53,17 @@
51 53 int pageEnd = 5000;
52 54  
53 55 //查询孕妇档案
54   - String sql = " select * from (select ROWNUM AS rowno, temp.* from (select replace(mp.P_NO, '-', '') as PID, " +
55   - " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp " +
56   - " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, " +
57   - " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc " +
58   - " on vc.VC_PATIENTNO = mp.P_NO order by mp.P_FILINGTIME desc) temp where ROWNUM <=pageEnd) pat where pat.rowno >= pageStart and p_platpatientid='876b5f81-b495-4937-81cc-06219ed25e94'";
  56 +// String sql = " select * from (select ROWNUM AS rowno, temp.* from (select replace(mp.P_NO, '-', '') as PID, " +
  57 +// " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp " +
  58 +// " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, " +
  59 +// " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc " +
  60 +// " on vc.VC_PATIENTNO = mp.P_NO order by mp.P_FILINGTIME desc) temp where ROWNUM <=pageEnd) pat where pat.rowno >= pageStart";
  61 +
  62 + String sql = " select replace(mp.P_NO, '-', '') as PID, \n" +
  63 + " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp \n" +
  64 + " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, \n" +
  65 + " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc \n" +
  66 + " on vc.VC_PATIENTNO = mp.P_NO where p_platpatientid='876b5f81-b495-4937-81cc-06219ed25e94' order by mp.P_FILINGTIME desc";
59 67 do {
60 68 sql = sql.replace("pageEnd",String.valueOf(pageEnd));
61 69 sql = sql.replace("pageStart",String.valueOf(pageStart));
62 70  
63 71  
64 72  
65 73  
66 74  
67 75  
... ... @@ -119,69 +127,16 @@
119 127  
120 128 Patients patients = new Patients();
121 129  
122   - int type = 1;
123   - List<Map<String, Object>> chanList = null;
124   - if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("P_PLATPATIENTID")))) {
125   - chanList = JDBCUtil.getOracleListDataBySql("SELECT * FROM MOMMY_PREGDELIVERYRECORD P WHERE P.PDR_PATIENTID = '" + HsDataUtil.getString(map.get("P_PLATPATIENTID")) + "' order by p.PDR_CHILDBIRTHDAY desc ");
126   - }
127   - //分娩孕妇处理
128   - if ( CollectionUtils.isNotEmpty(chanList)) {
129   - if (CollectionUtils.isNotEmpty(chanList)) {
130   - System.out.println("============"+chanList.size());
131   - //分娩记录
132   - Map<String, Object> fmMap = chanList.get(0);
133   - Date fmDate = HsDataUtil.getDate(fmMap.get("PDR_CHILDBIRTHDAY"));
134   - patients.setIsAutoFm(0);
135   - patients.setFmDate(fmDate);
136   - type = 3;
137 130  
138   - patients.setFmAge(DateUtil.getAge(HsDataUtil.getDate(map.get("P_BIRTHDAY")), fmDate));
139   - patients.setFmWeek(DateUtil.getWeek(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), fmDate));
140 131  
141   - String hname = HsDataUtil.getOraHosptalById(HsDataUtil.getString(map.get("PDR_DELIVERORGANIZATIONID")));
142   - String id = HsDataUtil.getMysqlHosptalByName(hname);
143   - patients.setFmHospital(id);
144   - if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("PDR_DELIVERYMODE"))))
145   - {
146 132  
147   - Map deliveryMode = new HashMap();
148   - if ("自然娩出".equals(HsDataUtil.getString(map.get("PDR_DELIVERYMODE"))))
149   - {
150   - deliveryMode.put("fmfs","0");
151   - deliveryMode.put("scfs","0");
152   - }
153   - else if ("剖宫产".equals(HsDataUtil.getString(map.get("PDR_DELIVERYMODE"))))
154   - {
155   - deliveryMode.put("fmfs","1");
156   - deliveryMode.put("scfs","");
157   - }
158   - patients.setFmType(JsonUtil.obj2Str(deliveryMode));
159   - }
160 133  
161   - craeteFm(fmMap,String.valueOf(map.get("PID")),HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), id);
162   - }
163   - }
164   -
165   - PersonModel person = new PersonModel();
166   - mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(HsDataUtil.getString(map.get("P_CARDNO"))).and("yn").is(1)), PersonModel.class);
167   - person.setId(String.valueOf(map.get("PID")));
168   - person.setType(type);
169   - person.setYn(YnEnums.YES.getId());
170   - person.setBirth(HsDataUtil.getDate(map.get("P_BIRTHDAY")));
171   - person.setCardNo(HsDataUtil.getString(map.get("P_CARDNO")));
172   - person.setName(HsDataUtil.getString(map.get("P_NAME")));
173   - person.setPhone(HsDataUtil.getString(map.get("P_MOBILEPHONE")));
174   - person.setCreated(HsDataUtil.getDate(map.get("P_FILINGTIME")));
175   - person.setModified(HsDataUtil.getDate(map.get("P_OPERTIME")));
176   - mongoTemplate.save(person);
177   -
178   -
179 134 Date dueDate = DateUtil.addDay(DateUtil.addMonth(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), 9), 7);
180 135 patients.setDueDate(dueDate);
181 136  
182   - patients.setBuildDays(DateUtil.getDays(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")),HsDataUtil.getDate(map.get("P_FILINGTIME"))));
  137 + patients.setBuildDays(DateUtil.getDays(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), HsDataUtil.getDate(map.get("P_FILINGTIME"))));
183 138  
184   - patients.setPid(person.getId());
  139 +
185 140 patients.setId(String.valueOf(map.get("PID")));
186 141 patients.setYn(HsDataUtil.getInteger(map.get("P_ISVALID"))); //是否有效
187 142 patients.setBuildType(0);
188 143  
... ... @@ -248,8 +203,8 @@
248 203 patients.setHospitalId(id);
249 204 }
250 205  
251   - patients.setType(type); //患者类型
252 206  
  207 +
253 208 String doctorId = HsDataUtil.getString(map.get("P_FILINGOPER"));
254 209 if (doctorId != null && !"".equals(doctorId)) {
255 210 String userName = HsDataUtil.getEmpNameById(doctorId);
256 211  
... ... @@ -485,7 +440,72 @@
485 440  
486 441 createCZ(chuList,patients);
487 442 }
  443 + int type = 1;
488 444  
  445 +
  446 +
  447 +
  448 +
  449 + List<Map<String, Object>> chanList = null;
  450 + if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("P_PLATPATIENTID")))) {
  451 + chanList = JDBCUtil.getOracleListDataBySql("SELECT * FROM MOMMY_PREGDELIVERYRECORD P WHERE P.PDR_PATIENTID = '" + HsDataUtil.getString(map.get("P_PLATPATIENTID")) + "' order by p.PDR_CHILDBIRTHDAY desc ");
  452 + }
  453 + //分娩孕妇处理
  454 + if ( CollectionUtils.isNotEmpty(chanList)) {
  455 + if (CollectionUtils.isNotEmpty(chanList)) {
  456 + System.out.println("============"+chanList.size());
  457 + //分娩记录
  458 + Map<String, Object> fmMap = chanList.get(0);
  459 + Date fmDate = HsDataUtil.getDate(fmMap.get("PDR_CHILDBIRTHDAY"));
  460 + patients.setIsAutoFm(0);
  461 + patients.setFmDate(fmDate);
  462 + type = 3;
  463 + patients.setType(type); //患者类型
  464 + patients.setFmAge(DateUtil.getAge(HsDataUtil.getDate(map.get("P_BIRTHDAY")), fmDate));
  465 + patients.setFmWeek(DateUtil.getDays(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), fmDate));
  466 +
  467 + String hname = HsDataUtil.getOraHosptalById(HsDataUtil.getString(fmMap.get("PDR_DELIVERORGANIZATIONID")));
  468 + String id = HsDataUtil.getMysqlHosptalByName(hname);
  469 + patients.setFmHospital(id);
  470 + if (StringUtils.isNotEmpty(HsDataUtil.getString(fmMap.get("PDR_DELIVERYMODE"))))
  471 + {
  472 +
  473 + Map deliveryMode = new HashMap();
  474 + if ("自然娩出".equals(HsDataUtil.getString(fmMap.get("PDR_DELIVERYMODE"))))
  475 + {
  476 + deliveryMode.put("fmfs","0");
  477 + deliveryMode.put("scfs","0");
  478 + }
  479 + else if ("剖宫产".equals(HsDataUtil.getString(fmMap.get("PDR_DELIVERYMODE"))))
  480 + {
  481 + deliveryMode.put("fmfs","1");
  482 + deliveryMode.put("scfs","");
  483 + }
  484 + patients.setFmType(JsonUtil.obj2Str(deliveryMode));
  485 + }
  486 +
  487 + craeteFm(fmMap,String.valueOf(map.get("PID")),HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), id, patients);
  488 + }
  489 + }
  490 +
  491 + patients.setType(type); //患者类型
  492 +
  493 +
  494 + PersonModel person = new PersonModel();
  495 + mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(HsDataUtil.getString(map.get("P_CARDNO"))).and("yn").is(1)), PersonModel.class);
  496 + person.setId(String.valueOf(map.get("PID")));
  497 + person.setType(type);
  498 +
  499 + person.setYn(YnEnums.YES.getId());
  500 + person.setBirth(HsDataUtil.getDate(map.get("P_BIRTHDAY")));
  501 + person.setCardNo(HsDataUtil.getString(map.get("P_CARDNO")));
  502 + person.setName(HsDataUtil.getString(map.get("P_NAME")));
  503 + person.setPhone(HsDataUtil.getString(map.get("P_MOBILEPHONE")));
  504 + person.setCreated(HsDataUtil.getDate(map.get("P_FILINGTIME")));
  505 + person.setModified(HsDataUtil.getDate(map.get("P_OPERTIME")));
  506 + mongoTemplate.save(person);
  507 + patients.setPid(person.getId());
  508 +
489 509 mongoTemplate.save(patients);
490 510 count.getAndIncrement();
491 511 System.out.println(patients.getId() + "============"+count.get());
... ... @@ -642,7 +662,7 @@
642 662 * @param last
643 663 * @param fmHospitalId
644 664 */
645   - private void craeteFm(Map<String,Object> fmMap,String patientId,Date last,String fmHospitalId) {
  665 + private void craeteFm(Map<String,Object> fmMap,String patientId,Date last,String fmHospitalId,Patients patients) {
646 666  
647 667 try {
648 668 MaternalDeliverModel deliverModel = new MaternalDeliverModel();
649 669  
... ... @@ -729,11 +749,103 @@
729 749 }
730 750 deliverModel.setBaby(babies);
731 751 mongoTemplate.save(deliverModel);
732   - System.out.println("创建分娩完成"+deliverModel.getId());
  752 + System.out.println("创建分娩完成" + deliverModel.getId());
  753 +
  754 + createBaby(babies,patients);
  755 +
733 756 }catch (Exception e)
734 757 {
735 758 System.out.println(e.getMessage());
736 759 }
  760 + }
  761 +
  762 + private void createBaby(List<MaternalDeliverModel.Baby> list,Patients patients) {
  763 +
  764 + for (MaternalDeliverModel.Baby baby : list) {
  765 + //填充小孩基本信息
  766 + BabyModel babyModel = new BabyModel();
  767 + if (null != patients) {
  768 + babyModel.setId(baby.getId());
  769 + babyModel.setAreaId(patients.getAreaId());
  770 + babyModel.setProvinceId(patients.getProvinceId());
  771 + babyModel.setCityId(patients.getCityId());
  772 + babyModel.setStreetId(patients.getStreetId());
  773 + babyModel.setAddress(patients.getAddress());
  774 + //母亲信息
  775 + babyModel.setMname(patients.getUsername());
  776 + babyModel.setMjob(patients.getPworkUnit());
  777 + babyModel.setMphone(patients.getPhone());
  778 + babyModel.setMbirth(patients.getBirth());
  779 + babyModel.setMcertNo(patients.getCardNo());
  780 + babyModel.setMcertTypeId(patients.getPcerteTypeId());
  781 + //父亲信息
  782 + babyModel.setFjob(patients.getHworkUnit());
  783 + babyModel.setFname(patients.getHusbandName());
  784 + babyModel.setFphone(patients.getHusbandPhone());
  785 + babyModel.setFproTypeId(patients.getHprofessionTypeId());
  786 + babyModel.setfLevelId(patients.getHlevelTypeId());
  787 + babyModel.setFcertNo(patients.getHcertificateNum());
  788 + babyModel.setFcertTypeId(patients.getPcerteTypeId());
  789 + babyModel.setDueDate(patients.getDueDate());
  790 + babyModel.setDueType(patients.getDueType());
  791 + babyModel.setBuildDoctor("a9e5507f-e7da-4ec6-b8db-9a1e4d1b7c29");
  792 + babyModel.setCreated(new Date());
  793 + babyModel.setModified(new Date());
  794 + if (null != patients.getDueDate()) {
  795 + int day = DateUtil.getDays(patients.getLastMenses(), patients.getDueDate());
  796 + babyModel.setDueWeek(day / 7);
  797 + int dueDay = day % 7;
  798 + babyModel.setDueDay(dueDay == 0 ? null : dueDay);
  799 + }
  800 + }
  801 + // 产妇分娩建档
  802 + babyModel.setBuildType(2);
  803 +
  804 +
  805 + PersonModel personModel = new PersonModel();
  806 + personModel.setType(2);
  807 + personModel.setBirth(DateUtil.parseYMD(baby.getDueTime()));
  808 + personModel.setModified(new Date());
  809 + personModel.setPhone(babyModel.getMphone());
  810 + personModel.setCardNo(babyModel.getMcertNo());
  811 + personModel.setName(babyModel.getName());
  812 + personModel.setCreated(new Date());
  813 +
  814 +
  815 + //判断妊娠结局是活产才添加数据
  816 + if ((RenShenJieJuEnums.O.getId() + "").equals(baby.getPregnancyOut())) {
  817 + //改成这种是因为需求要求 分娩自动流转儿童信息,建档时间为空,医生确认建档
  818 + babyModel.setYn(YnEnums.NO.getId());
  819 + babyModel.setDataStatus(1);
  820 + //add lqy start 2017-03-01
  821 + babyModel.setBlNo(baby.getBlNo());
  822 + babyModel.setBabyDiagnosis(baby.getBabyDiagnosis());
  823 + personModel.setYn(YnEnums.YES.getId());
  824 + } else {
  825 + personModel.setYn(YnEnums.NO.getId());
  826 + }
  827 + mongoTemplate.save(personModel);
  828 +
  829 + babyModel.setPid(personModel.getId());
  830 + babyModel.setName(patients.getUsername() + ("1".equals(baby.getBabyGender()) ? "之子" : "之女"));
  831 + babyModel.setBabyHealthy(baby.getBabyHealthy());
  832 + babyModel.setBabyWeight(com.lyms.platform.common.utils.StringUtils.cutBabyWeight(baby.getBabyWeight()));
  833 + babyModel.setBabyHeight(baby.getBabyHeight());
  834 + babyModel.setMalformation(baby.getDeformity());
  835 + babyModel.setPregnancyOut(baby.getPregnancyOut());
  836 +
  837 + babyModel.setContactM(baby.getContactM());
  838 + babyModel.setContactStartM(baby.getContactStartM());
  839 + babyModel.setEarlySuck(baby.getEarlySuck());
  840 + babyModel.setParentId(patients.getId());
  841 + babyModel.setBuildDate(patients.getFmDate());
  842 + babyModel.setHospitalId(patients.getFmHospital());
  843 +
  844 + mongoTemplate.save(babyModel);
  845 +
  846 +
  847 + }
  848 +
737 849 }
738 850  
739 851  
platform-operate-api/src/main/resources/config.properties View file @ 44730b8
... ... @@ -5,8 +5,8 @@
5 5 #区域平台访问短信中心的token
6 6 center_token=e0c56363-00d6-42ee-bbe0-23c553583062
7 7  
8   -#His系统版本 0:未使用,1:桓台,2:新乐,3:青龙县医院,4:秦皇岛妇幼,5:抚宁妇幼, 6: 德州妇幼,7:南充中心医院
9   -his_version=21
  8 +#His系统版本 0:未使用,1:桓台,2:新乐,3:青龙县医院,4:秦皇岛妇幼,5:抚宁妇幼, 6: 德州妇幼,7:南充中心医院 30 衡水
  9 +his_version=30
10 10  
11 11 xt_version=
12 12