BizClinicRoomMapper.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="cn.tr.module.smart.common.repository.BizClinicRoomRepository">
  6. <resultMap id="pushInfo" type="cn.tr.module.smart.wx.dto.BizMpPublishInfoDTO">
  7. <result property="openId" column="open_id"/>
  8. <result property="clinicId" column="clinic_id"/>
  9. <result property="clinicName" column="clinic_name"/>
  10. <result property="patientName" column="patient_name"/>
  11. <result property="patientCode" column="patient_code"/>
  12. <result property="clinicStartTime" column="clinic_start_time"/>
  13. <result property="tenantId" column="tenant_id"/>
  14. <result property="tenantName" column="tenant_name"/>
  15. </resultMap>
  16. <resultMap id="stdWxAppletDetailResult" type="cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO">
  17. <result property="id" column="id"/>
  18. <result property="patientName" column="patient_name"/>
  19. <result property="patientAge" column="patient_age"/>
  20. <result property="patientGender" column="patient_gender"/>
  21. <result property="patientCode" column="patient_code"/>
  22. <result property="clinicStartTime" column="clinic_start_time"/>
  23. <result property="clinicEndTime" column="clinic_end_time"/>
  24. <result property="deptId" column="dept_id"/>
  25. <result property="deptName" column="dept_name"/>
  26. <result property="imageUrl" column="image_url"/>
  27. <result property="clinicName" column="clinic_name"/>
  28. <result property="clinicStatus" column="clinic_status"/>
  29. <result property="lastModifyUserType" column="last_modify_user_type"/>
  30. <result property="care" column="care"/>
  31. <result property="lastBeforeQuestionTime" column="last_modify_question_time"/>
  32. <result property="questionAnswerId" column="question_answer_id"/>
  33. <result property="doctorId" column="doctor_id"/>
  34. <result property="doctorNickname" column="doctor_nickname"/>
  35. <result property="lastPainAssessmentTime" column="last_pain_assessment_time"/>
  36. <result property="lastAfterQuestionTime" column="last_after_question_time"/>
  37. <result property="postQuestionGroupId" column="post_question_group_id"/>
  38. </resultMap>
  39. <resultMap id="roomAndPatient" type="cn.tr.module.smart.app.controller.vo.DoctorClinicRoomVO">
  40. <result property="clinicRoomId" column="clinic_room_id"/>
  41. <result property="clinicName" column="clinic_name"/>
  42. <result property="clinicStartTime" column="clinic_start_time"/>
  43. <result property="deptId" column="dept_id"/>
  44. <result property="deptName" column="dept_name"/>
  45. <result property="patientCode" column="patient_code"/>
  46. <result property="patientName" column="patient_name"/>
  47. <result property="patientAge" column="patient_age"/>
  48. <result property="patientGender" column="patient_gender"/>
  49. <result property="followUpCount" column="follow_up_count"/>
  50. <result property="assessCount" column="assess_count"/>
  51. <result property="patientAvatar" column="patient_avatar"/>
  52. <result property="deviceType" column="device_type"/>
  53. <result property="deviceId" column="device_id"/>
  54. <result property="electricQuantity" column="electric_quantity"/>
  55. <result property="deviceRunState" column="device_run_state"/>
  56. <result property="deviceAlarm" column="device_alarm"/>
  57. <result property="warnLowBattery" column="warn_low_battery"/>
  58. <result property="warnWillFinished" column="warn_will_finished"/>
  59. <result property="warnAnalgesicPoor" column="warn_analgesic_poor"/>
  60. <result property="warnFlow" column="warn_flow"/>
  61. <result property="unreadCount" column="unread_count"/>
  62. </resultMap>
  63. <resultMap id="stdThumbnailResult" type="cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomThumbnailVO">
  64. <result property="clinicRoomId" column="clinic_room_id"/>
  65. <result property="clinicName" column="clinic_name"/>
  66. <result property="clinicStartTime" column="clinic_start_time"/>
  67. <result property="deptId" column="dept_id"/>
  68. <result property="deptName" column="dept_name"/>
  69. <result property="patientCode" column="patient_code"/>
  70. <result property="patientName" column="patient_name"/>
  71. <result property="patientAge" column="patient_age"/>
  72. <result property="patientGender" column="patient_gender"/>
  73. <result property="patientAvatar" column="patient_avatar"/>
  74. <result property="patientId" column="patient_id"/>
  75. <result property="doctorId" column="doctor_id"/>
  76. <result property="wxUserId" column="wx_user_id"/>
  77. </resultMap>
  78. <select id="stdSelectWxAppletClinicList" resultMap="stdWxAppletDetailResult">
  79. select
  80. bcr.id as id,
  81. bcr.patient_name as patient_name,
  82. bcr.patient_age as patient_age,
  83. bcr.patient_gender as patient_gender,
  84. bcr.patient_code as patient_code,
  85. bcr.clinic_start_time as clinic_start_time,
  86. bcr.clinic_end_time as clinic_end_time,
  87. bcr.dept_id as dept_id,
  88. bcr.dept_name as dept_name,
  89. bcr.clinic_name as clinic_name,
  90. bcr.clinic_status as clinic_status,
  91. bcrwu.care as care,
  92. bqa.id as question_answer_id,
  93. bqa.answer_time as last_modify_question_time,
  94. su.id as doctor_id,
  95. su.nickname as doctor_nickname,
  96. bd.group_id as post_question_group_id,
  97. bcr.image_url as image_url,
  98. bp.new_human as new_human,
  99. bp.card_no as card_no,
  100. bcr.last_before_question_time as last_before_question_time,
  101. bcr.last_pain_assessment_time as last_pain_assessment_time,
  102. bcr.last_after_question_time as last_after_question_time,
  103. GREATEST(COALESCE(igu.unread_count, 0), 0) as unread_count
  104. from biz_clinic_room as bcr
  105. join biz_patient as bp on bp.id = bcr.patient_id
  106. join biz_clinic_room_wx_user as bcrwu on bcrwu.clinic_room_id = bcr.id
  107. left join biz_clinic_room_doctor_user as bcrmu on bcrmu.clinic_room_id = bcr.id
  108. left join sys_user as su on bcrmu.user_id = su.id
  109. left join biz_question_answer as bqa on bqa.clinic_id = bcr.id
  110. left join biz_dept as bd on bd.id=bcr.dept_id
  111. left join (select * from im_group_user where user_id= #{query.userId,jdbcType=VARCHAR}) as igu on igu.group_id=bcr.id
  112. <where>
  113. and bcr.deleted=0 and bcrwu.wx_user_id = #{query.userId}
  114. <if test="query.patientCode != null and query.patientCode != ''">
  115. and bcr.patient_code like concat('%',#{query.patientCode},'%')
  116. </if>
  117. </where>
  118. </select>
  119. <select id="selectByClinicRoomAndPatientList" resultMap="roomAndPatient">
  120. SELECT bcr.id as clinic_room_id,
  121. bcr.clinic_name as clinic_name,
  122. bcr.clinic_start_time as clinic_start_time,
  123. bcr.dept_id as dept_id,
  124. bcr.dept_name as dept_name,
  125. bcr.patient_name as patient_name,
  126. bcr.patient_age as patient_age,
  127. bcr.patient_gender as patient_gender,
  128. bcr.patient_code as patient_code,
  129. bcr.follow_up_count as follow_up_count,
  130. bcr.image_url as patient_avatar,
  131. bcr.assess_count as assess_count,
  132. bih.device_id as device_id,
  133. bih.device_type as device_type,
  134. bih.electric_quantity as electric_quantity,
  135. bih.device_run_state as device_run_state,
  136. bih.device_alarm as device_alarm,
  137. bih.warn_low_battery as warn_low_battery,
  138. bih.warn_will_finished as warn_will_finished,
  139. bih.warn_flow as warn_flow,
  140. bih.warn_analgesic_poor as warn_analgesic_poor,
  141. GREATEST(COALESCE(igu.unread_count, 0), 0) as unread_count
  142. FROM biz_clinic_room bcr
  143. join biz_clinic_room_doctor_user bcrmu on bcr.id = bcrmu.clinic_room_id
  144. left join biz_infusion_clinic as bic on bic.clinic_id = bcr.id
  145. left join biz_infusion_history as bih on bih.id=bic.infusion_id
  146. left join (select * from im_group_user where user_id= #{source.currentUserId,jdbcType=VARCHAR}) as igu on igu.group_id=bcr.id
  147. <where>
  148. and bcr.deleted = 0
  149. <if test="source.clinicStatus != null and source.clinicStatus != ''">
  150. and bcr.clinic_status = #{source.clinicStatus ,jdbcType=VARCHAR}
  151. </if>
  152. <if test="source.queryCondition != null and source.queryCondition != ''">
  153. and (bcr.patient_code LIKE concat('%',#{source.queryCondition,jdbcType=VARCHAR},'%')
  154. or bcr.patient_name like concat('%',#{source.queryCondition,jdbcType=VARCHAR},'%'))
  155. </if>
  156. <if test="source.currentUserId != null and source.currentUserId != ''">
  157. and bcrmu.user_id = #{source.currentUserId,jdbcType=VARCHAR}
  158. </if>
  159. </where>
  160. </select>
  161. <select id="stdWxAppletSelectByPatientCodeAndClinicStartTime"
  162. resultType="cn.tr.module.smart.common.po.BizClinicRoomPO">
  163. select *
  164. from biz_clinic_room
  165. where patient_code = #{patientCode}
  166. and DATE(clinic_start_time) = DATE(#{clinicStartTime})
  167. and deleted = 0
  168. limit 1
  169. </select>
  170. <select id="stdSelectWxAppletById" resultMap="stdWxAppletDetailResult">
  171. select
  172. bcr.id as id,
  173. bcr.patient_name as patient_name,
  174. bcr.patient_age as patient_age,
  175. bcr.patient_gender as patient_gender,
  176. bcr.patient_code as patient_code,
  177. bcr.clinic_start_time as clinic_start_time,
  178. bcr.clinic_end_time as clinic_end_time,
  179. bcr.dept_id as dept_id,
  180. bcr.dept_name as dept_name,
  181. bcr.clinic_name as clinic_name,
  182. bcr.clinic_status as clinic_status,
  183. bcrwu.care as care,
  184. bqa.id as question_answer_id,
  185. bqa.answer_time as last_modify_question_time,
  186. su.id as doctor_id,
  187. su.nickname as doctor_nickname,
  188. bcr.last_before_question_time as last_before_question_time
  189. from biz_clinic_room as bcr
  190. join biz_clinic_room_wx_user as bcrwu on bcrwu.clinic_room_id = bcr.id
  191. left join biz_clinic_room_doctor_user as bcrmu on bcrmu.clinic_room_id = bcr.id
  192. left join sys_user as su on bcrmu.user_id = su.id
  193. left join biz_question_answer as bqa on bqa.clinic_id = bcr.id
  194. where bcr.id = #{id}
  195. </select>
  196. <select id="selectClinicByCondition" resultType="cn.tr.module.smart.common.dto.BizClinicRoomDTO">
  197. SELECT
  198. bcr.id as id,
  199. bcr.clinic_name as clinicName ,
  200. bcr.patient_age as patientAge,
  201. bcr.dept_id as deptId,
  202. bcr.clinic_start_time as clinicStartTime,
  203. bcr.clinic_end_time as clinicEndTime,
  204. bcr.clinic_status as clinicStatus,
  205. bcr.last_follow_up_time as lastFollowUpTime,
  206. bcr.follow_up_count as followUpCount,
  207. bcr.follow_up as followUp,
  208. bcr.patient_id as patientId,
  209. bcr.patient_code as patientCode,
  210. bcr.patient_name as patientName,
  211. bcr.dept_name as deptName,
  212. bcr.patient_gender as patientGender,
  213. bcr.last_care_time as lastCareTime,
  214. bcr.last_question_time as lastQuestionTime,
  215. bcr.create_time as create_time,
  216. bcr.create_by as create_by,
  217. bcr.update_time as update_time,
  218. bcr.update_by as update_by
  219. FROM
  220. biz_clinic_room bcr
  221. LEFT JOIN biz_clinic_room_wx_user bcrwu ON bcr.id = bcrwu.clinic_room_id
  222. LEFT JOIN biz_clinic_room_doctor_user bcrdu on bcr.id = bcrdu.clinic_room_id
  223. <where>
  224. and bcr.deleted = 0
  225. <if test="queryDTO.deptId != null and queryDTO.deptId != ''">
  226. and bcr.dept_id = #{queryDTO.deptId}
  227. </if>
  228. <if test="queryDTO.phase != null and queryDTO.phase != ''">
  229. and bcr.clinic_status = #{queryDTO.phase}
  230. </if>
  231. <if test="queryDTO.isBind != null and queryDTO.isBind">
  232. and bcrdu.id is not null
  233. </if>
  234. <if test="queryDTO.isBind != null and !queryDTO.isBind">
  235. and bcrdu.id is null
  236. </if>
  237. <if test="queryDTO.timeRange != null and queryDTO.timeRange.size>0">
  238. and bcr.clinic_start_time &gt;= #{queryDTO.timeRange[0]}
  239. </if>
  240. <if test="queryDTO.timeRange != null and queryDTO.timeRange.size>1">
  241. and bcr.clinic_start_time &lt;= #{queryDTO.timeRange[1]}
  242. </if>
  243. <if test="queryDTO.condition != null and queryDTO.condition != ''">
  244. and (bcr.patient_code LIKE concat('%',#{queryDTO.condition,jdbcType=VARCHAR},'%')
  245. or bcr.patient_name like concat('%',#{queryDTO.condition,jdbcType=VARCHAR},'%'))
  246. </if>
  247. <if test="queryDTO.userId != null and queryDTO.userId != ''">
  248. and bcrdu.user_id = #{queryDTO.userId}
  249. </if>
  250. </where>
  251. </select>
  252. <select id="selectClinicAndDoctorByPatientIdList"
  253. resultType="cn.tr.module.smart.web.dto.BizPatientClinicListDTO">
  254. SELECT
  255. bcr.id as clinicId,
  256. bcr.clinic_name as clinicName,
  257. bcr.clinic_start_time as clinicStartTime,
  258. bcr.dept_id as deptId,
  259. bcr.dept_name as deptName,
  260. su.nickName as nickName
  261. FROM
  262. biz_clinic_room bcr
  263. JOIN biz_clinic_room_doctor_user bcrdu ON bcr.ID = bcrdu.clinic_room_id
  264. Join sys_user su on bcrdu.user_id = su.id
  265. <where>
  266. and bcr.deleted = 0
  267. <if test="patientId != null and patientId != ''">
  268. and bcr.patient_id = #{patientId}
  269. </if>
  270. </where>
  271. </select>
  272. <select id="selectListByPatientCode" resultMap="stdThumbnailResult">
  273. select
  274. bcr.id as clinic_room_id,
  275. bcr.clinic_name as clinic_name,
  276. bcr.clinic_start_time as clinic_start_time,
  277. bcr.dept_id as dept_id,
  278. bp.id as patient_id,
  279. bcr.dept_name as dept_name,
  280. bcr.patient_code as patient_code,
  281. bcr.patient_name as patient_name,
  282. bcr.patient_gender as patient_gender,
  283. bcr.patient_age as patient_age,
  284. bcr.image_url as patient_avatar,
  285. bcrdu.user_id as doctor_id,
  286. bcrwu.wx_user_id as wx_user_id
  287. from
  288. biz_patient as bp
  289. join biz_clinic_room as bcr on bp.current_clinic_id = bcr.id
  290. left join biz_clinic_room_wx_user as bcrwu on bcr.id = bcrwu.clinic_room_id
  291. left join biz_clinic_room_doctor_user as bcrdu on bcr.id = bcrdu.clinic_room_id
  292. <where>
  293. bp.deleted = 0 and bcr.deleted = 0 and bp.patient_code like concat('%',#{query.patientCode},'%')
  294. </where>
  295. </select>
  296. <select id="selectMpPushTaskInfoById" resultMap="pushInfo">
  297. select
  298. bcr.id as clinic_id,
  299. bcr.clinic_name as clinic_name,
  300. bcr.clinic_start_time as clinic_start_time,
  301. bcr.patient_code as patient_code,
  302. bcr.patient_name as patient_name,
  303. st.id as tenant_id,
  304. st.name as tenant_name,
  305. bwump.from_user as open_id
  306. from biz_clinic_room as bcr
  307. join sys_tenant as st on st.id=bcr.tenant_id
  308. join biz_clinic_room_wx_user as bcrwu on bcrwu.clinic_room_id = bcr.id
  309. join biz_wx_user as bwu on bwu.id = bcrwu.wx_user_id
  310. join biz_wx_user_mp_care as bwump on bwump.union_id=bwu.union_id
  311. where bcr.id = #{clinicId}
  312. </select>
  313. <select id="selectAppBizClinicRoomById" resultMap="roomAndPatient">
  314. SELECT bcr.id as clinic_room_id,
  315. bcr.clinic_name as clinic_name,
  316. bcr.clinic_start_time as clinic_start_time,
  317. bcr.dept_id as dept_id,
  318. bcr.dept_name as dept_name,
  319. bcr.patient_name as patient_name,
  320. bcr.patient_age as patient_age,
  321. bcr.patient_gender as patient_gender,
  322. bcr.patient_code as patient_code,
  323. bcr.follow_up_count as follow_up_count,
  324. bcr.image_url as patient_avatar,
  325. bcr.assess_count as assess_count,
  326. bih.device_id as device_id,
  327. bih.device_type as device_type,
  328. bih.electric_quantity as electric_quantity,
  329. bih.device_run_state as device_run_state,
  330. bih.device_alarm as device_alarm,
  331. bih.warn_low_battery as warn_low_battery,
  332. bih.warn_will_finished as warn_will_finished,
  333. bih.warn_flow as warn_flow,
  334. bih.warn_analgesic_poor as warn_analgesic_poor,
  335. GREATEST(COALESCE(igu.unread_count, 0), 0) as unread_count
  336. FROM biz_clinic_room bcr
  337. join biz_clinic_room_doctor_user bcrmu on bcr.id = bcrmu.clinic_room_id
  338. left join biz_infusion_clinic as bic on bic.clinic_id = bcr.id
  339. left join biz_infusion_history as bih on bih.id=bic.infusion_id
  340. left join (select * from im_group_user where user_id= #{source.currentUserId,jdbcType=VARCHAR}) as igu on igu.group_id=bcr.id
  341. where bcr.id=#{clinicId}
  342. </select>
  343. </mapper>