Commit 23bd89ff6dc35184ddecf92a42815f29f7b8698f

Authored by liquanyu
1 parent e79b591a30

隆化婚检同步和肌萎缩接口

Showing 9 changed files with 935 additions and 15 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java View file @ 23bd89f
... ... @@ -15,8 +15,10 @@
15 15 import org.apache.commons.lang.StringUtils;
16 16 import org.slf4j.Logger;
17 17 import org.slf4j.LoggerFactory;
  18 +import org.springframework.beans.BeanUtils;
18 19 import org.springframework.beans.factory.annotation.Autowired;
19 20 import org.springframework.data.domain.Sort;
  21 +import org.springframework.data.mongodb.core.MongoTemplate;
20 22 import org.springframework.data.mongodb.core.query.Criteria;
21 23 import org.springframework.data.mongodb.core.query.Query;
22 24 import org.springframework.stereotype.Service;
23 25  
... ... @@ -33,7 +35,10 @@
33 35 public static final String his_version = PropertiesUtils.getPropertyValue("his_version");
34 36 @Autowired
35 37 private MatDeliverService matDeliverService;
  38 +
36 39 @Autowired
  40 + private MongoTemplate mongoTemplate;
  41 + @Autowired
37 42 private IPatientDao iPatientDao;
38 43 @Autowired
39 44 private ISieveDao sieveDao;
... ... @@ -195,6 +200,37 @@
195 200 }
196 201  
197 202 /**
  203 + * 添加肌萎缩 10 -14周
  204 + */
  205 + public void addSmnJob() {
  206 + Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), -70);
  207 + Date start = DateUtil.addDay(DateUtil.formatDate(new Date()), -98);
  208 + PatientsQuery patientsQuery = new PatientsQuery();
  209 + patientsQuery.setLastMensesEnd(endDate);
  210 + patientsQuery.setLastMensesStart(start);
  211 + patientsQuery.setYn(YnEnums.YES.getId());
  212 + patientsQuery.setDueStatus(0);
  213 + patientsQuery.setType(1);
  214 + List<Patients> patientses = iPatientDao.queryPatient(patientsQuery.convertToQuery());
  215 + int batchSize = 200;
  216 + if (CollectionUtils.isNotEmpty(patientses)) {
  217 +
  218 + int end = 0;
  219 + List<Patients> patient;
  220 + for (int i = 0; i < patientses.size(); ) {
  221 + end = i + batchSize;
  222 + if (end > patientses.size()) {
  223 + end = patientses
  224 + .size();
  225 + }
  226 + patient = patientses.subList(i, end);
  227 + i += batchSize;
  228 + new Thread(new PatientSmnWorker(patient)).start();
  229 + }
  230 + }
  231 + }
  232 +
  233 + /**
198 234 * 满足孕15+3至20+6之间和有产筛申请单的数据
199 235 */
200 236 public void addSieveJob() {
201 237  
... ... @@ -974,7 +1010,38 @@
974 1010 public List<PredictedStatisticsCountModel> predictedStatistics() {
975 1011 return iPatientDao.predictedStatistics();
976 1012 }
  1013 + private class PatientSmnWorker extends Thread {
977 1014  
  1015 + private List<Patients> patientses;
  1016 + private long startTime;
  1017 +
  1018 + private PatientSmnWorker(List<Patients> patientses) {
  1019 + this.patientses = patientses;
  1020 + startTime = System.currentTimeMillis();
  1021 + }
  1022 +
  1023 + @Override
  1024 + public void run() {
  1025 + if (CollectionUtils.isNotEmpty(patientses))
  1026 + {
  1027 + for (Patients patient : patientses) {
  1028 + Query query = Query.query(Criteria.where("patientId").is(patient.getId()));
  1029 + List<SmnModel> smnModels = mongoTemplate.find(query, SmnModel.class);
  1030 + if (CollectionUtils.isEmpty(smnModels))
  1031 + {
  1032 + SmnModel smnModel = new SmnModel();
  1033 + BeanUtils.copyProperties(patient,smnModel);
  1034 + smnModel.setStatus(1);
  1035 + smnModel.setCreated(new Date());
  1036 + smnModel.setPatientId(patient.getId());
  1037 + smnModel.setId(null);
  1038 + smnModel.setYn(YnEnums.YES.getId());
  1039 + mongoTemplate.save(smnModel);
  1040 + }
  1041 + }
  1042 + }
  1043 + }
  1044 + }
978 1045 private class PatientWorker extends Thread {
979 1046  
980 1047 private List<Patients> patientses;
platform-dal/src/main/java/com/lyms/platform/pojo/SmnModel.java View file @ 23bd89f
  1 +package com.lyms.platform.pojo;
  2 +
  3 +import org.springframework.data.mongodb.core.mapping.Document;
  4 +
  5 +import java.util.Date;
  6 +
  7 +@Document(collection = "lyms_smn")
  8 +public class SmnModel {
  9 +
  10 + private String id;
  11 + private String patientId;
  12 + private String pid;
  13 + //末次月经
  14 + private Date lastMenses;
  15 + private String phone;
  16 + private Date birth;
  17 + private String vcCardNo;
  18 + /**
  19 + * 身份证号码
  20 + */
  21 + private String cardNo;
  22 + private String username;
  23 + /**
  24 + * 孕妇户籍地址
  25 + */
  26 + private String address;
  27 + private String provinceId;
  28 + private String cityId;
  29 + private String areaId;
  30 + private String streetId;
  31 +
  32 + /**
  33 + * 孕妇居住地
  34 + */
  35 + private String addressRegister;
  36 + private String provinceRegisterId;
  37 + private String cityRegisterId;
  38 + private String areaRegisterId;
  39 + private String streetRegisterId;
  40 +
  41 +
  42 + private String mzNum; //门诊号
  43 + private String bedNum;//床号
  44 + private String ybType;//样本类型 外周血
  45 + private String ybNum;//样本号
  46 + private Date sendDate;//送检时间
  47 + private String sendDoctor;//送检医生
  48 + private String diagnose;//诊断
  49 +
  50 + private Integer status; //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格
  51 +
  52 + private String hospitalId;//当前录入机构id
  53 + private String sendHospitalId;//送检医院
  54 +
  55 + private Double smn7; //基因外显子7
  56 + private Double smn8;//基因外显子8
  57 +
  58 + private String smn7Result; //基因外显子7 结果
  59 + private String smn8Result;//基因外显子8 结果
  60 +
  61 + private Integer yn;
  62 +
  63 +
  64 + private Integer result; //1 阴性 2 阳性
  65 +
  66 + private String suggest;//建议
  67 + private String checker;//检验员
  68 + private String reviewer;//审核人
  69 + private String approver;//批准人
  70 + private Date checkDate;//检查日期
  71 + private Date created;//创建记录时间
  72 +
  73 + public Integer getYn() {
  74 + return yn;
  75 + }
  76 +
  77 + public void setYn(Integer yn) {
  78 + this.yn = yn;
  79 + }
  80 +
  81 + public Date getCreated() {
  82 + return created;
  83 + }
  84 +
  85 + public void setCreated(Date created) {
  86 + this.created = created;
  87 + }
  88 +
  89 + public String getId() {
  90 + return id;
  91 + }
  92 +
  93 + public void setId(String id) {
  94 + this.id = id;
  95 + }
  96 +
  97 + public String getPatientId() {
  98 + return patientId;
  99 + }
  100 +
  101 + public void setPatientId(String patientId) {
  102 + this.patientId = patientId;
  103 + }
  104 +
  105 + public String getPid() {
  106 + return pid;
  107 + }
  108 +
  109 + public void setPid(String pid) {
  110 + this.pid = pid;
  111 + }
  112 +
  113 + public Date getLastMenses() {
  114 + return lastMenses;
  115 + }
  116 +
  117 + public void setLastMenses(Date lastMenses) {
  118 + this.lastMenses = lastMenses;
  119 + }
  120 +
  121 + public String getPhone() {
  122 + return phone;
  123 + }
  124 +
  125 + public void setPhone(String phone) {
  126 + this.phone = phone;
  127 + }
  128 +
  129 + public Date getBirth() {
  130 + return birth;
  131 + }
  132 +
  133 + public void setBirth(Date birth) {
  134 + this.birth = birth;
  135 + }
  136 +
  137 + public String getVcCardNo() {
  138 + return vcCardNo;
  139 + }
  140 +
  141 + public void setVcCardNo(String vcCardNo) {
  142 + this.vcCardNo = vcCardNo;
  143 + }
  144 +
  145 + public String getCardNo() {
  146 + return cardNo;
  147 + }
  148 +
  149 + public void setCardNo(String cardNo) {
  150 + this.cardNo = cardNo;
  151 + }
  152 +
  153 + public String getUsername() {
  154 + return username;
  155 + }
  156 +
  157 + public void setUsername(String username) {
  158 + this.username = username;
  159 + }
  160 +
  161 + public String getAddress() {
  162 + return address;
  163 + }
  164 +
  165 + public void setAddress(String address) {
  166 + this.address = address;
  167 + }
  168 +
  169 + public String getProvinceId() {
  170 + return provinceId;
  171 + }
  172 +
  173 + public void setProvinceId(String provinceId) {
  174 + this.provinceId = provinceId;
  175 + }
  176 +
  177 + public String getCityId() {
  178 + return cityId;
  179 + }
  180 +
  181 + public void setCityId(String cityId) {
  182 + this.cityId = cityId;
  183 + }
  184 +
  185 + public String getAreaId() {
  186 + return areaId;
  187 + }
  188 +
  189 + public void setAreaId(String areaId) {
  190 + this.areaId = areaId;
  191 + }
  192 +
  193 + public String getStreetId() {
  194 + return streetId;
  195 + }
  196 +
  197 + public void setStreetId(String streetId) {
  198 + this.streetId = streetId;
  199 + }
  200 +
  201 + public String getAddressRegister() {
  202 + return addressRegister;
  203 + }
  204 +
  205 + public void setAddressRegister(String addressRegister) {
  206 + this.addressRegister = addressRegister;
  207 + }
  208 +
  209 + public String getProvinceRegisterId() {
  210 + return provinceRegisterId;
  211 + }
  212 +
  213 + public void setProvinceRegisterId(String provinceRegisterId) {
  214 + this.provinceRegisterId = provinceRegisterId;
  215 + }
  216 +
  217 + public String getCityRegisterId() {
  218 + return cityRegisterId;
  219 + }
  220 +
  221 + public void setCityRegisterId(String cityRegisterId) {
  222 + this.cityRegisterId = cityRegisterId;
  223 + }
  224 +
  225 + public String getAreaRegisterId() {
  226 + return areaRegisterId;
  227 + }
  228 +
  229 + public void setAreaRegisterId(String areaRegisterId) {
  230 + this.areaRegisterId = areaRegisterId;
  231 + }
  232 +
  233 + public String getStreetRegisterId() {
  234 + return streetRegisterId;
  235 + }
  236 +
  237 + public void setStreetRegisterId(String streetRegisterId) {
  238 + this.streetRegisterId = streetRegisterId;
  239 + }
  240 +
  241 + public String getMzNum() {
  242 + return mzNum;
  243 + }
  244 +
  245 + public void setMzNum(String mzNum) {
  246 + this.mzNum = mzNum;
  247 + }
  248 +
  249 + public String getBedNum() {
  250 + return bedNum;
  251 + }
  252 +
  253 + public void setBedNum(String bedNum) {
  254 + this.bedNum = bedNum;
  255 + }
  256 +
  257 + public String getYbType() {
  258 + return ybType;
  259 + }
  260 +
  261 + public void setYbType(String ybType) {
  262 + this.ybType = ybType;
  263 + }
  264 +
  265 + public String getYbNum() {
  266 + return ybNum;
  267 + }
  268 +
  269 + public void setYbNum(String ybNum) {
  270 + this.ybNum = ybNum;
  271 + }
  272 +
  273 + public Date getSendDate() {
  274 + return sendDate;
  275 + }
  276 +
  277 + public void setSendDate(Date sendDate) {
  278 + this.sendDate = sendDate;
  279 + }
  280 +
  281 + public String getSendDoctor() {
  282 + return sendDoctor;
  283 + }
  284 +
  285 + public void setSendDoctor(String sendDoctor) {
  286 + this.sendDoctor = sendDoctor;
  287 + }
  288 +
  289 + public String getDiagnose() {
  290 + return diagnose;
  291 + }
  292 +
  293 + public void setDiagnose(String diagnose) {
  294 + this.diagnose = diagnose;
  295 + }
  296 +
  297 +
  298 +
  299 + public String getHospitalId() {
  300 + return hospitalId;
  301 + }
  302 +
  303 + public void setHospitalId(String hospitalId) {
  304 + this.hospitalId = hospitalId;
  305 + }
  306 +
  307 + public String getSendHospitalId() {
  308 + return sendHospitalId;
  309 + }
  310 +
  311 + public void setSendHospitalId(String sendHospitalId) {
  312 + this.sendHospitalId = sendHospitalId;
  313 + }
  314 +
  315 + public Double getSmn7() {
  316 + return smn7;
  317 + }
  318 +
  319 + public void setSmn7(Double smn7) {
  320 + this.smn7 = smn7;
  321 + }
  322 +
  323 + public Double getSmn8() {
  324 + return smn8;
  325 + }
  326 +
  327 + public void setSmn8(Double smn8) {
  328 + this.smn8 = smn8;
  329 + }
  330 +
  331 + public String getSmn7Result() {
  332 + return smn7Result;
  333 + }
  334 +
  335 + public void setSmn7Result(String smn7Result) {
  336 + this.smn7Result = smn7Result;
  337 + }
  338 +
  339 + public String getSmn8Result() {
  340 + return smn8Result;
  341 + }
  342 +
  343 + public void setSmn8Result(String smn8Result) {
  344 + this.smn8Result = smn8Result;
  345 + }
  346 +
  347 + public Integer getStatus() {
  348 + return status;
  349 + }
  350 +
  351 + public void setStatus(Integer status) {
  352 + this.status = status;
  353 + }
  354 +
  355 + public Integer getResult() {
  356 + return result;
  357 + }
  358 +
  359 + public void setResult(Integer result) {
  360 + this.result = result;
  361 + }
  362 +
  363 + public String getSuggest() {
  364 + return suggest;
  365 + }
  366 +
  367 + public void setSuggest(String suggest) {
  368 + this.suggest = suggest;
  369 + }
  370 +
  371 + public String getChecker() {
  372 + return checker;
  373 + }
  374 +
  375 + public void setChecker(String checker) {
  376 + this.checker = checker;
  377 + }
  378 +
  379 + public String getReviewer() {
  380 + return reviewer;
  381 + }
  382 +
  383 + public void setReviewer(String reviewer) {
  384 + this.reviewer = reviewer;
  385 + }
  386 +
  387 + public String getApprover() {
  388 + return approver;
  389 + }
  390 +
  391 + public void setApprover(String approver) {
  392 + this.approver = approver;
  393 + }
  394 +
  395 + public Date getCheckDate() {
  396 + return checkDate;
  397 + }
  398 +
  399 + public void setCheckDate(Date checkDate) {
  400 + this.checkDate = checkDate;
  401 + }
  402 +}
platform-operate-api/src/main/java/com/lyms/hospitalapi/lhxfy/LhxfyService.java View file @ 23bd89f
... ... @@ -915,6 +915,13 @@
915 915 }
916 916 }
917 917 }
  918 + /**梅毒***/
  919 + premaritalCheckup.setTp("2");
  920 + /***艾滋病筛查***/
  921 + premaritalCheckup.setLhHiv("2");
  922 + /***乙肝表面抗原***/
  923 + premaritalCheckup.setHbsag("2");
  924 +
