医生站-查询诊断分类数据
This commit is contained in:
@@ -66,4 +66,12 @@ public interface IDoctorStationDiagnosisAppService {
|
|||||||
*/
|
*/
|
||||||
R<?> saveDoctorDiagnosis(SaveDiagnosisParam saveDiagnosisParam);
|
R<?> saveDoctorDiagnosis(SaveDiagnosisParam saveDiagnosisParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询诊断定义业务分类数据
|
||||||
|
*
|
||||||
|
* @param patientId 患者id
|
||||||
|
* @return 诊断定义业务分类数据
|
||||||
|
*/
|
||||||
|
R<?> getConditionDefinitionBusinessClass(Long patientId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,10 +33,7 @@ import com.openhis.common.utils.EnumUtils;
|
|||||||
import com.openhis.common.utils.HisPageUtils;
|
import com.openhis.common.utils.HisPageUtils;
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
import com.openhis.common.utils.HisQueryUtils;
|
||||||
import com.openhis.web.doctorstation.appservice.IDoctorStationDiagnosisAppService;
|
import com.openhis.web.doctorstation.appservice.IDoctorStationDiagnosisAppService;
|
||||||
import com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata;
|
import com.openhis.web.doctorstation.dto.*;
|
||||||
import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto;
|
|
||||||
import com.openhis.web.doctorstation.dto.SaveDiagnosisChildParam;
|
|
||||||
import com.openhis.web.doctorstation.dto.SaveDiagnosisParam;
|
|
||||||
import com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper;
|
import com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -165,22 +162,7 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
|
|||||||
// 诊断信息
|
// 诊断信息
|
||||||
Page<ConditionDefinitionMetadata> conditionDefinitionMetadataPage = HisPageUtils
|
Page<ConditionDefinitionMetadata> conditionDefinitionMetadataPage = HisPageUtils
|
||||||
.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, ConditionDefinitionMetadata.class);
|
.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, ConditionDefinitionMetadata.class);
|
||||||
conditionDefinitionMetadataPage.getRecords().forEach(e -> {
|
this.handleConditionDefinitionMetadata(conditionDefinitionMetadataPage.getRecords());
|
||||||
// 所属分类
|
|
||||||
e.setSourceEnum_enumText(EnumUtils.getInfoByValue(ConditionDefinitionSource.class, e.getSourceEnum()));
|
|
||||||
// 中医诊断/西医诊断
|
|
||||||
if (ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_DIAGNOSIS.getValue().equals(e.getSourceEnum())
|
|
||||||
|| ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_SYNDROME_CATALOG.getValue()
|
|
||||||
.equals(e.getSourceEnum())) {
|
|
||||||
e.setTypeName(CommonConstants.BusinessName.TCM_DIAGNOSIS);
|
|
||||||
} else {
|
|
||||||
e.setTypeName(CommonConstants.BusinessName.WESTERN_MEDICINE_DIAGNOSIS);
|
|
||||||
}
|
|
||||||
// 医保标记
|
|
||||||
e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag()));
|
|
||||||
// 医保对码标记
|
|
||||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag()));
|
|
||||||
});
|
|
||||||
return conditionDefinitionMetadataPage;
|
return conditionDefinitionMetadataPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,8 +201,51 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
|
|||||||
encounterDiagnosis.setMaindiseFlag(saveDiagnosisChildParam.getMaindiseFlag());
|
encounterDiagnosis.setMaindiseFlag(saveDiagnosisChildParam.getMaindiseFlag());
|
||||||
iEncounterDiagnosisService.save(encounterDiagnosis);
|
iEncounterDiagnosisService.save(encounterDiagnosis);
|
||||||
}
|
}
|
||||||
|
|
||||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断"}));
|
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断"}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询诊断定义业务分类数据
|
||||||
|
*
|
||||||
|
* @param patientId 患者id
|
||||||
|
* @return 诊断定义业务分类数据
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<?> getConditionDefinitionBusinessClass(Long patientId) {
|
||||||
|
// 诊断定义业务分类信息
|
||||||
|
ConditionDefinitionBusinessClass conditionDefinitionBusinessClass = new ConditionDefinitionBusinessClass();
|
||||||
|
// 病人历史诊断
|
||||||
|
List<ConditionDefinitionMetadata> patientHistoryList =
|
||||||
|
doctorStationDiagnosisAppMapper.getPatientHistoryList(PublicationStatus.ACTIVE.getValue(), patientId);
|
||||||
|
this.handleConditionDefinitionMetadata(patientHistoryList);
|
||||||
|
conditionDefinitionBusinessClass.setPatientHistoryList(patientHistoryList);
|
||||||
|
//
|
||||||
|
|
||||||
|
return R.ok(conditionDefinitionBusinessClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理诊断定义元数据
|
||||||
|
*
|
||||||
|
* @param conditionDefinitionMetadataList 诊断定义元数据集合
|
||||||
|
*/
|
||||||
|
private void handleConditionDefinitionMetadata(List<ConditionDefinitionMetadata> conditionDefinitionMetadataList) {
|
||||||
|
conditionDefinitionMetadataList.forEach(e -> {
|
||||||
|
// 所属分类
|
||||||
|
e.setSourceEnum_enumText(EnumUtils.getInfoByValue(ConditionDefinitionSource.class, e.getSourceEnum()));
|
||||||
|
// 中医诊断/西医诊断
|
||||||
|
if (ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_DIAGNOSIS.getValue().equals(e.getSourceEnum())
|
||||||
|
|| ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_SYNDROME_CATALOG.getValue()
|
||||||
|
.equals(e.getSourceEnum())) {
|
||||||
|
e.setTypeName(CommonConstants.BusinessName.TCM_DIAGNOSIS);
|
||||||
|
} else {
|
||||||
|
e.setTypeName(CommonConstants.BusinessName.WESTERN_MEDICINE_DIAGNOSIS);
|
||||||
|
}
|
||||||
|
// 医保标记
|
||||||
|
e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag()));
|
||||||
|
// 医保对码标记
|
||||||
|
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag()));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import java.util.HashSet;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import com.core.common.utils.SecurityUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -49,6 +50,9 @@ public class DoctorStationMainAppServiceImpl implements IDoctorStationMainAppSer
|
|||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<PatientInfoDto> queryWrapper = HisQueryUtils.buildQueryWrapper(patientInfoDto, searchKey,
|
QueryWrapper<PatientInfoDto> queryWrapper = HisQueryUtils.buildQueryWrapper(patientInfoDto, searchKey,
|
||||||
new HashSet<>(Arrays.asList("patient_name", "id_card", "phone")), null);
|
new HashSet<>(Arrays.asList("patient_name", "id_card", "phone")), null);
|
||||||
|
// TODO: userId(当前登录账号ID) 和 currentUserOrganizationId(当前登录账号所属的科室ID) 待补充
|
||||||
|
// 当前登录账号ID
|
||||||
|
Long userId = SecurityUtils.getLoginUser().getUserId();
|
||||||
IPage<PatientInfoDto> patientInfo = doctorStationMainAppMapper.getPatientInfo(new Page<>(pageNo, pageSize),
|
IPage<PatientInfoDto> patientInfo = doctorStationMainAppMapper.getPatientInfo(new Page<>(pageNo, pageSize),
|
||||||
ParticipantType.ADMITTER.getCode(), ClinicalStatus.INACTIVE.getValue(), null, null, queryWrapper);
|
ParticipantType.ADMITTER.getCode(), ClinicalStatus.INACTIVE.getValue(), null, null, queryWrapper);
|
||||||
patientInfo.getRecords().forEach(e -> {
|
patientInfo.getRecords().forEach(e -> {
|
||||||
|
|||||||
@@ -137,4 +137,15 @@ public class DoctorStationDiagnosisController {
|
|||||||
return iDoctorStationDiagnosisAppService.saveDoctorDiagnosis(saveDiagnosisParam);
|
return iDoctorStationDiagnosisAppService.saveDoctorDiagnosis(saveDiagnosisParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询诊断定义业务分类数据
|
||||||
|
*
|
||||||
|
* @param patientId 患者id
|
||||||
|
* @return 诊断定义业务分类数据
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/get-condition-definition-class")
|
||||||
|
public R<?> getConditionDefinitionBusinessClass(@RequestParam Long patientId) {
|
||||||
|
return iDoctorStationDiagnosisAppService.getConditionDefinitionBusinessClass(patientId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.openhis.web.doctorstation.dto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 诊断定义 业务分类
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class ConditionDefinitionBusinessClass {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 病人历史诊断
|
||||||
|
*/
|
||||||
|
List<ConditionDefinitionMetadata> patientHistoryList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 医生常用诊断
|
||||||
|
*/
|
||||||
|
List<ConditionDefinitionMetadata> doctorCommonUseList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户个人诊断
|
||||||
|
*/
|
||||||
|
List<ConditionDefinitionMetadata> userPersonalList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 科室诊断
|
||||||
|
*/
|
||||||
|
List<ConditionDefinitionMetadata> organizationList;
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.openhis.web.doctorstation.mapper;
|
package com.openhis.web.doctorstation.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@@ -7,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata;
|
||||||
import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto;
|
import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -28,4 +31,14 @@ public interface DoctorStationDiagnosisAppMapper {
|
|||||||
@Param("bindingType1") Integer bindingType1, @Param("bindingType2") Integer bindingType2,
|
@Param("bindingType1") Integer bindingType1, @Param("bindingType2") Integer bindingType2,
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<DiagnosisBelongBindingDto> queryWrapper);
|
@Param(Constants.WRAPPER) QueryWrapper<DiagnosisBelongBindingDto> queryWrapper);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询病人历史诊断
|
||||||
|
*
|
||||||
|
* @param statusEnum 状态
|
||||||
|
* @param patientId 患者id
|
||||||
|
* @return 病人历史诊断
|
||||||
|
*/
|
||||||
|
List<ConditionDefinitionMetadata> getPatientHistoryList(@Param("statusEnum") Integer statusEnum,
|
||||||
|
@Param("patientId") Long patientId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,4 +37,25 @@
|
|||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getPatientHistoryList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||||
|
SELECT T1.ID,
|
||||||
|
T1.source_enum,
|
||||||
|
T1.condition_code,
|
||||||
|
T1.NAME,
|
||||||
|
T1.yb_flag,
|
||||||
|
T1.yb_no,
|
||||||
|
T1.yb_match_flag
|
||||||
|
FROM cli_condition_definition AS T1
|
||||||
|
WHERE T1.delete_flag = '0'
|
||||||
|
AND T1.status_enum = #{statusEnum}
|
||||||
|
AND EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM cli_condition AS T2
|
||||||
|
WHERE T2.delete_flag = '0'
|
||||||
|
AND T2.definition_id IS NOT NULL
|
||||||
|
AND T2.patient_id = #{patientId}
|
||||||
|
AND T2.definition_id = T1.ID
|
||||||
|
)
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user