Commit 3e3a8baba10cc9e3c97f3056a701cc7c1810c572

Authored by landong2015

Merge remote-tracking branch 'origin/master'

Showing 7 changed files

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java View file @ 3e3a8ba
... ... @@ -11,11 +11,18 @@
11 11 import com.lyms.platform.common.dao.operator.MongoCondition;
12 12 import com.lyms.platform.common.dao.operator.MongoOper;
13 13 import com.lyms.platform.common.enums.YnEnums;
  14 +import com.lyms.platform.common.pojo.SyncDataModel;
14 15 import com.lyms.platform.common.utils.JsonUtil;
  16 +import com.lyms.platform.common.utils.MessageUtil;
15 17 import com.lyms.platform.common.utils.PingYinUtil;
16 18 import com.lyms.platform.common.utils.SystemConfig;
17 19 import com.lyms.platform.pojo.*;
18 20 import com.lyms.platform.query.BasicConfigQuery;
  21 +import com.lyms.platform.query.SmsConfigQuery;
  22 +import com.lyms.platform.query.SmsTemplateQuery;
  23 +import org.apache.commons.httpclient.HttpClient;
  24 +import org.apache.commons.httpclient.NameValuePair;
  25 +import org.apache.commons.httpclient.methods.PostMethod;
19 26 import org.apache.commons.io.FileUtils;
20 27 import org.apache.commons.lang.StringUtils;
21 28 import org.apache.struts.config.BaseConfig;
... ... @@ -88,8 +95,72 @@
88 95 // addZhenduan(applicationContext);
89 96  
90 97 // addHealthConfig(applicationContext);
91   -// addCheckItem(applicationContext);
92   - queryRisk(applicationContext);
  98 + saveHospitalMsgConfig(applicationContext);
  99 + saveHospitalMsgTemplate(applicationContext);
  100 + }
  101 +
  102 + public static void saveHospitalMsgTemplate(ApplicationContext applicationContext) {
  103 + MongoTemplate mongoTemplate
  104 + =(MongoTemplate)applicationContext.getBean("mongoTemplate");
  105 + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray());
  106 + try {
  107 + SmsTemplateQuery query = new SmsTemplateQuery();
  108 + query.setHospitalId("216");
  109 + query.setYn(1);
  110 + List<SmsTemplateModel> list = mongoTemplate.find(query.convertToQuery().convertToMongoQuery(), SmsTemplateModel.class);
  111 + System.out.println(JsonUtil.array2JsonString(list));
  112 + HttpClient client = new HttpClient();
  113 + client.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
  114 + client.getHttpConnectionManager().getParams().setSoTimeout(10000);
  115 + PostMethod post = new MessageUtil.UTF8PostMethod("http://121.22.16.246:18018/saveMongoModel");
  116 + NameValuePair[] pairs = {
  117 + new NameValuePair("className", SmsTemplateModel.class.getName()),
  118 + new NameValuePair("json", JsonUtil.array2JsonString(list)),
  119 + };
  120 + post.setRequestBody(pairs);
  121 + client.executeMethod(post);
  122 + int statusCode = post.getStatusCode();
  123 + String json = post.getResponseBodyAsString();
  124 + System.out.println(json);
  125 + post.releaseConnection();
  126 + if (200 == statusCode) {
  127 +
  128 + }
  129 + } catch (Exception e) {
  130 + e.printStackTrace();
  131 + }
  132 + }
  133 +
  134 + public static void saveHospitalMsgConfig(ApplicationContext applicationContext) {
  135 + MongoTemplate mongoTemplate
  136 + =(MongoTemplate)applicationContext.getBean("mongoTemplate");
  137 + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray());
  138 + try {
  139 + SmsConfigQuery query = new SmsConfigQuery();
  140 + query.setHospitalId("216");
  141 + query.setYn(1);
  142 + List<SmsConfigModel> list = mongoTemplate.find(query.convertToQuery().convertToMongoQuery(), SmsConfigModel.class);
  143 + System.out.println(JsonUtil.array2JsonString(list));
  144 + HttpClient client = new HttpClient();
  145 + client.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
  146 + client.getHttpConnectionManager().getParams().setSoTimeout(10000);
  147 + PostMethod post = new MessageUtil.UTF8PostMethod("http://121.22.16.246:18018/saveMongoModel");
  148 + NameValuePair[] pairs = {
  149 + new NameValuePair("className", SmsConfigModel.class.getName()),
  150 + new NameValuePair("json", JsonUtil.array2JsonString(list)),
  151 + };
  152 + post.setRequestBody(pairs);
  153 + client.executeMethod(post);
  154 + int statusCode = post.getStatusCode();
  155 + String json = post.getResponseBodyAsString();
  156 + System.out.println(json);
  157 + post.releaseConnection();
  158 + if (200 == statusCode) {
  159 +
  160 + }
  161 + } catch (Exception e) {
  162 + e.printStackTrace();
  163 + }