918 925 //检查结果更新到个人档案
919 926 Query query2 = Query.query(Criteria.where("id").is(premaritalCheckup.getId()));
920 927 Update update2 = MongoConvertHelper
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java View file @ 23bd89f
  1 +package com.lyms.platform.operate.web.controller;
  2 +
  3 +import com.fasterxml.jackson.annotation.JsonAlias;
  4 +import com.lyms.platform.common.annotation.TokenRequired;
  5 +import com.lyms.platform.common.base.BaseController;
  6 +import com.lyms.platform.common.result.BaseListResponse;
  7 +import com.lyms.platform.common.result.BaseResponse;
  8 +import com.lyms.platform.operate.web.facade.SmnFacade;
  9 +import com.lyms.platform.operate.web.request.SmnQueryRequest;
  10 +import com.lyms.platform.operate.web.request.SmnRequest;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.stereotype.Controller;
  13 +import org.springframework.web.bind.annotation.*;
  14 +
  15 +import javax.servlet.http.HttpServletRequest;
  16 +
  17 +@Controller
  18 +public class SmnController extends BaseController {
  19 +
  20 + @Autowired
  21 + private SmnFacade smnFacade;
  22 +
  23 + /**
  24 + * 保存单个
  25 + *
  26 + * @param param
  27 + * @return
  28 + */
  29 + @RequestMapping(method = RequestMethod.POST, value = "/addSmnApply")
  30 + @ResponseBody
  31 + @TokenRequired
  32 + public BaseResponse addSmn(@RequestBody SmnRequest param, HttpServletRequest request) {
  33 + return smnFacade.addSmn(param, getUserId(request));
  34 + }
  35 +
  36 + /**
  37 + * 编辑单个
  38 + *
  39 + * @param param
  40 + * @return
  41 + */
  42 + @RequestMapping(method = RequestMethod.POST, value = "/editSmn")
  43 + @ResponseBody
  44 + @TokenRequired
  45 + public BaseResponse editSmn(@RequestBody SmnRequest param, HttpServletRequest request) {
  46 + return smnFacade.editSmn(param);
  47 + }
  48 +
  49 +
  50 + @RequestMapping(method = RequestMethod.GET, value = "/setSmnStatus/{id}/{status}")
  51 + @ResponseBody
  52 + @TokenRequired
  53 + public BaseResponse setSmnStatus(@PathVariable String id,@PathVariable Integer status, HttpServletRequest request) {
  54 + return smnFacade.setSmnStatus(id,status);
  55 + }
  56 +
  57 + /**
  58 + * 列表
  59 + *
  60 + * @param param
  61 + * @return
  62 + */
  63 + @RequestMapping(method = RequestMethod.GET, value = "/getSmnList")
  64 + @ResponseBody
  65 + @TokenRequired
  66 + public BaseListResponse getSmnList(@JsonAlias SmnQueryRequest param, HttpServletRequest request) {
  67 + return smnFacade.getSmnList(param, getUserId(request));
  68 + }
  69 +
  70 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ 23bd89f
... ... @@ -605,7 +605,12 @@
605 605 patientsService.addSieveJob();
606 606 return "finish";
607 607 }
608   -
  608 + @RequestMapping(value = "/addSmnJob", method = RequestMethod.GET)
  609 + @ResponseBody
  610 + public String addSmnJob() {
  611 + patientsService.addSmnJob();
  612 + return "finish";
  613 + }
