api.xml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  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.RestApiMapper">
  4. <select id="selectHLPatientList" parameterType="HlRequestDTO" resultType="PatientDTO">
  5. <!-- 조건이 맞지 않을 경우에는 데이터를 주면 안됨 -->
  6. <![CDATA[
  7. SELECT IFNULL(PATIENT_NUMBER, '') AS patientNumber,
  8. IFNULL(PATIENT_NAME, '') AS patientName,
  9. IFNULL(GENDER, '') AS gender,
  10. IFNULL(WARD_NUMBER, '') AS wardNumber,
  11. IFNULL(ROOM_NUMBER, '') AS roomNumber,
  12. IFNULL(DATE_FORMAT(FINAL_CLINIC_DATE, '%Y-%m-%d %H:%i'), '') AS finamClinicDate,
  13. IFNULL(DATE_FORMAT(HOSPITALIZATION_DATE, '%Y-%m-%d %H:%i'), '') AS hospitalizationDate,
  14. IFNULL(STATE, '') AS state,
  15. IFNULL(CENTER_CODE, '') AS centerCode,
  16. IFNULL(JUMIN, '') AS jumin,
  17. IFNULL(PATIENT_PHONE, '') AS patientPhone,
  18. IFNULL(GUARDIAN_PHONE, '') AS guardianPhone,
  19. IFNULL(DATE_FORMAT(SYMPTOM_START_DATE, '%Y-%m-%d %H:%i'), '') AS symptomStartDate,
  20. IFNULL(DATE_FORMAT(CONFIRMATION_DATE, '%Y-%m-%d %H:%i'), '') AS confirmationDate,
  21. IFNULL(DATE_FORMAT(DISISOLATION_DATE, '%Y-%m-%d %H:%i'), '') AS disisolationDate,
  22. IFNULL(BASAL_DISEASE_YN, '') AS basalDiseaseYn,
  23. IFNULL(DRUG_YN, '') AS drugYn,
  24. IFNULL(DRUG_CONTENT, '') AS drugContent,
  25. IFNULL(PREGNANCY_STATUS, '') AS pregnancyStatus,
  26. IFNULL(PREGNANCY_WEEK, '') AS pregnancyWeek,
  27. IFNULL(MANAGER_ID, '') AS managerId,
  28. IFNULL(DATE_FORMAT(EXPECTED_DISCHARGE_DATE, '%Y-%m-%d %H:%i'), '') AS expectedDischargeDate
  29. FROM PATIENT_CARE
  30. WHERE 1 = 1
  31. ]]>
  32. <choose>
  33. <when test='careAgencyCode != null and careAgencyCode != ""'>
  34. <![CDATA[
  35. AND CENTER_CODE = #{centerCode}
  36. ]]>
  37. </when>
  38. <otherwise>
  39. <choose>
  40. <when test='patientNumber != null and patientNumber !=""'>
  41. <![CDATA[
  42. AND PATIENT_NUMBER = #{patientNumber}
  43. ]]>
  44. </when>
  45. <otherwise>
  46. <if test='birthDate != null and birthDate !="" and patientName != null and patientName != "" and patientPhone != null and patientPhone != ""'>
  47. <![CDATA[
  48. AND JUMIN = #{birthDate}
  49. AND PATIENT_NAME = #{patientName}
  50. AND PATIENT_PHONE = #{patientPhone}
  51. ]]>
  52. </if>
  53. </otherwise>
  54. </choose>
  55. </otherwise>
  56. </choose>
  57. </select>
  58. <select id="selectPhrData" parameterType="HlRequestDTO" resultType="ApiPhrResponseDTO">
  59. <![CDATA[
  60. SELECT IFNULL(PC.PATIENT_NUMBER, '') AS patientNumber,
  61. IFNULL(PC.PATIENT_NAME, '') AS patientName,
  62. IFNULL(PC.PATIENT_PHONE, '') AS patientPhone,
  63. IFNULL(PC.JUMIN, '') AS jumin,
  64. IFNULL(PPH.PHR_VALUE, '') AS valueType1,
  65. ]]>
  66. <if test='resourceType == "bloodPressure"'>
  67. <![CDATA[
  68. IFNULL(PPH.PHR_VALUE_2, '') AS valueType2,
  69. ]]>
  70. </if>
  71. <![CDATA[
  72. IFNULL(PPH.RECORDED_BY_NAME, '') AS recordedByName,
  73. IFNULL(PPH.RECORDED_BY_ID, '') AS recordedById,
  74. IFNULL(DATE_FORMAT(PPH.RECORDED_DATE, '%Y-%m-%d %H:%i'), '') AS recordedDate,
  75. IFNULL(DATE_FORMAT(PPH.CREATE_DATE, '%Y-%m-%d %H:%i'), '') AS createDate
  76. FROM PATIENT_PHR_HISTORY PPH
  77. LEFT JOIN (SELECT PATIENT_IDX,
  78. PATIENT_NUMBER,
  79. PATIENT_NAME,
  80. PATIENT_PHONE,
  81. JUMIN,
  82. CENTER_CODE
  83. FROM PATIENT_CARE
  84. WHERE CENTER_CODE = 63) PC
  85. ON PC.PATIENT_IDX = PPH.PATIENT_IDX
  86. WHERE 1 = 1
  87. AND PPH.PHR_TYPE = #{resourceType}
  88. ]]>
  89. <choose>
  90. <when test='careAgencyCode != null and careAgencyCode != ""'>
  91. <![CDATA[
  92. AND PC.CENTER_CODE = #{centerCode}
  93. ]]>
  94. </when>
  95. <otherwise>
  96. <choose>
  97. <when test='patientNumber != null and patientNumber !=""'>
  98. <![CDATA[
  99. AND PC.PATIENT_NUMBER = #{patientNumber}
  100. ]]>
  101. </when>
  102. <otherwise>
  103. <if test='birthDate != null and birthDate !="" and patientName != null and patientName != "" and patientPhone != null and patientPhone != ""'>
  104. <![CDATA[
  105. AND PC.JUMIN = #{birthDate}
  106. AND PC.PATIENT_NAME = #{patientName}
  107. AND PC.PATIENT_PHONE = #{patientPhone}
  108. ]]>
  109. </if>
  110. </otherwise>
  111. </choose>
  112. </otherwise>
  113. </choose>
  114. </select>
  115. <select id="selectClinicMemo" parameterType="HlRequestDTO" resultType="ApiPhrResponseDTO">
  116. <![CDATA[
  117. SELECT IFNULL(PC.PATIENT_NUMBER, '') AS patientNumber,
  118. IFNULL(PC.PATIENT_NAME, '') AS patientName,
  119. IFNULL(PC.PATIENT_PHONE, '') AS patientPhone,
  120. IFNULL(PC.JUMIN, '') AS jumin,
  121. IFNULL(PM.CONTENTS, '') AS valueType1,
  122. IFNULL(PM.RECORDED_BY_NAME, '') AS recordedByName,
  123. IFNULL(PM.RECORDED_BY_ID, '') AS recordedById,
  124. IFNULL(DATE_FORMAT(PM.CREATE_DATE, '%Y-%m-%d %H:%i'), '') AS createDate
  125. FROM PATIENT_MEMO PM
  126. LEFT JOIN (SELECT PATIENT_IDX,
  127. PATIENT_NUMBER,
  128. PATIENT_NAME,
  129. PATIENT_PHONE,
  130. JUMIN,
  131. CENTER_CODE
  132. FROM PATIENT_CARE
  133. WHERE CENTER_CODE = 63) PC
  134. ON PM.PATIENT_IDX = PC.PATIENT_IDX
  135. WHERE 1 = 1
  136. ]]>
  137. <choose>
  138. <when test='careAgencyCode != null and careAgencyCode != ""'>
  139. <![CDATA[
  140. AND PC.CENTER_CODE = #{centerCode}
  141. ]]>
  142. </when>
  143. <otherwise>
  144. <choose>
  145. <when test='patientNumber != null and patientNumber !=""'>
  146. <![CDATA[
  147. AND PC.PATIENT_NUMBER = #{patientNumber}
  148. ]]>
  149. </when>
  150. <otherwise>
  151. <if test='birthDate != null and birthDate !="" and patientName != null and patientName != "" and patientPhone != null and patientPhone != ""'>
  152. <![CDATA[
  153. AND PC.JUMIN = #{birthDate}
  154. AND PC.PATIENT_NAME = #{patientName}
  155. AND PC.PATIENT_PHONE = #{patientPhone}
  156. ]]>
  157. </if>
  158. </otherwise>
  159. </choose>
  160. </otherwise>
  161. </choose>
  162. </select>
  163. <select id="selectMunjinDataList" parameterType="HlRequestDTO" resultType="PatientDTO">
  164. <![CDATA[
  165. SELECT IFNULL(PC.PATIENT_NUMBER, '') AS patientNumber,
  166. IFNULL(PC.PATIENT_NAME, '') AS patientName,
  167. IFNULL(PC.PATIENT_PHONE, '') AS patientPhone,
  168. IFNULL(PC.JUMIN, '') AS jumin,
  169. IFNULL(PS.FEVER_CHECK, '') AS feverCheck,
  170. IFNULL(PS.COUGH_CHECK, '') AS coughCheck,
  171. IFNULL(PS.COLIC, '') AS colic,
  172. IFNULL(PS.COLD_FIT_CHECK, '') AS coldFitCheck,
  173. IFNULL(PS.SPUTUM_CHECK, '') AS sputumCheck,
  174. IFNULL(PS.OCIN_CHECK, '') AS ocinCheck,
  175. IFNULL(PS.FEVER_RIGHT, '') AS feverRight,
  176. IFNULL(PS.FEVER_LEFT, '') AS feverLeft,
  177. IFNULL(PS.FATIGUE_CHECK, '') AS fatigueCheck,
  178. IFNULL(PS.ETC_CHECK, '') AS etcCheck,
  179. IFNULL(PS.ETC_CONTENT, '') AS etcContent,
  180. IFNULL(PS.CHEST_PAIN, '') AS chestPain,
  181. IFNULL(PS.NOSE_CHECK, '') AS noseCheck,
  182. IFNULL(PS.VOMITING_CHECK, '') AS vomitingCheck,
  183. IFNULL(PS.MUSCLE_PAIN_CHECK, '') AS musclePain,
  184. IFNULL(PS.SORE_THROAT_CHECK, '') AS soreThroatCheck,
  185. IFNULL(PS.DIARRHEA_CHECK, '') AS diarrheaCheck,
  186. IFNULL(PS.HEADACHE_CHECK, '') AS headacheCheck,
  187. IFNULL(PS.DYSPNEA_CHECK, '') AS dyspenaCheck,
  188. IFNULL(PS.PULSE_RATE, '') AS pulseRate,
  189. IFNULL(PS.RESPIRATION_RATE, '') AS respirationRate,
  190. IFNULL(PS.BLOOD_PRESSURE_LEVEL, '') AS bloodPressureLevel,
  191. IFNULL(PS.OXYGEN_SATURATION, '') AS oxygenSaturation
  192. FROM PATIENT_SYMPTOM PS
  193. LEFT JOIN (SELECT PATIENT_IDX,
  194. PATIENT_NUMBER,
  195. PATIENT_NAME,
  196. PATIENT_PHONE,
  197. JUMIN,
  198. CENTER_CODE
  199. FROM PATIENT_CARE
  200. WHERE CENTER_CODE = 63) PC
  201. ON PS.PATIENT_IDX = PC.PATIENT_IDX
  202. WHERE 1 = 1
  203. ]]>
  204. <choose>
  205. <when test='careAgencyCode != null and careAgencyCode != ""'>
  206. <![CDATA[
  207. AND PC.CENTER_CODE = #{centerCode}
  208. ]]>
  209. </when>
  210. <otherwise>
  211. <choose>
  212. <when test='patientNumber != null and patientNumber !=""'>
  213. <![CDATA[
  214. AND PC.PATIENT_NUMBER = #{patientNumber}
  215. ]]>
  216. </when>
  217. <otherwise>
  218. <if test='birthDate != null and birthDate !="" and patientName != null and patientName != "" and patientPhone != null and patientPhone != ""'>
  219. <![CDATA[
  220. AND PC.JUMIN = #{birthDate}
  221. AND PC.PATIENT_NAME = #{patientName}
  222. AND PC.PATIENT_PHONE = #{patientPhone}
  223. ]]>
  224. </if>
  225. </otherwise>
  226. </choose>
  227. </otherwise>
  228. </choose>
  229. </select>
  230. <select id="selectSymptomDataList" parameterType="HlRequestDTO" resultType="ApiSymptomDTO">
  231. <![CDATA[
  232. SELECT IFNULL(PC.PATIENT_NUMBER, '') AS patientNumber,
  233. IFNULL(PC.PATIENT_NAME, '') AS patientName,
  234. IFNULL(PC.PATIENT_PHONE, '') AS patientPhone,
  235. IFNULL(PC.JUMIN, '') AS jumin,
  236. IFNULL(PSS.COUGH_CHECK, '') AS coughCheck,
  237. IFNULL(PSS.DYSPNEA_CHECK, '') AS dyspneaCheck,
  238. IFNULL(PSS.COLD_FIT_CHECK, '') AS coldFitCheck,
  239. IFNULL(PSS.MUSCLE_PAIN_CHECK, '') AS musclePainCheck,
  240. IFNULL(PSS.HEADACHE_CHECK, '') AS headacheCheck,
  241. IFNULL(PSS.SORE_THROAT_CHECK, '') AS soreThroatCheck,
  242. IFNULL(PSS.SMELL_PALATE_CHECK, '') AS smellPlateCheck,
  243. IFNULL(PSS.FATIGUE_CHECK, '') AS fatigueCheck,
  244. IFNULL(PSS.APPETITE_LOSS_CHECK, '') AS appetiteLossCheck,
  245. IFNULL(PSS.SPUTUM_CHECK, '') AS sputumCheck,
  246. IFNULL(PSS.OCIN_CHECK, '') AS ocinCheck,
  247. IFNULL(PSS.VOMITING_CHECK, '') AS vomitingCheck,
  248. IFNULL(PSS.DIARRHEA_CHECK, '') AS diarrheaCheck,
  249. IFNULL(PSS.DIZZINESS_CHECK, '') AS dizzinessCheck,
  250. IFNULL(PSS.NOSE_CHECK, '') AS noseCheck,
  251. IFNULL(PSS.ETC_CHECK, '') AS etcCheck,
  252. IFNULL(PSS.ETC_CONTENT, '') AS etcContent,
  253. IFNULL(PSS.RECORDED_BY_NAME, '') AS recordedById,
  254. IFNULL(PSS.RECORDED_BY_ID, '') AS recordedByName,
  255. IFNULL(PSS.RECORDED_DATE, '') AS recordedByDate,
  256. IFNULL(DATE_FORMAT(PSS.CREATE_DATE, '%Y-%m-%d %H:%i'), '') AS createDate
  257. FROM PATIENT_SYMPTOM_SIM PSS
  258. LEFT JOIN (SELECT PATIENT_IDX,
  259. PATIENT_NUMBER,
  260. PATIENT_NAME,
  261. PATIENT_PHONE,
  262. JUMIN,
  263. CENTER_CODE
  264. FROM PATIENT_CARE
  265. WHERE CENTER_CODE = 63) PC
  266. ON PC.PATIENT_IDX = PSS.PATIENT_IDX
  267. WHERE 1 = 1
  268. ]]>
  269. <choose>
  270. <when test='careAgencyCode != null and careAgencyCode != ""'>
  271. <![CDATA[
  272. AND PC.CENTER_CODE = #{centerCode}
  273. ]]>
  274. </when>
  275. <otherwise>
  276. <choose>
  277. <when test='patientNumber != null and patientNumber !=""'>
  278. <![CDATA[
  279. AND PC.PATIENT_NUMBER = #{patientNumber}
  280. ]]>
  281. </when>
  282. <otherwise>
  283. <if test='birthDate != null and birthDate !="" and patientName != null and patientName != "" and patientPhone != null and patientPhone != ""'>
  284. <![CDATA[
  285. AND PC.JUMIN = #{birthDate}
  286. AND PC.PATIENT_NAME = #{patientName}
  287. AND PC.PATIENT_PHONE = #{patientPhone}
  288. ]]>
  289. </if>
  290. </otherwise>
  291. </choose>
  292. </otherwise>
  293. </choose>
  294. </select>
  295. <select id="selectPatientInfoList" parameterType="HlRequestDTO" resultType="ApiPhrResponseDTO">
  296. <![CDATA[
  297. SELECT PATIENT_IDX AS patientIdx,
  298. PATIENT_NUMBER AS patientNumber,
  299. PATIENT_NAME AS patientName,
  300. PATIENT_PHONE AS patientPhone,
  301. JUMIN AS jumin,
  302. CENTER_CODE AS centerCode
  303. FROM PATIENT_CARE
  304. WHERE 1 = 1
  305. ]]>
  306. <choose>
  307. <when test='centerCode != null and centerCode != ""'>
  308. <![CDATA[
  309. AND CENTER_CODE = #{centerCode}
  310. ]]>
  311. </when>
  312. <otherwise>
  313. <choose>
  314. <when test='patientNumber != null and patientNumber !=""'>
  315. <![CDATA[
  316. AND PC.PATIENT_NUMBER = #{patientNumber}
  317. ]]>
  318. </when>
  319. <otherwise>
  320. <if test='birthDate != null and birthDate !="" and patientName != null and patientName != "" and patientPhone != null and patientPhone != ""'>
  321. <![CDATA[
  322. AND JUMIN = #{birthDate}
  323. AND PATIENT_NAME = #{patientName}
  324. AND PATIENT_PHONE = #{patientPhone}
  325. ]]>
  326. </if>
  327. </otherwise>
  328. </choose>
  329. </otherwise>
  330. </choose>
  331. </select>
  332. <select id="selectPatientPhrData" parameterType="int" resultType="ApiPhrResponseDTO">
  333. <![CDATA[
  334. SELECT IFNULL(PHR_TYPE, '') AS phrType,
  335. IFNULL(PHR_VALUE, '') AS valueType1,
  336. IFNULL(PHR_VALUE_2, '') AS valueType2,
  337. IFNULL(RECORDED_BY_NAME, '') AS recordedByName,
  338. IFNULL(RECORDED_BY_ID, '') AS recordedById,
  339. IFNULL(DATE_FORMAT(CREATE_DATE, '%Y-%m-%d %H:%i'), '') AS createDate
  340. FROM PATIENT_PHR_HISTORY
  341. WHERE 1 = 1
  342. AND PATIENT_IDX = #{patientIdx}
  343. ORDER BY PHR_TYPE
  344. ]]>
  345. </select>
  346. <select id="selectApiKey" parameterType="HlRequestDTO" resultType="String">
  347. <![CDATA[
  348. SELECT API_KEY AS apikey
  349. FROM API_MANAGER
  350. WHERE MANAGER_ID = #{managerId}
  351. AND COOPERATIVE_CODE = #{careAgencyCode}
  352. AND USE_YN = 'C'
  353. ]]>
  354. </select>
  355. <insert id="insertStatisticsData" parameterType="ApiStatisticsDTO">
  356. <![CDATA[
  357. INSERT INTO API_STATISTICS
  358. (CENTER_CODE, LOCATION_CODE, COOPERATIVE_CODE, API_COUNT,
  359. RESOURCE_TYPE, RESULT, IP, CREATE_DATE)
  360. VALUES (#{centerCode}, #{locationCode}, #{cooperativeCode}, #{apiCount},
  361. #{resourceType}, #{result}, #{ip}, NOW())
  362. ]]>
  363. </insert>
  364. </mapper>