93 164 }
94 165  
95 166 // fb43fd5a-b153-4cb9-9180-c46f5612ba43
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java View file @ 3e3a8ba
... ... @@ -63,14 +63,15 @@
63 63 } else if (action.startsWith("Mysql")) {
64 64 return syncMysqlData(action,id,className,json);
65 65 } else if ("POSTMSG".equals(action)) {
66   - String result = HttpRequest.sendPost(CENTER_BASE_URL+"saveCreatedSMS", json, CENTER_TOKEN);
  66 + String result = HttpRequest.sendPost(CENTER_BASE_URL+"saveCreatedSMS", LymsEncodeUtil.aesDecrypt(json, mongo_crypto_key), CENTER_TOKEN);
67 67 if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(result))
68 68 {
69   - Map<String,String> map = JsonUtil.str2Obj(result, Map.class);
70   - if ("0".equals(map.get("errorcode")))
71   - {
72   - return true;
73   - }
  69 + return true;
  70 +// Map<String,String> map = JsonUtil.str2Obj(result, Map.class);
  71 +// if ("0".equals(map.get("errorcode")))
  72 +// {
  73 +// return true;
  74 +// }
74 75 }
75 76 return false;
76 77 }
... ... @@ -216,6 +217,42 @@
216 217 e.printStackTrace();
217 218 sb.append(e.getMessage());
218 219 return sb.toString();
  220 + }
  221 + }
  222 +
  223 + public String saveMongoModel(String json, String className){
  224 + if (StringUtils.isBlank(json) || StringUtils.isBlank(className)) {
  225 + return "param is null";
  226 + }
  227 + StringBuffer sb = new StringBuffer();
  228 + try {
  229 + Class cls = Class.forName(className);
  230 + List list = JsonUtil.toList(json, cls);
  231 + int insert = 0;
  232 + int modified = 0;
  233 + for (Object obj:list) {
  234 + String id = cls.getMethod("getId").invoke(obj).toString();
  235 + if (StringUtils.isNotBlank(id)) {
  236 + Object temp = mongoTemplate.findById(id, cls);
  237 + if (temp == null) {
  238 + mongoTemplate.insert(obj);
  239 + insert++;
  240 + } else {
  241 + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(obj));
  242 + mongoTemplate.updateMulti(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), update, cls);
  243 + modified++;
  244 + }
  245 + }
  246 + }
  247 + sb.append(" insert:");
  248 + sb.append(insert);
  249 + sb.append(" modified:");
  250 + sb.append(modified);
  251 + sb.append("\r\n<br>");
  252 + return sb.toString();
  253 + } catch (Exception e) {
  254 + e.printStackTrace();
  255 + return e.toString();
219 256 }
220 257 }
221 258  
platform-dal/src/main/java/com/lyms/platform/pojo/LisReport.java View file @ 3e3a8ba
... ... @@ -28,6 +28,15 @@
28 28 private String checkDoctorName;
29 29 private Date publishTime;
30 30 private Integer status;// 1:未计算危机;2:已计算危机
  31 + private String classifyName;
  32 +
  33 + public String getClassifyName() {
  34 + return classifyName;
  35 + }
  36 +
  37 + public void setClassifyName(String classifyName) {
  38 + this.classifyName = classifyName;
  39 + }