609 614 @RequestMapping(value = "/autoMatDeliver", method = RequestMethod.GET)
610 615 @ResponseBody
611 616 public String autoMatDeliver() {
612 617  
613 618  
614 619  
... ... @@ -5217,15 +5222,50 @@
5217 5222 return "success";
5218 5223 }
5219 5224  
5220   - @RequestMapping(value = "/lpfy/getFmData", method = RequestMethod.GET)
  5225 +
  5226 + @RequestMapping(value = "/syncPreEugebicsToHj", method = RequestMethod.GET)
5221 5227 @ResponseBody
5222   - public Map getFmData(@RequestParam(required = false)String cardNo) {
  5228 + public String syncPreEugebicsToHj() {
5223 5229  
5224   - Map<String,String> data = new HashMap();
5225   - data.put("130824199802011022","{\"code\":0,\"message\":\"成功\",\"data\":{\"due_week\":\"39\",\"due_day\":\"3\",\"fetus_num\":null,\"placenta_num\":\"1\",\"bhnum\":\"227347\",\"maternal_info\":null,\"chbp\":null,\"ch2bp\":null,\"breath\":null,\"pulse\":null,\"oh_lose_blood\":null,\"th_lose_blood\":null,\"rh_lose_blood\":null,\"sh_lose_blood\":null,\"lose_blood_cause\":null,\"babyList\":[{\"delivery_mode\":\"1\",\"operation_cause\":null,\"prod_process_one\":\"0\",\"prod_process_two\":\"0\",\"prod_process_three\":\"0\",\"total_process\":null,\"perineal_condition\":\"split\",\"silie_level\":\"1\",\"needle_num\":\"0\",\"tmctype\":\"1\",\"tmcside\":null,\"tlong\":null,\"twidth\":null,\"theight\":null,\"tweight\":null,\"um_length\":null,\"um_extype\":null,\"baby_fetal_presentation\":null,\"baby_fetal_position\":\"LOA\",\"baby_sex\":\"1\",\"baby_delivery_time\":\"2022-06-23 10:18:00\",\"baby_pregnancy_out\":\"0\",\"baby_weight\":\"3780\",\"baby_height\":\"54\",\"baby_deformity\":null,\"baby_apgar_score_one\":\"10\",\"baby_apgar_score_five\":\"10\",\"baby_apgar_score_ten\":\"10\",\"baby_asphyxiam\":null,\"baby_sick\":null,\"baby_touch_startm\":null,\"baby_touch_lastm\":null,\"baby_earlysuck\":null}]}}");
5226   - data.put("230183200004020240","{\"code\":0,\"message\":\"成功\",\"data\":{\"due_week\":\"40\",\"due_day\":\"5\",\"fetus_num\":null,\"placenta_num\":\"1\",\"bhnum\":\"227630\",\"maternal_info\":null,\"chbp\":null,\"ch2bp\":null,\"breath\":null,\"pulse\":null,\"oh_lose_blood\":null,\"th_lose_blood\":null,\"rh_lose_blood\":null,\"sh_lose_blood\":null,\"lose_blood_cause\":null,\"babyList\":[{\"delivery_mode\":\"1\",\"operation_cause\":null,\"prod_process_one\":\"0\",\"prod_process_two\":\"0\",\"prod_process_three\":\"0\",\"total_process\":null,\"perineal_condition\":\"split\",\"silie_level\":\"0\",\"needle_num\":\"0\",\"tmctype\":\"1\",\"tmcside\":null,\"tlong\":null,\"twidth\":null,\"theight\":null,\"tweight\":null,\"um_length\":null,\"um_extype\":null,\"baby_fetal_presentation\":null,\"baby_fetal_position\":\"正枕前\",\"baby_sex\":\"0\",\"baby_delivery_time\":\"2022-06-21 23:58:40\",\"baby_pregnancy_out\":\"0\",\"baby_weight\":\"3100\",\"baby_height\":\"50\",\"baby_deformity\":null,\"baby_apgar_score_one\":\"10\",\"baby_apgar_score_five\":\"10\",\"baby_apgar_score_ten\":\"10\",\"baby_asphyxiam\":null,\"baby_sick\":null,\"baby_touch_startm\":null,\"baby_touch_lastm\":null,\"baby_earlysuck\":null}]}}");
5227   - return JsonUtil.getMap(data.get(cardNo));
5228   - }
  5230 + Query query = Query.query(Criteria.where("hospitalId").is("2100001605").and("wifeBCheck").exists(true));
  5231 + //query.addCriteria(Criteria.where("id").is("62e874db9932b2eeb3fe9a6c"));
  5232 + List<PreEugenicsBaseModel> modelList = mongoTemplate.find(query,PreEugenicsBaseModel.class);
  5233 + if (CollectionUtils.isNotEmpty(modelList))
  5234 + {
  5235 + System.out.println("size==="+modelList.size());
  5236 + for (PreEugenicsBaseModel model : modelList)
  5237 + {
  5238 + String cardNo = model.getWifeCardNo();
  5239 + Query query1 = Query.query(Criteria.where("certificateNum").is(cardNo).and("xRay").exists(true));
  5240 + List<PremaritalCheckup> checkupList = mongoTemplate.find(query1,PremaritalCheckup.class);
  5241 + if (CollectionUtils.isNotEmpty(checkupList))
  5242 + {
  5243 + PremaritalCheckup checkup = checkupList.get(0);
  5244 + if (model.getWifeBCheck() != null && model.getWifeBCheck().size() > 0 && model.getWifeBCheck().get("bcjc") != null)
  5245 + {
  5246 + Object obj = model.getWifeBCheck().get("bcjc");
  5247 + List<Object> list = (ArrayList)obj;
  5248 + if (CollectionUtils.isNotEmpty(list))
  5249 + {
  5250 + Integer status = (Integer)list.get(0);
  5251 + String content = (String)list.get(1);
  5252 + checkup.setLhbc(String.valueOf(status+1));
  5253 + checkup.setLhbcms(content);
  5254 + if (list.size() == 3)
  5255 + {
  5256 + String code = (String)list.get(2);
  5257 + checkup.setLhbcjch(code);
  5258 + }
  5259 + Update update = MongoConvertHelper
  5260 + .convertToNativeUpdate(ReflectionUtils.getUpdateField(checkup));
  5261 + mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(checkup.getId())), update, PremaritalCheckup.class);
  5262 + }
  5263 + }
  5264 + }
  5265 + }
  5266 + }
