|
|
|
@ -39,11 +39,11 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) {
|
|
|
|
|
List<DiagnosisPrimaryVO> resVoList = diagnosisPrimaryService.queryAskPrimaryList(processId);
|
|
|
|
|
List<DiagnosisPrimaryRelation> list = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getProcessId, processId).list();
|
|
|
|
|
if (CollUtil.isNotEmpty(list)){
|
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
|
|
|
Map<String, List<DiagnosisPrimaryRelation>> relationMap = list.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getPrimaryId));
|
|
|
|
|
for (DiagnosisPrimaryVO diagnosisPrimaryVO : resVoList) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> relationList = relationMap.get(diagnosisPrimaryVO.getId());
|
|
|
|
|
if (CollUtil.isNotEmpty(relationList)){
|
|
|
|
|
if (CollUtil.isNotEmpty(relationList)) {
|
|
|
|
|
Map<Integer, List<String>> relationIdMap = relationList.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getType, Collectors.mapping(DiagnosisPrimaryRelation::getRelationId, Collectors.toList())));
|
|
|
|
|
diagnosisPrimaryVO.setAskIdList(relationIdMap.get(1));
|
|
|
|
@ -74,7 +74,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
|
diagnosisPrimaryService.save(diagnosisPrimary);
|
|
|
|
|
// 然后开始保存初步诊断关键的诊断
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAskIdList())){
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAskIdList())) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> askRelationList = reqVO.getAskIdList().stream().map(e -> {
|
|
|
|
|
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
|
|
|
|
|
relation.setProcessId(diagnosisPrimary.getProcessId());
|
|
|
|
@ -88,7 +88,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getPhysicalIdList())){
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getPhysicalIdList())) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> physicalRelationList = reqVO.getPhysicalIdList().stream().map(e -> {
|
|
|
|
|
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
|
|
|
|
|
relation.setProcessId(diagnosisPrimary.getProcessId());
|
|
|
|
@ -102,7 +102,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAncillaryIdList())){
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAncillaryIdList())) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> ancillaryRelationList = reqVO.getAncillaryIdList().stream().map(e -> {
|
|
|
|
|
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
|
|
|
|
|
relation.setProcessId(diagnosisPrimary.getProcessId());
|
|
|
|
@ -151,7 +151,6 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void confirmPrimaryByAskEnd(List<PrimaryConfirmReqVO> reqVOList) {
|
|
|
|
@ -211,7 +210,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
* @return 结果
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId,String primaryId) {
|
|
|
|
|
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId, String primaryId) {
|
|
|
|
|
List<DiagnosticBasisForPrimaryResVO> resList = diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId);
|
|
|
|
|
if (CollUtil.isEmpty(resList)) {
|
|
|
|
|
return resList;
|
|
|
|
@ -219,27 +218,26 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
// 找到process对应的所有的初步诊断
|
|
|
|
|
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
|
|
|
|
|
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName));
|
|
|
|
|
// 首先根据诊断记录,找到对应的关联关系
|
|
|
|
|
Set<String> relationIdSet = resList.stream().map(DiagnosticBasisForPrimaryResVO::getId).collect(Collectors.toSet());
|
|
|
|
|
// 查询诊疗记录对应的初步诊断关系
|
|
|
|
|
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery()
|
|
|
|
|
.in(DiagnosisPrimaryRelation::getRelationId, relationIdSet)
|
|
|
|
|
.list();
|
|
|
|
|
// 查询诊疗记录对应的所有检查记录
|
|
|
|
|
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getProcessId, processId).list();
|
|
|
|
|
// 根据relationId进行分组
|
|
|
|
|
Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId));
|
|
|
|
|
|
|
|
|
|
List<DiagnosticBasisForPrimaryResVO> result = new ArrayList<>();
|
|
|
|
|
for (DiagnosticBasisForPrimaryResVO node : resList) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> relationPrimaryList = relationMap.get(node.getId());
|
|
|
|
|
if (CollUtil.isEmpty(relationPrimaryList)){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
Set<String> primarySet = relationPrimaryList.stream().map(DiagnosisPrimaryRelation::getPrimaryId).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(primarySet)) {
|
|
|
|
|
// 如果初步诊断ID的参数不为空,那么说明只查某一个初步诊断的数据
|
|
|
|
|
if (StrUtil.isNotBlank(primaryId)){
|
|
|
|
|
if (primarySet.contains(primaryId)){
|
|
|
|
|
if (StrUtil.isNotBlank(primaryId)) {
|
|
|
|
|
if (primarySet.contains(primaryId)) {
|
|
|
|
|
// 如果有,就只保留这一个初步诊断依据的
|
|
|
|
|
primarySet.removeIf(e -> !e.equals(primaryId));
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
// 如果没有,就直接跳过
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|