CaseRecord2.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. <template>
  2. <div class="bcjl">
  3. <div class="title">{{ titleName }}</div>
  4. <div class="cont-title-item" v-if="data.type == 5">{{ data.zc_time }}</div>
  5. <div class="cont-title-item" v-if="data.type == 6">{{ data.zr_time }}</div>
  6. <div class="info-header mb40" v-if="data.type != 5 && data.type != 6">
  7. <el-row :gutter="32">
  8. <el-col :span="6">
  9. <span class="text-blod">科室:</span>
  10. <span>{{ baseInfo.BRKS}}</span>
  11. </el-col>
  12. <el-col :span="6">
  13. <span class="text-blod">姓名:</span>
  14. <span>{{ baseInfo.BRXM }}</span>
  15. </el-col>
  16. <el-col :span="6">
  17. <span class="text-blod">床号:</span>
  18. <span>{{ baseInfo.CH }}</span>
  19. </el-col>
  20. <el-col :span="6">
  21. <span class="text-blod">住院号码:</span>
  22. <span>{{ baseInfo.ZYH }}</span>
  23. </el-col>
  24. </el-row>
  25. </div>
  26. <div class="header-main" v-if="data.type == 5">
  27. {{ data.user_info }}
  28. </div>
  29. <div class="header-main" v-if="data.type == 6">
  30. {{ data.zrjl }}
  31. </div>
  32. <div class="info-content">
  33. <el-row :gutter="32">
  34. <el-col :span="24" class="mb40">
  35. <el-row :gutter="32">
  36. <el-col :span="10">
  37. <span class="date">{{ data ? data.date : '' }}</span>
  38. </el-col>
  39. <el-col :span="8">
  40. <span class="content-title">{{ data ? data.title : '' }}</span>
  41. </el-col>
  42. </el-row>
  43. </el-col>
  44. </el-row>
  45. <el-row :gutter="32">
  46. <!-- type 1为普通病程记录 2. 术前 3术后 4.查房 -->
  47. <template v-if="data.type === 1">
  48. <!-- <el-col :span="24" class="mb10">
  49. <span class="text-blod">病历特点:</span>
  50. <div v-for="(item, index) of data.BLTD" :key="`bltd1${index}`" class="pl76 mb20">{{ item.trim() }}</div>
  51. </el-col>
  52. <el-col :span="24" class="mb10">
  53. <span class="text-blod">初步诊断:</span>
  54. <div v-for="(item, index) of data.CBZD" :key="`cbzd1${index}`" class="pl76 mb20">{{ item.trim() }}</div>
  55. </el-col>
  56. <el-col :span="24" class="mb10">
  57. <span class="text-blod">诊断依据:</span>
  58. <div v-for="(item, index) of data.ZDYJ" :key="`zdyj1${index}`" class="pl76 mb20">{{ item.trim() }}</div>
  59. </el-col>
  60. <el-col :span="24" class="mb10">
  61. <span class="text-blod">鉴别诊断:</span>
  62. <div v-for="(item, index) of data.JBZD" :key="`jbzd1${index}`" class="pl76 mb20">{{ item.trim() }}</div>
  63. </el-col>
  64. <el-col :span="24" class="mb10">
  65. <span class="text-blod">诊疗计划:</span>
  66. <div v-for="(item, index) of data.ZLJH" :key="`zljh1${index}`" class="pl76 mb20">{{ item.trim() }}</div>
  67. </el-col> -->
  68. <el-col :span="24" class="mb10">
  69. <span class="text-blod">病历特点:</span>
  70. <div class="pl76 mb20">{{ data.BLTD}}</div>
  71. </el-col>
  72. <el-col :span="24" class="mb10">
  73. <span class="text-blod">初步诊断:</span>
  74. <div class="pl76 mb20">{{ data.CBZD}}</div>
  75. </el-col>
  76. <el-col :span="24" class="mb10">
  77. <span class="text-blod">诊断依据:</span>
  78. <div class="pl76 mb20">{{ data.ZDYJ }}</div>
  79. </el-col>
  80. <el-col :span="24" class="mb10">
  81. <span class="text-blod">鉴别诊断:</span>
  82. <div class="pl76 mb20">{{ data.JBZD }}</div>
  83. </el-col>
  84. <el-col :span="24" class="mb10">
  85. <span class="text-blod">诊疗计划:</span>
  86. <div class="pl76 mb20">{{ data.ZLJH }}</div>
  87. </el-col>
  88. </template>
  89. <!-- type 2术前 -->
  90. <template v-if="[2].includes(data.type)">
  91. <el-col :span="24" class="mb10" v-if="data.SSZC">
  92. <div class="text-blod">
  93. 术前讨论由
  94. <span style="padding: 0 20px; border-bottom: 1px solid #000">{{ data.SSZC }}</span>
  95. 医师主持,讨论结论及术前小结记录如下:
  96. </div>
  97. </el-col>
  98. <el-col :span="24" class="mb10" v-if="data.JYBQ">
  99. <span class="text-blod">简要病情:</span>
  100. <div v-for="(item, index) of data.JYBQ" :key="`jybq2${index}`" class="pl76 mb20">{{ item }}</div>
  101. </el-col>
  102. <el-col :span="24" class="mb10" v-if="data.SSZZ">
  103. <span class="text-blod">术前诊断:</span>
  104. <div v-for="(item, index) of data.SSZZ" :key="`sszz2${index}`" class="pl76 mb20">{{ item }}</div>
  105. </el-col>
  106. <el-col :span="24" class="mb10" v-if="data.SZZY">
  107. <span class="text-blod">手术指征:</span>
  108. <div v-for="(item, index) of data.SZZY" :key="`szzz2${index}`" class="pl76 mb20">{{ item }}</div>
  109. </el-col>
  110. <el-col :span="24" class="mb10" v-if="data.NSSS">
  111. <span class="text-blod">拟施手术名称和方式:</span>
  112. <div v-for="(item, index) of data.NSSS" :key="`nsss2${index}`" class="pl76 mb20">{{ item }}</div>
  113. </el-col>
  114. <el-col :span="24" class="mb10" v-if="data.NSMZ">
  115. <span class="text-blod">拟施麻醉方式:</span>
  116. <div v-for="(item, index) of data.NSMZ" :key="`nsmz2${index}`" class="pl76 mb20">{{ item }}</div>
  117. </el-col>
  118. <el-col :span="24" class="mb10" v-if="data.OTHER">
  119. <span class="text-blod">术前准备:</span>
  120. <div v-for="(item, index) of data.OTHER" :key="`other2${index}`" class="pl76 mb20">{{ item }}</div>
  121. </el-col>
  122. <el-col :span="24" class="mb10" v-if="data.SZZY">
  123. <span class="text-blod">术中注意事项:</span>
  124. <div v-for="(item, index) of data.SZZY" :key="`szzz2${index}`" class="pl76 mb20">{{ item }}</div>
  125. </el-col>
  126. <el-col :span="24" class="mb10" v-if="data.SHCL">
  127. <span class="text-blod">术后处理:</span>
  128. <div v-for="(item, index) of data.SHCL" :key="`shcl2${index}`" class="pl76 mb20">{{ item }}</div>
  129. </el-col>
  130. <el-col :span="24" class="mb10" v-if="data.desc">
  131. <span class="text-blod">其他描述:</span>
  132. <div v-for="(item, index) of data.desc" :key="`desc2${index}`" class="pl76 mb20">{{ item }}</div>
  133. </el-col>
  134. </template>
  135. <!-- type 3术后查房 -->
  136. <template v-if="[3].includes(data.type)">
  137. <el-col :span="24" class="mb10" v-if="data.desc">
  138. <div v-for="(item, index) of data.desc" :key="`bltd3${index}`" class="mb20">{{ item.trim() }}</div>
  139. </el-col>
  140. </template>
  141. <!-- type 4术后查房 -->
  142. <template v-if="[4].includes(data.type)">
  143. <el-col :span="24" class="mb10" v-if="data.desc">
  144. <div v-for="(item, index) of data.desc" :key="`bltd3${index}`" class="mb20">{{ item.trim() }}</div>
  145. </el-col>
  146. </template>
  147. <!-- type 5转出记录 -->
  148. <template v-if="data.type === 5">
  149. <el-col :span="24" class="mb10">
  150. <span class="text-blod">入院情况:</span>
  151. <div class="pl76 mb20">{{ data.ryqk }}</div>
  152. </el-col>
  153. <el-col :span="24" class="mb10">
  154. <span class="text-blod">入院诊断:</span>
  155. <div class="pl76 mb20">{{ data.ryzd }}</div>
  156. </el-col>
  157. <el-col :span="24" class="mb10">
  158. <span class="text-blod">诊疗过程:</span>
  159. <div class="pl76 mb20">{{ data.zljg }}</div>
  160. </el-col>
  161. <el-col :span="24" class="mb10">
  162. <span class="text-blod">目前情况:</span>
  163. <div class="pl76 mb20">{{ data.mqqk }}</div>
  164. </el-col>
  165. <el-col :span="24" class="mb10">
  166. <span class="text-blod">目前诊断:</span>
  167. <div class="pl76 mb20">
  168. <div v-for="(item, index) of data.mqzd" :key="`bltd3${index}`" class="mb20">{{ item.trim() }}</div>
  169. </div>
  170. </el-col>
  171. <el-col :span="24" class="mb10">
  172. <span class="text-blod">转科室及注意事项:</span>
  173. <div class="pl76 mb20">
  174. <div class="pl76 mb20">{{ data.zysx }}</div>
  175. </div>
  176. </el-col>
  177. </template>
  178. <!-- type 6转入记录 -->
  179. <template v-if="data.type === 6">
  180. <el-col :span="24" class="mb10">
  181. <span class="text-blod">目前情况:</span>
  182. <div class="pl76 mb20">{{ data.mqqk }}</div>
  183. </el-col>
  184. <el-col :span="24" class="mb10">
  185. <span class="text-blod">目前诊断:</span>
  186. <div class="pl76 mb20">
  187. <div v-for="(item, index) of data.mqzd" :key="`bltd3${index}`" class="mb20">{{ item }}</div>
  188. </div>
  189. </el-col>
  190. <el-col :span="24" class="mb10">
  191. <span class="text-blod">转入诊疗计划:</span>
  192. <div class="pl76 mb20">
  193. <div v-for="(item, index) of data.zljh" :key="`zrjh${index}`" class="mb20">{{ item }}</div>
  194. </div>
  195. </el-col>
  196. </template>
  197. <el-col :span="24" class="mt80" v-if="data.type === 5 || data.type === 6">
  198. <div class="fr" style="margin-right: 100px">
  199. <span class="text-blod">上级医师审核日期:</span>
  200. <span>{{ data.shrq }}</span>
  201. </div>
  202. </el-col>
  203. <el-col :span="24" class="mt30">
  204. <div class="fr" style="margin-right: 100px">
  205. <span class="text-blod">医生签名:</span>
  206. <span>{{ data.doctor_name }}</span>
  207. <!-- 接口暂无字段 -->
  208. </div>
  209. </el-col>
  210. </el-row>
  211. <div class="bottom-time bottom-time-top">
  212. <div class="bottom-time-list">
  213. <span class="bottom-time-bold">创建时间:</span>
  214. <span v-if="data.CJSJ">{{ data.CJSJ }}</span>
  215. </div>
  216. <div class="bottom-time-list">
  217. <span class="bottom-time-bold">首次提交时间:</span>
  218. <span v-if="data.ZXSJ">{{ data.ZXSJ }}</span>
  219. </div>
  220. </div>
  221. <div class="bottom-time bottom-time-botom">
  222. <div class="bottom-time-list">
  223. <span class="bottom-time-bold">完成时间:</span>
  224. <span v-if="data.WCSJ">{{ data.WCSJ }}</span>
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. </template>
  230. <script>
  231. import { getBrry } from '@/api/qc';
  232. export default {
  233. props: {
  234. data: {
  235. type: Object,
  236. default() {
  237. return {};
  238. },
  239. },
  240. ZYH: {
  241. type: String,
  242. default() {
  243. return '';
  244. },
  245. }
  246. },
  247. computed: {
  248. titleName() {
  249. let str;
  250. const type = this.data.type;
  251. if (type === 1) {
  252. str = '首次病程记录';
  253. } else if (type === 2) {
  254. str = '术前小结及术前讨论结论记录';
  255. } else if (type === 3) {
  256. str = '术后首次病程记录';
  257. } else if (type === 4) {
  258. str = '查房记录';
  259. } else if (type === 5) {
  260. str = '转出记录';
  261. } else if (type === 6) {
  262. str = '转入记录';
  263. }
  264. return str;
  265. },
  266. },
  267. data() {
  268. return {
  269. baseInfo: {}
  270. }
  271. },
  272. mounted() {
  273. this.getBaseInfo()
  274. },
  275. methods: {
  276. getBaseInfo() {
  277. getBrry({zyh: this.$props.ZYH}).then(res => {
  278. if (res.code == 200) {
  279. this.baseInfo = res.data || {}
  280. }
  281. })
  282. },
  283. }
  284. };
  285. </script>
  286. <style lang="scss" scoped>
  287. .bcjl {
  288. margin: 0 30px;
  289. line-height: 1.5;
  290. padding-bottom: 100px;
  291. .title {
  292. font-size: 24px;
  293. font-weight: bold;
  294. color: #2c3240;
  295. text-align: center;
  296. margin: 20px;
  297. }
  298. .mb10 {
  299. margin-bottom: 10px;
  300. }
  301. .mb20 {
  302. margin-bottom: 20px;
  303. }
  304. .mb40 {
  305. margin-bottom: 40px;
  306. }
  307. .mt80 {
  308. margin-top: 80px;
  309. }
  310. .mt30 {
  311. margin-top: 30px;
  312. }
  313. .pl76 {
  314. padding-left: 76px;
  315. }
  316. .fr {
  317. float: right;
  318. }
  319. .text-blod {
  320. font-weight: bold;
  321. }
  322. .info-header {
  323. padding: 20px 0;
  324. border-bottom: 1.5px solid #e2dfdf;
  325. }
  326. .header-main {
  327. padding: 20px 0;
  328. }
  329. .info-content {
  330. overflow: hidden;
  331. .date {
  332. font-weight: 600;
  333. }
  334. .content-title {
  335. font-weight: 600;
  336. }
  337. }
  338. }
  339. .bottom-time-top {
  340. margin-top: 30px;
  341. }
  342. .bottom-time-botom {
  343. margin-bottom: 30px;
  344. }
  345. .bottom-time {
  346. width: 100%;
  347. display: flex;
  348. justify-content: flex-start;
  349. align-items: center;
  350. margin-bottom: 10px;
  351. .bottom-time-bold {
  352. font-weight: bold;
  353. }
  354. .bottom-time-list {
  355. width: 50%;
  356. }
  357. }
  358. .cont-title-item {
  359. width: 100%;
  360. margin: 0 auto;
  361. display: flex;
  362. justify-content: flex-end;
  363. font-size: 16px;
  364. padding: 30px 0 10px 0;
  365. font-weight: 600;
  366. }
  367. </style>