From d963031435c593b761436d819268f5493923c41d Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 22 九月 2026 18:37:52 +0800
Subject: [PATCH] 1.导出新增图表
---
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml | 122 ++++++++++++++++++++++++++++++++++++----
1 files changed, 109 insertions(+), 13 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 95f1bcc..9a47f1f 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -80,10 +80,16 @@
<result property="encounterSourceId" column="encounter_source_id"/>
<result property="importanceFlagCode" column="importance_flag_code"/>
<result property="emergencyLevelCode" column="emergency_level_code"/>
+ <result property="medicalCode" column="medical_code"/>
+ <result property="medicalName" column="medical_name"/>
+ <result property="medicalCompany" column="medical_company"/>
</resultMap>
<sql id="selectPatMedInhospVo">
select inhospid,
+ medical_code,
+ medical_name,
+ medical_company,
encounter_source_id,
importance_flag_code,
emergency_level_code,
@@ -158,7 +164,7 @@
</sql>
<select id="selectPatMedInhospList" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult">
- select CONCAT( a.age, a.age_unit ) AS age,
+ select a.age AS age,
a.telcode as telcode,
a.sex,
b.inhospid,
@@ -228,6 +234,9 @@
b.encounter_source_id,
b.importance_flag_code,
b.emergency_level_code,
+ b.medical_code,
+ b.medical_name,
+ b.medical_company,
a.idcardno
FROM
pat_med_inhosp b
@@ -237,6 +246,7 @@
AND a.del_flag = 0
AND b.del_flag = 0
AND a.idcardno IS NOT NULL
+ <if test="inhospid != null">and b.inhospid = #{inhospid}</if>
<if test="startOutHospTime != null ">and date_format(b.endtime,'%y%m%d') >=
date_format(#{startOutHospTime},'%y%m%d')
</if>
@@ -257,12 +267,14 @@
concat('%', #{hospitaldistrictname}, '%')
</if>
<if test="endtime != null ">and b.endtime = #{endtime}</if>
+ <if test="bedNo != null ">and b.bed_no = #{bedNo}</if>
<if test="inhospMydFlag != null ">and b.inhosp_myd_flag = #{inhospMydFlag}</if>
<if test="managementDoctor != null ">and b.management_doctor = #{managementDoctor}</if>
<if test="managementDoctorCode != null ">and b.management_doctor_code = #{managementDoctorCode}</if>
<if test="inhospno != null ">and b.inhospno = #{inhospno}</if>
<if test="fuflag != null ">and b.fuflag = #{fuflag}</if>
<if test="orgid != null ">and b.orgid = #{orgid}</if>
+ <if test="campusid != null ">and b.campusid = #{campusid}</if>
<if test="serialnum != null ">and b.serialnum = #{serialnum}</if>
<if test="endtime != null ">and b.endtime = #{endtime}</if>
<if test="patno != null ">and b.patno = #{patno}</if>
@@ -282,7 +294,6 @@
<if test="cry != null and cry == 2 ">and b.inhospstate=2</if>
<if test="cry != null and cry == 3 ">and b.inhospstate=3</if>
<if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if>
- <if test="campusid != null ">and b.campusid = #{campusid}</if>
<if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if>
<if test="outWayId != null ">and b.out_way_id = #{outWayId}</if>
<if test="outWayName != null ">and b.out_way_name = #{outWayName}</if>
@@ -339,6 +350,9 @@
#{icd10code}
</foreach>
</if>
+ <if test="medicalCode != null and medicalCode != ''">and b.medical_code = #{medicalCode}</if>
+ <if test="medicalName != null and medicalName != ''">and b.medical_name = #{medicalName}</if>
+ <if test="medicalCompany != null and medicalCompany != ''">and b.medical_company = #{medicalCompany}</if>
GROUP BY
b.inhospid,
a.age,
@@ -356,7 +370,38 @@
order by b.endtime desc
</if>
<if test="cry != null and cry==0">
- order by b.starttime desc
+ <!--
+ 鍦ㄩ櫌鎮h�咃細鍙寜鍏ラ櫌搴婁綅姝�/鍊掑簭锛坆edSort=asc 鎴� desc锛夛紝涓嶄紶鏃朵繚鎸侀粯璁ゆ帓搴忥紙鍏ラ櫌鏃堕棿鍊掑簭 + 搴婁綅姝e簭锛夈��
+ 搴婁綅鎸夎嚜鐒跺簭鎺掞紙鍙敤 5.7 涔熸敮鎸佺殑 REGEXP/CAST/TRIM/LENGTH锛屼笉渚濊禆 8.0 鐨� REGEXP_REPLACE锛夛細
+ 1) 搴婁綅涓虹┖/绌轰覆鐨勬帓鏈�鍚�
+ 2) 绾暟瀛楀簥浣嶆帓鍓嶉潰锛屾寜鏁板�煎ぇ灏忥紙2 鍦� 10 鍓嶏級
+ 3) 甯﹀瓧姣�/姹夊瓧鐨勫簥浣嶆寜闀垮害 + 瀛楃涓诧紙A2 鍦� A12 鍓嶏級
+ 4) inhospid 鍏滃簳锛屼繚璇佺炕椤甸『搴忕ǔ瀹�
+ 鍊掑簭鍙弽杞� 2)銆�3) 涓ょ粍鍐呴儴椤哄簭锛氱┖搴婁綅浠嶆帓鏈�鍚庯紝绾暟瀛椾粛鍦ㄥ墠銆�
+ -->
+ <choose>
+ <when test='"asc".equals(bedSort)'>
+ order by
+ coalesce(trim(b.bed_no), '') = '' ,
+ (trim(b.bed_no) regexp '^[0-9]+$') = 0 ,
+ cast(trim(b.bed_no) as unsigned) asc ,
+ length(trim(b.bed_no)) asc ,
+ trim(b.bed_no) asc ,
+ b.inhospid asc
+ </when>
+ <when test='"desc".equals(bedSort)'>
+ order by
+ coalesce(trim(b.bed_no), '') = '' ,
+ (trim(b.bed_no) regexp '^[0-9]+$') = 0 ,
+ cast(trim(b.bed_no) as unsigned) desc ,
+ length(trim(b.bed_no)) desc ,
+ trim(b.bed_no) desc ,
+ b.inhospid asc
+ </when>
+ <otherwise>
+ order by b.starttime desc , b.bed_no asc
+ </otherwise>
+ </choose>
</if>
</select>
@@ -365,6 +410,9 @@
select
b.inhospid,
b.nurse_id,
+ b.medical_code,
+ b.medical_name,
+ b.medical_company,
b.encounter_source_id,
b.importance_flag_code,
b.emergency_level_code,
@@ -437,6 +485,9 @@
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
+ </if>
<if test="encounterSourceId != null and encounterSourceId != ''">
and b.encounter_source_id = #{encounterSourceId}
</if>
@@ -457,6 +508,9 @@
select CONCAT( a.age, a.age_unit ) AS age,
a.telcode as telcode,
b.inhospid,
+ b.medical_code,
+ b.medical_name,
+ b.medical_company,
b.encounter_source_id,
b.importance_flag_code,
b.emergency_level_code,
@@ -545,6 +599,9 @@
<if test="orgid != null and orgid != ''">
and a.orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and a.campusid = #{campusid}
+ </if>
<if test="hospitalname != null and hospitalname != ''">and hospitalname like concat('%', #{hospitalname},
'%')
</if>
@@ -560,7 +617,6 @@
<if test="nurseId != null ">and b.nurse_id = #{nurseId}</if>
<if test="nurseName != null ">and b.nurse_name = #{nurseName}</if>
<if test="patno != null ">and b.patno = #{patno}</if>
- <if test="campusid != null ">and b.campusid = #{campusid}</if>
<if test="diagcheckFlag != null ">and b.diagcheck_flag = #{diagcheckFlag}</if>
<if test="deptcheckFlag != null ">and b.deptcheck_flag = #{deptcheckFlag}</if>
<if test="scheduleCheckFlag != null ">and b.schedulecheck_flag = #{scheduleCheckFlag}</if>
@@ -586,6 +642,13 @@
close=")">
#{leaveldeptcode}
</foreach>
+ </if>
+ <if test="medicalCode != null and medicalCode != ''">and b.medical_code like concat('%'#{medicalCode}, '%')
+ </if>
+ <if test="medicalName != null and medicalName != ''">and b.medical_name like concat('%'#{medicalName}, '%')
+ </if>
+ <if test="medicalCompany != null and medicalCompany != ''">and b.medical_company like
+ concat('%'#{medicalCompany}, '%')
</if>
order by b.inhospid desc
</select>
@@ -625,6 +688,7 @@
<if test="roomno != null">and roomno = #{roomno}</if>
<if test="bedNo != null">and bed_no = #{bedNo}</if>
<if test="orgid != null">and orgid = #{orgid}</if>
+ <if test="campusid != null ">and campusid = #{campusid}</if>
<if test="updateBy != null">and update_by = #{updateBy}</if>
<if test="updateTime != null">and update_time = #{updateTime}</if>
<if test="createBy != null">and create_by = #{createBy}</if>
@@ -674,10 +738,14 @@
<if test="fuspecialadvice != null ">and fuspecialadvice = #{fuspecialadvice}</if>
<if test="managementDoctor != null ">and management_doctor = #{managementDoctor}</if>
<if test="managementDoctorCode != null ">and management_doctor_code = #{managementDoctorCode}</if>
- <if test="campusid != null ">and campusid = #{campusid}</if>
<if test="importanceFlagCode != null ">and importance_flag_code = #{importanceFlagCode}</if>
<if test="emergencyLevelCode != null ">and emergency_level_code = #{emergencyLevelCode}</if>
<if test="encounterSourceId != null ">and encounter_source_id = #{encounterSourceId}</if>
+ <if test="medicalCode != null and medicalCode != ''">and medical_code like concat('%'#{medicalCode}, '%')</if>
+ <if test="medicalName != null and medicalName != ''">and medical_name like concat('%'#{medicalName}, '%')</if>
+ <if test="medicalCompany != null and medicalCompany != ''">and medical_company like
+ concat('%'#{medicalCompany}, '%')
+ </if>
</select>
@@ -699,6 +767,7 @@
<if test="roomno != null">roomno,</if>
<if test="bedNo != null">bed_no,</if>
<if test="orgid != null">orgid,</if>
+ <if test="campusid != null">campusid,</if>
<if test="delFlag != null and delFlag != ''">del_flag,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
@@ -749,11 +818,13 @@
<if test="fuspecialadvice != null ">fuspecialadvice,</if>
<if test="managementDoctor != null ">management_doctor,</if>
<if test="managementDoctorCode != null ">management_doctor_code,</if>
- <if test="campusid != null ">campusid,</if>
<if test="inhospMydFlag != null ">inhosp_myd_flag,</if>
<if test="importanceFlagCode != null ">importance_flag_code,</if>
<if test="emergencyLevelCode != null ">emergency_level_code,</if>
<if test="encounterSourceId != null ">encounter_source_id,</if>
+ <if test="medicalCode != null and medicalCode != ''">medical_code,</if>
+ <if test="medicalName != null and medicalName != ''">medical_name,</if>
+ <if test="medicalCompany != null and medicalCompany != ''">medical_company,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="serialnum != null">#{serialnum},</if>
@@ -768,8 +839,10 @@
<if test="deptcode != null">#{deptcode},</if>
<if test="deptname != null">#{deptname},</if>
<if test="roomno != null">#{roomno},</if>
- <if test="bedNo != null">#{bedNo},</if>
+ <!-- 搴婁綅绌轰覆锛圚IS 鏃犲綋鍓嶅簥浣嶏級钀藉簱涓� null锛屼繚鎸�"鏈夊�� or null"涓ょ鐘舵�� -->
+ <if test="bedNo != null">nullif(#{bedNo}, ''),</if>
<if test="orgid != null">#{orgid},</if>
+ <if test="campusid != null">#{campusid},</if>
<if test="delFlag != null and delFlag != ''">#{delFlag},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
@@ -820,10 +893,12 @@
<if test="fuspecialadvice != null ">#{fuspecialadvice},</if>
<if test="managementDoctor != null ">#{managementDoctor},</if>
<if test="managementDoctorCode != null ">#{managementDoctorCode},</if>
- <if test="campusid != null ">#{campusid},</if>
<if test="importanceFlagCode != null ">#{importanceFlagCode},</if>
<if test="emergencyLevelCode != null ">#{emergencyLevelCode},</if>
<if test="encounterSourceId != null ">#{encounterSourceId},</if>
+ <if test="medicalCode != null and medicalCode != ''">#{medicalCode},</if>
+ <if test="medicalName != null and medicalName != ''">#{medicalName},</if>
+ <if test="medicalCompany != null and medicalCompany != ''">#{medicalCompany},</if>
</trim>
</insert>
@@ -842,7 +917,8 @@
nurse_id, nurse_name, out_way_id, out_way_name, guid,
operator, operator_id, inhospno, remark,
fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice, management_doctor,
- management_doctor_doctor,campusid, inhosp_myd_flag, importance_flag_code, emergency_level_code, encounter_source_id
+ management_doctor_doctor,campusid, inhosp_myd_flag, importance_flag_code, emergency_level_code, encounter_source_id,
+ medical_code, medical_name, medical_company
)
values
<foreach collection="list" item="item" separator=",">
@@ -850,7 +926,7 @@
#{item.serialnum}, #{item.hospitalname}, #{item.hospitalcode}, #{item.hospitaldistrictcode},
#{item.hospitaldistrictname},
#{item.icd10code}, #{item.diagname}, #{item.starttime}, #{item.endtime}, #{item.deptcode}, #{item.deptname},
- #{item.roomno}, #{item.bedNo},
+ #{item.roomno}, nullif(#{item.bedNo}, ''),
#{item.orgid}, #{item.delFlag}, #{item.updateBy}, #{item.updateTime}, #{item.createBy}, #{item.createTime},
#{item.isupload},
#{item.uploadTime}, #{item.patid}, #{item.leavediagname}, #{item.leaveicd10code}, #{item.drcode},
@@ -865,7 +941,8 @@
#{item.operator}, #{item.operatorId}, #{item.inhospno}, #{item.remark},
#{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice},
#{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode}, #{item.campusid}, #{item.inhospMydFlag},
- #{item.importanceFlagCode}, #{item.emergencyLevelCode}, #{item.encounterSourceId}
+ #{item.importanceFlagCode}, #{item.emergencyLevelCode}, #{item.encounterSourceId},
+ #{item.medicalCode}, #{item.medicalName}, #{item.medicalCompany}
)
</foreach>
</insert>
@@ -874,6 +951,11 @@
<update id="updatePatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp">
update pat_med_inhosp
<trim prefix="SET" suffixOverrides=",">
+ <!--
+ 鍏滃簳锛氫笅闈㈠瓧娈靛叏涓虹┖鏃讹紙渚嬪璋冪敤鏂瑰彧浼犱簡 inhospid锛夛紝濡傛灉娌℃湁浠讳綍 SET 椤逛細鐢熸垚
+ "update pat_med_inhosp where inhospid = ?" 杩欑闈炴硶 SQL銆傝繖閲屾斁涓�涓嚜璧嬪�硷紝淇濊瘉 SET 涓嶄负绌轰笖涓嶆敼鏁版嵁銆�
+ -->
+ inhospid = inhospid,
<if test="serialnum != null">serialnum = #{serialnum},</if>
<if test="hospitalname != null">hospitalname = #{hospitalname},</if>
<if test="hospitalcode != null">hospitalcode = #{hospitalcode},</if>
@@ -886,8 +968,14 @@
<if test="deptcode != null">deptcode = #{deptcode},</if>
<if test="deptname != null">deptname = #{deptname},</if>
<if test="roomno != null">roomno = #{roomno},</if>
- <if test="bedNo != null">bed_no = #{bedNo},</if>
+ <!--
+ 搴婁綅锛欻IS 浼犵┖涓蹭唬琛�"褰撳墠娌℃湁搴婁綅"锛堟崲搴娿�佹垨浜哄凡绂婚櫌杩樻病鍔炲嚭闄㈡墜缁級锛岃惤搴撲负 null锛�
+ 瀹屽叏涓嶄紶(null)鍒欎笉鏀瑰姩搴婁綅銆傜┖涓蹭笌 null 蹇呴』鍒嗗紑鍒ゆ柇锛屼笉鑳介兘璺宠繃锛屽惁鍒欏簥浣嶄笉浼氳娓呮帀銆�
+ -->
+ <if test='bedNo != null and !"".equals(bedNo)'>bed_no = #{bedNo},</if>
+ <if test='bedNo != null and "".equals(bedNo)'>bed_no = null,</if>
<if test="orgid != null">orgid = #{orgid},</if>
+ <if test="campusid != null">campusid = #{campusid},</if>
<if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
@@ -938,11 +1026,13 @@
<if test="fuspecialadvice != null ">fuspecialadvice = #{fuspecialadvice},</if>
<if test="managementDoctor != null ">management_doctor = #{managementDoctor},</if>
<if test="managementDoctorCode != null ">management_doctor_code = #{managementDoctorCode},</if>
- <if test="campusid != null ">campusid = #{campusid},</if>
<if test="inhospMydFlag != null ">inhosp_myd_flag = #{inhospMydFlag},</if>
<if test="importanceFlagCode != null ">importance_flag_code = #{importanceFlagCode},</if>
<if test="emergencyLevelCode != null ">emergency_level_code = #{emergencyLevelCode},</if>
<if test="encounterSourceId != null ">encounter_source_id = #{encounterSourceId},</if>
+ <if test="medicalCode != null and medicalCode != ''">medical_code = #{medicalCode},</if>
+ <if test="medicalName != null and medicalName != ''">medical_name = #{medicalName},</if>
+ <if test="medicalCompany != null and medicalCompany != ''">medical_company = #{medicalCompany},</if>
</trim>
where inhospid = #{inhospid}
</update>
@@ -991,6 +1081,9 @@
<if test="orgid != null and orgid != ''">
AND pat_med_inhosp.orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and pat_med_inhosp.campusid = #{campusid}
+ </if>
AND pat_archive.idcardno IS NOT NULL
<if test="zy != null">
AND pat_med_inhosp.inhospstate = 0
@@ -1028,6 +1121,9 @@
<if test="orgid != null and orgid != ''">
AND orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
+ </if>
<if test="startDate != null">
AND visit_time >= #{startDate}
</if>
--
Gitblit v1.9.3