|
@@ -1,16 +1,45 @@
|
|
|
package com.lantone.daqe.facade;
|
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.lantone.common.enums.IsDeleteEnum;
|
|
|
+import com.lantone.common.util.BeanUtil;
|
|
|
+import com.lantone.common.util.DateUtil;
|
|
|
+import com.lantone.common.util.EntityUtil;
|
|
|
+import com.lantone.common.util.ListUtil;
|
|
|
+import com.lantone.common.util.StringUtil;
|
|
|
+import com.lantone.common.util.SysUserUtils;
|
|
|
+import com.lantone.daqe.client.OperationLogService;
|
|
|
import com.lantone.daqe.dto.GetBlockLossPageDTO;
|
|
|
+import com.lantone.common.dto.GetOperationLogDTO;
|
|
|
+import com.lantone.daqe.dto.HisMedicalRecordDTO;
|
|
|
import com.lantone.daqe.dto.UpBlockLossByIdVO;
|
|
|
+import com.lantone.daqe.entity.BehospitalInfo;
|
|
|
import com.lantone.daqe.entity.BlocklossResult;
|
|
|
+import com.lantone.daqe.entity.HomePage;
|
|
|
+import com.lantone.daqe.entity.MedicalRecord;
|
|
|
+import com.lantone.daqe.enums.LossStatusEnum;
|
|
|
+import com.lantone.daqe.enums.LossTypeEnum;
|
|
|
+import com.lantone.daqe.enums.LossWayEnum;
|
|
|
+import com.lantone.daqe.facade.base.BehospitalInfoFacade;
|
|
|
import com.lantone.daqe.facade.base.BlocklossResultFacade;
|
|
|
+import com.lantone.common.vo.DataCompareVO;
|
|
|
+import com.lantone.daqe.facade.base.HomePageFacade;
|
|
|
+import com.lantone.daqe.facade.base.MedicalRecordFacade;
|
|
|
+import com.lantone.daqe.service.impl.BlocklossResultServiceImpl;
|
|
|
import com.lantone.daqe.vo.GetBlockLossPageVO;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.concurrent.atomic.AtomicReference;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* @Description: 病历数据丢失明细-业务处理类
|
|
|
* @author: songxl
|
|
@@ -20,6 +49,16 @@ import org.springframework.stereotype.Component;
|
|
|
public class BlockLossManagementFacade {
|
|
|
@Autowired
|
|
|
private BlocklossResultFacade blocklossResultFacade;
|
|
|
+ @Autowired
|
|
|
+ private BlocklossResultServiceImpl blocklossResultServiceImpl;
|
|
|
+ @Autowired
|
|
|
+ private BehospitalInfoFacade behospitalInfoFacade;
|
|
|
+ @Autowired
|
|
|
+ private HomePageFacade homePageFacade;
|
|
|
+ @Autowired
|
|
|
+ private MedicalRecordFacade medicalRecordFacade;
|
|
|
+ @Autowired
|
|
|
+ private OperationLogService operationLogService;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -43,4 +82,363 @@ public class BlockLossManagementFacade {
|
|
|
BeanUtils.copyProperties(upBlockLossByIdVO, blocklossResult);
|
|
|
return blocklossResultFacade.updateById(blocklossResult);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 数据对比
|
|
|
+ *
|
|
|
+ * @param dataCompareVO
|
|
|
+ * @Return java.lang.Boolean
|
|
|
+ */
|
|
|
+ public Boolean dataCompare(DataCompareVO dataCompareVO) {
|
|
|
+ Boolean flag = false;
|
|
|
+ //====1.获取已丢失状态记录,去数据库中对比判断是否补录
|
|
|
+ List<BlocklossResult> lossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
|
+ .ge(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
+ if (ListUtil.isNotEmpty(lossResults)) {
|
|
|
+ Map<String, List<BlocklossResult>> lossResultMap = EntityUtil.makeEntityListMap(lossResults, "lossType");
|
|
|
+ //更新以缺失数据的状态
|
|
|
+ flag = upBlockLossStatus(lossResultMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ //====2.某时间的数据对比
|
|
|
+ //=====2.1获取数据
|
|
|
+
|
|
|
+ //获取his对应的数据
|
|
|
+ List<HisMedicalRecordDTO> hisMedicalRecords = getHisMedicalRecords(dataCompareVO);
|
|
|
+
|
|
|
+ //获取操作记录数据
|
|
|
+ //病历数据
|
|
|
+ dataCompareVO.setOperationUrl("save/saveBehospitalCode");
|
|
|
+ List<GetOperationLogDTO> behospitalCodeLogs = getOperationLog(dataCompareVO);
|
|
|
+ //病案首页数据
|
|
|
+ dataCompareVO.setOperationUrl("save/saveHomePages");
|
|
|
+ List<GetOperationLogDTO> homePageLogs = getOperationLog(dataCompareVO);
|
|
|
+ //文书数据
|
|
|
+ dataCompareVO.setOperationUrl("save/saveRecs");
|
|
|
+ List<GetOperationLogDTO> recLogs = getOperationLog(dataCompareVO);
|
|
|
+
|
|
|
+ //获取库中数据
|
|
|
+ //病历数据
|
|
|
+ List<String> dataBaseBehospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
|
|
|
+ .select("behospital_code")
|
|
|
+ .ge(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
+ .stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
|
|
|
+ //病案首页数据
|
|
|
+ List<String> dataBaseHomePageIds = homePageFacade.list(new QueryWrapper<HomePage>()
|
|
|
+ .select("home_page_id")
|
|
|
+ .ge(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
+ .stream().map(HomePage::getHomePageId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //文书数据
|
|
|
+ List<String> dataBaseRecIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
|
|
|
+ .select("rec_id")
|
|
|
+ .ge(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
+ .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ //=====2.2数据对比
|
|
|
+ //his与log日志做对比
|
|
|
+ if (ListUtil.isNotEmpty(hisMedicalRecords)) {
|
|
|
+ //获取His病历数据 - His病案首页数据
|
|
|
+ List<GetOperationLogDTO> medicalRecords = BeanUtil.listCopyTo(hisMedicalRecords, GetOperationLogDTO.class);
|
|
|
+ //获取His文书数据
|
|
|
+ List<GetOperationLogDTO> recs = new ArrayList<>();
|
|
|
+ hisMedicalRecords.stream().forEach(hisMedicalRecordDTO -> {
|
|
|
+ if (ListUtil.isNotEmpty(hisMedicalRecordDTO.getHisRecs())) {
|
|
|
+ hisMedicalRecordDTO.getHisRecs().stream().forEach(hisRecDTO -> {
|
|
|
+ GetOperationLogDTO medicalRecord = new GetOperationLogDTO();
|
|
|
+ medicalRecord.setRecId(hisRecDTO.getRecId());
|
|
|
+ medicalRecord.setRecId(hisRecDTO.getRecTitle());
|
|
|
+ medicalRecord.setBehospitalCode(hisMedicalRecordDTO.getBehospitalCode());
|
|
|
+ recs.add(medicalRecord);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //外部丢失数据集合
|
|
|
+ List<BlocklossResult> outInserts = new ArrayList<>();
|
|
|
+ //文书数据对比
|
|
|
+ compareHisWithLog(recs, recLogs, "0", outInserts);
|
|
|
+ //病案首页数据对比
|
|
|
+ compareHisWithLog(medicalRecords, homePageLogs, "1", outInserts);
|
|
|
+ //病历数据对比
|
|
|
+ compareHisWithLog(medicalRecords, behospitalCodeLogs, "2", outInserts);
|
|
|
+ flag = blocklossResultServiceImpl.saveBatch(outInserts);
|
|
|
+ }
|
|
|
+
|
|
|
+ //日志与入库数据对比
|
|
|
+ //内部丢失数据集合
|
|
|
+ List<BlocklossResult> inInserts = new ArrayList<>();
|
|
|
+ if (ListUtil.isNotEmpty(dataBaseRecIds)) {
|
|
|
+ compareLogWithLocal(recLogs, dataBaseRecIds, "0", inInserts);
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(dataBaseHomePageIds)) {
|
|
|
+ compareLogWithLocal(homePageLogs, dataBaseHomePageIds, "1", inInserts);
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(dataBaseBehospitalCodes)) {
|
|
|
+ compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, "2", inInserts);
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(inInserts)) {
|
|
|
+ flag = blocklossResultServiceImpl.saveBatch(inInserts);
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 日志与入库数据对比
|
|
|
+ *
|
|
|
+ * @param logs 日志记录
|
|
|
+ * @param dataBases 入库数据
|
|
|
+ * @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
+ * @param inInserts 内部丢失插入集合
|
|
|
+ * @Return void
|
|
|
+ */
|
|
|
+ private void compareLogWithLocal(List<GetOperationLogDTO> logs, List<String> dataBases, String type, List<BlocklossResult> inInserts) {
|
|
|
+ switch (type) {
|
|
|
+ case "0":
|
|
|
+ //文书丢失
|
|
|
+ logs.stream().forEach(rec -> {
|
|
|
+ //存在记录但是没有入库
|
|
|
+ if (!dataBases.contains(rec.getRecId())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(rec.getBehospitalCode());
|
|
|
+ blocklossResult.setRecId(rec.getRecId());
|
|
|
+ blocklossResult.setRecTitle(rec.getRecTitle());
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult);
|
|
|
+ inInserts.add(blocklossResult);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "1":
|
|
|
+ //病案首页丢失
|
|
|
+ logs.stream().forEach(homePages -> {
|
|
|
+ //存在记录但是没有入库
|
|
|
+ if (!dataBases.contains(homePages.getRecId())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(homePages.getBehospitalCode());
|
|
|
+ blocklossResult.setRecId(homePages.getHomePageId());
|
|
|
+ blocklossResult.setRecTitle("病案首页丢失");
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult);
|
|
|
+ inInserts.add(blocklossResult);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "2":
|
|
|
+ //患者信息丢失
|
|
|
+ logs.stream().forEach(beHehospitalInfo -> {
|
|
|
+ //存在记录但是没有入库
|
|
|
+ if (!dataBases.contains(beHehospitalInfo.getBehospitalCode())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult);
|
|
|
+ inInserts.add(blocklossResult);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新以缺失数据的状态
|
|
|
+ *
|
|
|
+ * @param lossResultMap
|
|
|
+ * @Return void
|
|
|
+ */
|
|
|
+ private Boolean upBlockLossStatus(Map<String, List<BlocklossResult>> lossResultMap) {
|
|
|
+ AtomicReference<Boolean> flag = new AtomicReference<>(false);
|
|
|
+ lossResultMap.keySet().stream().forEach(lossType -> {
|
|
|
+ //0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
+ switch (lossType) {
|
|
|
+ case "0":
|
|
|
+ //文书丢失
|
|
|
+ List<String> redIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .in("rec_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId))
|
|
|
+ .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode))
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
+ .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
|
|
|
+ //更新状态-已恢复
|
|
|
+ if (ListUtil.isNotEmpty(redIds)) {
|
|
|
+ flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
|
|
|
+ .set("solve_time", DateUtil.now())
|
|
|
+ .set("gmt_modified", DateUtil.now())
|
|
|
+ .set("status", LossStatusEnum.NOT_LOSS.getKey())
|
|
|
+ .set("modifier", SysUserUtils.getCurrentPrincipleId())
|
|
|
+ .eq("loss_type", lossType)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .in("rec_id", redIds)));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "1":
|
|
|
+ //病案首页丢失
|
|
|
+ List<String> homePages = homePageFacade.list(new QueryWrapper<HomePage>()
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .in("home_page_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId))
|
|
|
+ .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode))
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
+ .stream().map(HomePage::getHomePageId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //更新状态-已恢复
|
|
|
+ if (ListUtil.isNotEmpty(homePages)) {
|
|
|
+ flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
|
|
|
+ .set("solve_time", DateUtil.now())
|
|
|
+ .set("gmt_modified", DateUtil.now())
|
|
|
+ .set("status", LossStatusEnum.NOT_LOSS.getKey())
|
|
|
+ .set("modifier", SysUserUtils.getCurrentPrincipleId())
|
|
|
+ .eq("loss_type", lossType)
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .in("rec_id", homePages)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "2":
|
|
|
+ //患者信息丢失
|
|
|
+ List<String> behospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode))
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
+ .stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
|
|
|
+ //更新状态-已恢复
|
|
|
+ if (ListUtil.isNotEmpty(behospitalCodes)) {
|
|
|
+ flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
|
|
|
+ .set("solve_time", DateUtil.now())
|
|
|
+ .set("gmt_modified", DateUtil.now())
|
|
|
+ .set("status", LossStatusEnum.NOT_LOSS.getKey())
|
|
|
+ .set("modifier", SysUserUtils.getCurrentPrincipleId())
|
|
|
+ .eq("loss_type", lossType)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
+ .in("behospital_code", behospitalCodes)));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return flag.get();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param medicalRecords his数据
|
|
|
+ * @param logs 日志数据
|
|
|
+ * @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
+ * @param outInserts 外部丢失插入集合
|
|
|
+ * @Return void
|
|
|
+ */
|
|
|
+ private void compareHisWithLog(List<GetOperationLogDTO> medicalRecords, List<GetOperationLogDTO> logs, String type, List<BlocklossResult> outInserts) {
|
|
|
+ switch (type) {
|
|
|
+ case "0":
|
|
|
+ List<String> recLogs = logs.stream().map(GetOperationLogDTO::getRecId).collect(Collectors.toList());
|
|
|
+ medicalRecords.stream().forEach(medicalRecord -> {
|
|
|
+ //文书不存在操作记录
|
|
|
+ if (StringUtil.isNotEmpty(medicalRecord.getRecId()) && !recLogs.contains(medicalRecord.getRecId())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
|
+ blocklossResult.setRecId(medicalRecord.getRecId());
|
|
|
+ blocklossResult.setRecTitle(medicalRecord.getRecTitle());
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult);
|
|
|
+ outInserts.add(blocklossResult);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "1":
|
|
|
+ List<String> homepageLogs = logs.stream().map(GetOperationLogDTO::getHomePageId).collect(Collectors.toList());
|
|
|
+ medicalRecords.stream().forEach(medicalRecord -> {
|
|
|
+ //病案首页不存在操作记录
|
|
|
+ if (StringUtil.isNotEmpty(medicalRecord.getHomePageId()) && !homepageLogs.contains(medicalRecord.getHomePageId())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
|
+ blocklossResult.setRecId(medicalRecord.getHomePageId());
|
|
|
+ blocklossResult.setRecTitle("病案首页丢失");
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult);
|
|
|
+ outInserts.add(blocklossResult);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "2":
|
|
|
+ List<String> behospitalCodeLogs = logs.stream().map(GetOperationLogDTO::getBehospitalCode).collect(Collectors.toList());
|
|
|
+ medicalRecords.stream().forEach(medicalRecord -> {
|
|
|
+ //病历数据不存在操作记录
|
|
|
+ if (!behospitalCodeLogs.contains(medicalRecord.getBehospitalCode())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult);
|
|
|
+ outInserts.add(blocklossResult);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 拼装病历数据块丢失明细其他信息
|
|
|
+ *
|
|
|
+ * @param blocklossResult
|
|
|
+ * @Return void
|
|
|
+ */
|
|
|
+ private void assembleOtherBlocklossResult(BlocklossResult blocklossResult) {
|
|
|
+ blocklossResult.setStatus(LossStatusEnum.IS_LOSS.getKey());
|
|
|
+ blocklossResult.setHospitalId(SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0);
|
|
|
+ blocklossResult.setGmtCreate(DateUtil.now());
|
|
|
+ blocklossResult.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
|
|
|
+ blocklossResult.setGmtModified(DateUtil.now());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取操作记录数据
|
|
|
+ *
|
|
|
+ * @param dataCompareVO
|
|
|
+ * @Return java.util.List<com.lantone.common.dto.GetOperationLogDTO>
|
|
|
+ */
|
|
|
+ private List<GetOperationLogDTO> getOperationLog(DataCompareVO dataCompareVO) {
|
|
|
+ return operationLogService.getOperationLog(dataCompareVO).getData();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取his对应的数据
|
|
|
+ *
|
|
|
+ * @param dataCompareVO
|
|
|
+ * @Return java.util.List<com.lantone.daqe.dto.HisMedicalRecordDTO>
|
|
|
+ */
|
|
|
+ private List<HisMedicalRecordDTO> getHisMedicalRecords(DataCompareVO dataCompareVO) {
|
|
|
+ //###模拟
|
|
|
+
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
}
|