patient.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.lemon.lifecenter.mapper.PatientMapper">
  4. <select id="selectPatientCount" parameterType="PatientDTO" resultType="int">
  5. <![CDATA[
  6. SELECT count(*) AS total
  7. FROM PATIENT_CARE
  8. WHERE 1 = 1
  9. ]]>
  10. <if test='state != "ALL"'>
  11. <![CDATA[
  12. AND STATE = #{state}
  13. ]]>
  14. </if>
  15. <if test='patientName != null and patientName != ""'>
  16. <![CDATA[
  17. AND PATIENT_NAME LIKE CONCAT('%', #{patientName}, '%')
  18. ]]>
  19. </if>
  20. <if test='startDate != null and startDate != "" and endDate != null and endDate != ""'>
  21. <![CDATA[
  22. AND DATE_FORMAT(FINAL_CLINIC_DATE, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
  23. ]]>
  24. </if>
  25. </select>
  26. <select id="selectPatientList" parameterType="PatientDTO" resultType="PatientDTO">
  27. <![CDATA[
  28. SELECT PATIENT_IDX AS patientIdx,
  29. PATIENT_NAME AS patientName,
  30. CASE WHEN GENDER = 'M' THEN '남'
  31. WHEN GENDER = 'F' THEN '여'
  32. ELSE ''
  33. END AS gender,
  34. (SELECT TRUNC((SYSDATE-TO_DATE(JUMIN, 'YYYYMMDD'))/365) + 1) AS age,
  35. ward_number AS wardNumber,
  36. room_number AS roomNumber,
  37. DATE_FORMAT(FINAL_CLINIC_DATE, '%Y-%m-%d %H:%i') AS finamClinicDate,
  38. DATE_FORMAT(HOSPITALIZATION_DATE, '%Y-%m-%d %H:%i') AS hospitalizationDate,
  39. DATE_FORMAT(DISISOLATION_DATE, '%Y-%m-%d %H:%i') AS disisolationDate,
  40. CASE WHEN STATE = 'H' THEN '입소'
  41. WHEN STATE = 'D' THEN '여'
  42. WHEN STATE = 'T' THEN '지정병원 이송'
  43. WHEN STATE = 'E' THEN '기타'
  44. ELSE ''
  45. END AS state
  46. FROM PATIENT_CARE
  47. WHERE 1 = 1
  48. ]]>
  49. <if test='state != "ALL"'>
  50. <![CDATA[
  51. AND STATE = #{state}
  52. ]]>
  53. </if>
  54. <if test='patientName != null and patientName != ""'>
  55. <![CDATA[
  56. AND PATIENT_NAME LIKE CONCAT('%', #{patientName}, '%')
  57. ]]>
  58. </if>
  59. <if test='startDate != null and startDate != "" and endDate != null and endDate != ""'>
  60. <![CDATA[
  61. AND DATE_FORMAT(FINAL_CLINIC_DATE, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
  62. ]]>
  63. </if>
  64. <![CDATA[
  65. ORDER BY HOSPITALIZATION_DATE DESC
  66. LIMIT ${limit}, ${limitMax}
  67. ]]>
  68. </select>
  69. <insert id="insertPatientCare" parameterType="PatientDTO" useGeneratedKeys="true">
  70. <selectKey keyProperty="patientIdx" resultType="int" order="AFTER">
  71. <![CDATA[
  72. SELECT CURRENT_VAL AS patientIdx FROM db_serial WHERE NAME = 'patient_care_ai_patient_idx';
  73. ]]>
  74. </selectKey>
  75. <![CDATA[
  76. INSERT
  77. INTO patient_care
  78. ( patient_name, gender, ward_number, room_number, hospitalization_date, state,
  79. center_code, jumin, patient_phone, guardian_phone, symptom_start_date, confirmation_date, disisolation_date,
  80. basal_disease_yn, drug_yn, drug_content, pregnancy_status, pregnancy_week, id, pw,
  81. create_date, create_by, update_by )
  82. VALUES ( #{patientName}, #{gender}, #{wardNumber}, #{roomNumber}, #{hospitalizationDate}, #{state},
  83. #{centerCode}, #{jumin}, #{patientPhone}, #{guardianPhone}, #{symptomStartDate}, #{confirmationDate}, #{disisolationDate},
  84. #{basalDiseaseYn}, #{drugYn}, #{drugContent}, #{pregnancyStatus}, #{pregnancyWeek}, #{id}, #{pw},
  85. NOW(), #{createBy}, '' )
  86. ]]>
  87. </insert>
  88. <insert id="insertPatientDisease" parameterType="PatientDTO" useGeneratedKeys="true">
  89. <![CDATA[
  90. INSERT
  91. INTO patient_disease
  92. ( patient_idx, high_blood_pressure_check, low_blood_pressure_check, organ_transplant_check, diabetes_check,
  93. respiratory_disease_check, immunological_disease_check, dyspnea_check, cold_fit_check, muscle_pain_check,
  94. headache_check, sore_throat_check, smell_palate_check, fatigue_check, heart_disease,
  95. liver_disease, `operation`, operation_content, allergy_check, kidney_disease,
  96. cancer_check, cancer_name, etc_check, etc_content )
  97. VALUES ( #{patientIdx}, #{highBloodPressureCheck}, #{lowBloodPressureCheck}, #{organTransplantCheck}, #{diabetesCheck},
  98. #{respiratoryDiseaseCheck}, #{immunologicalDiseaseCheck}, #{dyspneaCheck}, #{coldFitCheck}, #{musclePainCheck},
  99. #{headacheCheck}, #{soreThroatCheck}, #{smellPalateCheck}, #{fatigueCheck}, #{heartDisease},
  100. #{liverDisease}, #{operation}, #{operationContent}, #{allergyCheck}, #{kidneyDisease},
  101. #{cancerCheck}, #{cancerName}, #{etcCheck}, #{etcContent} )
  102. ]]>
  103. </insert>
  104. <insert id="insertPatientSymptom" parameterType="PatientDTO" useGeneratedKeys="true">
  105. <![CDATA[
  106. INSERT
  107. INTO patient_symptom
  108. ( patient_idx, fever_check, cough_check, colic, cold_fit_check, sputum_check,
  109. ocin_check, fever_right, fever_left, fatigue_check, etc_check, etc_content,
  110. chest_pain, nose_check, vomiting_check, muscle_pain_check, sore_throat_check, diarrhea_check,
  111. headache_check, dyspnea_check, pulse_rate, respiration_rate, blood_pressure_level, oxygen_saturation )
  112. VALUES ( #{patientIdx}, #{feverCheck}, #{coughCheck}, #{colic}, #{coldFitCheck}, #{sputumCheck},
  113. #{ocinCheck}, #{feverRight}, #{feverLeft}, #{fatigueCheck}, #{etcCheck}, #{etcContent},
  114. #{chestPain}, #{noseCheck}, #{vomitingCheck}, #{musclePainCheck}, #{soreThroatCheck}, #{diarrheaCheck},
  115. #{headacheCheck}, #{dyspneaCheck}, #{pulseRate}, #{respirationRate}, #{bloodPressureLevel}, #{oxygenSaturation} )
  116. ]]>
  117. </insert>
  118. <select id="selectPatientOne" parameterType="PatientDTO" resultType="PatientDTO">
  119. <![CDATA[
  120. SELECT PC.PATIENT_IDX AS patientIdx,
  121. PC.PATIENT_NAME AS patientName,
  122. PC.GENDER AS gender,
  123. PC.WARD_NUMBER AS wardNumber,
  124. PC.ROOM_NUMBER AS roomNumber,
  125. PC.FINAL_CLINIC_DATE AS finalClinicDate,
  126. DATE_FORMAT(PC.HOSPITALIZATION_DATE, '%Y-%m-%d %h:%i') AS hospitalizationDate,
  127. PC.STATE AS state,
  128. PC.CENTER_CODE AS centerCode,
  129. PC.JUMIN AS jumin,
  130. PC.PATIENT_PHONE AS patientPhone,
  131. PC.GUARDIAN_PHONE AS guardianPhone,
  132. DATE_FORMAT(PC.SYMPTOM_START_DATE, '%Y-%m-%d %h:%i') AS symptomStartDate,
  133. DATE_FORMAT(PC.CONFIRMATION_DATE, '%Y-%m-%d %h:%i') AS confirmationDate,
  134. DATE_FORMAT(PC.DISISOLATION_DATE, '%Y-%m-%d %h:%i') AS disisolationDate,
  135. PC.BASAL_DISEASE_YN AS basalDiseaseYn,
  136. PC.DRUG_YN AS drugYn,
  137. PC.DRUG_CONTENT AS drugContent,
  138. PC.PREGNANCY_STATUS AS pregnancyStatus,
  139. PC.PREGNANCY_WEEK AS pregnancyWeek,
  140. PC.ID AS id,
  141. PC.PW AS pw,
  142. PC.CREATE_DATE AS createDate,
  143. PC.CREATE_BY AS createBy,
  144. PC.UPDATE_BY AS updateBy,
  145. PS.FEVER_CHECK AS feverCheck,
  146. PS.COUGH_CHECK AS coughCheck,
  147. PS.COLIC AS colic,
  148. PS.COLD_FIT_CHECK AS coldFitCheck,
  149. PS.SPUTUM_CHECK AS sputumCheck,
  150. PS.OCIN_CHECK AS ocinCheck,
  151. PS.FEVER_RIGHT AS feverRight,
  152. PS.FEVER_LEFT AS feverLeft,
  153. PS.FATIGUE_CHECK AS fatigueCheck,
  154. PS.ETC_CHECK AS etcCheckSymptom,
  155. PS.ETC_CONTENT AS etcContentSymptom,
  156. PS.CHEST_PAIN AS chestPain,
  157. PS.NOSE_CHECK AS noseCheck,
  158. PS.VOMITING_CHECK AS vomitingCheck,
  159. PS.MUSCLE_PAIN_CHECK AS musclePainCheck,
  160. PS.SORE_THROAT_CHECK AS soreThroatCheck,
  161. PS.DIARRHEA_CHECK AS diarrheaCheck,
  162. PS.HEADACHE_CHECK AS headacheCheck,
  163. PS.DYSPNEA_CHECK AS dyspneaCheck,
  164. PS.PULSE_RATE AS pulseRate,
  165. PS.RESPIRATION_RATE AS respirationRate,
  166. PS.BLOOD_PRESSURE_LEVEL AS bloodPressureLevel,
  167. PS.OXYGEN_SATURATION AS oxygenSaturation,
  168. PD.HIGH_BLOOD_PRESSURE_CHECK AS highBloodPressureCheck,
  169. PD.LOW_BLOOD_PRESSURE_CHECK AS lowBloodPressureCheck,
  170. PD.ORGAN_TRANSPLANT_CHECK AS organTransplantCheck,
  171. PD.DIABETES_CHECK AS diabetesCheck,
  172. PD.RESPIRATORY_DISEASE_CHECK AS respiratoryDiseaseCheck,
  173. PD.IMMUNOLOGICAL_DISEASE_CHECK AS immunologicalDiseaseCheck,
  174. PD.DYSPNEA_CHECK AS dyspneaCheck,
  175. PD.COLD_FIT_CHECK AS coldFitCheck,
  176. PD.MUSCLE_PAIN_CHECK AS musclePainCheck,
  177. PD.HEADACHE_CHECK AS headacheCheck,
  178. PD.SORE_THROAT_CHECK AS soreThroatCheck,
  179. PD.SMELL_PALATE_CHECK AS smellPalateCheck,
  180. PD.FATIGUE_CHECK AS fatigueCheck,
  181. PD.HEART_DISEASE AS heartDisease,
  182. PD.LIVER_DISEASE AS liverDisease,
  183. PD.`OPERATION` AS `operation`,
  184. PD.OPERATION_CONTENT AS operationContent,
  185. PD.ALLERGY_CHECK AS allergyCheck,
  186. PD.KIDNEY_DISEASE AS kidneyDisease,
  187. PD.CANCER_CHECK AS cancerCheck,
  188. PD.CANCER_NAME AS cancerName,
  189. PD.ETC_CHECK AS etcCheckDisease,
  190. PD.ETC_CONTENT AS etcContentDisease,
  191. (SELECT CI.CENTER_NAME
  192. FROM CENTER_INFO CI
  193. WHERE CI.CENTER_CODE = PC.CENTER_CODE) AS centerName
  194. FROM PATIENT_CARE PC
  195. LEFT JOIN PATIENT_SYMPTOM PS
  196. ON PC.PATIENT_IDX = PS.PATIENT_IDX
  197. LEFT JOIN PATIENT_DISEASE PD
  198. ON PC.PATIENT_IDX = PD.PATIENT_IDX
  199. WHERE 1 = 1
  200. AND PC.PATIENT_IDX = #{patientIdx}
  201. ]]>
  202. </select>
  203. <update id="updatePatientCare" parameterType="PatientDTO" useGeneratedKeys="true">
  204. <![CDATA[
  205. UPDATE patient_care
  206. SET patient_name = #{patientName},
  207. gender = #{gender},
  208. ward_number = #{wardNumber},
  209. room_number = #{roomNumber},
  210. hospitalization_date = #{hospitalizationDate},
  211. state = #{state},
  212. center_code = #{centerCode},
  213. jumin = #{jumin},
  214. patient_phone = #{patientPhone},
  215. guardian_phone = #{guardianPhone},
  216. symptom_start_date = #{symptomStartDate},
  217. confirmation_date = #{confirmationDate},
  218. disisolation_date = #{disisolationDate},
  219. basal_disease_yn = #{basalDiseaseYn},
  220. drug_yn = #{drugYn},
  221. drug_content = #{drugContent},
  222. pregnancy_status = #{pregnancyStatus},
  223. pregnancy_week = #{pregnancyWeek},
  224. id = #{id},
  225. pw = #{pw},
  226. update_date = NOW(),
  227. update_by = #{updateBy}
  228. WHERE patient_idx = #{patientIdx}
  229. ]]>
  230. </update>
  231. <update id="updatePatientDisease" parameterType="PatientDTO" useGeneratedKeys="true">
  232. <![CDATA[
  233. UPDATE patient_disease
  234. SET high_blood_pressure_check = #{highBloodPressureCheck},
  235. low_blood_pressure_check = #{lowBloodPressureCheck},
  236. organ_transplant_check = #{organTransplantCheck},
  237. diabetes_check = #{diabetesCheck},
  238. respiratory_disease_check = #{respiratoryDiseaseCheck},
  239. immunological_disease_check = #{immunologicalDiseaseCheck},
  240. dyspnea_check = #{dyspneaCheck},
  241. cold_fit_check = #{coldFitCheck},
  242. muscle_pain_check = #{musclePainCheck},
  243. headache_check = #{headacheCheck},
  244. sore_throat_check = #{soreThroatCheck},
  245. smell_palate_check = #{smellPalateCheck},
  246. fatigue_check = #{fatigueCheck},
  247. heart_disease = #{heartDisease},
  248. liver_disease = #{liverDisease},
  249. `operation` = #{operation},
  250. operation_content = #{operationContent},
  251. allergy_check = #{allergyCheck},
  252. kidney_disease = #{kidneyDisease},
  253. cancer_check = #{cancerCheck},
  254. cancer_name = #{cancerName},
  255. etc_check = #{etcCheck},
  256. etc_content=#{etcContent}
  257. WHERE patient_idx = #{patientIdx}
  258. ]]>
  259. </update>
  260. <update id="updatePatientSymptom" parameterType="PatientDTO" useGeneratedKeys="true">
  261. <![CDATA[
  262. UPDATE patient_symptom
  263. SET fever_check = #{feverCheck},
  264. cough_check = #{coughCheck},
  265. colic = #{colic},
  266. cold_fit_check = #{coldFitCheck},
  267. sputum_check = #{sputumCheck},
  268. ocin_check = #{ocinCheck},
  269. fever_right = #{feverRight},
  270. fever_left = #{feverLeft},
  271. fatigue_check = #{fatigueCheck},
  272. etc_check = #{etcCheck},
  273. etc_content = #{etcContent},
  274. chest_pain = #{chestPain},
  275. nose_check = #{noseCheck},
  276. vomiting_check = #{vomitingCheck},
  277. muscle_pain_check = #{musclePainCheck},
  278. sore_throat_check = #{soreThroatCheck},
  279. diarrhea_check = #{diarrheaCheck},
  280. headache_check = #{headacheCheck},
  281. dyspnea_check = #{dyspneaCheck},
  282. pulse_rate = #{pulseRate},
  283. respiration_rate = #{respirationRate},
  284. blood_pressure_level = #{bloodPressureLevel},
  285. oxygen_saturation = #{oxygenSaturation}
  286. WHERE patient_idx = #{patientIdx}
  287. ]]>
  288. </update>
  289. </mapper>