|
@@ -26,6 +26,7 @@ import com.lantone.daqe.entity.BlocklossResult;
|
|
|
import com.lantone.daqe.entity.HomePage;
|
|
|
import com.lantone.daqe.entity.MedicalRecord;
|
|
|
import com.lantone.daqe.enums.DataSaveUrlEnum;
|
|
|
+import com.lantone.daqe.enums.LossIsAuditedEnum;
|
|
|
import com.lantone.daqe.enums.LossStatusEnum;
|
|
|
import com.lantone.daqe.enums.LossTypeEnum;
|
|
|
import com.lantone.daqe.enums.LossWayEnum;
|
|
@@ -120,19 +121,45 @@ public class BlockLossManagementFacade {
|
|
|
.eq(hospitalId != null, "hospital_id", hospitalId)
|
|
|
.eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
-// Map<String, List<BlocklossResult>> lossResultMap = null;
|
|
|
if (ListUtil.isNotEmpty(lossResults)) {
|
|
|
Map<String, List<BlocklossResult>> lossResultMap = EntityUtil.makeEntityListMap(lossResults, "lossType");
|
|
|
//更新以缺失数据的状态
|
|
|
flag = upBlockLossStatus(lossResultMap, hospitalId, principleId);
|
|
|
//删除当前时间段的对比记录
|
|
|
flag = blocklossResultFacade.remove(new UpdateWrapper<BlocklossResult>()
|
|
|
- .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getStartDate())
|
|
|
- .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getEndDate())
|
|
|
+ .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getEndDate())
|
|
|
.eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
|
|
|
.eq(hospitalId != null, "hospital_id", hospitalId)
|
|
|
+ .eq("is_audited", LossIsAuditedEnum.NOT_AUDITED.getKey())
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
}
|
|
|
+ //已核查的数据(筛选区间)
|
|
|
+ List<BlocklossResult> auditedResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
|
+ .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getEndDate())
|
|
|
+ .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
|
|
|
+ .eq(hospitalId != null, "hospital_id", hospitalId)
|
|
|
+ .notIn("is_audited", LossIsAuditedEnum.NOT_AUDITED.getKey())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
+ List<String> auditedResultCodes = null;
|
|
|
+ List<String> auditedResultHomePages = null;
|
|
|
+ List<String> auditedResultRecIds = null;
|
|
|
+ if (ListUtil.isNotEmpty(auditedResults)) {
|
|
|
+ Map<String, List<BlocklossResult>> auditedResultMap = EntityUtil.makeEntityListMap(auditedResults, "lossType");
|
|
|
+ if (ListUtil.isNotEmpty(auditedResultMap.get(LossTypeEnum.CODE_LOSS.getKey()))) {
|
|
|
+ auditedResultCodes = auditedResultMap.get(LossTypeEnum.CODE_LOSS.getKey()).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(auditedResultMap.get(LossTypeEnum.HOMEPAGE_LOSS.getKey()))) {
|
|
|
+ auditedResultHomePages = auditedResultMap.get(LossTypeEnum.HOMEPAGE_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(auditedResultMap.get(LossTypeEnum.REC_LOSS.getKey()))) {
|
|
|
+ auditedResultRecIds = auditedResultMap.get(LossTypeEnum.REC_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //定义对应要更新的已核查集合
|
|
|
+ List<GetOperationLogDTO> dataUps = new ArrayList<>();
|
|
|
+
|
|
|
|
|
|
//====2.某时间的数据对比
|
|
|
//=====2.1获取数据
|
|
@@ -169,8 +196,8 @@ public class BlockLossManagementFacade {
|
|
|
//病历数据
|
|
|
List<String> dataBaseBehospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
|
|
|
.select("behospital_code")
|
|
|
- .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getStartDate())
|
|
|
- .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getEndDate())
|
|
|
+ .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getEndDate())
|
|
|
.eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
|
|
|
.eq(hospitalId != null, "hospital_id", hospitalId)
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
@@ -216,11 +243,11 @@ public class BlockLossManagementFacade {
|
|
|
//外部丢失数据集合
|
|
|
List<BlocklossResult> outInserts = new ArrayList<>();
|
|
|
//文书数据对比
|
|
|
- compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts, hisMedicalRecordMap, hospitalId, principleId);
|
|
|
+ compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), auditedResultRecIds, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
//病案首页数据对比
|
|
|
- compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, hisMedicalRecordMap, hospitalId, principleId);
|
|
|
+ compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), auditedResultHomePages, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
//病历数据对比
|
|
|
- compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, hisMedicalRecordMap, hospitalId, principleId);
|
|
|
+ compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), auditedResultCodes, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
|
|
|
flag = blocklossResultServiceImpl.saveBatch(outInserts);
|
|
|
}
|
|
@@ -229,17 +256,37 @@ public class BlockLossManagementFacade {
|
|
|
//内部丢失数据集合
|
|
|
List<BlocklossResult> inInserts = new ArrayList<>();
|
|
|
if (ListUtil.isNotEmpty(recLogs)) {
|
|
|
- compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts, hisMedicalRecordMap, hospitalId, principleId);
|
|
|
+ compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), auditedResultRecIds, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(homePageLogs)) {
|
|
|
- compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, hisMedicalRecordMap, hospitalId, principleId);
|
|
|
+ compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), auditedResultHomePages, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
|
|
|
- compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, hisMedicalRecordMap, hospitalId, principleId);
|
|
|
+ compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), auditedResultCodes, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
+ }
|
|
|
+ //更新核查数据的时间
|
|
|
+ if (ListUtil.isNotEmpty(dataUps)) {
|
|
|
+ Long finalPrincipleId = principleId;
|
|
|
+ Long finalHospitalId = hospitalId;
|
|
|
+ dataUps.stream().forEach(data->{
|
|
|
+ blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
|
|
|
+ .set("gmt_modified", DateUtil.now())
|
|
|
+ .set("modifier", finalPrincipleId != null ? finalPrincipleId + "" : "0")
|
|
|
+ .eq(StringUtil.isNotBlank(data.getRecId()),"rec_id", data.getRecId())
|
|
|
+ .notIn("is_audited", LossIsAuditedEnum.NOT_AUDITED.getKey())
|
|
|
+ .eq("behospital_code",data.getBehospitalCode())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .ge(dataCompareVO.getStartDate() != null , "behospital_date", dataCompareVO.getStartDate())
|
|
|
+ .le(dataCompareVO.getEndDate() != null , "behospital_date", dataCompareVO.getEndDate())
|
|
|
+ .eq(finalHospitalId != null, "hospital_id", finalHospitalId)
|
|
|
+ .eq("hospital_id", finalHospitalId != null ? finalHospitalId : 0));
|
|
|
+ });
|
|
|
}
|
|
|
+
|
|
|
if (ListUtil.isNotEmpty(inInserts)) {
|
|
|
flag = blocklossResultServiceImpl.saveBatch(inInserts);
|
|
|
}
|
|
|
+
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
@@ -265,82 +312,102 @@ public class BlockLossManagementFacade {
|
|
|
* @param logs 日志记录
|
|
|
* @param dataBases 入库数据
|
|
|
* @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
+ * @param auditedResultDatas 已核查数据
|
|
|
* @param inInserts 内部丢失插入集合
|
|
|
* @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
|
|
|
* @param hospitalId 医院id
|
|
|
* @param principleId 操作人id
|
|
|
+ * @param dataUps 要更新的已核查的集合
|
|
|
* @Return void
|
|
|
*/
|
|
|
private void compareLogWithLocal(List<GetOperationLogDTO> logs, List<String> dataBases, String type,
|
|
|
- List<BlocklossResult> inInserts,
|
|
|
- Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
|
|
|
+ List<String> auditedResultDatas, List<BlocklossResult> inInserts,
|
|
|
+ Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId, List<GetOperationLogDTO> dataUps) {
|
|
|
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());
|
|
|
- if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
|
|
|
+ if (auditedResultDatas == null || !auditedResultDatas.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());
|
|
|
+ if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
+ inInserts.add(blocklossResult);
|
|
|
+ } else {
|
|
|
+ //更新人工操作记录(核查的)的时间
|
|
|
+ GetOperationLogDTO temp = new GetOperationLogDTO();
|
|
|
+ temp.setBehospitalCode(rec.getBehospitalCode());
|
|
|
+ temp.setRecId(rec.getRecId());
|
|
|
+ dataUps.add(temp);
|
|
|
}
|
|
|
- //拼装病历数据块丢失明细其他信息
|
|
|
- assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
- inInserts.add(blocklossResult);
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
//判断只插入文书id的情况
|
|
|
//获取插入的文书
|
|
|
-// if (ListUtil.isNotEmpty(dataBases)) {
|
|
|
-// List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
|
|
|
-// .select("rec_id")
|
|
|
-// .in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
|
|
|
-// List<String> tempList = new ArrayList<>(dataBases);
|
|
|
-// //移除查出来有内容的文书
|
|
|
-// tempList.removeAll(havingRecIds);
|
|
|
-// Map<String, GetOperationLogDTO> recMap = EntityUtil.makeEntityMap(logs, "recId");
|
|
|
-// //有文书id无内容文书
|
|
|
-// tempList.stream().forEach(recId -> {
|
|
|
-// //没有被记录过
|
|
|
-// BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
-// blocklossResult.setBehospitalCode(recMap.get(recId).getBehospitalCode());
|
|
|
-// blocklossResult.setRecId(recId);
|
|
|
-// blocklossResult.setRecTitle(recMap.get(recId).getRecTitle());
|
|
|
-// blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
-// blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
-// blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
|
|
|
-// if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
|
|
|
-// blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
|
|
|
-// }
|
|
|
-// //拼装病历数据块丢失明细其他信息
|
|
|
-// assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
-// inInserts.add(blocklossResult);
|
|
|
-// });
|
|
|
-// }
|
|
|
+ // if (ListUtil.isNotEmpty(dataBases)) {
|
|
|
+ // List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
|
|
|
+ // .select("rec_id")
|
|
|
+ // .in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
|
|
|
+ // List<String> tempList = new ArrayList<>(dataBases);
|
|
|
+ // //移除查出来有内容的文书
|
|
|
+ // tempList.removeAll(havingRecIds);
|
|
|
+ // Map<String, GetOperationLogDTO> recMap = EntityUtil.makeEntityMap(logs, "recId");
|
|
|
+ // //有文书id无内容文书
|
|
|
+ // tempList.stream().forEach(recId -> {
|
|
|
+ // //没有被记录过
|
|
|
+ // BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ // blocklossResult.setBehospitalCode(recMap.get(recId).getBehospitalCode());
|
|
|
+ // blocklossResult.setRecId(recId);
|
|
|
+ // blocklossResult.setRecTitle(recMap.get(recId).getRecTitle());
|
|
|
+ // blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
+ // blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
+ // blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
|
|
|
+ // if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
|
|
|
+ // blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
|
|
|
+ // }
|
|
|
+ // //拼装病历数据块丢失明细其他信息
|
|
|
+ // assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
+ // 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());
|
|
|
- if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
|
|
|
+ if (!dataBases.contains(homePages.getHomePageId())) {
|
|
|
+ if (auditedResultDatas == null || !auditedResultDatas.contains(homePages.getHomePageId())) {
|
|
|
+ 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());
|
|
|
+ if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
+ inInserts.add(blocklossResult);
|
|
|
+ } else {
|
|
|
+ //更新人工操作记录(核查的)的时间
|
|
|
+ GetOperationLogDTO temp = new GetOperationLogDTO();
|
|
|
+ temp.setBehospitalCode(homePages.getBehospitalCode());
|
|
|
+ temp.setHomePageId(homePages.getHomePageId());
|
|
|
+ dataUps.add(temp);
|
|
|
}
|
|
|
- //拼装病历数据块丢失明细其他信息
|
|
|
- assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
- inInserts.add(blocklossResult);
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
break;
|
|
@@ -349,16 +416,24 @@ public class BlockLossManagementFacade {
|
|
|
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());
|
|
|
- if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
|
|
|
+ if (auditedResultDatas == null || !auditedResultDatas.contains(beHehospitalInfo.getBehospitalCode())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
+ if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
+ inInserts.add(blocklossResult);
|
|
|
+ } else {
|
|
|
+ //更新人工操作记录(核查的)的时间
|
|
|
+ GetOperationLogDTO temp = new GetOperationLogDTO();
|
|
|
+ temp.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
|
|
|
+ dataUps.add(temp);
|
|
|
}
|
|
|
- //拼装病历数据块丢失明细其他信息
|
|
|
- assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
- inInserts.add(blocklossResult);
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
break;
|
|
@@ -456,15 +531,18 @@ public class BlockLossManagementFacade {
|
|
|
* @param medicalRecords his数据
|
|
|
* @param logs 日志数据
|
|
|
* @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
+ * @param auditedResultDatas 已核查数据
|
|
|
* @param outInserts 外部丢失插入集合
|
|
|
* @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
|
|
|
* @param hospitalId 医院id
|
|
|
* @param principleId 操作人id
|
|
|
+ * @param dataUps 要更新的已核查的集合
|
|
|
* @Return void
|
|
|
*/
|
|
|
private void compareHisWithLog(List<GetOperationLogDTO> medicalRecords, List<GetOperationLogDTO> logs,
|
|
|
- String type, List<BlocklossResult> outInserts,
|
|
|
- Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
|
|
|
+ String type, List<String> auditedResultDatas, List<BlocklossResult> outInserts,
|
|
|
+ Map<String, HisMedicalRecordDTO> hisMedicalRecordMap,
|
|
|
+ Long hospitalId, Long principleId, List<GetOperationLogDTO> dataUps) {
|
|
|
//his数据为空直接返回
|
|
|
if (ListUtil.isEmpty(medicalRecords)) {
|
|
|
return;
|
|
@@ -476,17 +554,28 @@ public class BlockLossManagementFacade {
|
|
|
//文书不存在操作记录
|
|
|
if (StringUtil.isNotEmpty(medicalRecord.getRecId())) {
|
|
|
if (!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());
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
|
- //拼装病历数据块丢失明细其他信息
|
|
|
- assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
- outInserts.add(blocklossResult);
|
|
|
+ if (auditedResultDatas == null || !auditedResultDatas.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());
|
|
|
+ if (hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate() != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
+ outInserts.add(blocklossResult);
|
|
|
+ } else {
|
|
|
+ //更新人工操作记录(核查的)的时间
|
|
|
+ GetOperationLogDTO temp = new GetOperationLogDTO();
|
|
|
+ temp.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
|
+ temp.setRecId(medicalRecord.getRecId());
|
|
|
+ dataUps.add(temp);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -496,16 +585,26 @@ public class BlockLossManagementFacade {
|
|
|
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());
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
|
- //拼装病历数据块丢失明细其他信息
|
|
|
- assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
- outInserts.add(blocklossResult);
|
|
|
+ if (auditedResultDatas == null || !auditedResultDatas.contains(medicalRecord.getRecId())) {
|
|
|
+ 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());
|
|
|
+ if (hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate() != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
+ outInserts.add(blocklossResult);
|
|
|
+ } else {
|
|
|
+ //更新人工操作记录(核查的)的时间
|
|
|
+ GetOperationLogDTO temp = new GetOperationLogDTO();
|
|
|
+ temp.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
|
+ temp.setHomePageId(medicalRecord.getHomePageId());
|
|
|
+ dataUps.add(temp);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
break;
|
|
@@ -514,14 +613,23 @@ public class BlockLossManagementFacade {
|
|
|
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());
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
|
- //拼装病历数据块丢失明细其他信息
|
|
|
- assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
- outInserts.add(blocklossResult);
|
|
|
+ if (auditedResultDatas == null || !auditedResultDatas.contains(medicalRecord.getRecId())) {
|
|
|
+ BlocklossResult blocklossResult = new BlocklossResult();
|
|
|
+ blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
|
+ blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
|
+ blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
+ if (hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate() != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
+ //拼装病历数据块丢失明细其他信息
|
|
|
+ assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
|
|
|
+ outInserts.add(blocklossResult);
|
|
|
+ } else {
|
|
|
+ //更新人工操作记录(核查的)的时间
|
|
|
+ GetOperationLogDTO temp = new GetOperationLogDTO();
|
|
|
+ temp.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
|
+ dataUps.add(temp);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
break;
|