|
@@ -5,6 +5,8 @@ import com.diagbot.dto.AnalyzeDTO;
|
|
|
import com.diagbot.entity.BehospitalInfo;
|
|
|
import com.diagbot.entity.MedDefectFeedback;
|
|
|
import com.diagbot.entity.MedQcresultInfo;
|
|
|
+import com.diagbot.entity.QcresultDetail;
|
|
|
+import com.diagbot.entity.QcresultInfo;
|
|
|
import com.diagbot.entity.SysUser;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
@@ -39,7 +41,7 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
|
|
|
@Autowired
|
|
|
private SysUserFacade sysUserFacade;
|
|
|
@Autowired
|
|
|
- private MedQcresultInfoServiceImpl medQcresultInfoServiceImpl;
|
|
|
+ private QcresultDetailFacade qcresultDetailFacade;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -75,24 +77,45 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
|
|
|
AnalyzeDTO out = new AnalyzeDTO();
|
|
|
QcresultVO qcresultVO = new QcresultVO();
|
|
|
BeanUtil.copyProperties(changeQcResultVO, qcresultVO);
|
|
|
- //非新增缺失
|
|
|
- if (!"4".equals(changeQcResultVO.getOperationType())) {
|
|
|
- out = qcresultInfoFacade.changeQcResult(qcresultVO);
|
|
|
- }else {
|
|
|
- //新增缺失拼装返回结果
|
|
|
- //获取病历等级得分
|
|
|
- MedQcresultInfo medQcresultInfo = medQcresultInfoServiceImpl
|
|
|
- .getOne(new QueryWrapper<MedQcresultInfo>().select("level,score_res")
|
|
|
- .eq("hospital_id",hospitalId)
|
|
|
- .eq("behospital_code",qcresultVO.getBehospitalCode())
|
|
|
- .eq("is_deleted",IsDeleteEnum.N.getKey()));
|
|
|
- out.setBehospitalCode(qcresultVO.getBehospitalCode());
|
|
|
- out.setIsSuccess(true);
|
|
|
- out.setGradeType(2);
|
|
|
- out.setGradeTypeName("人工");
|
|
|
- out.setScoreRes(medQcresultInfo.getScoreRes());
|
|
|
- out.setLevel(medQcresultInfo.getLevel());
|
|
|
- out.setGradeTime(DateUtil.now());
|
|
|
+ switch (changeQcResultVO.getOperationType()) {
|
|
|
+ case "1"://修改
|
|
|
+ qcresultVO.setType(3);
|
|
|
+ out = qcresultInfoFacade.changeQcResult(qcresultVO);
|
|
|
+ break;
|
|
|
+ case "2"://删除
|
|
|
+ qcresultVO.setType(4);
|
|
|
+ qcresultVO.setDelStatus(0);
|
|
|
+ out = qcresultInfoFacade.changeQcResult(qcresultVO);
|
|
|
+ break;
|
|
|
+ case "3"://新增已有
|
|
|
+ qcresultVO.setType(1);
|
|
|
+ //判断该缺陷是否存在
|
|
|
+ havingCase(qcresultVO);
|
|
|
+ out = qcresultInfoFacade.changeQcResult(qcresultVO);
|
|
|
+ break;
|
|
|
+ case "4"://新增缺失
|
|
|
+ //新增缺失拼装返回结果
|
|
|
+ //获取病历等级得分
|
|
|
+ QcresultInfo qcresultInfo = qcresultInfoFacade
|
|
|
+ .getOne(new QueryWrapper<QcresultInfo>().select("level,score_res")
|
|
|
+ .eq("hospital_id", hospitalId)
|
|
|
+ .eq("behospital_code", qcresultVO.getBehospitalCode())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
+ out.setBehospitalCode(qcresultVO.getBehospitalCode());
|
|
|
+ out.setIsSuccess(true);
|
|
|
+ out.setGradeType(2);
|
|
|
+ out.setGradeTypeName("人工");
|
|
|
+ out.setScoreRes(qcresultInfo.getScoreRes());
|
|
|
+ out.setLevel(qcresultInfo.getLevel());
|
|
|
+ out.setGradeTime(DateUtil.now());
|
|
|
+ break;
|
|
|
+ case "5"://恢复
|
|
|
+ qcresultVO.setType(4);
|
|
|
+ qcresultVO.setDelStatus(1);
|
|
|
+ out = qcresultInfoFacade.changeQcResult(qcresultVO);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
//3.人工修改病历成功后
|
|
@@ -102,9 +125,12 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
|
|
|
insert.setDeptId(behospitalInfos.get(0).getBehDeptId());
|
|
|
insert.setDeptName(behospitalInfos.get(0).getBehDeptName());
|
|
|
insert.setName(behospitalInfos.get(0).getName());
|
|
|
- insert.setCasesEntryId(changeQcResultVO.getOptResultAlgVO().getCasesEntryId());
|
|
|
- insert.setQcresultDetailMsg(changeQcResultVO.getOptResultAlgVO().getMsg());
|
|
|
- insert.setQcresultDetaiScore(changeQcResultVO.getOptResultAlgVO().getScore());
|
|
|
+ //除新增缺失以外都要记录条目、缺陷详情、分值信息
|
|
|
+ if (!"4".equals(changeQcResultVO.getOperationType())) {
|
|
|
+ insert.setCasesEntryId(changeQcResultVO.getOptResultAlgVO().getCasesEntryId());
|
|
|
+ insert.setQcresultDetailMsg(changeQcResultVO.getOptResultAlgVO().getMsg());
|
|
|
+ insert.setQcresultDetaiScore(changeQcResultVO.getOptResultAlgVO().getScore());
|
|
|
+ }
|
|
|
insert.setHospitalId(hospitalId);
|
|
|
insert.setGmtCreate(DateUtil.now());
|
|
|
insert.setCreator(SysUserUtils.getCurrentPrincipleID());
|
|
@@ -123,6 +149,22 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
|
|
|
return out;
|
|
|
}
|
|
|
|
|
|
+ private void havingCase(QcresultVO qcresultVO) {
|
|
|
+ if (qcresultVO.getOptResultAlgVO().getCasesEntryId() == null) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "条目ID不存在!");
|
|
|
+ }
|
|
|
+ //判断机器是否有质控出该缺陷或人工添加过该缺陷
|
|
|
+ QueryWrapper<QcresultDetail> query = new QueryWrapper();
|
|
|
+ query.eq("hospital_id", SysUserUtils.getCurrentHospitalID());
|
|
|
+ query.eq("behospital_code", qcresultVO.getBehospitalCode());
|
|
|
+ query.eq("cases_entry_id", qcresultVO.getOptResultAlgVO().getCasesEntryId());
|
|
|
+ query.and(qw -> qw.eq("grade_type", 2)
|
|
|
+ .or().eq("is_deleted", IsDeleteEnum.N.getKey()).eq("grade_type", 1));
|
|
|
+ if (ListUtil.isNotEmpty(qcresultDetailFacade.list(query))) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "添加的缺陷条目已存在!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 推送给his方
|
|
|
*
|
|
@@ -146,6 +188,7 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
|
|
|
public Boolean updDefectBackByID(UPdDefectBackByIDVO uPdDefectBackByIDVO) {
|
|
|
MedDefectFeedback entity = new MedDefectFeedback();
|
|
|
entity.setId(uPdDefectBackByIDVO.getId());
|
|
|
+ entity.setStatus("1");
|
|
|
return this.updateById(entity);
|
|
|
}
|
|
|
}
|