HeadPage.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. <template>
  2. <div style="width: 820px">
  3. <div style="width: 770px; margin-left: 35px; border-left: 1px dashed gray; padding-left: 35px">
  4. <div style="-webkit-transform: translateX(-52px); transform: translateX(-52px); position: absolute; color: black; font-size: 14px">装<br />订<br />线</div>
  5. <div>
  6. <div style="width: 770px; font-size: 17px; text-align: center">住 院 病 案 首 页</div>
  7. <div style="margin-right: 8px; width: 100%; height: 28px; line-height: 28px; font-size: 15px; text-align: center">
  8. 医疗机构:
  9. <span style="font-weight: 700">长沙泰和医院</span>
  10. (组织机构代码:
  11. <span style="font-weight: 700">43010150145</span>
  12. </div>
  13. <div style="margin-right: 8px; height: 25px; line-height: 25px">
  14. <span style="display: inline-block">
  15. 医疗付费方式:
  16. <span style="display: inline-block; width: 180px">{{ filterNameInDic(patient.payMethod, 'getPayMethod') }}</span>
  17. </span>
  18. <span style="display: inline-block; margin-right: 8px; width: 120px; margin-left: 12px">健康卡号: {{ patient.healthCardNo }}</span>
  19. <span style="display: inline-block; margin-right: 8px; width: 100px">第&nbsp;{{ patient.admissTimes }}&nbsp;次住院</span>
  20. <span style="display: inline-block; margin-right: 8px; width: 130px">病案号: {{ patient.bah }}</span>
  21. </div>
  22. </div>
  23. <div style="border: 1px solid black; padding: 5px">
  24. <div style="margin: 4px 8px 10px 0">
  25. 姓名:
  26. <span style="display: inline-block; padding: 0 4px; margin-right: 8px; width: 200px; border-bottom: 1px solid black">{{ patient.name }}</span>
  27. 性别:
  28. <span style="display: inline-block; padding: 0 4px; margin-right: 8px; border-bottom: 1px solid black">{{ filterNameInDic(patient.sex, 'getSexCode') }}</span>
  29. 出生日期:
  30. <span style="display: inline-block; padding: 0 4px; margin-right: 8px; width: 90px; border-bottom: 1px solid black">{{ patient.birthDate }}</span>
  31. 年龄:
  32. <span style="display: inline-block; padding: 0 4px; margin-right: 8px; width: 30px; border-bottom: 1px solid black">{{ patient.age }}</span>
  33. 国籍:
  34. <span style="display: inline-block; padding: 0 4px; margin-right: 8px; border-bottom: 1px solid black">{{ filterNameInDic(patient.country, 'getCountry') }}</span>
  35. </div>
  36. <div style="margin: 10px 8px 10px 0">
  37. (年龄不足 1 周岁的)年龄:
  38. <span style="display: inline-block; padding: 0 4px; border-bottom: 1px solid black; width: 50px">{{ patient.ageDays }}</span>
  39. 天<span style="margin-left: 8px">新生儿出生体重:</span>
  40. <span style="display: inline-block; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.newBornWeight }}</span>
  41. 克<span style="margin-left: 8px">新生儿入院体重:</span>
  42. <span style="display: inline-block; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.newBornAdmissWeight }}</span>
  43. </div>
  44. <div style="margin: 10px 8px 10px 0">
  45. 出生地:
  46. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 230px">{{ patient.birthPlaceName }}</span>
  47. 籍贯:
  48. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 230px">{{ patient.nativePlaceName }}</span>
  49. 民族:
  50. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.nation, 'getNation') }}</span>
  51. </div>
  52. <div style="margin: 10px 8px 10px 0">
  53. 身份证号:
  54. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 160px">{{ patient.socialNo }}</span>
  55. 职业:
  56. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.occupation, 'getOccupation') }}</span>
  57. 婚姻:
  58. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.marriage, 'getMarriageCode') }}</span>
  59. </div>
  60. <div style="margin: 10px 8px 10px 0">
  61. 现住址:
  62. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 300px">{{ patient.livePlaceCombo }}</span>
  63. 电话:
  64. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ patient.phone }}</span>
  65. 邮编:
  66. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.addrZipCode }}</span>
  67. </div>
  68. <div style="margin: 10px 8px 10px 0">
  69. 户口地址:
  70. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 300px">{{ patient.hkPlaceName }}</span>
  71. 邮编:
  72. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.hkZipCode }}</span>
  73. </div>
  74. <div style="margin: 10px 8px 10px 0">
  75. 工作单位及地址:
  76. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; margin-right: 0; width: 330px">
  77. {{ patient.unitName }}/{{ patient.unitPlace }}
  78. </span>
  79. 单位电话:
  80. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 80px">{{ patient.unitPhone }}</span>
  81. 邮编:
  82. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 50px">{{ patient.unitZipCode }}</span>
  83. </div>
  84. <div style="margin: 10px 8px 10px 0">
  85. 联系人姓名:
  86. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 200px">{{ patient.contactName }}</span>
  87. 联系人关系:
  88. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{
  89. filterNameInDic(patient.contactRelation, 'getRelations')
  90. }}</span>
  91. </div>
  92. <div style="margin: 10px 8px 10px 0">
  93. 联系人地址:
  94. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 300px">{{ patient.contactAddrName }}</span>
  95. 联系人电话:
  96. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 90px">{{ patient.contactPhone }}</span>
  97. </div>
  98. <div style="margin: 10px 8px 10px 0">
  99. 入院途径:
  100. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.zyAdmissWay, 'getAdmissWay') }}</span>
  101. 是否手术:
  102. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.hasSurgery, 'getOperations') }}</span>
  103. </div>
  104. <div style="margin: 10px 0">
  105. 入院时间:
  106. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 122px">{{ patient.admissDate }}</span>
  107. 入院科别:
  108. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 118px">{{ patient.admissDept }}</span>
  109. 病房:
  110. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 80px">{{ patient.admissWard }}</span>
  111. 转科科别:
  112. <span style="display: inline-block; padding: 0 4px; border-bottom: 1px solid black; width: 118px">{{ patient.transDept }}</span>
  113. </div>
  114. <div style="margin: 10px 0">
  115. 出院时间:
  116. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 122px">{{ patient.dismissDate }}</span>
  117. 出院科别:
  118. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 118px">{{ patient.dismissDept }}</span>
  119. 病房:
  120. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 80px">{{ patient.dismissWard }}</span>
  121. 住院天数:
  122. <span style="display: inline-block; padding: 0 4px; border-bottom: 1px solid black; width: 118px">{{ patient.admissDays }}</span>
  123. </div>
  124. <div style="margin: 10px 8px 10px 0">
  125. 门(急)诊诊断:
  126. <span
  127. style="
  128. display: inline-block;
  129. margin-right: 8px;
  130. padding: 0 4px;
  131. border-bottom: 1px solid black;
  132. width: 350px;
  133. text-overflow: ellipsis;
  134. white-space: nowrap;
  135. overflow: hidden;
  136. "
  137. >
  138. {{ patient.clinicDiagStr }}
  139. </span>
  140. 疾病编码:
  141. <span style="
  142. display: inline-block;
  143. margin-right: 8px;
  144. padding: 0 4px;
  145. border-bottom: 1px solid black;
  146. width: 110px"
  147. >
  148. {{ patient.clinicDiagCode }}
  149. </span>
  150. </div>
  151. <div>
  152. 入院诊断名称:
  153. <span
  154. style="
  155. display: inline-block;
  156. margin-right: 8px;
  157. padding: 0 4px;
  158. border-bottom: 1px solid black;
  159. width: 350px;
  160. text-overflow: ellipsis;
  161. white-space: nowrap;
  162. overflow: hidden;
  163. "
  164. >
  165. {{patient.supplement.admDiagName}}
  166. </span>
  167. 入院诊断编码:
  168. <span style="
  169. display: inline-block;
  170. margin-right: 8px;
  171. padding: 0 4px;
  172. border-bottom: 1px solid black;
  173. width: 110px"
  174. >
  175. {{patient.supplement.admDiagCode}}
  176. </span>
  177. </div>
  178. <div style="margin: 10px 8px 10px 0">
  179. 入院时情况:
  180. <span style="
  181. display: inline-block;
  182. margin-right: 38px;
  183. padding: 0 4px;
  184. border-bottom: 1px solid black;
  185. width: 60px"
  186. >
  187. {{filterAdmStatus(patient.supplement.admStatus)}}
  188. </span>
  189. 入院后确诊日期:
  190. <span
  191. style="
  192. display: inline-block;
  193. margin-right: 8px;
  194. padding: 0 4px;
  195. border-bottom: 1px solid black;
  196. width: 40px"
  197. >
  198. {{patient.supplement.diagnosisConfirmYear}}
  199. </span>
  200. <span
  201. style="
  202. display: inline-block;
  203. margin-right: 8px;
  204. padding: 0 4px;
  205. border-bottom: 1px solid black;
  206. width: 20px"
  207. >
  208. {{patient.supplement.diagnosisConfirmMonth}}
  209. </span>
  210. <span
  211. style="
  212. display: inline-block;
  213. margin-right: 8px;
  214. padding: 0 4px;
  215. border-bottom: 1px solid black;
  216. width: 20px"
  217. >
  218. {{patient.supplement.diagnosisConfirmDay}}
  219. </span>
  220. </div>
  221. <div style="height: max-content; width: 720px">
  222. <span style="display: inline-block; width: 360px">
  223. <table style="width: 360px; border: 1px solid black; border-collapse: collapse">
  224. <tr>
  225. <th>主要诊断</th>
  226. <th>疾病编码</th>
  227. <th>入院病情</th>
  228. <th>出院病情</th>
  229. </tr>
  230. <tr>
  231. <td style="width: 170px">
  232. {{ patient.disdiagList[0].name }}
  233. </td>
  234. <td style="width: 100px; text-align: center">
  235. {{ patient.disdiagList[0].code }}
  236. </td>
  237. <td style="width: 30px">
  238. {{ patient.disdiagList[0].admissStatus }}
  239. </td>
  240. <td style="width: 30px">
  241. {{ patient.disdiagList[0].dismissStatus }}
  242. </td>
  243. </tr>
  244. <tr>
  245. <th colspan="4">其他诊断</th>
  246. </tr>
  247. <tr v-for="n in 11" :key="n">
  248. <td style="text-align: left; padding-left: 5px">
  249. {{ patient.disdiagList[n].name }}
  250. </td>
  251. <td style="width: 90px">
  252. {{ patient.disdiagList[n].code }}
  253. </td>
  254. <td style="width: 30px">
  255. {{ patient.disdiagList[n].admissStatus }}
  256. </td>
  257. <td style="width: 30px">
  258. {{ patient.disdiagList[n].dismissStatus }}
  259. </td>
  260. </tr>
  261. </table>
  262. </span>
  263. <span style="display: inline-block; width: 360px">
  264. <table style="width: 360px; border: 1px solid black; border-collapse: collapse">
  265. <tr v-for="n in 14" :key="n">
  266. <td style="margin-right: 8px; width: 170px">
  267. {{ patient.disdiagList[n + 11].name }}
  268. </td>
  269. <td style="margin-right: 8px; width: 100px">
  270. {{ patient.disdiagList[n + 11].code }}
  271. </td>
  272. <td style="margin-right: 8px; width: 30px">
  273. {{ patient.disdiagList[n + 11].admissStatus }}
  274. </td>
  275. <td style="margin-right: 8px; width: 30px">
  276. {{ patient.disdiagList[n + 11].dismissStatus }}
  277. </td>
  278. </tr>
  279. </table>
  280. </span>
  281. </div>
  282. <div style="width: 700px; margin: 4px 0 2px 0; padding: 0 4px; border-bottom: 1px solid black; font-size: 12px">
  283. 备注:
  284. <span style="display: inline-block">入院病情:</span>
  285. 1.有,2.临床未确定,3.情况不明,4.无
  286. <span style="display: inline-block; margin-right: 8px; margin-left: 10px">出院病情:</span>
  287. 1.治愈,2.好转,3.未愈,4.死亡,9.其他
  288. </div>
  289. <div style="margin: 10px 8px 10px 0">
  290. 损伤、中毒的外部原因:
  291. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 380px">{{ patient.hurtReasonName }}</span>
  292. 疾病编码:
  293. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 110px">{{ patient.hurtReasonCode }}</span>
  294. </div>
  295. <div style="margin: 10px 8px 10px 0">
  296. 病理诊断:
  297. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 300px">{{ patient.pathologicDiagStr }}</span>
  298. 病理编码:
  299. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 90px">{{ patient.pathologicDiagCode }}</span>
  300. 病理号:
  301. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.blh }}</span>
  302. </div>
  303. <div style="margin: 10px 8px 10px 0">
  304. 药物过敏:
  305. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.allergy, 'getHaveOrNot') }}</span>
  306. ,过敏药物:
  307. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 110px">{{ patient.allergicMedicine }}</span>
  308. 死亡患者尸检:
  309. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.autopsy, 'getAutopsies') }}</span>
  310. </div>
  311. <div style="margin: 10px 8px 10px 0">
  312. 输血前四项: HbsAg
  313. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.hbsAg, 'getHbsag') }}</span>
  314. HCV-Ab
  315. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; margin-left: 8px">{{
  316. filterNameInDic(patient.hcvAb, 'getHbsag')
  317. }}</span>
  318. HIV-Ab
  319. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; margin-left: 8px">{{
  320. filterNameInDic(patient.hivAb, 'getHbsag')
  321. }}</span>
  322. TP-Ab
  323. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; margin-left: 8px">{{
  324. filterNameInDic(patient.tpAb, 'getHbsag')
  325. }}</span>
  326. </div>
  327. <div style="margin: 10px 8px 10px 0">
  328. 血型:
  329. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.bloodType, 'getBloodType') }}</span>
  330. Rh:
  331. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">{{ filterNameInDic(patient.rh, 'getHbsag') }}</span>
  332. </div>
  333. <div style="margin: 10px 8px 10px 0">
  334. 科室主任:
  335. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.deptLeaderName }}</span>
  336. 主任(副主任)医师:
  337. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.leaderDoctorName }}</span>
  338. 主治医师:
  339. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.mainDoctorName }}</span>
  340. 住院医师:
  341. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.admissDoctorName }}</span>
  342. </div>
  343. <div style="margin: 10px 8px 10px 0">
  344. 责任护士:
  345. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.dutyNurseName }}</span>
  346. 进修医师:
  347. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.studyDoctorName }}</span>
  348. 实习医师:
  349. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.internshipDoctorName }}</span>
  350. 编码员:
  351. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.coderName }}</span>
  352. </div>
  353. <div style="margin: 10px 8px 10px 0">
  354. 病案质量:
  355. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black">
  356. {{ filterNameInDic(patient.qualityControlLevel, 'getQualityLevel') }}
  357. </span>
  358. 质控医师:
  359. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.qualityControlDoctorName }}</span>
  360. 质控护士:
  361. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 70px">{{ patient.qualityControlNurseName }}</span>
  362. 质控日期:
  363. <span style="display: inline-block; margin-right: 8px; padding: 0 4px; border-bottom: 1px solid black; width: 170px">{{ patient.qualityControlDate }}</span>
  364. </div>
  365. </div>
  366. </div>
  367. </div>
  368. </template>
  369. <script setup>
  370. const props = defineProps({
  371. patient: {
  372. type: Object,
  373. required: true,
  374. },
  375. dics: {
  376. type: Object,
  377. required: true,
  378. },
  379. })
  380. const filterNameInDic = (val, dic) => {
  381. if (!val) {
  382. return ''
  383. }
  384. const dicValue = props.dics[dic]
  385. for (let i = 0; i < dicValue.length; i++) {
  386. const dicItem = dicValue[i]
  387. if (dicItem.code == val) {
  388. return dicItem.name
  389. }
  390. }
  391. return '-'
  392. }
  393. function filterAdmStatus(val) {
  394. if (!val) {
  395. return ''
  396. }
  397. switch (val) {
  398. case 1:
  399. return '危'
  400. case 2:
  401. return '急'
  402. case 3:
  403. return '一般'
  404. }
  405. return ''
  406. }
  407. </script>
  408. <style scoped>
  409. table,
  410. th,
  411. td {
  412. border: 1px solid black;
  413. border-collapse: collapse;
  414. }
  415. td,
  416. th {
  417. height: 24px;
  418. padding-left: 4px;
  419. }
  420. </style>