Commit 02169c66e070e50b8fac457fa78a42c1c06f8464

Authored by zhangchao
1 parent f327f9e388
Exists in dev

#fix:新增大同RIS和分娩数据同步接口

Showing 11 changed files with 756 additions and 216 deletions

platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterRisMapper.java View file @ 02169c6
  1 +package com.lyms.platform.permission.dao.master;
  2 +
  3 +import com.lyms.platform.permission.model.RisReportItemModel;
  4 +import com.lyms.platform.permission.model.RisReportModel;
  5 +
  6 +import java.util.List;
  7 +
  8 +public interface MasterRisMapper {
  9 + void saveRisData(RisReportModel model);
  10 + void deleteRisData(RisReportModel model);
  11 + void saveRisItemsData(List<RisReportItemModel> list);
  12 + void deleteRisItemData(RisReportItemModel model);
  13 +}
platform-biz-service/src/main/java/com/lyms/platform/permission/model/RisReportItemModel.java View file @ 02169c6
... ... @@ -7,35 +7,26 @@
7 7 public class RisReportItemModel {
8 8 private Integer id;
9 9 // 检验报告ID
10   - private String rId;
  10 + private String R_ID;
11 11 // 项目代码
12   - private String code;
  12 + private String CODE;
13 13 // 项目名称
14   - private String name;
  14 + private String NAME;
15 15 // 项目结果
16   - private String result;
  16 + private String RESULT;
17 17 // 高低标志
18   - private String resultFlag;
  18 + private String RESULT_FLAG;
19 19 // 参考值
20   - private String ref;
  20 + private String REF;
21 21 // 结果类型
22   - private String resultType;
  22 + private String RESULT_TYPE;
23 23 // 单位
24   - private String unit;
  24 + private String UNIT;
25 25 // 打印顺序
26   - private String printOrder;
  26 + private String PRINT_ORDER;
27 27  
28   - private String hospitalId;
  28 + private String HOSPITAL_ID;
29 29  
30   -
31   - public String getHospitalId() {
32   - return hospitalId;
33   - }
34   -
35   - public void setHospitalId(String hospitalId) {
36   - this.hospitalId = hospitalId;
37   - }
38   -
39 30 public Integer getId() {
40 31 return id;
41 32 }
42 33  
43 34  
44 35  
45 36  
46 37  
47 38  
48 39  
49 40  
50 41  
51 42  
52 43  
53 44  
54 45  
55 46  
56 47  
57 48  
58 49  
59 50  
60 51  
... ... @@ -44,86 +35,84 @@
44 35 this.id = id;
45 36 }
46 37  
  38 + public String getR_ID() {
  39 + return R_ID;
  40 + }
