bugfix:修复初步诊断未选中的问题

dev_2.0.0
liu 1 year ago
parent 50c9805ce4
commit dd6f149730

@ -37,21 +37,21 @@ public class JwtInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// //请求消息头获取用户ID
// String token = request.getHeader("token");
// if (StrUtil.isBlank(token)) {
// // 如果是swagger来的接口,说明这里是测试的,会伪造一个用户
// if (StrUtil.isNotBlank(request.getHeader("Knife4j-Gateway-Code"))) {
// cacheAuth(JWTUtil.parseToken(devActiveUser()));
// return true;
// } else {
// throw new BusinessException("当前用户未登录", HttpStatus.UNAUTHORIZED.value());
// }
// }
// JWT jwt = JWTUtil.parseToken(token);
// // 校验token是否过期,如果过期了,需要提示过期重新登录
// checkTokenExpire(jwt);
// cacheAuth(jwt);
//请求消息头获取用户ID
String token = request.getHeader("token");
if (StrUtil.isBlank(token)) {
// 如果是swagger来的接口,说明这里是测试的,会伪造一个用户
if (StrUtil.isNotBlank(request.getHeader("Knife4j-Gateway-Code"))) {
cacheAuth(JWTUtil.parseToken(devActiveUser()));
return true;
} else {
throw new BusinessException("当前用户未登录", HttpStatus.UNAUTHORIZED.value());
}
}
JWT jwt = JWTUtil.parseToken(token);
// 校验token是否过期,如果过期了,需要提示过期重新登录
checkTokenExpire(jwt);
cacheAuth(jwt);
return true;
}

