|
@@ -107,8 +107,6 @@ public class BlockLossManagementFacade {
|
|
//====1.获取已丢失状态记录,去数据库中对比判断是否补录
|
|
//====1.获取已丢失状态记录,去数据库中对比判断是否补录
|
|
List<BlocklossResult> lossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
List<BlocklossResult> lossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
.select("id,behospital_code,rec_id,loss_type,loss_way")
|
|
.select("id,behospital_code,rec_id,loss_type,loss_way")
|
|
-// .ge(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
|
-// .le(dataCompareVO.getStartDate() != null, "gmt_create", dataCompareVO.getEndDate())
|
|
|
|
.eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
.eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
.eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
.eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
@@ -124,47 +122,58 @@ public class BlockLossManagementFacade {
|
|
|
|
|
|
//获取his对应的数据
|
|
//获取his对应的数据
|
|
List<HisMedicalRecordDTO> hisMedicalRecords = getHisMedicalRecords(dataCompareVO);
|
|
List<HisMedicalRecordDTO> hisMedicalRecords = getHisMedicalRecords(dataCompareVO);
|
|
|
|
+ Map<String, HisMedicalRecordDTO> hisMedicalRecordMap = EntityUtil.makeEntityMap(hisMedicalRecords, "behospitalCode");
|
|
|
|
|
|
//获取操作记录数据
|
|
//获取操作记录数据
|
|
//病历数据
|
|
//病历数据
|
|
dataCompareVO.setOperationUrl("save/saveBehospitalCode");
|
|
dataCompareVO.setOperationUrl("save/saveBehospitalCode");
|
|
List<GetOperationLogDTO> behospitalCodeLogs = getOperationLogs(dataCompareVO);
|
|
List<GetOperationLogDTO> behospitalCodeLogs = getOperationLogs(dataCompareVO);
|
|
//病案首页数据
|
|
//病案首页数据
|
|
- dataCompareVO.setOperationUrl("save/saveHomePages");
|
|
|
|
- List<GetOperationLogDTO> homePageLogs = getOperationLogs(dataCompareVO);
|
|
|
|
|
|
+ List<GetOperationLogDTO> homePageLogs = new ArrayList<>();
|
|
//文书数据
|
|
//文书数据
|
|
- dataCompareVO.setOperationUrl("save/saveRecs");
|
|
|
|
- List<GetOperationLogDTO> recLogs = getOperationLogs(dataCompareVO);
|
|
|
|
|
|
+ List<GetOperationLogDTO> recLogs = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ List<String> logCodes = null;
|
|
|
|
+ //没有病历数据就不用去查病案首页和文书
|
|
|
|
+ if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
|
|
|
|
+ logCodes = behospitalCodeLogs.stream().map(GetOperationLogDTO::getBehospitalCode).collect(Collectors.toList());
|
|
|
|
+ dataCompareVO.setBehospitalCodes(logCodes);
|
|
|
|
+ //病案首页数据
|
|
|
|
+ dataCompareVO.setOperationUrl("save/saveHomePages");
|
|
|
|
+ homePageLogs = getOperationLogs(dataCompareVO);
|
|
|
|
+ //文书数据
|
|
|
|
+ dataCompareVO.setOperationUrl("save/saveRecs");
|
|
|
|
+ recLogs = getOperationLogs(dataCompareVO);
|
|
|
|
+ }
|
|
|
|
|
|
//获取库中数据
|
|
//获取库中数据
|
|
//病历数据
|
|
//病历数据
|
|
List<String> dataBaseBehospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
|
|
List<String> dataBaseBehospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
|
|
.select("behospital_code")
|
|
.select("behospital_code")
|
|
- .ge(dataCompareVO.getStartDate() != null && dataCompareVO.getBehospitalCode() == null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
|
- .le(dataCompareVO.getEndDate() != null && dataCompareVO.getBehospitalCode() == null, "gmt_create", dataCompareVO.getEndDate())
|
|
|
|
- .eq(dataCompareVO.getBehospitalCode() != null, "behospital_code", dataCompareVO.getBehospitalCode())
|
|
|
|
|
|
+ .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getStartDate())
|
|
|
|
+ .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getEndDate())
|
|
|
|
+ .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
|
|
.eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
.eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
.stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
|
|
.stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
|
|
//病案首页数据
|
|
//病案首页数据
|
|
- List<String> dataBaseHomePageIds = homePageFacade.list(new QueryWrapper<HomePage>()
|
|
|
|
- .select("home_page_id")
|
|
|
|
- .ge(dataCompareVO.getStartDate() != null && dataCompareVO.getBehospitalCode() == null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
|
- .le(dataCompareVO.getEndDate() != null && dataCompareVO.getBehospitalCode() == null, "gmt_create", dataCompareVO.getEndDate())
|
|
|
|
- .eq(dataCompareVO.getBehospitalCode() != null, "behospital_code", dataCompareVO.getBehospitalCode())
|
|
|
|
- .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
|
- .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
|
- .stream().map(HomePage::getHomePageId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
|
|
+ List<String> dataBaseHomePageIds = new ArrayList<>();
|
|
//文书数据
|
|
//文书数据
|
|
- List<String> dataBaseRecIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
|
|
|
|
- .select("rec_id")
|
|
|
|
- .ge(dataCompareVO.getStartDate() != null && dataCompareVO.getBehospitalCode() == null, "gmt_create", dataCompareVO.getStartDate())
|
|
|
|
- .le(dataCompareVO.getEndDate() != null && dataCompareVO.getBehospitalCode() == null, "gmt_create", dataCompareVO.getEndDate())
|
|
|
|
- .eq(dataCompareVO.getBehospitalCode() != null, "behospital_code", dataCompareVO.getBehospitalCode())
|
|
|
|
- .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
|
- .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
|
- .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
|
|
|
|
|
|
+ List<String> dataBaseRecIds = new ArrayList<>();
|
|
|
|
+ if (ListUtil.isNotEmpty(dataBaseBehospitalCodes)) {
|
|
|
|
+ dataBaseHomePageIds = homePageFacade.list(new QueryWrapper<HomePage>()
|
|
|
|
+ .select("home_page_id")
|
|
|
|
+ .in("behospital_code", dataBaseBehospitalCodes)
|
|
|
|
+ .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
|
+ .stream().map(HomePage::getHomePageId).collect(Collectors.toList());
|
|
|
|
+ dataBaseRecIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
|
|
|
|
+ .select("rec_id")
|
|
|
|
+ .in("behospital_code", dataBaseBehospitalCodes)
|
|
|
|
+ .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
|
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()))
|
|
|
|
+ .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
|
|
//==已丢失 外部|内部 病历、文书、病案首页 id集合
|
|
//==已丢失 外部|内部 病历、文书、病案首页 id集合
|
|
//外部
|
|
//外部
|
|
@@ -227,11 +236,11 @@ public class BlockLossManagementFacade {
|
|
//外部丢失数据集合
|
|
//外部丢失数据集合
|
|
List<BlocklossResult> outInserts = new ArrayList<>();
|
|
List<BlocklossResult> outInserts = new ArrayList<>();
|
|
//文书数据对比
|
|
//文书数据对比
|
|
- compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts, outLossRecs);
|
|
|
|
|
|
+ compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts, outLossRecs, hisMedicalRecordMap);
|
|
//病案首页数据对比
|
|
//病案首页数据对比
|
|
- compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, outLossHomepages);
|
|
|
|
|
|
+ compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, outLossHomepages, hisMedicalRecordMap);
|
|
//病历数据对比
|
|
//病历数据对比
|
|
- compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, outLossCodes);
|
|
|
|
|
|
+ compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, outLossCodes, hisMedicalRecordMap);
|
|
|
|
|
|
flag = blocklossResultServiceImpl.saveBatch(outInserts);
|
|
flag = blocklossResultServiceImpl.saveBatch(outInserts);
|
|
}
|
|
}
|
|
@@ -240,13 +249,13 @@ public class BlockLossManagementFacade {
|
|
//内部丢失数据集合
|
|
//内部丢失数据集合
|
|
List<BlocklossResult> inInserts = new ArrayList<>();
|
|
List<BlocklossResult> inInserts = new ArrayList<>();
|
|
if (ListUtil.isNotEmpty(recLogs)) {
|
|
if (ListUtil.isNotEmpty(recLogs)) {
|
|
- compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts, inLossRecs);
|
|
|
|
|
|
+ compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts, inLossRecs, hisMedicalRecordMap);
|
|
}
|
|
}
|
|
if (ListUtil.isNotEmpty(homePageLogs)) {
|
|
if (ListUtil.isNotEmpty(homePageLogs)) {
|
|
- compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, inLossHomepages);
|
|
|
|
|
|
+ compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, inLossHomepages, hisMedicalRecordMap);
|
|
}
|
|
}
|
|
if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
|
|
if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
|
|
- compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, inLossCodes);
|
|
|
|
|
|
+ compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, inLossCodes, hisMedicalRecordMap);
|
|
}
|
|
}
|
|
if (ListUtil.isNotEmpty(inInserts)) {
|
|
if (ListUtil.isNotEmpty(inInserts)) {
|
|
flag = blocklossResultServiceImpl.saveBatch(inInserts);
|
|
flag = blocklossResultServiceImpl.saveBatch(inInserts);
|
|
@@ -257,15 +266,17 @@ public class BlockLossManagementFacade {
|
|
/**
|
|
/**
|
|
* 日志与入库数据对比
|
|
* 日志与入库数据对比
|
|
*
|
|
*
|
|
- * @param logs 日志记录
|
|
|
|
- * @param dataBases 入库数据
|
|
|
|
- * @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
|
- * @param inInserts 内部丢失插入集合
|
|
|
|
- * @param havingLossIds 已经插入的id集合
|
|
|
|
|
|
+ * @param logs 日志记录
|
|
|
|
+ * @param dataBases 入库数据
|
|
|
|
+ * @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
|
+ * @param inInserts 内部丢失插入集合
|
|
|
|
+ * @param havingLossIds 已经插入的id集合
|
|
|
|
+ * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
|
|
* @Return void
|
|
* @Return void
|
|
*/
|
|
*/
|
|
private void compareLogWithLocal(List<GetOperationLogDTO> logs, List<String> dataBases, String type,
|
|
private void compareLogWithLocal(List<GetOperationLogDTO> logs, List<String> dataBases, String type,
|
|
- List<BlocklossResult> inInserts, List<String> havingLossIds) {
|
|
|
|
|
|
+ List<BlocklossResult> inInserts, List<String> havingLossIds,
|
|
|
|
+ Map<String, HisMedicalRecordDTO> hisMedicalRecordMap) {
|
|
switch (type) {
|
|
switch (type) {
|
|
case "0":
|
|
case "0":
|
|
//文书丢失
|
|
//文书丢失
|
|
@@ -279,6 +290,7 @@ public class BlockLossManagementFacade {
|
|
blocklossResult.setRecTitle(rec.getRecTitle());
|
|
blocklossResult.setRecTitle(rec.getRecTitle());
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
|
|
//拼装病历数据块丢失明细其他信息
|
|
//拼装病历数据块丢失明细其他信息
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
@@ -287,7 +299,7 @@ public class BlockLossManagementFacade {
|
|
});
|
|
});
|
|
//判断只插入文书id的情况
|
|
//判断只插入文书id的情况
|
|
//获取插入的文书
|
|
//获取插入的文书
|
|
- if(ListUtil.isNotEmpty(dataBases)){
|
|
|
|
|
|
+ if (ListUtil.isNotEmpty(dataBases)) {
|
|
List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
|
|
List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
|
|
.select("rec_id")
|
|
.select("rec_id")
|
|
.in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
|
|
.in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
|
|
@@ -306,6 +318,7 @@ public class BlockLossManagementFacade {
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
|
|
blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
|
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
|
|
//拼装病历数据块丢失明细其他信息
|
|
//拼装病历数据块丢失明细其他信息
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
@@ -326,6 +339,7 @@ public class BlockLossManagementFacade {
|
|
blocklossResult.setRecTitle("病案首页丢失");
|
|
blocklossResult.setRecTitle("病案首页丢失");
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
|
|
//拼装病历数据块丢失明细其他信息
|
|
//拼装病历数据块丢失明细其他信息
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
@@ -343,6 +357,7 @@ public class BlockLossManagementFacade {
|
|
blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
|
|
blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
|
|
//拼装病历数据块丢失明细其他信息
|
|
//拼装病历数据块丢失明细其他信息
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
inInserts.add(blocklossResult);
|
|
@@ -441,17 +456,19 @@ public class BlockLossManagementFacade {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @param medicalRecords his数据
|
|
|
|
- * @param logs 日志数据
|
|
|
|
- * @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
|
- * @param outInserts 外部丢失插入集合
|
|
|
|
- * @param havingLossIds 已经插入的id集合
|
|
|
|
|
|
+ * @param medicalRecords his数据
|
|
|
|
+ * @param logs 日志数据
|
|
|
|
+ * @param type 对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
|
|
|
|
+ * @param outInserts 外部丢失插入集合
|
|
|
|
+ * @param havingLossIds 已经插入的id集合
|
|
|
|
+ * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
|
|
* @Return void
|
|
* @Return void
|
|
*/
|
|
*/
|
|
private void compareHisWithLog(List<GetOperationLogDTO> medicalRecords, List<GetOperationLogDTO> logs,
|
|
private void compareHisWithLog(List<GetOperationLogDTO> medicalRecords, List<GetOperationLogDTO> logs,
|
|
- String type, List<BlocklossResult> outInserts, List<String> havingLossIds) {
|
|
|
|
|
|
+ String type, List<BlocklossResult> outInserts, List<String> havingLossIds,
|
|
|
|
+ Map<String, HisMedicalRecordDTO> hisMedicalRecordMap) {
|
|
//his数据为空直接返回
|
|
//his数据为空直接返回
|
|
- if(ListUtil.isEmpty(medicalRecords)){
|
|
|
|
|
|
+ if (ListUtil.isEmpty(medicalRecords)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
switch (type) {
|
|
switch (type) {
|
|
@@ -469,6 +486,7 @@ public class BlockLossManagementFacade {
|
|
blocklossResult.setRecTitle(medicalRecord.getRecTitle());
|
|
blocklossResult.setRecTitle(medicalRecord.getRecTitle());
|
|
blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
//拼装病历数据块丢失明细其他信息
|
|
//拼装病历数据块丢失明细其他信息
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
outInserts.add(blocklossResult);
|
|
outInserts.add(blocklossResult);
|
|
@@ -489,6 +507,7 @@ public class BlockLossManagementFacade {
|
|
blocklossResult.setRecTitle("病案首页丢失");
|
|
blocklossResult.setRecTitle("病案首页丢失");
|
|
blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
//拼装病历数据块丢失明细其他信息
|
|
//拼装病历数据块丢失明细其他信息
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
outInserts.add(blocklossResult);
|
|
outInserts.add(blocklossResult);
|
|
@@ -506,6 +525,7 @@ public class BlockLossManagementFacade {
|
|
blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
|
|
blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
|
|
//拼装病历数据块丢失明细其他信息
|
|
//拼装病历数据块丢失明细其他信息
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
outInserts.add(blocklossResult);
|
|
outInserts.add(blocklossResult);
|
|
@@ -566,33 +586,67 @@ public class BlockLossManagementFacade {
|
|
"save/saveHomePages",
|
|
"save/saveHomePages",
|
|
"save/saveRecs"));
|
|
"save/saveRecs"));
|
|
|
|
|
|
|
|
+ DataCompareVO dataCompareVO = new DataCompareVO();
|
|
|
|
+ dataCompareVO.setStartDate(blockLossTypeGatherVO.getStartDate());
|
|
|
|
+ dataCompareVO.setEndDate(blockLossTypeGatherVO.getEndDate());
|
|
|
|
+ //获取his数据
|
|
|
|
+ List<HisMedicalRecordDTO> hisMedicalRecords = getHisMedicalRecords(dataCompareVO);
|
|
|
|
+
|
|
BlockLossTypeGatherDTO blockLossTypeGatherDTO = new BlockLossTypeGatherDTO();
|
|
BlockLossTypeGatherDTO blockLossTypeGatherDTO = new BlockLossTypeGatherDTO();
|
|
|
|
+ //his数据量
|
|
|
|
+ blockLossTypeGatherDTO.setHisNum(getHisMedicalRecordsCount(hisMedicalRecords));
|
|
|
|
+
|
|
//获取该时间段的日志数量
|
|
//获取该时间段的日志数量
|
|
- Integer logNum = operationLogService.getOperationLogNum(blockLossTypeGatherVO).getData();
|
|
|
|
- blockLossTypeGatherDTO.setLogNum(logNum);
|
|
|
|
|
|
+ //病历数据
|
|
|
|
+ dataCompareVO.setOperationUrl("save/saveBehospitalCode");
|
|
|
|
+ List<GetOperationLogDTO> behospitalCodeLogs = getOperationLogs(dataCompareVO);
|
|
|
|
+ //病案首页数据
|
|
|
|
+ List<GetOperationLogDTO> homePageLogs = new ArrayList<>();
|
|
|
|
+ //文书数据
|
|
|
|
+ List<GetOperationLogDTO> recLogs = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
|
|
|
|
+ List<String> logCodes = behospitalCodeLogs.stream().map(GetOperationLogDTO::getBehospitalCode).collect(Collectors.toList());
|
|
|
|
+ dataCompareVO.setBehospitalCodes(logCodes);
|
|
|
|
+ //病案首页数据
|
|
|
|
+ dataCompareVO.setOperationUrl("save/saveHomePages");
|
|
|
|
+ homePageLogs = getOperationLogs(dataCompareVO);
|
|
|
|
+ //文书数据
|
|
|
|
+ dataCompareVO.setOperationUrl("save/saveRecs");
|
|
|
|
+ recLogs = getOperationLogs(dataCompareVO);
|
|
|
|
+ Integer logNum = logCodes.size() + homePageLogs.size() + recLogs.size();
|
|
|
|
+ blockLossTypeGatherDTO.setLogNum(logNum);
|
|
|
|
+ }
|
|
|
|
+
|
|
//获取该时间段的实际数量
|
|
//获取该时间段的实际数量
|
|
- Integer codeNum = behospitalInfoFacade.count(new QueryWrapper<BehospitalInfo>()
|
|
|
|
- .eq("hospital_id",SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
|
|
- .ge(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getStartDate())
|
|
|
|
- .le(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getEndDate()));
|
|
|
|
- Integer homePageNum = homePageFacade.count(new QueryWrapper<HomePage>()
|
|
|
|
- .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
|
|
- .ge(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getStartDate())
|
|
|
|
- .le(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getEndDate()));
|
|
|
|
- Integer recNum = medicalRecordFacade.count(new QueryWrapper<MedicalRecord>()
|
|
|
|
|
|
+ List<String> codes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
|
|
.eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
.eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
- .ge(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getStartDate())
|
|
|
|
- .le(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getEndDate()));
|
|
|
|
|
|
+ .ge(blockLossTypeGatherVO.getStartDate() != null, "behospital_date", blockLossTypeGatherVO.getStartDate())
|
|
|
|
+ .le(blockLossTypeGatherVO.getEndDate() != null, "behospital_date", blockLossTypeGatherVO.getEndDate()))
|
|
|
|
+ .stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ Integer codeNum = codes.size();
|
|
|
|
+ Integer homePageNum = 0;
|
|
|
|
+ Integer recNum = 0;
|
|
|
|
+ if (ListUtil.isNotEmpty(codes)) {
|
|
|
|
+ homePageNum = homePageFacade.count(new QueryWrapper<HomePage>()
|
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
|
|
+ .in("behospital_code", codes));
|
|
|
|
+ recNum = medicalRecordFacade.count(new QueryWrapper<MedicalRecord>()
|
|
|
|
+ .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
|
|
+ .in("behospital_code", codes));
|
|
|
|
+ }
|
|
|
|
+
|
|
blockLossTypeGatherDTO.setRealNum(codeNum + homePageNum + recNum);
|
|
blockLossTypeGatherDTO.setRealNum(codeNum + homePageNum + recNum);
|
|
//获取该时间段的丢失数量
|
|
//获取该时间段的丢失数量
|
|
List<BlocklossResult> blocklossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
List<BlocklossResult> blocklossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
.eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
.eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
|
|
.eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
.eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
- .ge(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getStartDate())
|
|
|
|
- .le(blockLossTypeGatherVO.getStartDate() != null, "gmt_create", blockLossTypeGatherVO.getEndDate()));
|
|
|
|
|
|
+ .ge(blockLossTypeGatherVO.getStartDate() != null, "behospital_date", blockLossTypeGatherVO.getStartDate())
|
|
|
|
+ .le(blockLossTypeGatherVO.getEndDate() != null, "behospital_date", blockLossTypeGatherVO.getEndDate()));
|
|
Integer allLossNum = blocklossResults.size();
|
|
Integer allLossNum = blocklossResults.size();
|
|
blockLossTypeGatherDTO.setAllLossNum(allLossNum);
|
|
blockLossTypeGatherDTO.setAllLossNum(allLossNum);
|
|
- blockLossTypeGatherDTO.setHisNum(codeNum + homePageNum + recNum + allLossNum);
|
|
|
|
|
|
+ // blockLossTypeGatherDTO.setHisNum(codeNum + homePageNum + recNum + allLossNum);
|
|
|
|
|
|
Map<String, List<BlocklossResult>> lossWayMap = EntityUtil.makeEntityListMap(blocklossResults, "lossWay");
|
|
Map<String, List<BlocklossResult>> lossWayMap = EntityUtil.makeEntityListMap(blocklossResults, "lossWay");
|
|
//外部丢失
|
|
//外部丢失
|
|
@@ -638,6 +692,33 @@ public class BlockLossManagementFacade {
|
|
return blockLossTypeGatherDTO;
|
|
return blockLossTypeGatherDTO;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取这段时间内his的数据量
|
|
|
|
+ *
|
|
|
|
+ * @param hisMedicalRecords
|
|
|
|
+ * @Return java.lang.Integer
|
|
|
|
+ */
|
|
|
|
+ private Integer getHisMedicalRecordsCount(List<HisMedicalRecordDTO> hisMedicalRecords) {
|
|
|
|
+
|
|
|
|
+ AtomicReference<Integer> num = new AtomicReference<>(0);
|
|
|
|
+ if (ListUtil.isNotEmpty(hisMedicalRecords)) {
|
|
|
|
+ hisMedicalRecords.stream().forEach(hisMedicalRecordDTO -> {
|
|
|
|
+ //病历+1
|
|
|
|
+ num.getAndSet(num.get() + 1);
|
|
|
|
+ //病案首页+1
|
|
|
|
+ if (StringUtil.isNotEmpty(hisMedicalRecordDTO.getHomePageId())) {
|
|
|
|
+ num.getAndSet(num.get() + 1);
|
|
|
|
+ }
|
|
|
|
+ //文书
|
|
|
|
+ if (ListUtil.isNotEmpty(hisMedicalRecordDTO.getHisRecs())) {
|
|
|
|
+ num.getAndSet(num.get() + hisMedicalRecordDTO.getHisRecs().size());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ return num.get();
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 数据补录
|
|
* 数据补录
|
|
*
|
|
*
|