医生站-诊断相关

This commit is contained in:
Wang.Huan
2025-03-12 13:38:30 +08:00
parent a2d315bd92
commit b6c14a3f42
4 changed files with 109 additions and 4 deletions

View File

@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils; import com.core.common.utils.MessageUtils;
import com.core.common.utils.SecurityUtils;
import com.openhis.administration.domain.EncounterDiagnosis; import com.openhis.administration.domain.EncounterDiagnosis;
import com.openhis.administration.service.IEncounterDiagnosisService; import com.openhis.administration.service.IEncounterDiagnosisService;
import com.openhis.clinical.domain.Condition; import com.openhis.clinical.domain.Condition;
@@ -219,14 +220,29 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
doctorStationDiagnosisAppMapper.getPatientHistoryList(PublicationStatus.ACTIVE.getValue(), patientId); doctorStationDiagnosisAppMapper.getPatientHistoryList(PublicationStatus.ACTIVE.getValue(), patientId);
this.handleConditionDefinitionMetadata(patientHistoryList); this.handleConditionDefinitionMetadata(patientHistoryList);
conditionDefinitionBusinessClass.setPatientHistoryList(patientHistoryList); conditionDefinitionBusinessClass.setPatientHistoryList(patientHistoryList);
// // 医生常用诊断
Long userId = SecurityUtils.getLoginUser().getUserId(); // 当前登录账号ID
List<ConditionDefinitionMetadata> doctorCommonUseList =
doctorStationDiagnosisAppMapper.getDoctorCommonUseList(PublicationStatus.ACTIVE.getValue(), userId);
this.handleConditionDefinitionMetadata(doctorCommonUseList);
conditionDefinitionBusinessClass.setDoctorCommonUseList(doctorCommonUseList);
// 用户个人诊断
List<ConditionDefinitionMetadata> userPersonalList = doctorStationDiagnosisAppMapper
.getUserPersonalList(PublicationStatus.ACTIVE.getValue(), BindingType.PERSONAL.getValue(), userId);
this.handleConditionDefinitionMetadata(userPersonalList);
conditionDefinitionBusinessClass.setUserPersonalList(userPersonalList);
// 科室诊断
// TODO: currentUserOrganizationId(当前登录账号所属的科室ID) 待补充
List<ConditionDefinitionMetadata> organizationList = doctorStationDiagnosisAppMapper
.getOrganizationList(PublicationStatus.ACTIVE.getValue(), BindingType.DEFINITION.getValue(), null);
this.handleConditionDefinitionMetadata(organizationList);
conditionDefinitionBusinessClass.setOrganizationList(organizationList);
return R.ok(conditionDefinitionBusinessClass); return R.ok(conditionDefinitionBusinessClass);
} }
/** /**
* 处理诊断定义元数据 * 处理诊断定义元数据
* *
* @param conditionDefinitionMetadataList 诊断定义元数据集合 * @param conditionDefinitionMetadataList 诊断定义元数据集合
*/ */
private void handleConditionDefinitionMetadata(List<ConditionDefinitionMetadata> conditionDefinitionMetadataList) { private void handleConditionDefinitionMetadata(List<ConditionDefinitionMetadata> conditionDefinitionMetadataList) {

View File

@@ -54,7 +54,6 @@ public class DoctorStationDiagnosisController {
status.getInfo())) status.getInfo()))
.collect(Collectors.toList()); .collect(Collectors.toList());
diagnosisBelongBindingInitDto.setVerificationStatusOptions(verificationStatusOptions); diagnosisBelongBindingInitDto.setVerificationStatusOptions(verificationStatusOptions);
return R.ok(diagnosisBelongBindingInitDto); return R.ok(diagnosisBelongBindingInitDto);
} }

View File

@@ -41,4 +41,36 @@ public interface DoctorStationDiagnosisAppMapper {
List<ConditionDefinitionMetadata> getPatientHistoryList(@Param("statusEnum") Integer statusEnum, List<ConditionDefinitionMetadata> getPatientHistoryList(@Param("statusEnum") Integer statusEnum,
@Param("patientId") Long patientId); @Param("patientId") Long patientId);
/**
* 查询医生常用诊断
*
* @param statusEnum 状态
* @param userId 当前登录账号id
* @return 医生常用诊断
*/
List<ConditionDefinitionMetadata> getDoctorCommonUseList(@Param("statusEnum") Integer statusEnum,
@Param("userId") Long userId);
/**
* 查询用户个人诊断
*
* @param statusEnum 状态
* @param bindingEnum 绑定类型
* @param userId 当前登录账号id
* @return 用户个人诊断
*/
List<ConditionDefinitionMetadata> getUserPersonalList(@Param("statusEnum") Integer statusEnum,
@Param("bindingEnum") Integer bindingEnum, @Param("userId") Long userId);
/**
* 查询科室诊断
*
* @param statusEnum 状态
* @param bindingEnum 绑定类型
* @param currentUserOrganizationId 当前登录账号所属的科室ID
* @return 科室诊断
*/
List<ConditionDefinitionMetadata> getOrganizationList(@Param("statusEnum") Integer statusEnum,
@Param("bindingEnum") Integer bindingEnum, @Param("currentUserOrganizationId") Long currentUserOrganizationId);
} }

View File

@@ -58,4 +58,62 @@
) )
</select> </select>
<select id="getDoctorCommonUseList" 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
JOIN (SELECT definition_id
FROM cli_condition
WHERE delete_flag = '0'
AND definition_id IS NOT NULL
AND recorder_id = #{userId}
GROUP BY definition_id LIMIT 10) AS T2 ON T1.ID = T2.definition_id
WHERE T1.delete_flag = '0'
AND T1.status_enum = #{statusEnum}
</select>
<select id="getUserPersonalList" 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
JOIN (SELECT definition_id
FROM cli_diagnosis_belong_binding
WHERE delete_flag = '0'
AND binding_enum = #{bindingEnum}
AND object_id = #{userId}) AS T2 ON T1.ID = T2.definition_id
WHERE T1.delete_flag = '0'
AND T1.status_enum = #{statusEnum}
</select>
<select id="getOrganizationList" 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
JOIN (SELECT definition_id
FROM cli_diagnosis_belong_binding
WHERE delete_flag = '0'
AND binding_enum = #{bindingEnum}
<if test="currentUserOrganizationId != null">
AND object_id = #{currentUserOrganizationId}
</if>
) AS T2 ON T1.ID = T2.definition_id
WHERE T1.delete_flag = '0'
AND T1.status_enum = #{statusEnum}
</select>
</mapper> </mapper>