31 40  
32 41 public Integer getStatus() {
33 42 return status;
platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java View file @ 3e3a8ba
1 1 package com.lyms.hospitalapi.qhdfy;
2 2  
3   -import com.lyms.hospitalapi.pojo.CheckItemResponse;
4   -import com.lyms.hospitalapi.pojo.CheckResponse;
5   -import com.lyms.hospitalapi.pojo.LisCheckInfo;
6   -import com.lyms.hospitalapi.pojo.LisCheckResult;
  3 +import com.lyms.hospitalapi.pojo.*;
7 4 import com.lyms.platform.biz.dal.AssayConfigDao;
8 5 import com.lyms.platform.biz.param.AssayConfigQuery;
9 6 import com.lyms.platform.biz.service.AssayConfigService;
... ... @@ -126,7 +123,13 @@
126 123 crisisItem.setItemCode(item.getCode());
127 124 crisisItem.setItemName(item.getName());
128 125 crisisItem.setRef(item.getRef());
129   - crisisItem.setResult(item.getResult());
  126 + if (StringUtils.isNotBlank(item.getNumberResult())) {
  127 + crisisItem.setResult(item.getNumberResult());
  128 + } else if (StringUtils.isNotBlank(item.getCharResult())) {
  129 + crisisItem.setResult(item.getCharResult());
  130 + } else {
  131 + crisisItem.setResult(item.getResult());
  132 + }
130 133 crisisItem.setUnit(item.getUnit());
131 134 lisCrisisItemService.addLisCrisisItem(crisisItem);
132 135 }
133 136  
134 137  
135 138  
136 139  
137 140  
138 141  
139 142  
140 143  
... ... @@ -146,48 +149,129 @@
146 149 return result;
147 150 }
148 151  
  152 + public List<CheckResult> queryCheckList(String cardNo) {
  153 + Map<String, Map<String, List<CheckResponse>>> map = new HashMap<>();
  154 + List<CheckResponse> result = new ArrayList<>();
  155 + result.addAll(queryLisCheckList(cardNo));
  156 +// result.addAll(queryPacsCheckList(cardNo));
  157 + List<String> keyList = new ArrayList<>();
  158 + // 去重
  159 + List<CheckResponse> list = new ArrayList<>();
  160 + Date tempDate = null;
  161 + for (CheckResponse check:result) {
  162 + if (check.getModified() != null && check.getModified().equals(tempDate)) {
  163 + continue;
  164 + }
  165 + list.add(check);
  166 + tempDate = check.getModified();
  167 + }
  168 +
  169 + // 排序
  170 + Collections.sort(list, new Comparator() {
  171 + public int compare(Object a, Object b) {
  172 + if (((CheckResponse)a).getModified() == null) {
  173 + return 1;
  174 + }
  175 + if (((CheckResponse)b).getModified() == null) {
  176 + return 1;
  177 + }
  178 + if (((CheckResponse)a).getModified().before(((CheckResponse)a).getModified())) {
  179 + return -1;
  180 + }
  181 + return 1;
  182 + }
  183 + });
  184 + for (CheckResponse check:list) {
  185 + String ymd = DateUtil.getyyyy_MM_dd(check.getModified());
  186 + if (!keyList.contains(ymd)) {
  187 + keyList.add(ymd);
  188 + }
  189 + Map<String, List<CheckResponse>> dayMap = map.get(ymd);
  190 + if (dayMap == null) {
  191 + dayMap = new HashMap<>();
  192 + map.put(ymd, dayMap);
  193 + }
  194 + if (check.getType() == 1) {
  195 + List<CheckResponse> sub = dayMap.get("jianyan");
  196 + if (sub == null) {
  197 + sub = new ArrayList<>();
  198 + dayMap.put("jianyan", sub);
  199 + }
  200 + sub.add(check);
  201 + } else if (check.getType() == 2) {
  202 + List<CheckResponse> sub = dayMap.get("yingxiang");
  203 + if (sub == null) {
  204 + sub = new ArrayList<>();
  205 + dayMap.put("yingxiang", sub);
  206 + }
  207 + sub.add(check);
  208 + }
  209 + }
  210 + List<CheckResult> resultList = new ArrayList<>();
  211 + for (String key:keyList) {
  212 + Map<String, List<CheckResponse>> dayMap = map.get(key);
  213 + if (dayMap != null) {
  214 + CheckResult checkResult = new CheckResult();
  215 + checkResult.setJianyan(dayMap.get("jianyan"));
  216 + checkResult.setYingxiang(dayMap.get("yingxiang"));
  217 + checkResult.setYmd(key);
  218 + resultList.add(checkResult);
  219 + }
  220 + }
  221 +
  222 + return resultList;
  223 + }
  224 +
