From 0dffefa0ba7f38d54852b3c3f97158df236bfe34 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 21 七月 2026 16:42:40 +0800
Subject: [PATCH] 【丽水】病人出院记录查询慢问题处理
---
smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml | 32 +++++++++++++++++++++++++-------
1 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml b/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
index 0882e3f..f117ef1 100644
--- a/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
@@ -28,6 +28,7 @@
<result property="archivetime" column="archivetime"/>
<result property="archiveby" column="archiveby"/>
<result property="telcode" column="telcode"/>
+ <result property="telshortcode" column="telshortcode"/>
<result property="relativetelcode" column="relativetelcode"/>
<result property="idcardtype" column="idcardtype"/>
<result property="orgid" column="orgid"/>
@@ -90,6 +91,7 @@
<result property="archivetime" column="archivetime"/>
<result property="archiveby" column="archiveby"/>
<result property="telcode" column="telcode"/>
+ <result property="telshortcode" column="telshortcode"/>
<result property="relativetelcode" column="relativetelcode"/>
<result property="idcardtype" column="idcardtype"/>
<result property="orgid" column="orgid"/>
@@ -153,6 +155,7 @@
archivetime,
archiveby,
telcode,
+ telshortcode,
relativetelcode,
idcardtype,
orgid,
@@ -280,6 +283,15 @@
</foreach>
</select>
+ <select id="selectPatArchiveByPatidHiss" resultMap="PatArchiveResult">
+ SELECT id, patid_his
+ FROM pat_archive
+ WHERE patid_his IN
+ <foreach item="patidHis" collection="patidHiss" open="(" separator="," close=")">
+ #{patidHis}
+ </foreach>
+ </select>
+
<insert id="insertPatArchiveSingle" parameterType="com.smartor.domain.PatArchive" useGeneratedKeys="true"
keyProperty="id">
insert into pat_archive
@@ -306,6 +318,7 @@
<if test="archivetime != null">archivetime,</if>
<if test="archiveby != null">archiveby,</if>
<if test="telcode != null">telcode,</if>
+ <if test="telshortcode != null">telshortcode,</if>
<if test="relativetelcode != null">relativetelcode,</if>
<if test="idcardtype != null">idcardtype,</if>
<if test="orgid != null">orgid,</if>
@@ -356,6 +369,7 @@
<if test="archivetime != null">#{archivetime},</if>
<if test="archiveby != null">#{archiveby},</if>
<if test="telcode != null">#{telcode},</if>
+ <if test="telshortcode != null">#{telshortcode},</if>
<if test="relativetelcode != null">#{relativetelcode},</if>
<if test="idcardtype != null">#{idcardtype},</if>
<if test="orgid != null">#{orgid},</if>
@@ -415,6 +429,7 @@
<if test="archivetime != null">archivetime = #{archivetime},</if>
<if test="archiveby != null">archiveby = #{archiveby},</if>
<if test="telcode != null">telcode = #{telcode},</if>
+ <if test="telshortcode != null">telshortcode = #{telshortcode},</if>
<if test="relativetelcode != null">relativetelcode = #{relativetelcode},</if>
<if test="idcardtype != null">idcardtype = #{idcardtype},</if>
<if test="orgid != null">orgid = #{orgid},</if>
@@ -491,6 +506,7 @@
a.archivetime,
a.archiveby,
a.telcode,
+ a.telshortcode,
a.relativetelcode,
a.idcardtype,
a.orgid,
@@ -564,6 +580,7 @@
a.archivetime,
a.archiveby,
a.telcode,
+ a.telshortcode,
a.relativetelcode,
a.idcardtype,
a.orgid,
@@ -702,6 +719,7 @@
a.archivetime,
a.archiveby,
a.telcode,
+ a.telshortcode,
a.relativetelcode,
a.idcardtype,
a.orgid,
@@ -795,6 +813,7 @@
a.archivetime,
a.archiveby,
a.telcode,
+ a.telshortcode,
a.relativetelcode,
a.idcardtype,
a.orgid,
@@ -887,6 +906,7 @@
a.archivetime,
a.archiveby,
a.telcode,
+ a.telshortcode,
a.relativetelcode,
a.idcardtype,
a.orgid,
@@ -912,10 +932,9 @@
d.leavehospitaldistrictcode AS leavehospitaldistrictcode
FROM
pat_med_inhosp d
- JOIN pat_archive a ON a.id = d.patid
+ LEFT JOIN pat_archive a ON a.id = d.patid
where 1=1
and d.del_flag != 1
- AND a.del_flag != 1
and d.orgid = #{orgid}
<if test="name != null and name != ''">and a.name like concat('%', #{name}, '%')</if>
<if test="idcardno != null and idcardno != ''">and a.idcardno = #{idcardno}</if>
@@ -985,7 +1004,7 @@
</if>
<if test="pids != null">
- AND a.id NOT IN
+ AND d.patid NOT IN
<foreach collection="pids" item="pid" open="(" separator="," close=")">
#{pid}
</foreach>
@@ -1122,6 +1141,7 @@
a.archivetime,
a.archiveby,
a.telcode,
+ a.telshortcode,
a.relativetelcode,
a.idcardtype,
a.orgid,
@@ -1180,12 +1200,10 @@
<!-- 浣忛櫌鎮h�呮�绘暟缁熻锛堝幓閲嶏級 -->
<select id="countPatArchiveInfoByInhospQC" parameterType="com.smartor.domain.PatArchiveReq" resultType="long">
- SELECT COUNT(DISTINCT a.id)
+ SELECT COUNT(DISTINCT d.patid)
FROM pat_med_inhosp d
- JOIN pat_archive a ON a.id = d.patid
WHERE 1=1
AND d.del_flag != 1
- AND a.del_flag != 1
AND d.orgid = #{orgid}
<if test="name != null and name != ''">AND a.name like concat('%', #{name}, '%')</if>
<if test="idcardno != null and idcardno != ''">AND a.idcardno = #{idcardno}</if>
@@ -1229,7 +1247,7 @@
</foreach>
</if>
<if test="pids != null">
- AND a.id NOT IN
+ AND d.patid NOT IN
<foreach collection="pids" item="pid" open="(" separator="," close=")">
#{pid}
</foreach>
--
Gitblit v1.9.3