|
|
@ -84,6 +84,7 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public void createMedicalRec(MedicalRecManageVO reqVO) {
|
|
|
|
public void createMedicalRec(MedicalRecManageVO reqVO) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertDefaultAnswer(reqVO.getDefaultQaList());
|
|
|
|
// 然后保存病历
|
|
|
|
// 然后保存病历
|
|
|
|
MedicalRec medicalRec = BeanUtil.toBean(reqVO, MedicalRec.class);
|
|
|
|
MedicalRec medicalRec = BeanUtil.toBean(reqVO, MedicalRec.class);
|
|
|
|
medicalRec.setDiseaseId(reqVO.getDiseaseId());
|
|
|
|
medicalRec.setDiseaseId(reqVO.getDiseaseId());
|
|
|
@ -95,6 +96,21 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
|
|
|
|
saveAskPatientAnswer(reqVO.getDefaultQaList(), medicalRec.getId(), 0);
|
|
|
|
saveAskPatientAnswer(reqVO.getDefaultQaList(), medicalRec.getId(), 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void assertDefaultAnswer(List<MedicalRecQaVO> qaList) {
|
|
|
|
|
|
|
|
Assert.notEmpty(qaList, "默认问题列表不能为空");
|
|
|
|
|
|
|
|
CommonDic systemDic = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").eq(CommonDic::getCode, "system").one();
|
|
|
|
|
|
|
|
Assert.notNull(systemDic, "未找到系统问题");
|
|
|
|
|
|
|
|
List<AskTemplateQuestionLibrary> askTemplateQuestionLibraryList = askTemplateQuestionLibraryService.lambdaQuery().eq(AskTemplateQuestionLibrary::getDictId, systemDic.getId()).list();
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(askTemplateQuestionLibraryList)){
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Set<String> libraryIds = qaList.stream().map(MedicalRecQaVO::getLibraryQuestionId).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : askTemplateQuestionLibraryList) {
|
|
|
|
|
|
|
|
Assert.isTrue(libraryIds.contains(askTemplateQuestionLibrary.getId()), "默认问题未配置");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void saveAskPatientAnswer(List<MedicalRecQaVO> qaList,String medicalRecId,Integer answerType){
|
|
|
|
private void saveAskPatientAnswer(List<MedicalRecQaVO> qaList,String medicalRecId,Integer answerType){
|
|
|
|
if (CollUtil.isEmpty(qaList)) {
|
|
|
|
if (CollUtil.isEmpty(qaList)) {
|
|
|
@ -171,6 +187,9 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
|
|
|
|
if (!StrUtil.equals(medicalRec.getDiseaseId(), reqVO.getDiseaseId())) {
|
|
|
|
if (!StrUtil.equals(medicalRec.getDiseaseId(), reqVO.getDiseaseId())) {
|
|
|
|
throw new BusinessException("修改病例时,不允许修改疾病");
|
|
|
|
throw new BusinessException("修改病例时,不允许修改疾病");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertDefaultAnswer(reqVO.getDefaultQaList());
|
|
|
|
|
|
|
|
|
|
|
|
BeanUtil.copyProperties(reqVO, medicalRec, "id","patientId");
|
|
|
|
BeanUtil.copyProperties(reqVO, medicalRec, "id","patientId");
|
|
|
|
medicalRec.updateById();
|
|
|
|
medicalRec.updateById();
|
|
|
|
// 然后修改问答
|
|
|
|
// 然后修改问答
|
|
|
@ -178,7 +197,9 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
|
|
|
|
List<AskPatientAnswer> existQAList = askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getMedicalId, medicalRec.getId()).list();
|
|
|
|
List<AskPatientAnswer> existQAList = askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getMedicalId, medicalRec.getId()).list();
|
|
|
|
Map<String, AskPatientAnswer> existQAMap = existQAList.stream().collect(Collectors.toMap(AskPatientAnswer::getId, Function.identity()));
|
|
|
|
Map<String, AskPatientAnswer> existQAMap = existQAList.stream().collect(Collectors.toMap(AskPatientAnswer::getId, Function.identity()));
|
|
|
|
|
|
|
|
|
|
|
|
for (MedicalRecQaVO medicalRecQaVO : reqVO.getQaList()) {
|
|
|
|
Collection<MedicalRecQaVO> medicalRecQaVOS = CollUtil.addAll(CollUtil.newArrayList(), reqVO.getQaList());
|
|
|
|
|
|
|
|
medicalRecQaVOS.addAll(reqVO.getDefaultQaList());
|
|
|
|
|
|
|
|
for (MedicalRecQaVO medicalRecQaVO : medicalRecQaVOS) {
|
|
|
|
if (StrUtil.isBlank(medicalRecQaVO.getLibraryQuestionId())) {
|
|
|
|
if (StrUtil.isBlank(medicalRecQaVO.getLibraryQuestionId())) {
|
|
|
|
throw new BusinessException("问题ID不能为空");
|
|
|
|
throw new BusinessException("问题ID不能为空");
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -230,7 +251,7 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
|
|
|
|
MedicalRecQaVO medicalRecQaVO = new MedicalRecQaVO();
|
|
|
|
MedicalRecQaVO medicalRecQaVO = new MedicalRecQaVO();
|
|
|
|
medicalRecQaVO.setId(e.getId());
|
|
|
|
medicalRecQaVO.setId(e.getId());
|
|
|
|
medicalRecQaVO.setLibraryQuestionId(e.getLibraryQuestionId());
|
|
|
|
medicalRecQaVO.setLibraryQuestionId(e.getLibraryQuestionId());
|
|
|
|
medicalRecQaVO.setAnswerType(Objects.nonNull(e.getAnswerType()) ? 1 : e.getAnswerType());
|
|
|
|
medicalRecQaVO.setAnswerType(Objects.isNull(e.getAnswerType()) ? 1 : e.getAnswerType());
|
|
|
|
// 病历的回答
|
|
|
|
// 病历的回答
|
|
|
|
medicalRecQaVO.setMedicalRecAnswer(e.getAnswer());
|
|
|
|
medicalRecQaVO.setMedicalRecAnswer(e.getAnswer());
|
|
|
|
medicalRecQaVO.setAnswerResourceId(e.getAnswerResourceId());
|
|
|
|
medicalRecQaVO.setAnswerResourceId(e.getAnswerResourceId());
|
|
|
@ -302,7 +323,7 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
|
|
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(medicalRecId)) {
|
|
|
|
if (StrUtil.isNotEmpty(medicalRecId)) {
|
|
|
|
List<AskPatientAnswer> askPatientAnswerList = askPatientAnswerService.lambdaQuery()
|
|
|
|
List<AskPatientAnswer> askPatientAnswerList = askPatientAnswerService.lambdaQuery()
|
|
|
|
.eq(AskPatientAnswer::getMedicalId, medicalRecId).eq(AskPatientAnswer::getAnswerType, "0").list();
|
|
|
|
.eq(AskPatientAnswer::getMedicalId, medicalRecId).eq(AskPatientAnswer::getAnswerType, 0).list();
|
|
|
|
|
|
|
|
|
|
|
|
final Map<String, AskTemplateQuestionLibrary> libraryMap = new HashMap<>();
|
|
|
|
final Map<String, AskTemplateQuestionLibrary> libraryMap = new HashMap<>();
|
|
|
|
if (CollUtil.isNotEmpty(askPatientAnswerList)){
|
|
|
|
if (CollUtil.isNotEmpty(askPatientAnswerList)){
|
|
|
|