149 225 public List<CheckResponse> queryLisCheckList(String cardNo) {
150 226 List<CheckResponse> result = new ArrayList<>();
151 227 if (StringUtils.isNotBlank(cardNo)) {
152 228 Connection conn = ConnTools.makeLisConnection();
153   - QueryRunner queryRunner = new QueryRunner();
  229 + QueryRunner queryRunner = new QueryRunner(true);
154 230 try {
155   - List<LisCheckInfo> list = queryRunner.query(conn, "select * from lis_check_info where P_CARD = '"+cardNo+"'", new BeanListHandler<LisCheckInfo>(LisCheckInfo.class));
156   - if (list.size() > 0) {
157   - for (LisCheckInfo info:list) {
158   - if (StringUtils.isNotBlank(info.getP_APPLICATIONNUM())) {
159   - List<LisCheckResult> resultList = queryRunner.query(conn, "select * from lis_check_result where P_APPLICATIONNUM = '"+info.getP_APPLICATIONNUM()+"'", new BeanListHandler<LisCheckResult>(LisCheckResult.class));
160   - if (resultList != null && resultList.size() > 0) {
  231 + String sql = "select top 10000 baogaoleibiemingcheng as classifyName,huanzhexingming as name,shenqinghao as hospitalId,bingrenid as patientFid,zhuyuanhao as patientHid,kahao as vcCardNo,huanzhexingming as name,xingbie as sex,nianling as age,shenqingkeshidaima as deptCode,shenqingkeshimingcheng as deptName,shenqingyishengdaima as applyDoctorCode,shenqingyishengmingcheng as applyDoctorName,jianchayishengdaima as checkDoctorCode,jianchayishengxingming as checkDoctorName,baogaofabushijian as publishTime from valllist_ex_en where kahao ='"+cardNo+"' order by shenqinghao desc";
  232 + String subSql = "select top 1000 sheqingdanhao as id,xiangmudaima as code,xiangmumingcheng as name,xiangmujieguo as result,zifujieguo as charResult,shuzijieguo as numberResult,gaodibiaozhi as flag,cankaozhi as ref,danwei as unit,jieguoleixing as result from valresult_ex_en where sheqingdanhao='";
  233 + List<LisReport> lisReportList = queryRunner.query(conn, sql, new BeanListHandler<LisReport>(LisReport.class));
  234 + List<LisCheckInfo> list = new ArrayList<>();
  235 + if (lisReportList.size() > 0) {
  236 + for (LisReport lisReport:lisReportList) {
  237 + if (StringUtils.isNotBlank(lisReport.getHospitalId())) {
  238 + List<LisReportItem> lisReportItemList = queryRunner.query(conn, subSql+lisReport.getHospitalId()+"'", new BeanListHandler<LisReportItem>(LisReportItem.class));
  239 + if (lisReportItemList != null && lisReportItemList.size() > 0) {
161 240 CheckResponse check = new CheckResponse();
162   - check.setModified(DateUtil.parseYMDHMS(info.getMODIFIED()));
  241 + check.setModified(lisReport.getPublishTime());
163 242 check.setType(1);
164   - check.setName(info.getP_NAME());
165   - check.setTitle(info.getP_TITLE());
166   - check.setAge(info.getP_AGE());
167   - check.setApplyDate(DateUtil.parseYMDHMS(info.getP_CHECKTIME()));
168   - check.setApplyDateStr(DateUtil.getyyyy_MM_dd(DateUtil.parseYMDHMS(info.getP_CHECKTIME())));
169   - check.setCheckDept(info.getP_CHECKDEPARTNAME());
170   - check.setDoctor(info.getP_APPLATIONDOCNAME());
171   - if ("1".equals(info.getP_SEX())) {
172   - check.setSex("男");
173   - } else if ("2".equals(info.getP_SEX())) {
174   - check.setSex("女");
  243 + check.setName(lisReport.getName());
  244 + check.setTitle(lisReport.getClassifyName());
  245 + if (lisReport.getAge() != null) {
  246 + check.setAge(lisReport.getAge().toString());
175 247 }
  248 + check.setApplyDate(lisReport.getPublishTime());
  249 + check.setApplyDateStr(DateUtil.getyyyy_MM_dd(lisReport.getPublishTime()));
  250 + check.setCheckDept(lisReport.getDeptName());
  251 + check.setDoctor(lisReport.getApplyDoctorName());
  252 + check.setSex(lisReport.getSex());
176 253 List<CheckItemResponse> itemList = new ArrayList<>();
177 254 check.setItemList(itemList);
178   - for (LisCheckResult checkItem:resultList) {
  255 + for (LisReportItem checkItem:lisReportItemList) {
179 256 CheckItemResponse item = new CheckItemResponse();
180   - item.setName(checkItem.getP_ITEMNAME());
181   - item.setCode(checkItem.getP_ITEMCODE());
182   - item.setRefer(checkItem.getP_REFERENCEVALUE());
183   - item.setResult(checkItem.getP_ITEMRESULT());
184   - item.setUnit(checkItem.getP_UNIT());
185   - item.setSpecial(checkItem.getP_HIGHANDLOWMARK());
  257 + item.setName(checkItem.getName());
  258 + item.setCode(checkItem.getCode());
  259 + item.setRefer(checkItem.getRef());
  260 + if (StringUtils.isNotBlank(checkItem.getNumberResult())) {
  261 + item.setResult(checkItem.getNumberResult());
  262 + } else if (StringUtils.isNotBlank(checkItem.getCharResult())) {
  263 + item.setResult(checkItem.getCharResult());
  264 + } else {
  265 + item.setResult(item.getResult());
  266 + }
  267 + item.setUnit(checkItem.getUnit());
  268 + item.setSpecial(checkItem.getFlag());
186 269 itemList.add(item);
187 270 }
188 271 result.add(check);
189 272 }
190 273 }
  274 +
191 275 }
192 276 }
193 277 DbUtils.closeQuietly(conn);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java View file @ 3e3a8ba
1 1 package com.lyms.platform.operate.web.controller;
2 2  
  3 +import com.lyms.hospitalapi.qhdfy.QhdfyHisService;
3 4 import com.lyms.hospitalapi.v1.HisService;
4 5 import com.lyms.platform.common.annotation.TokenRequired;
5 6 import com.lyms.platform.common.base.BaseController;
... ... @@ -34,6 +35,9 @@
34 35 @Autowired
35 36 private HisService hisServiceV1;
36 37  
  38 + @Autowired
  39 + private QhdfyHisService qhdfyHisService;
  40 +
37 41 /**
38 42 *
39 43 * @return
... ... @@ -42,7 +46,7 @@
42 46 @ResponseBody
43 47 // @TokenRequired
44 48 public BaseResponse queryHisCheckList(String cardNo, HttpServletRequest request) {
45   - return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(hisServiceV1.queryCheckList(cardNo));
  49 + return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(qhdfyHisService.queryCheckList(cardNo));
46 50 }
47 51  
48 52 /**
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java View file @ 3e3a8ba
... ... @@ -46,5 +46,12 @@
46 46 return mongoSyncService.downloadByHospitalId(hospitalId);
47 47 }
48 48  
  49 + @ResponseBody
  50 + @RequestMapping(method = RequestMethod.POST,value = "/saveMongoModel")
  51 + public String saveMongoModel(String json, String className){
  52 + return mongoSyncService.saveMongoModel(json,className);
  53 + }
  54 +
  55 +
49 56 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java View file @ 3e3a8ba
... ... @@ -3,7 +3,9 @@
3 3 import com.lyms.platform.biz.service.SyncDataService;
4 4 import com.lyms.platform.common.base.BaseController;
5 5 import com.lyms.platform.common.pojo.SyncDataModel;
  6 +import com.lyms.platform.common.utils.Config;
6 7 import com.lyms.platform.common.utils.JsonUtil;
  8 +import com.lyms.platform.common.utils.LymsEncodeUtil;
7 9 import com.lyms.platform.query.SyncDataQuery;
8 10 import org.apache.commons.lang.StringUtils;
9 11 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -23,6 +25,8 @@
23 25 @Autowired
24 26 private SyncDataService syncDataService;
25 27  
  28 + public static String mongo_crypto_key = Config.getItem("mongo_crypto_key", "0");
  29 +
26 30 @RequestMapping(value = "/findSyncData", method = RequestMethod.POST)
27 31 public void findSyncData(HttpServletResponse response) {
28 32 SyncDataQuery syncDataQuery = new SyncDataQuery();
... ... @@ -30,6 +34,17 @@
30 34 syncDataQuery.setLimit(100);
31 35 syncDataQuery.setStatus(1);
32 36 List<SyncDataModel> list = syncDataService.querySyncData(syncDataQuery);
  37 + for (SyncDataModel model:list) {
  38 + model.setModified(null);
  39 + model.setCreated(null);
  40 + if (model.getAction().startsWith("POST")) {
  41 + try {
  42 + model.setJsonData(LymsEncodeUtil.aesEncrypt(model.getJsonData(), mongo_crypto_key));
  43 + } catch (Exception e) {
  44 + e.printStackTrace();
  45 + }
  46 + }
  47 + }
33 48 writeJson(response, JsonUtil.array2JsonString(list));
34 49 }
35 50