This commit is contained in:
liuhongrui
2025-03-11 11:09:01 +08:00
7 changed files with 159 additions and 1 deletions

View File

@@ -24,4 +24,24 @@ public interface IDoctorStationDiagnosisAppService {
*/ */
R<?> updateDiagnosisBelongBinding(DiagnosisBelongBindingDto diagnosisBelongBindingDto); R<?> updateDiagnosisBelongBinding(DiagnosisBelongBindingDto diagnosisBelongBindingDto);
/**
* 查询诊断归属绑定列表
*
* @param diagnosisBelongBindingDto 查询条件dto
* @param searchKey 模糊查询关键字
* @param pageNo 当前页
* @param pageSize 每页多少条
* @return 诊断归属绑定列表
*/
R<?> getDiagnosisBelongBindingPage(DiagnosisBelongBindingDto diagnosisBelongBindingDto, String searchKey,
Integer pageNo, Integer pageSize);
/**
* 删除诊断归属绑定
*
* @param id ID
* @return 结果
*/
R<?> delDiagnosisBelongBinding(Long id);
} }

View File

@@ -1,16 +1,25 @@
package com.openhis.web.doctorstation.appservice.impl; package com.openhis.web.doctorstation.appservice.impl;
import java.util.Arrays;
import java.util.HashSet;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.openhis.clinical.domain.DiagnosisBelongBinding; import com.openhis.clinical.domain.DiagnosisBelongBinding;
import com.openhis.clinical.service.IDiagnosisBelongBindingService; import com.openhis.clinical.service.IDiagnosisBelongBindingService;
import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.BindingType;
import com.openhis.common.utils.EnumUtils;
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.DiagnosisBelongBindingDto; import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto;
import com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper; import com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper;
@@ -72,4 +81,42 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断归属绑定关系"})); return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断归属绑定关系"}));
} }
/**
* 查询诊断归属绑定列表
*
* @param diagnosisBelongBindingDto 查询条件dto
* @param searchKey 模糊查询关键字
* @param pageNo 当前页
* @param pageSize 每页多少条
* @return 诊断归属绑定列表
*/
@Override
public R<?> getDiagnosisBelongBindingPage(DiagnosisBelongBindingDto diagnosisBelongBindingDto, String searchKey,
Integer pageNo, Integer pageSize) {
// 构建查询条件
QueryWrapper<DiagnosisBelongBindingDto> queryWrapper = HisQueryUtils.buildQueryWrapper(
diagnosisBelongBindingDto, searchKey, new HashSet<>(Arrays.asList("definition_name", "object_name")), null);
IPage<DiagnosisBelongBindingDto> diagnosisBelongBindingPage =
doctorStationDiagnosisAppMapper.getDiagnosisBelongBindingPage(new Page<>(pageNo, pageSize),
BindingType.PERSONAL.getValue(), BindingType.DEFINITION.getValue(), queryWrapper);
diagnosisBelongBindingPage.getRecords().forEach(e -> {
// 诊断绑定类型
e.setBindingEnum_enumText(EnumUtils.getInfoByValue(BindingType.class, e.getBindingEnum()));
});
return R.ok(diagnosisBelongBindingPage);
}
/**
* 删除诊断归属绑定
*
* @param id ID
* @return 结果
*/
@Override
public R<?> delDiagnosisBelongBinding(Long id) {
boolean res = iDiagnosisBelongBindingService.removeById(id);
return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"诊断归属绑定"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null));
}
} }

View File

@@ -71,4 +71,33 @@ public class DoctorStationDiagnosisController {
return iDoctorStationDiagnosisAppService.updateDiagnosisBelongBinding(diagnosisBelongBindingDto); return iDoctorStationDiagnosisAppService.updateDiagnosisBelongBinding(diagnosisBelongBindingDto);
} }
/**
* 查询诊断归属绑定列表
*
* @param diagnosisBelongBindingDto 查询条件dto
* @param searchKey 模糊查询关键字
* @param pageNo 当前页
* @param pageSize 每页多少条
* @return 诊断归属绑定列表
*/
@GetMapping(value = "/diagnosis-belong-binding-page")
public R<?> getDiagnosisBelongBindingPage(DiagnosisBelongBindingDto diagnosisBelongBindingDto,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
return iDoctorStationDiagnosisAppService.getDiagnosisBelongBindingPage(diagnosisBelongBindingDto, searchKey,
pageNo, pageSize);
}
/**
* 删除诊断归属绑定
*
* @param id ID
* @return 结果
*/
@DeleteMapping("/diagnosis-belong-binding")
public R<?> delDiagnosisBelongBinding(@RequestParam Long id) {
return iDoctorStationDiagnosisAppService.delDiagnosisBelongBinding(id);
}
} }

View File

@@ -24,11 +24,22 @@ public class DiagnosisBelongBindingDto {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long objectId; private Long objectId;
/**
* 对象名称
*/
private String objectName;
/** 诊断定义ID */ /** 诊断定义ID */
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long definitionId; private Long definitionId;
/**
* 诊断(病种)名称
*/
private String definitionName;
/** 绑定类型 */ /** 绑定类型 */
private Integer bindingEnum; private Integer bindingEnum;
private String bindingEnum_enumText;
} }

View File

@@ -1,11 +1,31 @@
package com.openhis.web.doctorstation.mapper; package com.openhis.web.doctorstation.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto;
/** /**
* 医生站-诊断 应用Mapper * 医生站-诊断 应用Mapper
*/ */
@Repository @Repository
public interface DoctorStationDiagnosisAppMapper { public interface DoctorStationDiagnosisAppMapper {
/**
* 查询诊断归属绑定列表
*
* @param page 分页参数
* @param bindingType1 个人类型
* @param bindingType2 科室类型
* @param queryWrapper 查询条件
* @return 诊断归属绑定列表
*/
IPage<DiagnosisBelongBindingDto> getDiagnosisBelongBindingPage(@Param("page") Page<DiagnosisBelongBindingDto> page,
@Param("bindingType1") Integer bindingType1, @Param("bindingType2") Integer bindingType2,
@Param(Constants.WRAPPER) QueryWrapper<DiagnosisBelongBindingDto> queryWrapper);
} }

View File

@@ -4,5 +4,37 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper"> <mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper">
<select id="getDiagnosisBelongBindingPage" resultType="com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto">
SELECT T5.tenant_id,
T5.ID,
T5.object_id,
T5.definition_id,
T5.binding_enum,
T5.definition_name,
T5.object_name
from (
SELECT T1.tenant_id,
T1.ID,
T1.object_id,
T1.definition_id,
T1.binding_enum,
T2.NAME AS definition_name,
CASE
WHEN T1.binding_enum = #{bindingType1} THEN
T3.user_name
WHEN T1.binding_enum = #{bindingType2} THEN
T4.NAME
END AS object_name
FROM cli_diagnosis_belong_binding AS T1
LEFT JOIN cli_condition_definition AS T2 ON T1.definition_id = T2.ID
AND T2.delete_flag = '0'
LEFT JOIN sys_user AS T3 ON T1.binding_enum = #{bindingType1}
AND T1.object_id = T3.user_id
LEFT JOIN adm_organization AS T4 ON T1.binding_enum = #{bindingType2}
AND T1.object_id = T4.ID
WHERE T1.delete_flag = '0'
ORDER BY object_name) AS T5
${ew.customSqlSegment}
</select>
</mapper> </mapper>

View File

@@ -1,6 +1,5 @@
package com.openhis.clinical.service.impl; package com.openhis.clinical.service.impl;
import com.core.common.core.domain.R;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;