| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | order by b.endtime desc |
| | | </if> |
| | | <if test="cry != null and cry==0"> |
| | | order by b.starttime desc , b.bed_no asc |
| | | <!-- |
| | | 在院患者:可按入院床位正/倒序(bedSort=asc 或 desc),不传时保持默认排序(入院时间倒序 + 床位正序)。 |
| | | 床位按自然序排(只用 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> |
| | | |
| | |
| | | <if test="inhospMydFlag != null ">and b.inhosp_myd_flag = #{inhospMydFlag}</if> |
| | | <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 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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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="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> |
| | |
| | | <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="deptcode != null">#{deptcode},</if> |
| | | <if test="deptname != null">#{deptname},</if> |
| | | <if test="roomno != null">#{roomno},</if> |
| | | <if test="bedNo != null">#{bedNo},</if> |
| | | <!-- 床位空串(HIS 无当前床位)落库为 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> |
| | |
| | | <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> |
| | |
| | | #{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}, |
| | |
| | | <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> |
| | |
| | | <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> |
| | | <!-- |
| | | 床位:HIS 传空串代表"当前没有床位"(换床、或人已离院还没办出院手续),落库为 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> |
| | |
| | | <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="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 |
| | |
| | | <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> |