@ -16,7 +16,9 @@ import java.util.List;
*/
public interface DiagnosisPrimaryMapper extends BaseMapper<DiagnosisPrimary> {
List<DiagnosisPrimaryVO> queryAskPrimaryList(@Param("processId") String processId);
List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessId(@Param("processId") String processId);
DiagnosisPrimaryVO queryAskPrimaryListByPrimaryId(@Param("primaryId") String primaryId);
List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessIds(@Param("processIds") List<String> processIds);

@ -14,7 +14,9 @@ import java.util.List;
*/
public interface DiagnosisPrimaryService extends IService<DiagnosisPrimary> {
List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId);
List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessId(String processId);
DiagnosisPrimaryVO queryAskPrimaryListByPrimaryId(String primaryId);
List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessIds(List<String> processIds);

@ -6,22 +6,28 @@ import com.supervision.service.DiagnosisPrimaryService;
import com.supervision.mapper.DiagnosisPrimaryMapper;
import com.supervision.vo.ask.DiagnosisPrimaryVO;
import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author flevance
* @description vp_diagnosis_primary()Service
* @createDate 2023-10-26 11:33:21
*/
* @author flevance
* @description vp_diagnosis_primary()Service
* @createDate 2023-10-26 11:33:21
*/
@Service
public class DiagnosisPrimaryServiceImpl extends ServiceImpl<DiagnosisPrimaryMapper, DiagnosisPrimary>
implements DiagnosisPrimaryService{
implements DiagnosisPrimaryService {
@Override
public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) {
return this.baseMapper.queryAskPrimaryList(processId);
public List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessId(String processId) {
return this.baseMapper.queryAskPrimaryListByProcessId(processId);
}
@Override
public DiagnosisPrimaryVO queryAskPrimaryListByPrimaryId(String primaryId) {
return this.baseMapper.queryAskPrimaryListByPrimaryId(primaryId);
}
@Override

@ -23,7 +23,7 @@
update_time
</sql>
<select id="queryAskPrimaryList" resultType="com.supervision.vo.ask.DiagnosisPrimaryVO">
<select id="queryAskPrimaryListByProcessId" resultType="com.supervision.vo.ask.DiagnosisPrimaryVO">
select t1.*, if(t2.disease_name_alias is null, t2.disease_name, t2.disease_name_alias) as primaryDiseaseName
from vp_diagnosis_primary t1
left join vp_disease t2 on t1.primary_diagnosis_id = t2.id
@ -33,14 +33,23 @@
</if>
</where>
</select>
<select id="queryAskPrimaryListByPrimaryId" resultType="com.supervision.vo.ask.DiagnosisPrimaryVO">
select t1.*, if(t2.disease_name_alias is null, t2.disease_name, t2.disease_name_alias) as primaryDiseaseName
from vp_diagnosis_primary t1
left join vp_disease t2 on t1.primary_diagnosis_id = t2.id
where t1.id = #{primaryId}
</select>
<select id="queryDiagnosticBasisListForPrimary"
resultType="com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO">
select t1.id as id,
1 as type,
null as locationName,
t4.name_zh_path as category,
t1.question as item,
t1.basis_confirm_flag as basisConfirmFlag,
select t1.id as id,
1 as type,
null as locationName,
t4.name_zh_path as category,
t1.question as item,
t1.basis_confirm_flag as basisConfirmFlag,
t1.basis_identification_flag as basisIdentificationFlag
from vp_diagnosis_qa_record t1
left join vp_ask_patient_answer t2 on t1.answer_id = t2.id
@ -50,12 +59,12 @@
union
select t1.id as id,
2 as type,
t2.location_name as locationName,
t3.type as category,
t3.tool_name as item,
t1.basis_confirm_flag as basisConfirmFlag,
select t1.id as id,
2 as type,
t2.location_name as locationName,
t3.type as category,
t3.tool_name as item,
t1.basis_confirm_flag as basisConfirmFlag,
t1.basis_identification_flag as basisIdentificationFlag
from vp_diagnosis_physical_record t1
left join vp_config_physical_location t2 on t1.location_id = t2.id
@ -64,12 +73,12 @@
union
select t1.id as id,
3 as type,
t2.location_name as locationName,
t2.type as category,
t2.item_name as item,
t1.basis_confirm_flag as basisConfirmFlag,
select t1.id as id,
3 as type,
t2.location_name as locationName,
t2.type as category,
t2.item_name as item,
t1.basis_confirm_flag as basisConfirmFlag,
t1.basis_identification_flag as basisIdentificationFlag
from vp_diagnosis_ancillary_record t1
left join vp_config_ancillary_item t2 on t1.item_id = t2.id
@ -90,4 +99,5 @@
</if>
</where>
</select>
</mapper>

@ -44,6 +44,12 @@ public class AskPrimaryController {
return askPrimaryService.queryPrimaryCanChooseList();
}
@ApiOperation("获取单个初步诊断详细信息")
@GetMapping("queryPrimaryDetailInfo")
public DiagnosisPrimaryVO queryPrimaryDetailInfo(String primaryId) {
return askPrimaryService.queryPrimaryDetailInfo(primaryId);
}
@ApiOperation("修改初步诊断病情依据")
@PostMapping("modifyPrimaryDiseaseInfo")
public void modifyPrimaryDiseaseInfo(@RequestBody @Validated ModifyPrimaryDiseaseInfoReqVO reqVO) {

@ -19,6 +19,8 @@ public interface AskPrimaryService {
List<Disease> queryPrimaryCanChooseList();
DiagnosisPrimaryVO queryPrimaryDetailInfo(String primaryId);
void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO);
void savePrimary(SaveDiagnosisPrimaryReqVO reqVO);

@ -115,7 +115,7 @@ public class AskAncillaryServiceImpl implements AskAncillaryService {
public List<AskAncillaryHistoryResVO> queryAskAncillaryHistory(String processId) {
List<AskAncillaryHistoryResVO> historyList = diagnosisAncillaryRecordService.queryAncillaryRecord(processId);
// 找到问诊流程对应的初步诊断项目
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId);
Map<String, DiagnosisPrimaryVO> primaryMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, Function.identity()));
// 这里需要根据item和primaryId进行去重,对于完全相同的,只保留一个,
Map<String, List<AskAncillaryHistoryResVO>> collect = historyList.stream().collect(Collectors.groupingBy(e -> e.getItemId() + e.getPrimaryId()));

@ -113,7 +113,7 @@ public class AskPhysicalServiceImpl implements AskPhysicalService {
Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId));
// 找到process对应的所有的初步诊断
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId);
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName));
for (AskPhysicalHistoryResVO node : res) {
List<DiagnosisPrimaryRelation> temp = relationMap.get(node.getId());

@ -8,13 +8,12 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.druid.sql.visitor.functions.If;
import com.sun.media.sound.AiffFileReader;
import com.supervision.exception.BusinessException;
import com.supervision.model.*;
import com.supervision.model.Process;
import com.supervision.model.*;
import com.supervision.pojo.vo.*;
import com.supervision.vo.ask.*;
import com.supervision.service.*;
import com.supervision.util.UserUtil;
import io.swagger.models.auth.In;
import com.supervision.vo.ask.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -44,7 +43,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
@Override
public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) {
List<DiagnosisPrimaryVO> resVoList = diagnosisPrimaryService.queryAskPrimaryList(processId);
List<DiagnosisPrimaryVO> resVoList = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId);
List<DiagnosisPrimaryRelation> list = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getProcessId, processId).list();
if (CollUtil.isNotEmpty(list)) {
Map<String, List<DiagnosisPrimaryRelation>> relationMap = list.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getPrimaryId));
@ -67,6 +66,22 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
return diseaseService.list();
}
@Override
public DiagnosisPrimaryVO queryPrimaryDetailInfo(String primaryId) {
DiagnosisPrimaryVO diagnosisPrimaryVO = diagnosisPrimaryService.queryAskPrimaryListByPrimaryId(primaryId);
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery()
.eq(DiagnosisPrimaryRelation::getPrimaryId, primaryId)
.list();
if (CollUtil.isNotEmpty(relationList)) {
Map<Integer, List<String>> relationIdMap = relationList.stream()
.collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getType, Collectors.mapping(DiagnosisPrimaryRelation::getRelationId, Collectors.toList())));
diagnosisPrimaryVO.setAskIdList(Optional.ofNullable(relationIdMap.get(1)).orElseGet(ArrayList::new));
diagnosisPrimaryVO.setPhysicalIdList(Optional.ofNullable(relationIdMap.get(2)).orElseGet(ArrayList::new));
diagnosisPrimaryVO.setAncillaryIdList(Optional.ofNullable(relationIdMap.get(3)).orElseGet(ArrayList::new));
}
return diagnosisPrimaryVO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO) {
@ -115,10 +130,10 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId());
String primaryDiagnosisId = diagnosisPrimary.getPrimaryDiagnosisId();
Assert.notEmpty(primaryDiagnosisId,"疾病不能为空");
Assert.notEmpty(primaryDiagnosisId, "疾病不能为空");
List<DiagnosisPrimary> dbList = diagnosisPrimaryService.lambdaQuery().eq(DiagnosisPrimary::getPrimaryDiagnosisId, primaryDiagnosisId)
.eq(DiagnosisPrimary::getProcessId, diagnosisPrimary.getProcessId()).list();
Assert.isTrue(CollectionUtil.isEmpty(dbList),"初步诊断已存在");
Assert.isTrue(CollectionUtil.isEmpty(dbList), "初步诊断已存在");
diagnosisPrimaryService.save(diagnosisPrimary);
// 然后开始保存初步诊断关键的诊断
@ -256,7 +271,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
return resList;
}
// 找到process对应的所有的初步诊断
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId);
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().peek(vo -> {
if (StrUtil.isEmpty(vo.getPrimaryDiseaseName())) {
vo.setPrimaryDiseaseName("");

@ -81,7 +81,7 @@ public class MedicalRecordServiceImpl implements MedicalRecordService {
ProcessMedicalViewDetailResVo resultVo = BeanUtil.toBean(processMedicalResVo, ProcessMedicalViewDetailResVo.class);
// 2. 获取初步诊断疾病信息
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId);
resultVo.setPrimaryDiseaseNameList(
diagnosisPrimaryVOS.stream().map(DiagnosisPrimaryVO::getPrimaryDiseaseName).distinct().collect(Collectors.toList()));

Loading…
Cancel
Save