| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import jodd.util.StringUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import lombok.var; |
| | | import org.aspectj.weaver.AjAttribute; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.math.BigDecimal; |
| | | import java.text.Collator; |
| | | import java.util.*; |
| | |
| | | @ApiOperation (value = "同步sql server数据到本地数据库数据接口") |
| | | @RepeatSubmit |
| | | // @Transactional |
| | | public AjaxResult dataSynchronization(@RequestParam String tjNumber) { |
| | | |
| | | public AjaxResult dataSynchronization(@RequestParam String tjNumber, HttpServletRequest request) { |
| | | String hospId = request.getHeader("hospId"); |
| | | RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber); |
| | | try { |
| | | boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS); |
| | |
| | | return AjaxResult.success("同步成功"); |
| | | } |
| | | else if(null !=sfkqdshitulianjie && sfkqdshitulianjie.equalsIgnoreCase("Y")){ |
| | | List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber()); |
| | | List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber(),hospId); |
| | | if(null != hysqdList && !hysqdList.isEmpty()){ |
| | | for (LtkjHysqd hysqd : hysqdList) { |
| | | LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh()); |
| | |
| | | } |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | } |
| | | List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber()); |
| | | List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber(),hospId); |
| | | if(null !=jcsqdList && !jcsqdList.isEmpty()){ |
| | | jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); |
| | | jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); |
| | | jcsqdService.saveBatch(jcsqdList); |
| | | List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId()); |
| | | List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId(),hospId); |
| | | if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | } |
| | |
| | | List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); |
| | | List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); |
| | | //同步检验 |
| | | String resultMsg = ""; |
| | | if (null != baoGaoDans && !baoGaoDans.isEmpty()) { |
| | | Date dates = new Date(); |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | String result1 = getAjaxResult(result); |
| | | JSONObject object = getJSONObject(result1); |
| | | String code = object.getStr("ResultCode"); |
| | | if (null == code || !code.equals("0")) { |
| | | return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!"); |
| | | } |
| | | JSONArray data = object.getJSONArray("ResultData"); |
| | | for (Object datum : data) { |
| | | JSONObject jsonObject = (JSONObject) datum; |
| | | boolean isInsertHysqd = false; |
| | | LtkjHysqd hysqd = new LtkjHysqd(); |
| | | hysqd.setTjh(order.getCardId()); |
| | | hysqd.setTmh(jsonObject.getStr("JYBGID")); |
| | | hysqd.setBbbh(jsonObject.getStr("BBDM")); |
| | | hysqd.setBbmc(jsonObject.getStr("BBMC")); |
| | | hysqd.setXmid(jsonObject.getStr("JYXMDM")); |
| | | hysqd.setXmmc(jsonObject.getStr("JYXMMC")); |
| | | hysqd.setSqsj(jsonObject.getStr("SQRQ")); |
| | | hysqd.setSqys(jsonObject.getStr("SQRBH")); |
| | | hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); |
| | | hysqd.setSqrxm(jsonObject.getStr("SQRXM")); |
| | | hysqd.setSqdh(jsonObject.getStr("SQDBH")); |
| | | hysqd.setShrdm(jsonObject.getStr("JYYSBH")); |
| | | hysqd.setShrxm(jsonObject.getStr("JYYSQM")); |
| | | hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); |
| | | hysqd.setCreateTime(new Date()); |
| | | QueryWrapper<LtkjHysqd> queryWrapper = new QueryWrapper<>(hysqd); |
| | | List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper); |
| | | if (list.isEmpty()) |
| | | isInsertHysqd = true; |
| | | if (isInsertHysqd){ |
| | | saveHysqd(hysqd); |
| | | }else { |
| | | saveHybgd(hysqd); |
| | | // if (null == code || !code.equals("0")) { |
| | | // return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!"); |
| | | // } |
| | | if (null != code && code.equals("0")) { |
| | | JSONArray data = object.getJSONArray("ResultData"); |
| | | for (Object datum : data) { |
| | | JSONObject jsonObject = (JSONObject) datum; |
| | | boolean isInsertHysqd = false; |
| | | LtkjHysqd hysqd = new LtkjHysqd(); |
| | | hysqd.setTjh(order.getCardId()); |
| | | hysqd.setTmh(jsonObject.getStr("JYBGID")); |
| | | hysqd.setBbbh(jsonObject.getStr("BBDM")); |
| | | hysqd.setBbmc(jsonObject.getStr("BBMC")); |
| | | hysqd.setXmid(jsonObject.getStr("JYXMDM")); |
| | | hysqd.setXmmc(jsonObject.getStr("JYXMMC")); |
| | | hysqd.setSqsj(jsonObject.getStr("SQRQ")); |
| | | hysqd.setSqys(jsonObject.getStr("SQRBH")); |
| | | hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); |
| | | hysqd.setSqrxm(jsonObject.getStr("SQRXM")); |
| | | hysqd.setSqdh(jsonObject.getStr("SQDBH")); |
| | | hysqd.setShrdm(jsonObject.getStr("JYYSBH")); |
| | | hysqd.setShrxm(jsonObject.getStr("JYYSQM")); |
| | | hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); |
| | | hysqd.setCreateTime(new Date()); |
| | | QueryWrapper<LtkjHysqd> queryWrapper = new QueryWrapper<>(hysqd); |
| | | List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper); |
| | | if (list.isEmpty()) |
| | | isInsertHysqd = true; |
| | | if (isInsertHysqd) { |
| | | saveHysqd(hysqd); |
| | | } else { |
| | | saveHybgd(hysqd); |
| | | } |
| | | } |
| | | }else { |
| | | resultMsg = "化验项目暂时未出结果,请稍后同步!!!"; |
| | | } |
| | | //同步化验项目 |
| | | // testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | |
| | | jcsqdService.saveLtkjExamJcsqd(order.getCardId()); |
| | | // testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | }else { |
| | | return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!"); |
| | | resultMsg = "检查项目暂时未出结果,请稍后同步!!!"; |
| | | // return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!"); |
| | | } |
| | | } |
| | | } |
| | | return AjaxResult.success("同步成功"); |
| | | if (StrUtil.isBlank(resultMsg)) |
| | | return AjaxResult.success("同步成功"); |
| | | else return AjaxResult.error(resultMsg); |
| | | } |
| | | //化验 |
| | | // testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | |
| | | .filter(b -> maps.stream() |
| | | .noneMatch(a -> a.get("proName").equals(b.get("proName")))) // 过滤掉在 maps 中存在的相同元素 |
| | | .collect(Collectors.toList()); |
| | | |
| | | |
| | | |
| | | if(!collect.isEmpty()){ |
| | | maps.addAll(collect); |
| | | } |
| | |
| | | |
| | | private List<Map<String, Object>> zongjianyishengchakanyichangxiangmu(String tjNumber) { |
| | | // asyncService.updateCheckType(tjNumber); |
| | | |
| | | List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | if (null != remarkList && !remarkList.isEmpty()) { |
| | | for (TjOrderRemark remark : remarkList) { |
| | | Map<String, Object> parent = new HashMap<>(); |
| | | if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | if (remark.getProsId().equals(tjOrderDetail.getProsId())) { |
| | | if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){ |
| | | if(!tjOrderDetail.getDeptId().equals("2")){ |
| | | List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString() |
| | | ,"",tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber |
| | | ,tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "") |
| | | .replaceAll("[ 测定检测]","") |
| | | ,tjOrderDetail.getProResult()); |
| | | if(null !=maps && !maps.isEmpty()){ |
| | | tjOrderDetail.setAdvices(maps); |
| | | } |
| | | }else { |
| | | String[] split = tjOrderDetail.getProResult().split("。|,|,"); |
| | | List<Map<String,Object>> mapList=new ArrayList<>(); |
| | | for (String s : split) { |
| | | s = s.replaceAll("\n", ""); |
| | | // Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s); |
| | | Map<String,Object> maps= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(),s,"0"); |
| | | TjOrder order = orderService.getOrderByTjNum(tjNumber); |
| | | if(null !=order){ |
| | | List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | LambdaQueryWrapper<TjOrderYcxm> wq=new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderYcxm::getTjh,tjNumber); |
| | | List<TjOrderYcxm> ycxmList = ycxmService.list(wq); |
| | | if (null != remarkList && !remarkList.isEmpty()) { |
| | | for (TjOrderRemark remark : remarkList) { |
| | | Map<String, Object> parent = new HashMap<>(); |
| | | if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | if (remark.getProsId().equals(tjOrderDetail.getProsId())) { |
| | | if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){ |
| | | if(!tjOrderDetail.getDeptId().equals("2")){ |
| | | List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString() |
| | | ,tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "") |
| | | .replaceAll("[ 测定检测]","").replaceAll("\\[.*?\\]", ""),tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber |
| | | ,tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "") |
| | | .replaceAll("[ 测定检测]","").replaceAll("\\[.*?\\]", "") |
| | | ,tjOrderDetail.getProResult()); |
| | | |
| | | |
| | | if(null !=maps && !maps.isEmpty()){ |
| | | Object bt = maps.get("bt"); |
| | | Object nr = maps.get("nr"); |
| | | if(null !=bt || null !=nr) mapList.add(maps); |
| | | tjOrderDetail.setAdvices(maps); |
| | | } |
| | | |
| | | }else { |
| | | String[] split = tjOrderDetail.getProResult().split("。|,|,"); |
| | | List<Map<String,Object>> mapList=new ArrayList<>(); |
| | | for (String s : split) { |
| | | s = s.replaceAll("\n", ""); |
| | | // Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s); |
| | | Map<String,Object> maps= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(),s,"0"); |
| | | if(null !=maps && !maps.isEmpty()){ |
| | | Object bt = maps.get("bt"); |
| | | Object nr = maps.get("nr"); |
| | | if(null !=bt || null !=nr) mapList.add(maps); |
| | | } |
| | | } |
| | | tjOrderDetail.setAdvices(mapList); |
| | | } |
| | | tjOrderDetail.setAdvices(mapList); |
| | | |
| | | } |
| | | if(null==ycxmList || ycxmList.isEmpty()){ |
| | | TjOrderYcxm ycxm=new TjOrderYcxm(); |
| | | ycxm.setTjh(tjNumber); |
| | | ycxm.setParentName(remark.getProName()); |
| | | ycxm.setJcxm(tjOrderDetail.getProName()); |
| | | ycxm.setJcjg(tjOrderDetail.getProResult()); |
| | | ycxm.setCkfw(tjOrderDetail.getStanId()); |
| | | ycxm.setDw(tjOrderDetail.getProAdvice()); |
| | | ycxm.setJynr(JSONUtil.toJsonStr(tjOrderDetail.getAdvices())); |
| | | ycxmService.save(ycxm); |
| | | } |
| | | |
| | | dels.add(tjOrderDetail); |
| | | } |
| | | |
| | | dels.add(tjOrderDetail); |
| | | } |
| | | if(!dels.isEmpty()){ |
| | | parent.put("proName",remark.getProName()); |
| | | parent.put("jyjc",remark.getJyjc()); |
| | | parent.put("sone",dels); |
| | | list.add(parent); |
| | | } |
| | | } |
| | | if(!dels.isEmpty()){ |
| | | parent.put("proName",remark.getProName()); |
| | | parent.put("jyjc",remark.getJyjc()); |
| | | parent.put("sone",dels); |
| | | list.add(parent); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | |
| | | String tjh = ycxms.get(0).getTjh(); |
| | | if(StringUtils.isNotBlank(tjh)){ |
| | | ycxmService.delOrderYcXmJyByTjh(tjh); |
| | | |
| | | // String szyssy=""; |
| | | // StringBuilder builders = new StringBuilder(); |
| | | // List<TjOrderYcxm> ycxmList=new ArrayList<>(); |
| | | for (TjOrderYcxm ycxm : ycxms) { |
| | | ycxm.setJynr(JSONUtil.toJsonStr(ycxm.getMap())); |
| | | // if(ycxm.getJcxm().contains("舒张压")||ycxm.getJcxm().contains("收缩压")){ |
| | | // builders.append(ycxm.getJcxm()).append(ycxm.getJcjg()).append(" "); |
| | | // szyssy+=builders.toString(); |
| | | // } |
| | | } |
| | | // List<TjOrderYcxm> collect = ycxms.stream().distinct().collect(Collectors.toList()); |
| | | ycxmService.saveBatch(ycxms); |
| | | return AjaxResult.success(); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | @PostMapping ("/newaddOrderYcXmJyByTjh") |
| | | @ApiOperation (value = "总检医生页面新增异常项目建议(单个)") |
| | | public AjaxResult newaddOrderYcXmJyByTjh(@RequestBody TjOrderYcxm ycxm) { |
| | | |
| | | ycxm.setJynr(JSONUtil.toJsonStr(ycxm.getMap())); |
| | | ycxmService.save(ycxm); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | |
| | | |
| | | } |