5229 5267  
  5268 + return "success";
  5269 + }
5230 5270 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java View file @ 23bd89f
  1 +package com.lyms.platform.operate.web.facade;
  2 +
  3 +import com.lyms.platform.biz.service.PatientsService;
  4 +import com.lyms.platform.common.enums.YnEnums;
  5 +import com.lyms.platform.common.result.BaseListResponse;
  6 +import com.lyms.platform.common.result.BaseResponse;
  7 +import com.lyms.platform.common.utils.DateUtil;
  8 +import com.lyms.platform.common.utils.MongoConvertHelper;
  9 +import com.lyms.platform.common.utils.ReflectionUtils;
  10 +import com.lyms.platform.common.utils.StringUtils;
  11 +import com.lyms.platform.operate.web.request.SmnQueryRequest;
  12 +import com.lyms.platform.operate.web.request.SmnRequest;
  13 +import com.lyms.platform.pojo.Patients;
  14 +import com.lyms.platform.pojo.SmnModel;
  15 +import com.lyms.platform.query.PatientsQuery;
  16 +import org.springframework.beans.BeanUtils;
  17 +import org.springframework.beans.factory.annotation.Autowired;
  18 +import org.springframework.data.domain.Sort;
  19 +import org.springframework.data.mongodb.core.MongoTemplate;
  20 +import org.springframework.data.mongodb.core.query.Criteria;
  21 +import org.springframework.data.mongodb.core.query.Query;
  22 +import org.springframework.data.mongodb.core.query.Update;
  23 +import org.springframework.stereotype.Component;
  24 +
  25 +import java.util.Date;
  26 +import java.util.List;
  27 +
  28 +@Component
  29 +public class SmnFacade {
  30 +
  31 + @Autowired
  32 + private AutoMatchFacade autoMatchFacade;
  33 +
  34 + @Autowired
  35 + private MongoTemplate mongoTemplate;
  36 +
  37 + @Autowired
  38 + private PatientsService patientsService;
  39 +
  40 + public BaseResponse addSmn(SmnRequest param, Integer userId) {
  41 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  42 +
  43 + Query query = Query.query(Criteria.where("patientId").is(param.getPatientId()).and("status").is(0));
  44 + SmnModel smnModel = mongoTemplate.findOne(query, SmnModel.class);
  45 + if (smnModel != null)
  46 + {
  47 + BeanUtils.copyProperties(param,smnModel);
  48 + param.setHospitalId(hospitalId);
  49 + param.setStatus(2);
  50 + Query query1 = Query.query(Criteria.where("id").is(smnModel.getId()));
  51 + Update update = MongoConvertHelper
  52 + .convertToNativeUpdate(ReflectionUtils.getUpdateField(param));
  53 + mongoTemplate.updateFirst(query1, update, SmnModel.class);
  54 + return new BaseResponse();
  55 + }
  56 + else
  57 + {
  58 + Patients patients = patientsService.findOnePatientById(param.getPatientId());
  59 + BeanUtils.copyProperties(patients,param);
  60 + param.setHospitalId(hospitalId);
  61 + param.setStatus(2);
  62 + param.setCreated(new Date());
  63 + param.setPatientId(patients.getId());
  64 + param.setId(null);
  65 + param.setYn(YnEnums.YES.getId());
  66 + mongoTemplate.save(param);
  67 + return new BaseResponse();
  68 + }
  69 +
  70 + }
  71 +
  72 + public BaseResponse editSmn(SmnRequest param) {
  73 + if (param.getSmn7() != null && param.getSmn8() != null)
  74 + {
  75 + String smn7Result = "未缺失";
  76 + String smn8Result = "未缺失";
  77 + if (param.getSmn7() > 0.8)
  78 + {
  79 + smn7Result = "纯合缺失";
  80 + } else if (param.getSmn7() > -0.45 && param.getSmn7() <=0.45)
  81 + {
  82 + smn7Result = "杂合缺失";
  83 + }
  84 +
  85 + if (param.getSmn8() > 1.5)
  86 + {
  87 + smn8Result = "纯合缺失";
  88 + }else if (param.getSmn8() > -0.45 && param.getSmn8() <= 0.45)
  89 + {
  90 + smn8Result = "杂合缺失";
  91 + }
  92 + param.setSmn7Result(smn7Result);
  93 + param.setSmn8Result(smn8Result);
  94 + if ((param.getSmn7() > -0.45 && param.getSmn7() <=0.45) || (param.getSmn8() > -0.45 && param.getSmn8() <=0.45))
  95 + {
  96 + param.setResult(2);
  97 + }
  98 + else
  99 + {
  100 + param.setResult(1);
  101 + }
  102 + }
  103 +
  104 + Query query = Query.query(Criteria.where("id").is(param.getId()));
  105 + Update update = MongoConvertHelper
  106 + .convertToNativeUpdate(ReflectionUtils.getUpdateField(param));
  107 + mongoTemplate.updateFirst(query, update, SmnModel.class);
  108 + return new BaseResponse();
  109 + }
  110 +
  111 + public BaseListResponse getSmnList(SmnQueryRequest param, Integer userId) {
  112 +
  113 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  114 + Query query = new Query();
  115 +
  116 + if(StringUtils.isNotEmpty(param.getQueryNo()))
  117 + {
  118 + query.addCriteria(Criteria.where("phone")
  119 + .is(param.getQueryNo()).orOperator(Criteria.where("cardNo").is(param.getQueryNo())
  120 + .orOperator(Criteria.where("username").is(param.getQueryNo()))));
  121 + }
  122 +
  123 + if(param.getQueryType() == 1)
  124 + {
  125 + query.addCriteria(Criteria.where("hospitalId").is(hospitalId));
  126 + }
  127 + else if (param.getQueryType() == 1)
  128 + {
  129 + query.addCriteria(Criteria.where("sendHospitalId").is(hospitalId));
  130 + if (StringUtils.isNotEmpty(param.getHospitalId()))
  131 + {
  132 + query.addCriteria(Criteria.where("hospitalId").is(param.getHospitalId()));
  133 + }
  134 + }
  135 + String pid = param.getPid();
  136 + if (StringUtils.isNotEmpty(pid)) {
  137 + query.addCriteria(Criteria.where("pid").is(pid));
  138 + } String patientId = param.getPatientId();
  139 +
  140 + if (StringUtils.isNotEmpty(patientId)) {
  141 + query.addCriteria(Criteria.where("patientId").is(patientId));
  142 + }
  143 + String mzNum = param.getMzNum();
  144 + if (StringUtils.isNotEmpty(mzNum)) {
  145 + query.addCriteria(Criteria.where("mzNum").is(mzNum));
  146 + }
  147 + String bedNum = param.getBedNum();
  148 + if (StringUtils.isNotEmpty(bedNum)) {
  149 + query.addCriteria(Criteria.where("bedNum").is(bedNum));
  150 + }
  151 + String ybNum = param.getYbNum();
  152 + if (StringUtils.isNotEmpty(ybNum)) {
  153 + query.addCriteria(Criteria.where("ybNum").is(ybNum));
  154 + }
  155 +
  156 + Integer status = param.getStatus();
  157 + if (status != null) {
  158 + query.addCriteria(Criteria.where("status").is(status));
  159 + }
  160 +
  161 + Integer result = param.getResult();
  162 + if (result != null) {
  163 + query.addCriteria(Criteria.where("result").is(result));
  164 + }
  165 +
  166 + String sendDate = param.getSendDate();
  167 + if (StringUtils.isNotEmpty(sendDate)) {
  168 + String[] arrs = sendDate.split(" - ");
  169 + Date start = DateUtil.parseYMD(arrs[0]);
  170 + Date end = DateUtil.parseYMD(arrs[1]);
  171 + end = DateUtil.getDayLastSecond(end);
  172 + query.addCriteria(Criteria.where("sendDate").gte(start).lte(end));
  173 + }
  174 +
  175 + String checkDate = param.getCheckDate();
  176 + if (StringUtils.isNotEmpty(checkDate)) {
  177 + String[] arrs = checkDate.split(" - ");
  178 + Date start = DateUtil.parseYMD(arrs[0]);
  179 + Date end = DateUtil.parseYMD(arrs[1]);
  180 + end = DateUtil.getDayLastSecond(end);
  181 + query.addCriteria(Criteria.where("checkDate").gte(start).lte(end));
  182 + }
  183 + query.with(new Sort(Sort.Direction.DESC, "created"));
  184 + long count = mongoTemplate.count(query, SmnModel.class);
  185 + param.mysqlBuild((int) count);
  186 + query.skip(param.getOffset()).limit(param.getLimit());
  187 + List<SmnModel> smnModels = mongoTemplate.find(query, SmnModel.class);
  188 + BaseListResponse baseListResponse = new BaseListResponse();
  189 + baseListResponse.setData(smnModels);
  190 + baseListResponse.setPageInfo(param.getPageInfo());
  191 + return baseListResponse;
  192 + }
  193 +
  194 + public BaseResponse setSmnStatus(String id, Integer status) {
  195 + Query query = Query.query(Criteria.where("id").is(id));
  196 + SmnModel smnModel = new SmnModel();
  197 + smnModel.setStatus(status);
  198 + smnModel.setId(id);
  199 + Update update = MongoConvertHelper
  200 + .convertToNativeUpdate(ReflectionUtils.getUpdateField(smnModel));
  201 + mongoTemplate.updateFirst(query, update, SmnModel.class);
  202 + return new BaseResponse();
  203 + }
  204 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java View file @ 23bd89f
  1 +package com.lyms.platform.operate.web.request;
  2 +
  3 +import com.lyms.platform.common.dao.BaseQuery;
  4 +
  5 +
  6 +public class SmnQueryRequest extends BaseQuery {
  7 + private Integer queryType; //1 本机构查询 2 妇幼查询 3 检验机构查询
  8 + private String patientId;
  9 + private String pid;
  10 + private String queryNo;//查询号 身份证号码,手机号码,姓名
  11 + private String sendDate;//送检时间
  12 + private String mzNum; //门诊号
  13 + private String bedNum;//床号
  14 + private String ybNum;//样本号
  15 +
  16 + private String hospitalId;//申请机构id
  17 + private String sendHospitalId;//送检医院id
  18 +
  19 +
  20 + private Integer status; //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格
  21 +
  22 + private Integer result; //1 阴性 2 阳性
  23 +
  24 + private String checkDate;//检查日期
  25 +
  26 + public String getPatientId() {
  27 + return patientId;
  28 + }
  29 +
  30 + public void setPatientId(String patientId) {
  31 + this.patientId = patientId;
  32 + }
  33 +
  34 + public String getPid() {
  35 + return pid;
  36 + }
  37 +
  38 + public void setPid(String pid) {
  39 + this.pid = pid;
  40 + }
  41 +
  42 + public String getQueryNo() {
  43 + return queryNo;
  44 + }
  45 +
  46 + public void setQueryNo(String queryNo) {
  47 + this.queryNo = queryNo;
  48 + }
  49 +
  50 + public Integer getQueryType() {
  51 + return queryType;
  52 + }
  53 +
  54 + public void setQueryType(Integer queryType) {
  55 + this.queryType = queryType;
  56 + }
  57 +
  58 + public String getSendDate() {
  59 + return sendDate;
  60 + }
  61 +
  62 + public void setSendDate(String sendDate) {
  63 + this.sendDate = sendDate;
  64 + }
  65 +
  66 + public String getMzNum() {
  67 + return mzNum;
  68 + }
  69 +
  70 + public void setMzNum(String mzNum) {
  71 + this.mzNum = mzNum;
  72 + }
  73 +
  74 + public String getBedNum() {
  75 + return bedNum;
  76 + }
  77 +
  78 + public void setBedNum(String bedNum) {
  79 + this.bedNum = bedNum;
  80 + }
  81 +
  82 + public String getYbNum() {
  83 + return ybNum;
  84 + }
  85 +
  86 + public void setYbNum(String ybNum) {
  87 + this.ybNum = ybNum;
  88 + }
  89 +
  90 +
  91 +
  92 + public String getHospitalId() {
  93 + return hospitalId;
  94 + }
  95 +
  96 + public void setHospitalId(String hospitalId) {
  97 + this.hospitalId = hospitalId;
  98 + }
  99 +
  100 + public String getSendHospitalId() {
  101 + return sendHospitalId;
  102 + }
  103 +
  104 + public void setSendHospitalId(String sendHospitalId) {
  105 + this.sendHospitalId = sendHospitalId;
  106 + }
  107 +
  108 + public Integer getStatus() {
  109 + return status;
  110 + }
  111 +
  112 + public void setStatus(Integer status) {
  113 + this.status = status;
  114 + }
  115 +
  116 + public Integer getResult() {
  117 + return result;
  118 + }
  119 +
  120 + public void setResult(Integer result) {
  121 + this.result = result;
  122 + }
  123 +
  124 + public String getCheckDate() {
  125 + return checkDate;
  126 + }
  127 +
  128 + public void setCheckDate(String checkDate) {
  129 + this.checkDate = checkDate;
  130 + }
  131 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnRequest.java View file @ 23bd89f
  1 +package com.lyms.platform.operate.web.request;
  2 +
  3 +import com.lyms.platform.pojo.SmnModel;
  4 +
  5 +public class SmnRequest extends SmnModel {
  6 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java View file @ 23bd89f
... ... @@ -3,10 +3,7 @@
3 3 import java.util.*;
4 4 import java.util.concurrent.Callable;
5 5 import java.util.concurrent.Future;
6   -import java.util.concurrent.TimeUnit;
7 6  
8   -import com.google.common.collect.ArrayListMultimap;
9   -import com.google.common.collect.Multimap;
10 7 import com.lyms.hospitalapi.lcfy.LisService;
11 8 import com.lyms.platform.biz.service.CancerScreeningService;
12 9 import com.lyms.platform.biz.service.PremaritalCheckupService;
13 10  
14 11  
15 12  
... ... @@ -18,20 +15,16 @@
18 15 import com.lyms.platform.common.utils.*;
19 16 import com.lyms.platform.operate.web.facade.AutoMatchFacade;
20 17 import com.lyms.platform.operate.web.request.*;
21   -import com.lyms.platform.operate.web.result.PatientRiskSortResult;
22 18 import com.lyms.platform.operate.web.utils.ResponseUtil;
23 19 import com.lyms.platform.permission.model.Organization;
24   -import com.lyms.platform.permission.model.OrganizationQuery;
25 20 import com.lyms.platform.permission.service.OrganizationService;
26 21 import com.lyms.platform.permission.service.UsersService;
27 22 import com.lyms.platform.pojo.*;
28 23 import com.lyms.platform.query.CancerScreeningQuery;
29   -import com.lyms.platform.query.PatientsQuery;
30 24 import com.lyms.platform.query.PremaritalCheckupQuery;
31 25 import com.lyms.platform.query.ResidentsArchiveQuery;
32 26 import org.apache.commons.collections.CollectionUtils;
33 27 import org.apache.commons.collections.MapUtils;
34   -import org.bson.types.ObjectId;
35 28 import org.springframework.beans.BeanUtils;
36 29 import org.springframework.beans.factory.annotation.Autowired;
37 30 import org.springframework.beans.factory.annotation.Qualifier;