47 41  
48   - public String getrId() {
49   - return rId;
  42 + public void setR_ID(String r_ID) {
  43 + R_ID = r_ID;
50 44 }
51 45  
52   - public void setrId(String rId) {
53   - this.rId = rId;
  46 + public String getCODE() {
  47 + return CODE;
54 48 }
55 49  
56   - public String getCode() {
57   - return code;
  50 + public void setCODE(String CODE) {
  51 + this.CODE = CODE;
58 52 }
59 53  
60   - public void setCode(String code) {
61   - this.code = code;
  54 + public String getNAME() {
  55 + return NAME;
62 56 }
63 57  
64   - public String getName() {
65   - return name;
  58 + public void setNAME(String NAME) {
  59 + this.NAME = NAME;
66 60 }
67 61  
68   - public void setName(String name) {
69   - this.name = name;
  62 + public String getRESULT() {
  63 + return RESULT;
70 64 }
71 65  
72   - public String getResult() {
73   - return result;
  66 + public void setRESULT(String RESULT) {
  67 + this.RESULT = RESULT;
74 68 }
75 69  
76   - public void setResult(String result) {
77   - this.result = result;
  70 + public String getRESULT_FLAG() {
  71 + return RESULT_FLAG;
78 72 }
79 73  
80   - public String getResultFlag() {
81   - return resultFlag;
  74 + public void setRESULT_FLAG(String RESULT_FLAG) {
  75 + this.RESULT_FLAG = RESULT_FLAG;
82 76 }
83 77  
84   - public void setResultFlag(String resultFlag) {
85   - this.resultFlag = resultFlag;
  78 + public String getREF() {
  79 + return REF;
86 80 }
87 81  
88   - public String getRef() {
89   - return ref;
  82 + public void setREF(String REF) {
  83 + this.REF = REF;
90 84 }
91 85  
92   - public void setRef(String ref) {
93   - this.ref = ref;
  86 + public String getRESULT_TYPE() {
  87 + return RESULT_TYPE;
94 88 }
95 89  
96   - public String getResultType() {
97   - return resultType;
  90 + public void setRESULT_TYPE(String RESULT_TYPE) {
  91 + this.RESULT_TYPE = RESULT_TYPE;
98 92 }
99 93  
100   - public void setResultType(String resultType) {
101   - this.resultType = resultType;
  94 + public String getUNIT() {
  95 + return UNIT;
102 96 }
103 97  
104   - public String getUnit() {
105   - return unit;
  98 + public void setUNIT(String UNIT) {
  99 + this.UNIT = UNIT;
106 100 }
107 101  
108   - public void setUnit(String unit) {
109   - this.unit = unit;
  102 + public String getPRINT_ORDER() {
  103 + return PRINT_ORDER;
110 104 }
111 105  
112   - public String getPrintOrder() {
113   - return printOrder;
  106 + public void setPRINT_ORDER(String PRINT_ORDER) {
  107 + this.PRINT_ORDER = PRINT_ORDER;
114 108 }
115 109  
116   - public void setPrintOrder(String printOrder) {
117   - this.printOrder = printOrder;
  110 + public String getHOSPITAL_ID() {
  111 + return HOSPITAL_ID;
118 112 }
119 113  
120   - @Override
121   - public String toString() {
122   - return "RisReportItemModel [id=" + id + ", rId=" + rId + ", code="
123   - + code + ", name=" + name + ", result=" + result
124   - + ", resultFlag=" + resultFlag + ", ref=" + ref
125   - + ", resultType=" + resultType + ", unit=" + unit
126   - + ", printOrder=" + printOrder + "]";
  114 + public void setHOSPITAL_ID(String HOSPITAL_ID) {
  115 + this.HOSPITAL_ID = HOSPITAL_ID;
127 116 }
128 117 }
platform-biz-service/src/main/java/com/lyms/platform/permission/model/RisReportModel.java View file @ 02169c6
... ... @@ -2,60 +2,31 @@
2 2  
3 3 public class RisReportModel {
4 4 private Integer id;
5   - // 检查报告号
6   - private String rId;
7   - // 检查报告名称
8   - private String title;
9   - // 检查报告类型
10   - private String type;
11   - // 就诊卡号
12   - private String vcCardNo;
13   - // 患者姓名
14   - private String name;
15   - // 住院号
16   - private String bhnum;
17   - // 患者年龄
18   - private String age;
19   - // 患者性别
20   - private String sex;
21   - // 影像图片
22   - private String imgs;
23   - // 影像所见
24   - private String itemFinding;
25   - // 诊断意见
26   - private String itemDiagnosis;
27   - // 检验结果
28   - private String itemResult;
29   - // 送检日期
30   - private String applyTime;
31   - // 检验时间
32   - private String checkTime;
33   - // 报告发布时间
34   - private String publishTime;
35   - // 送检医生
36   - private String applyDoctor;
37   - // 送检科室
38   - private String applyDept;
39   - // 检验员
40   - private String checker;
41   - // 最后修改时间
42   - private String modified;
43   - // 创建时间
44   - private String created;
45   - // 医院id
46   - private String hospitalId;
  5 + private String R_ID;
  6 + private String TITLE;
  7 + private String TYPE;
  8 + private String VCCARDNO;
  9 + private String NAME;
  10 + private String PHONE;
  11 + private String BHNUM;
  12 + private String AGE;
  13 + private String SEX;
  14 + private String IMGS;//影像图片
  15 + private String ITEM_FINDING;//影像所见
  16 + private String ITEM_DIAGNOSIS;//诊断意见
  17 + private String ITEM_RESULT;//检验结果
  18 + private String APPLY_TIME;//送检日期
  19 + private String CHECK_TIME;//检验时间
  20 + private String PUBLISH_TIME;//报告发布时间
  21 + private String APPLY_DOCTOR;//送检医生
  22 + private String APPLY_DEPT;//送检科室
  23 + private String CHECKER;//检验员
  24 + private String MODIFIED;//最后修改时间
  25 + private String CREATED;//创建时间
  26 + private String HOSPITAL_ID;
  27 + private String ITEM_JSON;
47 28  
48   - //联系方式
49   - private String phone;
50 29  
51   - public String getPhone() {
52   - return phone;
53   - }
54   -
55   - public void setPhone(String phone) {
56   - this.phone = phone;
57   - }
58   -
59 30 public Integer getId() {
60 31 return id;
61 32 }
62 33  
63 34  
64 35  
65 36  
66 37  
67 38  
68 39  
69 40  
70 41  
71 42  
72 43  
73 44  
74 45  
75 46  
76 47  
77 48  
78 49  
79 50  
80 51  
81 52  
82 53  
83 54  
84 55  
85 56  
86 57  
87 58  
88 59  
89 60  
90 61  
91 62  
92 63  
93 64  
94 65  
95 66  
96 67  
97 68  
98 69  
99 70  
100 71  
101 72  
102 73  
103 74  
104 75  
... ... @@ -64,187 +35,188 @@
64 35 this.id = id;
65 36 }
66 37  
67   - public String getrId() {
68   - return rId;
  38 + public String getR_ID() {
  39 + return R_ID;
69 40 }
70 41  
71   - public void setrId(String rId) {
72   - this.rId = rId;
  42 + public void setR_ID(String r_ID) {
  43 + R_ID = r_ID;
73 44 }
74 45  
75   - public String getTitle() {
76   - return title;
  46 + public String getTITLE() {
  47 + return TITLE;
77 48 }
78 49  
79   - public void setTitle(String title) {
80   - this.title = title;
  50 + public void setTITLE(String TITLE) {
  51 + this.TITLE = TITLE;
81 52 }
82 53  
83   - public String getType() {
84   - return type;
  54 + public String getTYPE() {
  55 + return TYPE;
85 56 }
86 57  
87   - public void setType(String type) {
88   - this.type = type;
  58 + public void setTYPE(String TYPE) {
  59 + this.TYPE = TYPE;
89 60 }
90 61  
91   - public String getVcCardNo() {
92   - return vcCardNo;
  62 + public String getVCCARDNO() {
  63 + return VCCARDNO;
93 64 }
94 65  
95   - public void setVcCardNo(String vcCardNo) {
96   - this.vcCardNo = vcCardNo;
  66 + public void setVCCARDNO(String VCCARDNO) {
  67 + this.VCCARDNO = VCCARDNO;
97 68 }
98 69  
99   - public String getName() {
100   - return name;
  70 + public String getNAME() {
  71 + return NAME;
101 72 }
102 73  
103   - public void setName(String name) {
104   - this.name = name;
  74 + public void setNAME(String NAME) {
  75 + this.NAME = NAME;
105 76 }
106 77  
107   - public String getBhnum() {
108   - return bhnum;
  78 + public String getPHONE() {
  79 + return PHONE;
109 80 }
110 81  
111   - public void setBhnum(String bhnum) {
112   - this.bhnum = bhnum;
  82 + public void setPHONE(String PHONE) {
  83 + this.PHONE = PHONE;
113 84 }
114 85  
115   - public String getAge() {
116   - return age;
  86 + public String getBHNUM() {
  87 + return BHNUM;
117 88 }
118 89  
119   - public void setAge(String age) {
120   - this.age = age;
  90 + public void setBHNUM(String BHNUM) {
  91 + this.BHNUM = BHNUM;
121 92 }
122 93  
123   - public String getSex() {
124   - return sex;
  94 + public String getAGE() {
  95 + return AGE;
125 96 }
126 97  
127   - public void setSex(String sex) {
128   - this.sex = sex;
  98 + public void setAGE(String AGE) {
  99 + this.AGE = AGE;
129 100 }
130 101  
131   - public String getImgs() {
132   - return imgs;
  102 + public String getSEX() {
  103 + return SEX;
133 104 }
134 105  
135   - public void setImgs(String imgs) {
136   - this.imgs = imgs;
  106 + public void setSEX(String SEX) {
  107 + this.SEX = SEX;
137 108 }
138 109  
139   - public String getItemFinding() {
140   - return itemFinding;
  110 + public String getIMGS() {
  111 + return IMGS;
141 112 }
142 113  
143   - public void setItemFinding(String itemFinding) {
144   - this.itemFinding = itemFinding;
  114 + public void setIMGS(String IMGS) {
  115 + this.IMGS = IMGS;
145 116 }
146 117  
147   - public String getItemDiagnosis() {
148   - return itemDiagnosis;
  118 + public String getITEM_FINDING() {
  119 + return ITEM_FINDING;
149 120 }
150 121  
151   - public void setItemDiagnosis(String itemDiagnosis) {
152   - this.itemDiagnosis = itemDiagnosis;
  122 + public void setITEM_FINDING(String ITEM_FINDING) {
  123 + this.ITEM_FINDING = ITEM_FINDING;
153 124 }
154 125  
155   - public String getItemResult() {
156   - return itemResult;
  126 + public String getITEM_DIAGNOSIS() {
  127 + return ITEM_DIAGNOSIS;
157 128 }
158 129  
159   - public void setItemResult(String itemResult) {
160   - this.itemResult = itemResult;
  130 + public void setITEM_DIAGNOSIS(String ITEM_DIAGNOSIS) {
  131 + this.ITEM_DIAGNOSIS = ITEM_DIAGNOSIS;
161 132 }
162 133  
163   - public String getApplyTime() {
164   - return applyTime;
  134 + public String getITEM_RESULT() {
  135 + return ITEM_RESULT;
165 136 }
166 137  
167   - public void setApplyTime(String applyTime) {
168   - this.applyTime = applyTime;
  138 + public void setITEM_RESULT(String ITEM_RESULT) {
  139 + this.ITEM_RESULT = ITEM_RESULT;
169 140 }
170 141  
171   - public String getCheckTime() {
172   - return checkTime;
  142 + public String getAPPLY_TIME() {
  143 + return APPLY_TIME;
173 144 }
174 145  
175   - public void setCheckTime(String checkTime) {
176   - this.checkTime = checkTime;
  146 + public void setAPPLY_TIME(String APPLY_TIME) {
  147 + this.APPLY_TIME = APPLY_TIME;
177 148 }
178 149  
179   - public String getPublishTime() {
180   - return publishTime;
  150 + public String getCHECK_TIME() {
  151 + return CHECK_TIME;
181 152 }
182 153  
183   - public void setPublishTime(String publishTime) {
184   - this.publishTime = publishTime;
  154 + public void setCHECK_TIME(String CHECK_TIME) {
  155 + this.CHECK_TIME = CHECK_TIME;
185 156 }
186 157  
187   - public String getApplyDoctor() {
188   - return applyDoctor;
  158 + public String getPUBLISH_TIME() {
  159 + return PUBLISH_TIME;
189 160 }
190 161  
191   - public void setApplyDoctor(String applyDoctor) {
192   - this.applyDoctor = applyDoctor;
  162 + public void setPUBLISH_TIME(String PUBLISH_TIME) {
  163 + this.PUBLISH_TIME = PUBLISH_TIME;
193 164 }
194 165  
195   - public String getApplyDept() {
196   - return applyDept;
  166 + public String getAPPLY_DOCTOR() {
  167 + return APPLY_DOCTOR;
197 168 }
198 169  
199   - public void setApplyDept(String applyDept) {
200   - this.applyDept = applyDept;
  170 + public void setAPPLY_DOCTOR(String APPLY_DOCTOR) {
  171 + this.APPLY_DOCTOR = APPLY_DOCTOR;
201 172 }
202 173  
203   - public String getChecker() {
204   - return checker;
  174 + public String getAPPLY_DEPT() {
  175 + return APPLY_DEPT;
205 176 }
206 177  
207   - public void setChecker(String checker) {
208   - this.checker = checker;
  178 + public void setAPPLY_DEPT(String APPLY_DEPT) {
  179 + this.APPLY_DEPT = APPLY_DEPT;
209 180 }
210 181  
211   - public String getModified() {
212   - return modified;
  182 + public String getCHECKER() {
  183 + return CHECKER;
213 184 }
214 185  
215   - public void setModified(String modified) {
216   - this.modified = modified;
  186 + public void setCHECKER(String CHECKER) {
  187 + this.CHECKER = CHECKER;
217 188 }
218 189  
219   - public String getCreated() {
220   - return created;
  190 + public String getMODIFIED() {
  191 + return MODIFIED;
221 192 }
222 193  
223   - public void setCreated(String created) {
224   - this.created = created;
  194 + public void setMODIFIED(String MODIFIED) {
  195 + this.MODIFIED = MODIFIED;
225 196 }
226 197  
227   - public String getHospitalId() {
228   - return hospitalId;
  198 + public String getCREATED() {
  199 + return CREATED;
229 200 }
230 201  
231   - public void setHospitalId(String hospitalId) {
232   - this.hospitalId = hospitalId;
  202 + public void setCREATED(String CREATED) {
  203 + this.CREATED = CREATED;
233 204 }
234 205  
235   - @Override
236   - public String toString() {
237   - return "RisReportModel [id=" + id + ", rId=" + rId + ", title=" + title
238   - + ", type=" + type + ", vcCardNo=" + vcCardNo + ", name="
239   - + name + ", bhnum=" + bhnum + ", age=" + age + ", sex=" + sex
240   - + ", imgs=" + imgs + ", itemFinding=" + itemFinding
241   - + ", itemDiagnosis=" + itemDiagnosis + ", itemResult="
242   - + itemResult + ", applyTime=" + applyTime + ", checkTime="
243   - + checkTime + ", publishTime=" + publishTime + ", applyDoctor="
244   - + applyDoctor + ", applyDept=" + applyDept + ", checker="
245   - + checker + ", modified=" + modified + ", created=" + created
246   - + ", hospitalId=" + hospitalId + "]";
  206 + public String getHOSPITAL_ID() {
  207 + return HOSPITAL_ID;
247 208 }
248 209  
  210 + public void setHOSPITAL_ID(String HOSPITAL_ID) {
  211 + this.HOSPITAL_ID = HOSPITAL_ID;
  212 + }
  213 +
  214 + public String getITEM_JSON() {
  215 + return ITEM_JSON;
  216 + }
  217 +
  218 + public void setITEM_JSON(String ITEM_JSON) {
  219 + this.ITEM_JSON = ITEM_JSON;
  220 + }
249 221 }
platform-biz-service/src/main/java/com/lyms/platform/permission/service/RisService.java View file @ 02169c6
  1 +package com.lyms.platform.permission.service;
  2 +
  3 +import com.lyms.platform.common.result.BaseResponse;
  4 +import com.lyms.platform.permission.model.RisReportItemModel;
  5 +import com.lyms.platform.permission.model.RisReportModel;
  6 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  7 +
  8 +import java.util.List;
  9 +
  10 +public interface RisService {
  11 + BaseResponse saveRisData(List<RisReportModel> models, ThreadPoolTaskExecutor commonThreadPool);
  12 + void saveRisItemsData(List<RisReportItemModel> list);
  13 +}
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/RisServiceImpl.java View file @ 02169c6
  1 +package com.lyms.platform.permission.service.impl;
  2 +
  3 +import com.lyms.platform.common.constants.ErrorCodeConstants;
  4 +import com.lyms.platform.common.result.BaseResponse;
  5 +import com.lyms.platform.permission.dao.master.MasterLisMapper;
  6 +import com.lyms.platform.permission.dao.master.MasterRisMapper;
  7 +import com.lyms.platform.permission.model.LisReportModel;
  8 +import com.lyms.platform.permission.model.LisReportQuery;
  9 +import com.lyms.platform.permission.model.RisReportItemModel;
  10 +import com.lyms.platform.permission.model.RisReportModel;
  11 +import com.lyms.platform.permission.service.RisService;
  12 +import org.apache.commons.collections.CollectionUtils;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  15 +import org.springframework.stereotype.Service;
  16 +
  17 +import java.util.List;
  18 +import java.util.concurrent.CountDownLatch;
  19 +import java.util.concurrent.TimeUnit;
  20 +
  21 +@Service
  22 +public class RisServiceImpl implements RisService {
  23 + @Autowired
  24 + private MasterRisMapper masterRisMapper;
  25 + private static final int BATCH_SIZE = 10;
  26 + @Override
  27 + public BaseResponse saveRisData(List<RisReportModel> models,ThreadPoolTaskExecutor commonThreadPool) {
  28 + try {
  29 + System.out.println("saveRis data size = " + models.size());
  30 + if (CollectionUtils.isNotEmpty(models)) {
  31 + //线程数
  32 + int threadCount = models.size() % BATCH_SIZE == 0 ? models.size() / BATCH_SIZE : models.size() / BATCH_SIZE + 1;
  33 + System.out.println("threadCount = " + threadCount);
  34 + CountDownLatch countDownLatch = new CountDownLatch(threadCount);
  35 + int end = 0;
  36 + for (int i = 0; i < models.size(); i += BATCH_SIZE) {
  37 + end = (end + BATCH_SIZE);
  38 + if (end > models.size()) {
  39 + end = models.size();
  40 + }
  41 + List<RisReportModel> list = models.subList(i, end);
  42 + commonThreadPool.execute(new RisSaveTask(countDownLatch, masterRisMapper, list));
  43 + }
  44 + countDownLatch.await(20, TimeUnit.SECONDS);
  45 + }
  46 + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功");
  47 +
  48 + } catch (Exception e) {
  49 + return new BaseResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION);
  50 +
  51 + }
  52 + }
  53 + public class RisSaveTask implements Runnable {
  54 +
  55 + private CountDownLatch countDownLatch;
  56 + private MasterRisMapper masterRisMapper;
  57 + private List<RisReportModel> lisList;
  58 +
  59 + private RisSaveTask(CountDownLatch countDownLatch,
  60 + MasterRisMapper masterRisMapper,
  61 + List<RisReportModel> lisList) {
  62 + this.lisList = lisList;
  63 + this.masterRisMapper = masterRisMapper;
  64 + this.countDownLatch = countDownLatch;
  65 + }
  66 +
  67 + @Override
  68 + public void run() {
  69 + try {
  70 + for (RisReportModel model : lisList) {
  71 + try {
  72 + masterRisMapper.deleteRisData(model);
  73 + masterRisMapper.saveRisData(model);
  74 + } catch (Exception e) {
  75 + continue;
  76 + }
  77 +
  78 + }
  79 + } finally {
  80 + countDownLatch.countDown();
  81 + }
  82 +
  83 + }
  84 + }
  85 + @Override
  86 + public void saveRisItemsData(List<RisReportItemModel> list) {
  87 + masterRisMapper.saveRisItemsData(list);
  88 + }
  89 +}
platform-biz-service/src/main/resources/mainOrm/master/MasterRis.xml View file @ 02169c6
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3 +<mapper namespace="com.lyms.platform.permission.dao.master.MasterRisMapper">
  4 +
  5 + <insert id="saveRisData" parameterType="com.lyms.platform.permission.model.RisReportModel">
  6 + INSERT INTO ris_report_info(
  7 + R_ID,
  8 + TITLE,
  9 + TYPE,
  10 + VCCARDNO,
  11 + NAME,
  12 + BHNUM,
  13 + PHONE,
  14 + AGE,
  15 + SEX,
  16 + IMGS,
  17 + ITEM_FINDING,
  18 + ITEM_DIAGNOSIS,
  19 + ITEM_RESULT,
  20 + APPLY_TIME,
  21 + CHECK_TIME,
  22 + PUBLISH_TIME,
  23 + APPLY_DOCTOR,
  24 + APPLY_DEPT,
  25 + CHECKER,
  26 + MODIFIED,
  27 + CREATED,
  28 + HOSPITAL_ID,
  29 + ITEM_JSON
  30 + ) VALUES (
  31 + ${R_ID},
  32 + ${TITLE},
  33 + ${TYPE},
  34 + ${VCCARDNO},
  35 + ${NAME},
  36 + ${BHNUM},
  37 + ${PHONE},
  38 + ${AGE},
  39 + ${SEX},
  40 + ${IMGS},
  41 + ${ITEM_FINDING},
  42 + ${ITEM_DIAGNOSIS},
  43 + ${ITEM_RESULT},
  44 + ${APPLY_TIME},
  45 + ${CHECK_TIME},
  46 + ${PUBLISH_TIME},
  47 + ${APPLY_DOCTOR},
  48 + ${APPLY_DEPT},
  49 + ${CHECKER},
  50 + ${MODIFIED},
  51 + ${CREATED},
  52 + ${HOSPITAL_ID},
  53 + ${ITEM_JSON}
  54 + )
  55 +
  56 + </insert>
  57 +
  58 + <insert id="saveRisItemsData" parameterType="java.util.List">
  59 + insert into ris_report_item (
  60 + R_ID,
  61 + CODE,
  62 + NAME,
  63 + RESULT,
  64 + RESULT_FLAG,
  65 + REF,
  66 + RESULT_TYPE,
  67 + UNIT,
  68 + PRINT_ORDER,
  69 + HOSPITAL_ID
  70 + )
  71 + values
  72 + <foreach collection="list" item="item" index="index" separator="," >
  73 + (
  74 + #{item.R_ID,jdbcType=VARCHAR},
  75 + #{item.CODE,jdbcType=VARCHAR},
  76 + #{item.NAME,jdbcType=VARCHAR},
  77 + #{item.RESULT,jdbcType=VARCHAR},
  78 + #{item.RESULT_FLAG,jdbcType=VARCHAR},
  79 + #{item.REF,jdbcType=VARCHAR},
  80 + #{item.RESULT_TYPE,jdbcType=VARCHAR},
  81 + #{item.UNIT,jdbcType=VARCHAR},
  82 + #{item.PRINT_ORDER,jdbcType=VARCHAR},
  83 + #{item.HOSPITAL_ID,jdbcType=VARCHAR}
  84 + )
  85 + </foreach>
  86 + </insert>
  87 +
  88 + <delete id="deleteRisData" parameterType="com.lyms.platform.permission.model.LisReportModel">
  89 + DELETE FROM ris_report_info WHERE R_ID = #{R_ID} AND HOSPITAL_ID = #{HOSPITAL_ID}
  90 + </delete>
  91 +
  92 + <delete id="deleteRisItemData" parameterType="com.lyms.platform.permission.model.LisReportItemModel">
  93 + DELETE FROM ris_report_item WHERE R_ID = #{R_ID} AND HOSPITAL_ID = #{HOSPITAL_ID}
  94 + </delete>
  95 +</mapper>
platform-operate-api/src/main/java/com/lyms/hospitalapi/dtdyrm/DtdyrmFmService.java View file @ 02169c6
  1 +package com.lyms.hospitalapi.dtdyrm;
  2 +
  3 +import com.lyms.hospitalapi.dzfy.Fm;
  4 +import com.lyms.hospitalapi.qhddeyy.QhddeyyFmServiceImpl;
  5 +import com.lyms.hospitalapi.qhdfy.FmItem;
  6 +import com.lyms.platform.biz.service.PatientsService;
  7 +import com.lyms.platform.common.enums.FmTypeEnums;
  8 +import com.lyms.platform.common.enums.RenShenJieJuEnums;
  9 +import com.lyms.platform.common.enums.TpmcTypeEnums;
  10 +import com.lyms.platform.common.enums.YnEnums;
  11 +import com.lyms.platform.common.utils.DateUtil;
  12 +import com.lyms.platform.common.utils.ExceptionUtils;
  13 +import com.lyms.platform.common.utils.StringUtils;
  14 +import com.lyms.platform.operate.web.facade.BabyBookbuildingFacade;
  15 +import com.lyms.platform.operate.web.facade.MatDeliverFacade;
  16 +import com.lyms.platform.operate.web.facade.PatientServiceFacade;
  17 +import com.lyms.platform.operate.web.request.MatDeliverAddRequest;
  18 +import com.lyms.platform.permission.model.Users;
  19 +import com.lyms.platform.permission.model.UsersQuery;
  20 +import com.lyms.platform.permission.service.UsersService;
  21 +import com.lyms.platform.pojo.MaternalDeliverModel;
  22 +import com.lyms.platform.pojo.Patients;
  23 +import com.lyms.platform.query.PatientsQuery;
  24 +import org.apache.commons.collections.CollectionUtils;
  25 +import org.springframework.beans.factory.annotation.Autowired;
  26 +import org.springframework.stereotype.Service;
  27 +
  28 +import java.text.ParseException;
  29 +import java.text.SimpleDateFormat;
  30 +import java.util.*;
  31 +
  32 +@Service
  33 +public class DtdyrmFmService implements IdtdyrmFmService {
  34 +
  35 + @Autowired
  36 + private PatientsService patientsService;
  37 +
  38 + @Autowired
  39 + private MatDeliverFacade matDeliverFacade;
  40 +
  41 + @Autowired
  42 + private UsersService usersService;
  43 +
  44 + @Autowired
  45 + private BabyBookbuildingFacade babyBookbuildingFacade;
  46 +
  47 + @Autowired
  48 + private PatientServiceFacade patientServiceFacade;
  49 +
  50 + private static Map<Integer, String> ONE_ENUMS = new HashMap<>();
  51 +
  52 + private static Map<String, List> babyMap = new HashMap<>();
  53 +
  54 + private static final String HOSPITALID = "2100002419";
  55 +
  56 + @Override
  57 + public void queryFmPatient(List<Fm> list) {
  58 + SaveFm sfm = new SaveFm(list);
  59 + Thread t = new Thread(sfm);
  60 + t.start();
  61 + }
  62 +
  63 +
  64 +
  65 + public class SaveFm implements Runnable{
  66 +
  67 + private List<Fm> allList;
  68 +
  69 + public SaveFm(List<Fm> list){
  70 + this.allList=list;
  71 + }
  72 +
  73 + public void run(){
  74 +
  75 + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  76 + try {
  77 + System.out.println("fm=" + allList.toString());
  78 +
  79 + List <Users> users = new ArrayList <Users>();
  80 + Date dueDate = null;
  81 + List <MatDeliverAddRequest.Baby> babies = new ArrayList <>();
  82 + MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest();
  83 + Patients patient =null;
  84 + for (Fm allFm : allList) {
  85 +// System.out.println("0-------------" + allFm.getBABY_PREGNANCY_OUT());
  86 + if (!"1".equals(allFm.getBABY_PREGNANCY_OUT())) {
  87 + System.out.println("BABY_PREGNANCY_OUT != 1");
  88 + continue;
  89 + }
  90 + if (StringUtils.isEmpty(allFm.getPHONE()) && StringUtils.isEmpty(allFm.getIDCARD())) {
  91 + continue;
  92 + }
  93 + PatientsQuery query = new PatientsQuery();
  94 + query.setYn(YnEnums.YES.getId());
  95 + //20201230 半年后把这个打开
  96 +// query.setType(1); //孕妇
  97 +// query.setDueStatus(0); //未终止妊娠
  98 + String[] strs = new String[]{allFm.getPHONE(), allFm.getIDCARD()};
  99 + query.setPc(strs);
  100 + //查询该孕妇是否在孕产婴系统中建档
  101 +// System.out.println("1----query--" + query.convertToQuery().convertToMongoQuery());
  102 + List <Patients> patientses = patientsService.queryPatient(query);
  103 +// System.out.println("2----patientses--" + ( CollectionUtils.isNotEmpty(patientses)?patientses.size():null));
  104 +
  105 + //获取指定医生id
  106 + try {
  107 + System.out.println("query hosptial chanke doctor--");
  108 + UsersQuery usersQuery = new UsersQuery();
  109 + usersQuery.setYn(YnEnums.YES.getId());
  110 + usersQuery.setOrgId(new Integer(Integer.parseInt(HOSPITALID)));
  111 + usersQuery.setName("产科");
  112 + users = usersService.queryUsers(usersQuery);
  113 + } catch (NumberFormatException e) {
  114 + e.printStackTrace();
  115 + }
  116 + if (CollectionUtils.isNotEmpty(patientses) && patientses.size()>0) {
  117 + patient = patientses.get(0);
  118 +
  119 + } else{
  120 + System.out.println("no patients in database:"+ allFm.toString());
  121 + continue;
  122 + }
  123 +
  124 + if (patient != null && StringUtils.isNotEmpty(patient.getId())) {
  125 + if (CollectionUtils.isNotEmpty(users) && users.get(0).getId() != null) {
  126 + if (!StringUtils.isNotEmpty(allFm.getBABY_DELIVERY_TIME())) {
  127 + Date dateTime = fmt.parse(allFm.getBABY_DELIVERY_TIME());
  128 + if (dateTime==null) {
  129 + continue;
  130 + } else {
  131 + dueDate = dateTime;
  132 + }
  133 + } else {
  134 + continue;
  135 + }
  136 +
  137 + Map <String, Map <String, String>> map = new HashMap <>();
  138 + Map <String, String> map1 = new HashMap <>();
  139 + Map <String, String> map2 = new HashMap <>();
  140 + Map <String, String> map3 = new HashMap <>();
  141 + Map <String, String> totalMap = new HashMap <>();
  142 +
  143 + Integer prod_Process_One = allFm.getPROD_PROCESS_ONE();
  144 + Integer prod_Process_Two = allFm.getPROD_PROCESS_TWO();
  145 + Integer prod_Process_Three = allFm.getPROD_PROCESS_THREE();
  146 + if (prod_Process_One != null) {
  147 + map1.put("h", String.valueOf(prod_Process_One.intValue() / 60));
  148 + map1.put("m", String.valueOf(prod_Process_One.intValue() % 60));
  149 + map.put("one", map1);
  150 + }
  151 + if (prod_Process_Two != null) {
  152 + map2.put("h", String.valueOf(prod_Process_Two.intValue() / 60));
  153 + map2.put("m", String.valueOf(prod_Process_Two.intValue() % 60));
  154 + map.put("two", map2);
  155 + }
  156 + if (prod_Process_Three != null) {
  157 + map3.put("h", String.valueOf(prod_Process_Three.intValue() / 60));
  158 + map3.put("m", String.valueOf(prod_Process_Three.intValue() % 60));
  159 + map.put("three", map3);
  160 + }
  161 +
  162 + if (StringUtils.isNotEmpty(allFm.getTOTAL_PROCESS())){
  163 + int hProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())/60;//总产程小时数
  164 + int mProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())%60;//总产程分钟数
  165 + totalMap.put("h",String.valueOf(hProcess));
  166 + totalMap.put("m",String.valueOf(mProcess));
  167 + }
  168 + deliverAddRequest.setProdprocess(map);
  169 + deliverAddRequest.setTotalprocess(totalMap);
  170 +// System.out.println("6----------" + allFm.getDELIVER_DOCTOR());
  171 +
  172 + deliverAddRequest.setDeliverDoctor(allFm.getDELIVER_DOCTOR());
  173 + deliverAddRequest.setDueDate(DateUtil.getyyyy_MM_dd(dueDate));
  174 + deliverAddRequest.setParentId(patient.getId());
  175 + deliverAddRequest.setPid(patient.getPid());
  176 + deliverAddRequest.setOperationCause("-");
  177 + String week = "";
  178 + if (StringUtils.isNotEmpty(allFm.getDUE_WEEK())) {
  179 +
  180 + week = allFm.getDUE_WEEK() + "周";
  181 + if (StringUtils.isNotEmpty(allFm.getDUE_WEEK()) && StringUtils.isNotEmpty(allFm.getDUE_DAY())) {
  182 + week += allFm.getDUE_DAY() + "天";
  183 + }
  184 +
  185 + deliverAddRequest.setDueWeek(week);
  186 + }
  187 +
  188 + deliverAddRequest.setTireNumber(allFm.getFETUS_NUM());// 胎数(之前赋值为死值1)
  189 + Integer placenta_Num = allFm.getPLACENTA_NUM();
  190 + if (placenta_Num != null) {
  191 + deliverAddRequest.setPlacenta(allFm.getPLACENTA_NUM().toString());// 胎盘(之前赋值为死值1)
  192 + }
  193 + if ("完好".equals(allFm.getPERINEAL_CONDITION()) || "".equals(allFm.getPERINEAL_CONDITION())) {
  194 + deliverAddRequest.setPerinealCondition("full");
  195 + } else if ("会阴切开".equals(allFm.getPERINEAL_CONDITION()) || "侧切".equals(allFm.getPERINEAL_CONDITION())) {
  196 + deliverAddRequest.setPerinealCondition("split");
  197 + }
  198 +
  199 + if ("一度裂伤".equals(allFm.getPERINEAL_CONDITION())) {
  200 + deliverAddRequest.setSiLielevel(1);
  201 + } else if ("二度裂伤".equals(allFm.getPERINEAL_CONDITION())) {
  202 + deliverAddRequest.setSiLielevel(2);
  203 + } else if ("三度裂伤".equals(allFm.getPERINEAL_CONDITION())) {
  204 + deliverAddRequest.setSiLielevel(3);
  205 + }
  206 +
  207 + Integer th_Lose = allFm.getTH_LOSE_BLOOD();
  208 + if (th_Lose != null) {
  209 + if (StringUtils.isNotEmpty(allFm.getTH_LOSE_BLOOD().toString())) {
  210 + deliverAddRequest.settHloseBloodL(Double.parseDouble(allFm.getTH_LOSE_BLOOD().toString()));
  211 + }
  212 + }
  213 +
  214 + Map deliveryMode = new HashMap(); //分娩方式
  215 +
  216 + String fmfs = "";
  217 + if (allFm.getDELIVERY_MODE() != null
  218 + && ("手术产".equals(allFm.getDELIVERY_MODE())
  219 + ||"剖宫产".equals(allFm.getDELIVERY_MODE()))
  220 + ) {
  221 + fmfs = FmTypeEnums.O1.getId();
  222 + } else {
  223 + fmfs = FmTypeEnums.O.getId();
  224 + }
  225 + deliveryMode.put("fmfs", fmfs);
  226 + deliverAddRequest.setDeliveryMode(deliveryMode);
  227 + //胎盘信息
  228 + List <MaternalDeliverModel.ExtPlacenta> extPlacentas = new ArrayList <>();
  229 + MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta();
  230 + String tpmcType = ""; //胎盘娩出方式
  231 + if ("手术产".equals(allFm.getTMCTYPE()) || "手取胎盘".equals(allFm.getTMCTYPE())) {
  232 + tpmcType = TpmcTypeEnums.O2.getId();
  233 + } else if ("自然产出".equals(allFm.getTMCTYPE()) || "自然娩出".equals(allFm.getTMCTYPE())) {
  234 + tpmcType = TpmcTypeEnums.O.getId();
  235 + }
  236 + extPlacenta.setTpmcType(tpmcType);
  237 + extPlacentas.add(extPlacenta);
  238 + deliverAddRequest.setExtPlacentas(extPlacentas);
  239 +
  240 +
  241 + //儿童
  242 + MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby();
  243 + baby.setBabyWeight(allFm.getBABY_WEIGHT() == null ? null : allFm.getBABY_WEIGHT().toString());
  244 + Map <String, String> as = new HashMap <>();
  245 + String pf1 = String.valueOf(allFm.getBABY_APGAR_SCORE_ONE());
  246 + String pf5 = String.valueOf(allFm.getBABY_APGAR_SCORE_FIVE());
  247 + String pf10 = String.valueOf(allFm.getBABY_APGAR_SCORE_TEN());
  248 + if (pf1 != null) {
  249 + as.put("pf1", pf1);
  250 + }
  251 + if (pf5 != null) {
  252 + as.put("pf5", pf5);
  253 + }
  254 + if (pf10 != null) {
  255 + as.put("pf10", pf10);
  256 + }
  257 +
  258 +
  259 + baby.setApgarScore(as);
  260 + baby.setBabyGender("男".equals(allFm.getBABY_SEX()) ? "1" : "0");
  261 + String babyHeight = String.valueOf(allFm.getBABY_HEIGHT());
  262 + String babyWeight = String.valueOf(allFm.getBABY_WEIGHT());
  263 + Integer baby_Asphyxiam = allFm.getBABY_ASPHYXIAM();
  264 + if (babyHeight != null) {
  265 + baby.setBabyHeight(babyHeight);//新生儿生长
  266 + }
  267 + if (babyWeight != null) {
  268 + baby.setBabyWeight(babyWeight);//新生儿重量
  269 + }
  270 + if (baby_Asphyxiam != null) {
  271 + baby.setAsphyxiaM(String.valueOf(baby_Asphyxiam)); //窒息分钟
  272 + }
  273 +
  274 + baby.setDeformity((allFm.getBABY_DEFORMITY() == null ? 0 : 1)); //畸形 0非畸形 1畸形
  275 +
  276 + String baby_Pregnancy_Out = allFm.getBABY_PREGNANCY_OUT()=="1"?"活产":"";
  277 + if(baby_Pregnancy_Out!=null && StringUtils.isNotEmpty(baby_Pregnancy_Out)){
  278 + baby.setPregnancyOut(RenShenJieJuEnums.getIdByName("活产")); // 妊娠结局
  279 + }
  280 +
  281 +// System.out.println("7-------------" + allFm.getBABY_PREGNANCY_OUT() == "1" ? "活产" : "");
  282 + baby.setPregnancyOut(RenShenJieJuEnums.getIdByName("活产")); // 妊娠结局
  283 +
  284 + baby.setDueTime(DateUtil.getyyyy_MM_dd_hms(dueDate));//分娩时间
  285 + babies.add(baby);
  286 +
  287 + }
  288 + }
  289 + }
  290 + //因为每次传过来的是一个孕妇分娩数据,故在循环外
  291 + if (patient != null && StringUtils.isNotEmpty(patient.getId()) && CollectionUtils.isNotEmpty(babies)) {
  292 + deliverAddRequest.setBabies(babies);
  293 + deliverAddRequest.setFmHospital(HOSPITALID);
  294 + ExceptionUtils.catchException("deliverAddRequest===" + deliverAddRequest);
  295 + if (users != null && users.size() > 0) {
  296 + matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users.get(0).getId());
  297 + }
  298 + }
  299 +
  300 + } catch (Exception e) {
  301 + ExceptionUtils.catchException(e, "执行异常");
  302 + e.printStackTrace();
  303 + }
  304 +
  305 +
  306 + }
  307 + }
  308 +}
platform-operate-api/src/main/java/com/lyms/hospitalapi/dtdyrm/IdtdyrmFmService.java View file @ 02169c6
  1 +package com.lyms.hospitalapi.dtdyrm;
  2 +
  3 +import com.lyms.hospitalapi.dzfy.Fm;
  4 +
  5 +import java.util.List;
  6 +
  7 +public interface IdtdyrmFmService {
  8 + public void queryFmPatient(List<Fm> list);
  9 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/FmController.java View file @ 02169c6
1 1 package com.lyms.platform.operate.web.controller;
2 2  
  3 +import com.lyms.hospitalapi.dtdyrm.IdtdyrmFmService;
3 4 import com.lyms.hospitalapi.dzfy.Fm;
4 5 import com.lyms.hospitalapi.linchengfy.LcfyFmService;
5 6 import com.lyms.hospitalapi.lpfy.IlpFyFmService;
... ... @@ -35,6 +36,8 @@
35 36  
36 37 @Autowired
37 38 private IQhddeyyFmServcie qhddeyyFmServcie;
  39 + @Autowired
  40 + private IdtdyrmFmService idtdyrmFmService;
38 41  
39 42  
40 43  
41 44  
... ... @@ -51,11 +54,8 @@
51 54 }if("45".equals(models.get(0).getVision())){
52 55 qhddeyyFmServcie.queryFmPatient(models);
53 56 }if ("50".equals(models.get(0).getVision())){
54   - //TODO 处理大同分娩数据
  57 + idtdyrmFmService.queryFmPatient(models);
55 58 }
56   -
57   -
58   -
59 59  
60 60 return JsonUtil.array2JsonString(models);
61 61 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RisController.java View file @ 02169c6
  1 +package com.lyms.platform.operate.web.controller;
  2 +
  3 +import com.lyms.platform.common.base.BaseController;
  4 +import com.lyms.platform.common.result.BaseResponse;
  5 +import com.lyms.platform.common.utils.DateUtil;
  6 +import com.lyms.platform.common.utils.ExceptionUtils;
  7 +import com.lyms.platform.common.utils.JsonUtil;
  8 +import com.lyms.platform.operate.web.request.LisReportModelRequest;
  9 +import com.lyms.platform.permission.model.LisReportItemModel;
  10 +import com.lyms.platform.permission.model.LisReportModel;
  11 +import com.lyms.platform.permission.model.RisReportModel;
  12 +import com.lyms.platform.permission.service.RisService;
  13 +import org.apache.commons.collections.CollectionUtils;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.beans.factory.annotation.Qualifier;
  16 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  17 +import org.springframework.stereotype.Controller;
  18 +import org.springframework.web.bind.annotation.RequestBody;
  19 +import org.springframework.web.bind.annotation.RequestMapping;
  20 +import org.springframework.web.bind.annotation.RequestMethod;
  21 +import org.springframework.web.bind.annotation.ResponseBody;
  22 +
  23 +import javax.servlet.http.HttpServletRequest;
  24 +import java.util.List;
  25 +
  26 +@Controller
  27 +@RequestMapping("/ris")
  28 +public class RisController extends BaseController {
  29 +
  30 + @Autowired
  31 + private RisService risService;
  32 + @Autowired
  33 + @Qualifier("commonThreadPool")
  34 + private ThreadPoolTaskExecutor commonThreadPool;
  35 +
  36 + /**
  37 + * 保存各个医院上传上来的ris数据,该数据保存在mysql数据库
  38 + * 每条lis数据中保存了属于那个医院的id
  39 + * 每个医院id是配置在相应单独部署的his项目中
  40 + * @param models
  41 + * @param httpServletRequest
  42 + * @return
  43 + */
  44 + @RequestMapping(method = RequestMethod.POST, value = "/saveRisData")
  45 + @ResponseBody
  46 + public BaseResponse saveLisData(@RequestBody List<RisReportModel> models,
  47 + HttpServletRequest httpServletRequest) {
  48 +
  49 + System.out.println("resivce size = " + models.size());
  50 + return risService.saveRisData(models,commonThreadPool);
  51 + }
  52 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java View file @ 02169c6
... ... @@ -5262,7 +5262,7 @@
5262 5262 patient.setBookbuildingDoctor(String.valueOf(users.get(0).getId()));
5263 5263 }
5264 5264 }
5265   - yunBookbuildingService.update(patient,patient.getId());
  5265 + // yunBookbuildingService.update(patient,patient.getId());
5266 5266 }
5267 5267  
5268 5268 boolean a=false;