修复101 门诊医生站-》门诊病历配置了未显示
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.document.mapper.DocDefinitionAppMapper">
|
||||
<!-- 患者信息分页查询-->
|
||||
|
||||
<select id="getDefinationList" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.document.dto.DocDefinitionDto">
|
||||
|
||||
SELECT
|
||||
dd.id,
|
||||
dd.name,
|
||||
@@ -20,29 +22,67 @@
|
||||
dd.nursing_permission_enum,
|
||||
dd.medical_permission_enum,
|
||||
dd.pharmacist_permission_enum,
|
||||
ARRAY_AGG(ddo.organization_id) FILTER (WHERE ddo.organization_id IS NOT NULL) AS organization_Ids
|
||||
ARRAY_AGG(ddo.organization_id) FILTER (WHERE ddo.organization_id IS NOT NULL) AS organization_ids
|
||||
FROM doc_definition dd
|
||||
|
||||
LEFT JOIN doc_definition_organization ddo
|
||||
ON dd.id = ddo.definition_id -- 使用 definition_id 关联
|
||||
ON dd.id = ddo.definition_id
|
||||
AND ddo.delete_flag = '0'
|
||||
|
||||
WHERE dd.delete_flag = '0'
|
||||
and dd.hospital_id = #{hospitalId}
|
||||
|
||||
<!-- 关键:医院 + 科室联合可见 -->
|
||||
<if test="organizationId != null and organizationId != 0">
|
||||
AND (
|
||||
-- 本医院的文书
|
||||
dd.hospital_id = #{hospitalId}
|
||||
|
||||
-- 或者:已分配给当前科室的文书(允许跨医院)
|
||||
OR EXISTS (
|
||||
SELECT 1
|
||||
FROM doc_definition_organization z
|
||||
WHERE z.definition_id = dd.id
|
||||
AND z.organization_id = #{organizationId}
|
||||
AND z.delete_flag = '0'
|
||||
)
|
||||
)
|
||||
</if>
|
||||
|
||||
<if test="useRanges != null and !useRanges.isEmpty()">
|
||||
AND dd.use_range_enum IN
|
||||
<foreach collection="useRanges" item="useRange" open="(" separator="," close=")">
|
||||
#{useRange}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<!-- 使用范围过滤 -->
|
||||
<if test="organizationId != null and organizationId != 0">
|
||||
AND (ddo.organization_id = #{organizationId} OR dd.use_range_enum = 1)
|
||||
AND (
|
||||
-- 全院可用
|
||||
dd.use_range_enum = 1
|
||||
OR dd.use_range_enum IS NULL
|
||||
|
||||
-- 科室可用(必须真的分配给该科室)
|
||||
OR (
|
||||
dd.use_range_enum = 2
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM doc_definition_organization y
|
||||
WHERE y.definition_id = dd.id
|
||||
AND y.organization_id = #{organizationId}
|
||||
AND y.delete_flag = '0'
|
||||
)
|
||||
)
|
||||
)
|
||||
</if>
|
||||
|
||||
<if test="name != null and !name.isEmpty()">
|
||||
AND dd.name LIKE CONCAT('%', #{name}, '%')
|
||||
</if>
|
||||
GROUP BY
|
||||
dd.id, dd.primary_menu_enum ,
|
||||
dd.sub_menu
|
||||
|
||||
GROUP BY dd.id, dd.primary_menu_enum, dd.sub_menu
|
||||
ORDER BY dd.display_order
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user