Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

dialysisIndextwo.vue 32KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012
  1. <template>
  2. <div class="main-contain">
  3. <div
  4. class="loadingBox"
  5. v-loading="loading"
  6. element-loading-text="拼命加载中"
  7. element-loading-spinner="el-icon-loading"
  8. element-loading-background="rgba(0, 0, 0, 0.8)"
  9. v-if="dialysisShow"
  10. >
  11. <!-- -->
  12. <div style="padding-top: 56px;width:100%;" >
  13. <nav-igation
  14. ref="nav"
  15. title="弹窗导航"
  16. @advice="adviceFunc"
  17. :patient="patient"
  18. :schedual="schedual"
  19. :prescription="prescription"
  20. :solution="solution"
  21. :receiver_treatment_access="receiver_treatment_access"
  22. :predialysis_evaluation="predialysis_evaluation"
  23. :doctor_advices="doctor_advices"
  24. :double_check="double_check"
  25. :assessment_after_dislysis="assessment_after_dislysis"
  26. :treatment_summary="treatment_summary"
  27. :monitor_records="monitor_records"
  28. :dialysis_order="dialysis_order"
  29. :admin_users="admin_users"
  30. :devices="devices"
  31. :device_numbers="device_numbers"
  32. :admin_user_map="admin_user_map"
  33. :device_map="device_map"
  34. :device_number_map="device_number_map"
  35. :niprocart_info="niprocart_info"
  36. :jms_info="jms_info"
  37. :fistula_needle_set_info="fistula_needle_set_info"
  38. :fistula_needle_set_16_info="fistula_needle_set_16_info"
  39. :hemoperfusion_info="hemoperfusion_info"
  40. :dialyser_sterilised_info="dialyser_sterilised_info"
  41. :filtryzer_info="filtryzer_info"
  42. :dialyzers_info="dialyzers_info"
  43. :injector_info="injector_info"
  44. :bloodlines_info="bloodlines_info"
  45. :tubingHemodialysis_info="tubingHemodialysis_info"
  46. :safe_package_info="safe_package_info"
  47. :aliquid_info="aliquid_info"
  48. :config="config"
  49. :longAdvices="longAdvices"
  50. :waitUploadAdvices="waitUploadAdvices"
  51. :is_open="is_open"
  52. :last_predialysis_evaluation="lastPredialysisEvaluation"
  53. :last_monitor_record="lastMonitorRecord"
  54. :last_assessment_after_dislysis="lastAssessmentAfterDislysis"
  55. :last_dialysis_prescribe="lastDialysisPrescribe"
  56. :last_dryWeight_dislysis="lastDryWeightDislysis"
  57. :special_premission="headNurses"
  58. @assessmentAfterDislysis="assessmentAfterDislysisFunc"
  59. :system_prescribe="system_prescribe"
  60. :his_is_open="his_is_open"
  61. :is_advice_open="is_advice_open"
  62. :lastAssessment="lastAssessment"
  63. :stockType="stockType"
  64. :mode_id="mode_id"
  65. :record_date="date"
  66. >
  67. </nav-igation>
  68. <!-- <basic-infor
  69. :patient="patient"
  70. :device_number="schedual.id == 0 ? '' : schedual.device_number.number"
  71. :steps="steps"
  72. title="基本信息"
  73. ></basic-infor> -->
  74. <BasicInforTwo
  75. :patient="patient"
  76. :dialysis_date="dialysis_date"
  77. :device_number="schedual.id == 0 ? '' : schedual.device_number.number"
  78. :steps="steps"
  79. title="基本信息"
  80. >
  81. </BasicInforTwo>
  82. <dialysis-prescription
  83. :prescription="prescription"
  84. :solution="solution"
  85. :device_map="device_map"
  86. :preparestock="preparestock"
  87. title="透析处方"
  88. ></dialysis-prescription>
  89. <!-- <past-data class="往期数据"></past-data> -->
  90. <div style="height: 20px;background-color: #f6f8f9"></div>
  91. <accepts-assessment
  92. :record="receiver_treatment_access"
  93. title="接诊评估"
  94. ></accepts-assessment>
  95. <assessment-before
  96. :record="predialysis_evaluation"
  97. ref="assessment_before"
  98. title="透前评估"
  99. ></assessment-before>
  100. <stat-order
  101. ref="stat_order"
  102. :advices="doctor_advices"
  103. :doctor_map="admin_user_map"
  104. title="临时医嘱"
  105. ></stat-order>
  106. <double-check
  107. ref="double_check"
  108. :record="double_check"
  109. :admin_map="admin_user_map"
  110. title="双人核对 "
  111. ></double-check>
  112. <dialysis-computer
  113. ref="dialysis_computer"
  114. :record="dialysis_order"
  115. :admin_map="admin_user_map"
  116. :device_number_map="device_number_map"
  117. title="透析上机 "
  118. ></dialysis-computer>
  119. <dialysis-monitoring
  120. ref="monitoring"
  121. :monitores="monitor_records"
  122. title="透析监测"
  123. ></dialysis-monitoring>
  124. <dialysis-off
  125. ref="dialysis_off"
  126. :record="dialysis_order"
  127. :admin_map="admin_user_map"
  128. title="透析下机 "
  129. ></dialysis-off>
  130. <assessment-after
  131. ref="assessment_after"
  132. :record="assessment_after_dislysis"
  133. title="透后评估"
  134. ></assessment-after>
  135. <treatment-of
  136. ref="treatment_of"
  137. :record="treatment_summary"
  138. title="治疗小结"
  139. ></treatment-of>
  140. </div>
  141. </div>
  142. <div style="padding-top: 56px;width:100%;text-align:center;font-size:22px;color:red;" v-else>该患者未排班,请先去排班</div>
  143. </div>
  144. </template>
  145. <script>
  146. const moment = require('moment')
  147. import axios from 'axios'
  148. import NavIgation from '@/xt_pages/dialysis/details/NavIgation'
  149. import BasicInforTwo from '@/xt_pages/dialysis/details/BasicInforTwo'
  150. import DialysisPrescription from '@/xt_pages/dialysis/details/DialysisPrescription'
  151. import PastData from '@/xt_pages/dialysis/details/pastData'
  152. import AcceptsAssessment from '@/xt_pages/dialysis/details/acceptsAssessment'
  153. import AssessmentBefore from '@/xt_pages/dialysis/details/assessmentBefore'
  154. import StatOrder from '@/xt_pages/dialysis/details/statOrder'
  155. import DialysisComputer from '@/xt_pages/dialysis/details/dialysisComputer'
  156. import DoubleCheck from '@/xt_pages/dialysis/details/doubleCheck'
  157. import DialysisMonitoring from '@/xt_pages/dialysis/details/dialysisMonitoring'
  158. import DialysisOff from '@/xt_pages/dialysis/details/dialysisOff'
  159. import AssessmentAfter from '@/xt_pages/dialysis/details/assessmentAfter'
  160. import TreatmentOf from '@/xt_pages/dialysis/details/treatmentOf'
  161. import OperationStaff from '@/xt_pages/dialysis/details/operationStaff'
  162. import {
  163. getDialysisScheduleDetail,
  164. getLongAdvice,
  165. getDialysisRecordInitData,
  166. getDialysisSchedules
  167. } from '@/api/dialysis_record'
  168. import { parseTime } from '@/utils'
  169. import BreadCrumb from '@/xt_pages/components/bread-crumb'
  170. export default {
  171. name: 'index',
  172. components: {
  173. NavIgation,
  174. BasicInforTwo,
  175. DialysisPrescription,
  176. PastData,
  177. AcceptsAssessment,
  178. AssessmentBefore,
  179. StatOrder,
  180. DialysisComputer,
  181. DoubleCheck,
  182. DialysisMonitoring,
  183. DialysisOff,
  184. AssessmentAfter,
  185. TreatmentOf,
  186. OperationStaff,
  187. BreadCrumb
  188. },
  189. props:{
  190. record_date:String,
  191. patientid:Number,
  192. dialysisShow:Boolean,
  193. dialysis_date:String
  194. },
  195. data() {
  196. return {
  197. crumbs: [
  198. { path: false, name: '透析管理' },
  199. { path: false, name: '透析记录' },
  200. { path: false, name: '透析单' }
  201. ],
  202. dialogFormVisible: false,
  203. orders: false,
  204. loading: false,
  205. patient_id: 0,
  206. date: 0,
  207. dialysis_date:0,
  208. longAdvices: [],
  209. waitUploadAdvices: [],
  210. is_open: 0,
  211. targetAdvices: [],
  212. patient: { id: 0 }, // 患者信息
  213. schedual: { id: 0 }, // 患者排班信息
  214. prescription: { id: 0 }, // 透析处方
  215. solution: { id: 0 }, // 透析方案
  216. system_prescribe: { id: 0 },
  217. receiver_treatment_access: { id: 0 }, // 接诊评估
  218. predialysis_evaluation: { id: 0 }, // 透前评估
  219. doctor_advices: [], // 临时医嘱
  220. double_check: { id: 0 }, // 双人核对
  221. assessment_after_dislysis: { id: 0 }, // 透后评估
  222. treatment_summary: { id: 0 }, // 治疗小结
  223. monitor_records: [], // 透析监测
  224. dialysis_order: { id: 0 }, // 透析记录
  225. admin_users: [], // 系统用户列表
  226. devices: [], // 设备
  227. device_numbers: [], // 床位号
  228. admin_user_map: {}, // {user_id: admin_user object}
  229. device_map: {}, // {device_id: device}
  230. device_number_map: {}, // {device_number_id: device_number}
  231. niprocart_info: [],
  232. jms_info: [],
  233. fistula_needle_set_info: [],
  234. fistula_needle_set_16_info: [],
  235. hemoperfusion_info: [],
  236. dialyser_sterilised_info: [],
  237. filtryzer_info: [],
  238. dialyzers_info: [],
  239. injector_info: [],
  240. bloodlines_info: [],
  241. tubingHemodialysis_info: [],
  242. safe_package_info: [],
  243. aliquid_info: [],
  244. config: {},
  245. his_is_open:0,
  246. is_advice_open:0,
  247. lastPredialysisEvaluation: { id: 0 },
  248. lastMonitorRecord: { id: 0 },
  249. lastAssessmentAfterDislysis: { id: 0 },
  250. lastDryWeightDislysis: { id: 0 },
  251. lastAssessment:{id:0},
  252. headNurses: [],
  253. lastDialysisPrescribe: { id: 0 },
  254. //
  255. activeName: 'first',
  256. selected_date: new Date(),
  257. // search_input 和 search_keyword,使输入关键字时不会经常刷新 filtedSchedules
  258. search_keyword: '', // 确定用于搜索的关键字
  259. search_input: '', // 输入中的关键字
  260. patient_state: [
  261. { value: 0, label: '全部患者' },
  262. { value: 1, label: '已签到' },
  263. { value: 2, label: '未签到' },
  264. { value: 3, label: '已上机' },
  265. { value: 4, label: '已下机' }
  266. ],
  267. patientStateVal: 0,
  268. treat_state: [
  269. { value: 0, label: '全部治疗' },
  270. { value: 1, label: '待开处方' },
  271. { value: 2, label: '待开小结' },
  272. { value: 3, label: '待医嘱核对' },
  273. ],
  274. treatStateVal: 0,
  275. schedule_options: [
  276. { value: 0, label: '全部班' },
  277. { value: 1, label: '上午' },
  278. { value: 2, label: '下午' },
  279. { value: 3, label: '晚上' }
  280. ],
  281. scheduleStateVal: 0,
  282. zone_options: [
  283. { id: 0, text: '全部分区' }
  284. ],
  285. zoneVal: 0,
  286. tableData: [],
  287. tableData1: [],
  288. arr: [],
  289. newName: '',
  290. newTime: '',
  291. scheudle_mode:"",
  292. showView:false,
  293. curPatient:{},
  294. queueConfig:{},
  295. stockType:[],
  296. preparestock:[],
  297. dialysisShow:false,
  298. mode_id:1
  299. }
  300. },
  301. created() {
  302. var patient_id = this.patientid
  303. var date = this.record_date
  304. this.patient_id = patient_id
  305. this.date = date
  306. // var ymd = parseTime(new Date(), '{y}-{m}-{d}')
  307. getDialysisSchedules(this.date).then(rs => {
  308. var resp = rs.data
  309. if (resp.state == 1) {
  310. var schedules = resp.data.schedules
  311. let arr = []
  312. schedules.map(item => {
  313. if(item.patient_id == this.patient_id){
  314. arr.push(item.patient_id)
  315. console.log('item',item)
  316. this.mode_id = item.mode_id
  317. }
  318. })
  319. if(arr.length > 0){
  320. this.dialysisShow = true
  321. }else{
  322. this.dialysisShow = false
  323. }
  324. console.log('this.dialysisShowthis.dialysisShowthis.dialysisShow',this.dialysisShow)
  325. } else {
  326. this.$message.error(resp.msg)
  327. }
  328. })
  329. },
  330. mounted() {
  331. if(this.dialysisShow == true){
  332. this.getScheduleDetail()
  333. this.getLongAdvice()
  334. }
  335. },
  336. watch:{
  337. patientid:{
  338. handler(newVal){
  339. // var ymd = parseTime(new Date(), '{y}-{m}-{d}')
  340. getDialysisSchedules(this.record_date).then(rs => {
  341. var resp = rs.data
  342. if (resp.state == 1) {
  343. var schedules = resp.data.schedules
  344. let arr = []
  345. schedules.map(item => {
  346. if(item.patient_id == this.patient_id){
  347. arr.push(item.patient_id)
  348. this.mode_id = item.mode_id
  349. }
  350. })
  351. if(arr.length > 0){
  352. this.dialysisShow = true
  353. }else{
  354. this.dialysisShow = false
  355. }
  356. console.log('this.dialysisShowthis.dialysisShowthis.dialysisShow',this.dialysisShow)
  357. } else {
  358. this.$message.error(resp.msg)
  359. }
  360. })
  361. console.log('执行执行执行执行执行执行',this.dialysisShow)
  362. if(this.dialysisShow == true){
  363. console.log('执行')
  364. this.patient_id = newVal
  365. this.getScheduleDetail()
  366. this.getLongAdvice()
  367. }
  368. },
  369. deep:true
  370. },
  371. },
  372. computed: {
  373. websocket() {
  374. return this.$store.state.user.websocket;
  375. },
  376. steps: function() {
  377. var steps = [
  378. { title: '透析处方', finish: false },
  379. { title: '接诊评估', finish: false },
  380. { title: '透前评估', finish: false },
  381. { title: '临时医嘱', finish: false },
  382. { title: '双人核对', finish: false },
  383. { title: '透析上机', finish: false },
  384. { title: '透析监测', finish: false },
  385. { title: '透析下机', finish: false },
  386. { title: '透后评估', finish: false },
  387. { title: '治疗小结', finish: false }
  388. ]
  389. steps[0].finish = this.prescription.id && this.prescription.creater > 0
  390. steps[1].finish = this.receiver_treatment_access.id > 0
  391. steps[2].finish =
  392. this.predialysis_evaluation.id > 0 &&
  393. this.predialysis_evaluation.creater > 0
  394. steps[3].finish = this.doctor_advices.length > 0
  395. steps[5].finish = this.dialysis_order.id > 0
  396. steps[7].finish =
  397. this.dialysis_order.id > 0 && this.dialysis_order.stage == 2
  398. steps[4].finish =
  399. this.double_check.id > 0 &&
  400. this.double_check.creater > 0 &&
  401. this.double_check.modifier > 0
  402. steps[6].finish = this.monitor_records.length > 0
  403. steps[8].finish =
  404. this.assessment_after_dislysis.id > 0 &&
  405. this.assessment_after_dislysis.creater > 0
  406. steps[9].finish = this.treatment_summary.id > 0
  407. return steps
  408. },
  409. filtedSchedules: function() {
  410. var search_keyword = this.search_keyword
  411. if (search_keyword.length > 0) {
  412. var schedules = []
  413. for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
  414. const scheduleInfo = this.zone_schedules[o_i]
  415. var originSchedules = scheduleInfo.schedules
  416. if (originSchedules.length == 0) {
  417. continue
  418. }
  419. var filtedSchedules = []
  420. for (let s_i = 0; s_i < originSchedules.length; s_i++) {
  421. const schedule = originSchedules[s_i]
  422. if (schedule.patient.name.indexOf(search_keyword) != -1) {
  423. filtedSchedules.push(schedule)
  424. // break
  425. }
  426. }
  427. if (filtedSchedules.length > 0) {
  428. schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
  429. }
  430. }
  431. return schedules
  432. }
  433. // var zone_selected = this.zoneVal
  434. // var timetype_selected = this.scheduleStateVal
  435. // if ((zone_selected == 0 && timetype_selected == 0) || this.zone_options.length <= 1) {
  436. // var schedules = []
  437. // for (let index = 0; index < this.zone_schedules.length; index++) {
  438. // const scheduleInfo = this.zone_schedules[index]
  439. // if (scheduleInfo.schedules.length != 0) {
  440. // schedules.push(scheduleInfo)
  441. // }
  442. // }
  443. // return schedules
  444. // }
  445. // var schedules = []
  446. // for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
  447. // const scheduleInfo = this.zone_schedules[o_i]
  448. // if (zone_selected == scheduleInfo.zone_id && timetype_selected == 0) {
  449. // if (scheduleInfo.schedules.length == 0) {
  450. // return []
  451. // } else {
  452. // return [scheduleInfo]
  453. // }
  454. // }
  455. // var originSchedules = scheduleInfo.schedules
  456. // if (originSchedules.length == 0) {
  457. // continue
  458. // }
  459. // var filtedSchedules = []
  460. // for (let s_i = 0; s_i < originSchedules.length; s_i++) {
  461. // const schedule = originSchedules[s_i]
  462. // if (zone_selected != 0) {
  463. // if (zone_selected == schedule.device_number.zone.id) {
  464. // if (timetype_selected == 0 || schedule.schedule_type == timetype_selected) {
  465. // filtedSchedules.push(schedule)
  466. // }
  467. // }
  468. // } else {
  469. // if (timetype_selected == 0 || schedule.schedule_type == timetype_selected) {
  470. // filtedSchedules.push(schedule)
  471. // }
  472. // }
  473. // }
  474. // if (filtedSchedules.length > 0) {
  475. // schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
  476. // }
  477. // }
  478. // return schedules
  479. }
  480. },
  481. methods: {
  482. adviceFunc() {
  483. this.getScheduleDetail()
  484. },
  485. getLongAdvice() {
  486. const params = {
  487. patient_id: this.patient_id
  488. }
  489. getLongAdvice(params).then(rs => {
  490. var resp = rs.data
  491. if (resp.state == 1) {
  492. var status = parseInt(resp.data.status)
  493. switch (status) {
  494. case 2:
  495. var totalAdvice = resp.data.advices
  496. var longAdvicesTwo = resp.data.advices_two
  497. var waitUploadAdvices = []
  498. for (let i = 0; i < totalAdvice.length; i++) {
  499. totalAdvice[i]['isCheck'] = 1
  500. }
  501. for (let i = 0; i < totalAdvice.length; i++) {
  502. for (let a = 0; a < longAdvicesTwo.length; a++) {
  503. if (
  504. totalAdvice[i].template_id ==
  505. longAdvicesTwo[a].template_id &&
  506. totalAdvice[i].frequency_type ==
  507. longAdvicesTwo[a].frequency_type
  508. ) {
  509. totalAdvice[i]['isCheck'] = 0
  510. }
  511. }
  512. }
  513. for (let i = 0; i < totalAdvice.length; i++) {
  514. if (totalAdvice[i].isCheck == 1) {
  515. waitUploadAdvices.push(totalAdvice[i])
  516. }
  517. }
  518. this.is_open = resp.data.is_open_remind
  519. if(this.his_is_open == 1){
  520. this.is_open = 0
  521. }
  522. if(this.is_advice_open == 1){
  523. this.is_open =1
  524. }
  525. this.longAdvices = totalAdvice
  526. this.waitUploadAdvices = waitUploadAdvices
  527. break
  528. }
  529. } else {
  530. this.$message.error(resp.msg)
  531. }
  532. })
  533. },
  534. assessmentAfterDislysisFunc: function(val) {
  535. for (var index in val) {
  536. this.$set(this.assessment_after_dislysis, index, val[index])
  537. }
  538. },
  539. didDelMonitor(record_id) {
  540. var mrl = this.monitor_records.length
  541. for (let index = 0; index < mrl; index++) {
  542. if (this.monitor_records[index].id == record_id) {
  543. this.monitor_records.splice(index, 1)
  544. break
  545. }
  546. }
  547. },
  548. getScheduleDetail: function() {
  549. this.loading = true
  550. // var dateStr = parseTime(this.date, '{y}-{m}-{d}')
  551. // if(this.$route.query.showView == true){
  552. // this.loading = false
  553. // return
  554. // }
  555. console.log('this.patient_id',this.patient_id)
  556. console.log('this.date',this.date)
  557. this.doctor_advices = []
  558. getDialysisScheduleDetail(this.patient_id, this.date).then(rs => {
  559. var resp = rs.data
  560. if (resp.state == 1) {
  561. var patient = resp.data.patient // 患者信息
  562. var schedual = resp.data.schedual // 患者排班信息
  563. var prescription = resp.data.prescription // 透析处方
  564. if (prescription != null) {
  565. if (prescription.body_fluid == -2) {
  566. prescription.body_fluid = 0
  567. }
  568. }
  569. var solution = resp.data.solution // 透析方案
  570. var receiver_treatment_access = resp.data.receiver_treatment_access // 接诊评估
  571. var predialysis_evaluation = resp.data.predialysis_evaluation // 透前评估
  572. console.log("透器评估",predialysis_evaluation)
  573. if (predialysis_evaluation != null) {
  574. if (predialysis_evaluation.blood_access_part_id == -2) {
  575. predialysis_evaluation.blood_access_part_id = 0
  576. }
  577. }
  578. var doctor_advices = resp.data.doctor_advices // 临时医嘱
  579. var double_check = resp.data.double_check // 双人核对
  580. var assessment_after_dislysis = resp.data.assessment_after_dislysis // 透后评估
  581. var treatment_summary = resp.data.treatment_summary // 治疗小结
  582. var monitor_records = resp.data.monitor_records // 透析监测
  583. var dialysis_order = resp.data.dialysis_order // 透析记录
  584. var niprocart_info = resp.data.niprocart_info
  585. var jms_info = resp.data.jms_info
  586. var fistula_needle_set_info = resp.data.fistula_needle_set_info
  587. var fistula_needle_set_16_info = resp.data.fistula_needle_set_16_info
  588. var hemoperfusion_info = resp.data.hemoperfusion_info
  589. var dialyser_sterilised_info = resp.data.dialyser_sterilised_info
  590. var filtryzer_info = resp.data.filtryzer_info
  591. var dialyzers_info = resp.data.dialyzers_info
  592. var injector_info = resp.data.injector_info
  593. var bloodlines_info = resp.data.bloodlines_info
  594. var tubingHemodialysis_info = resp.data.tubingHemodialysis_info
  595. var safe_package_info = resp.data.safe_package_info
  596. var aliquid_info = resp.data.aliquid_info
  597. var lastPredialysisEvaluation = resp.data.lastPredialysisEvaluation
  598. if (lastPredialysisEvaluation != null) {
  599. if (lastPredialysisEvaluation.blood_access_part_id == -2) {
  600. lastPredialysisEvaluation.blood_access_part_id = 0
  601. }
  602. }
  603. var lastMonitorRecord = resp.data.lastMonitorRecord
  604. var lastAssessmentAfterDislysis = resp.data.lastAssessmentAfterDislysis
  605. var lastDialysisPrescribe = resp.data.lastDialysisPrescribe
  606. var lastDryWeightDislysis = resp.data.lastDryWeightDislysis
  607. var system_prescribe = resp.data.system_prescribe
  608. var lastAssessment = resp.data.lastAssessment
  609. // console.log("最后一次血管通路",lastAssessment)
  610. this.$refs.nav.setLastRecord(
  611. lastPredialysisEvaluation,
  612. lastMonitorRecord,
  613. lastAssessmentAfterDislysis,
  614. lastDialysisPrescribe,
  615. lastDryWeightDislysis,
  616. schedual,
  617. system_prescribe,
  618. lastAssessment,
  619. )
  620. var headNurses = resp.data.headNurse
  621. var config = resp.data.config
  622. this.lastPredialysisEvaluation = lastPredialysisEvaluation
  623. this.lastMonitorRecord = lastMonitorRecord
  624. this.lastAssessmentAfterDislysis = lastAssessmentAfterDislysis
  625. this.lastDialysisPrescribe = lastDialysisPrescribe
  626. this.lastDryWeightDislysis = lastDryWeightDislysis
  627. this.lastAssessment = lastAssessment
  628. this.headNurses = headNurses
  629. this.system_prescribe = system_prescribe
  630. this.niprocart_info = []
  631. this.jms_info = []
  632. this.fistula_needle_set_info = []
  633. this.fistula_needle_set_16_info = []
  634. this.hemoperfusion_info = []
  635. this.dialyser_sterilised_info = []
  636. this.filtryzer_info = []
  637. this.dialyzers_info = []
  638. this.injector_info = []
  639. this.bloodlines_info = []
  640. this.tubingHemodialysis_info = []
  641. this.safe_package_info = []
  642. this.aliquid_info = []
  643. this.niprocart_info = niprocart_info
  644. this.jms_info = jms_info
  645. this.fistula_needle_set_info = fistula_needle_set_info
  646. this.fistula_needle_set_16_info = fistula_needle_set_16_info
  647. this.hemoperfusion_info = hemoperfusion_info
  648. this.dialyser_sterilised_info = dialyser_sterilised_info
  649. this.filtryzer_info = filtryzer_info
  650. this.dialyzers_info = dialyzers_info
  651. this.injector_info = injector_info
  652. this.bloodlines_info = bloodlines_info
  653. this.tubingHemodialysis_info = tubingHemodialysis_info
  654. this.safe_package_info = safe_package_info
  655. this.aliquid_info = aliquid_info
  656. this.config = config
  657. this.patient = patient
  658. this.schedual = schedual == null ? { id: 0 } : schedual
  659. this.prescription = prescription == null ? { id: 0 } : prescription
  660. this.solution = solution == null ? { id: 0 } : solution
  661. this.receiver_treatment_access =
  662. receiver_treatment_access == null
  663. ? { id: 0 }
  664. : receiver_treatment_access
  665. this.predialysis_evaluation =
  666. predialysis_evaluation == null ? { id: 0 } : predialysis_evaluation
  667. this.doctor_advices = doctor_advices == null ? [] : doctor_advices
  668. this.double_check = double_check == null ? { id: 0 } : double_check
  669. this.assessment_after_dislysis =
  670. assessment_after_dislysis == null
  671. ? { id: 0 }
  672. : assessment_after_dislysis
  673. this.treatment_summary =
  674. treatment_summary == null ? { id: 0 } : treatment_summary
  675. this.monitor_records = monitor_records == null ? [] : monitor_records
  676. this.dialysis_order =
  677. dialysis_order == null ? { id: 0 } : dialysis_order
  678. this.admin_users = resp.data.doctors
  679. this.devices = resp.data.devices
  680. this.device_numbers = resp.data.device_numbers
  681. var his_doctor_advices = resp.data.his_advices
  682. this.his_is_open = resp.data.is_open_config.is_open
  683. console.log(this.his_is_open)
  684. this.is_advice_open = resp.data.is_advice_open.is_advice_open
  685. var stockType = resp.data.stockType
  686. this.stockType = stockType
  687. console.log("stockTYPW",stockType)
  688. var prepare = resp.data.prepare
  689. this.preparestock = prepare
  690. console.log("prepare222222",prepare)
  691. for (let i = 0; i < this.doctor_advices.length; i++){
  692. this.doctor_advices[i]['origin'] = 1
  693. }
  694. if (his_doctor_advices != null) {
  695. for (let i = 0; i < his_doctor_advices.length; i++) {
  696. his_doctor_advices[i]['origin'] = 2
  697. his_doctor_advices[i]['way'] = 1
  698. this.doctor_advices.push(his_doctor_advices[i])
  699. }
  700. }
  701. const obj = {}
  702. this.doctor_advices = this.doctor_advices.reduce((cur, next) => {
  703. obj[next.id] ? '' : obj[next.id] = true && cur.push(next)
  704. return cur
  705. }, []) // 设置cur默认类型为数组,并且初始值为空的数组
  706. console.log(this.doctor_advices)
  707. var device_map = {}
  708. for (let index = 0; index < this.devices.length; index++) {
  709. const device = this.devices[index]
  710. device_map[device.id] = device
  711. }
  712. this.device_map = device_map
  713. var admin_map = {}
  714. for (let index = 0; index < this.admin_users.length; index++) {
  715. const admin = this.admin_users[index]
  716. admin_map[admin.id] = admin
  717. }
  718. this.admin_user_map = admin_map
  719. var device_number_map = {}
  720. for (let index = 0; index < this.device_numbers.length; index++) {
  721. const device_number = this.device_numbers[index]
  722. device_number_map[device_number.id] = device_number
  723. }
  724. this.device_number_map = device_number_map
  725. } else {
  726. // this.$message.error(resp.msg)
  727. console.log("报错提示")
  728. this.$message.error("该患者今日未排班,无法使用此模块,请先排班!")
  729. }
  730. if (this.lastDialysisPrescribe != null) {
  731. delete this.lastDialysisPrescribe.target_ultrafiltration
  732. }
  733. if (this.solution != null) {
  734. delete this.solution.target_ultrafiltration
  735. }
  736. if(this.predialysis_evaluation.id > 0){
  737. this.newTime = parseTime(this.predialysis_evaluation.created_time, '{h}:{i}')
  738. // this.dialysis_date = parseTime(this.predialysis_evaluation.created_time, '{y}-{m}-{d}')
  739. }
  740. this.loading = false
  741. })
  742. },
  743. printOrder() {
  744. var xtdate = parseTime(this.date, '{y}-{m}-{d}')
  745. this.$router.push(
  746. '/dialysis/print?xtdate=' + xtdate + '&xtno=' + this.patient.dialysis_no+"&patient_id="+this.patient.id
  747. )
  748. },
  749. processedDialysisSchedules: function(schedules, zone_options) {
  750. var zoneMap = {}
  751. var scheduleMap = {}
  752. for (let z_i = 0; z_i < zone_options.length; z_i++) {
  753. const zone = zone_options[z_i]
  754. if (zone.id == 0) {
  755. continue
  756. }
  757. scheduleMap[zone.id] = []
  758. }
  759. for (let index = 0; index < schedules.length; index++) {
  760. const schedule = schedules[index]
  761. scheduleMap[schedule.device_number.zone.id].push(schedule)
  762. }
  763. var zone_schedules = []
  764. for (let index = 0; index < zone_options.length; index++) {
  765. const zone = zone_options[index]
  766. if (zone.id == 0) {
  767. continue
  768. }
  769. var schedules = scheduleMap[zone.id]
  770. zone_schedules.push({ zone_id: zone.id, zone_name: zone.text, schedules: schedules })
  771. }
  772. return zone_schedules
  773. },
  774. getTime(date){
  775. date = new Date(date * 1000)
  776. var Y = date.getFullYear() + '-';
  777. var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1);
  778. var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate());
  779. var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours());
  780. var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes());
  781. var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds());
  782. let strDate = h + ':' + m;
  783. return strDate;
  784. },
  785. getDates(time){
  786. return moment(time * 1000).format('HH:mm:ss')
  787. }
  788. }
  789. }
  790. </script>
  791. <style style="stylesheet/scss" lang="scss" scoped>
  792. .details-bg {
  793. background: #fff;
  794. margin: 0 15px;
  795. }
  796. .printForm {
  797. .title {
  798. font-size: 30px;
  799. font-weight: 500;
  800. text-align: center;
  801. line-height: 60px;
  802. }
  803. .info {
  804. ul {
  805. display: -webkit-box;
  806. display: -moz-box;
  807. display: -ms-flexbox;
  808. display: -webkit-flex;
  809. display: flex;
  810. align-items: center;
  811. -moz-box-sizing: border-box;
  812. -webkit-box-sizing: border-box;
  813. -o-box-sizing: border-box;
  814. -ms-box-sizing: border-box;
  815. box-sizing: border-box;
  816. -webkit-justify-content: space-around;
  817. -moz-justify-content: space-around;
  818. -ms-justify-content: space-around;
  819. -o-justify-content: space-around;
  820. justify-content: space-around;
  821. li {
  822. display: flex;
  823. box-sizing: border-box;
  824. justify-content: space-around;
  825. .name {
  826. }
  827. .InputBox {
  828. padding: 0;
  829. border: none;
  830. border-bottom: 1px #e5e5e5 solid;
  831. width: 60px;
  832. outline: none;
  833. }
  834. }
  835. }
  836. }
  837. .printTable {
  838. tr {
  839. padding: 2px;
  840. th {
  841. padding: 6px 4px;
  842. }
  843. td {
  844. padding: 6px 4px;
  845. }
  846. }
  847. }
  848. }
  849. .loadingBox{
  850. display: flex;
  851. .patientBox{
  852. background: #fff;
  853. }
  854. .tip1{
  855. background: #4fc7cb;
  856. border-radius: 5px;
  857. text-align: center;
  858. font-size: 12px;
  859. display: inline-block;
  860. width: 60px;
  861. color: #fff;
  862. }
  863. .tip2{
  864. background: #ee8556;
  865. border-radius: 5px;
  866. text-align: center;
  867. font-size: 12px;
  868. display: inline-block;
  869. width: 60px;
  870. color: #fff;
  871. }
  872. .tip3{
  873. background: #409eff;
  874. border-radius: 5px;
  875. text-align: center;
  876. font-size: 12px;
  877. display: inline-block;
  878. width: 60px;
  879. color: #fff;
  880. }
  881. .tip4{
  882. background: #a8b3ba;
  883. border-radius: 5px;
  884. text-align: center;
  885. font-size: 12px;
  886. display: inline-block;
  887. width: 60px;
  888. color: #fff;
  889. }
  890. .tip5{
  891. background: #7bce91;
  892. border-radius: 5px;
  893. text-align: center;
  894. font-size: 12px;
  895. display: inline-block;
  896. width: 60px;
  897. color: #fff;
  898. }
  899. }
  900. </style>
  901. <style lang="scss">
  902. .loadingBox{
  903. .el-loading-spinner{
  904. top:10%;
  905. }
  906. .el-button--small, .el-button--small.is-round{
  907. padding:9px 10px;
  908. }
  909. .el-date-editor{
  910. .el-input__inner{
  911. padding-right:0px;
  912. }
  913. }
  914. .el-table td, .el-table th{
  915. text-align: center;
  916. }
  917. .el-table .cell{
  918. padding: 0;
  919. }
  920. }
  921. </style>