See999 3 years ago
parent
commit
95deaa656c

+ 245 - 49
src/xt_pages/upload/fast/FastProvince.vue View File

@@ -52,7 +52,7 @@
52 52
     </div>
53 53
     
54 54
     <div style="flex:1">
55
-      <el-container class="newContainer">
55
+      <div class="newContainer">
56 56
         <div style="width:270px">
57 57
             <div class="tableTitle">患者列表</div>
58 58
             <div class="cell clearfix" style="margin-bottom:10px;">
@@ -122,12 +122,14 @@
122 122
             </el-table>
123 123
           </div>
124 124
         </div>
125
-        <basic-info v-if="wayType == 0"></basic-info>
126
-        <treat-info v-if="wayType == 1"></treat-info>
127
-        <dialysis-params v-if="wayType == 2"></dialysis-params>
128
-        <dialysis-summary v-if="wayType == 3"></dialysis-summary>
129
-        <rescue-record v-if="wayType == 4"></rescue-record>
130
-      </el-container>
125
+        <div style="flex:1;width:0;">
126
+          <basic-info v-if="wayType == 0" :patient='patient'></basic-info>
127
+          <treat-info v-if="wayType == 1" :patient='patient' :prescription='prescription' :predialysis_evaluation='predialysis_evaluation' :assessment_after_dislysis='assessment_after_dislysis' :monitor_records='monitor_records' :admin_users='admin_users' :dialysis_order="dialysis_order" :double_check="double_check" :selected_date='selected_date'></treat-info>
128
+          <dialysis-params v-if="wayType == 2" :prescription='prescription' :doctor_advices='doctor_advices' :monitor_records='monitor_records' :patient='patient'></dialysis-params>
129
+          <dialysis-summary v-if="wayType == 3" :treatment_summary='treatment_summary' :patient='patient'></dialysis-summary>
130
+          <rescue-record v-if="wayType == 4" :doctor_advices='doctor_advices' :patient='patient' :prescription='prescription'></rescue-record>
131
+        </div>
132
+      </div>
131 133
     </div>
132 134
     
133 135
 
@@ -145,7 +147,8 @@
145 147
 
146 148
   import {
147 149
   getDialysisRecordInitData,
148
-  getDialysisSchedules
150
+  getDialysisSchedules,
151
+  getDialysisScheduleDetail,
149 152
 } from "@/api/dialysis_record";
150 153
 import { parseTime } from "@/utils";
151 154
 
@@ -217,6 +220,49 @@ import { parseTime } from "@/utils";
217 220
         ],
218 221
         zoneVal:0,
219 222
 
223
+        patient: { id: 0 }, // 患者信息
224
+        schedual: { id: 0 }, // 患者排班信息
225
+        prescription: { id: 0 }, // 透析处方
226
+        solution: { id: 0 }, // 透析方案
227
+        system_prescribe: { id: 0 },
228
+        receiver_treatment_access: { id: 0 }, // 接诊评估
229
+        predialysis_evaluation: { id: 0 }, // 透前评估
230
+        doctor_advices: [], // 临时医嘱
231
+        double_check: { id: 0 }, // 双人核对
232
+        assessment_after_dislysis: { id: 0 }, // 透后评估
233
+        treatment_summary: { id: 0 }, // 治疗小结
234
+        monitor_records: [], // 透析监测
235
+        dialysis_order: { id: 0 }, // 透析记录
236
+        admin_users: [], // 系统用户列表
237
+        devices: [], // 设备
238
+        device_numbers: [], // 床位号
239
+
240
+        admin_user_map: {}, // {user_id: admin_user object}
241
+        device_map: {}, // {device_id: device}
242
+        device_number_map: {}, // {device_number_id: device_number}
243
+
244
+        niprocart_info: [],
245
+        jms_info: [],
246
+        fistula_needle_set_info: [],
247
+        fistula_needle_set_16_info: [],
248
+        hemoperfusion_info: [],
249
+        dialyser_sterilised_info: [],
250
+        filtryzer_info: [],
251
+        dialyzers_info: [],
252
+        injector_info: [],
253
+        bloodlines_info: [],
254
+        tubingHemodialysis_info: [],
255
+        safe_package_info: [],
256
+        aliquid_info: [],
257
+        config: {},
258
+
259
+        lastPredialysisEvaluation: { id: 0 },
260
+        lastMonitorRecord: { id: 0 },
261
+        lastAssessmentAfterDislysis: { id: 0 },
262
+        lastDryWeightDislysis: { id: 0 },
263
+        headNurses: [],
264
+        lastDialysisPrescribe: { id: 0 },
265
+
220 266
       }
221 267
     }, 
222 268
     computed:{
@@ -256,8 +302,8 @@ import { parseTime } from "@/utils";
256 302
       }
257 303
       
258 304
 
259
-      this.getInitData();
260
-
305
+      this.getInitData()
306
+      
261 307
     }, methods: {
262 308
       getDistricts: function() {
263 309
         GetDistrictsByUpid({ id: 0 }).then(response => {
@@ -309,24 +355,30 @@ import { parseTime } from "@/utils";
309 355
         },
310 356
         //初始化数据
311 357
         getInitData: function() {
312
-            getDialysisRecordInitData().then(rs => {
313
-                var resp = rs.data
314
-                if (resp.state == 1) {
315
-                var zones = resp.data.zones
316
-                var schedules = resp.data.schedules
317
-                var zone_options = [{ id: 0, text: '全部' }]
318
-                for (let z_i = 0; z_i < zones.length; z_i++) {
319
-                    const zone = zones[z_i]
320
-                    zone_options.push({ id: zone.id, text: zone.name })
321
-                }
322
-                this.zone_options = zone_options
323
-                this.zone_schedules = this.processedDialysisSchedules(schedules, this.zone_options)
324
-                this.arr = this.processedDialysisSchedules(schedules, this.zone_options)
325
-                this.getData()
326
-                } else {
327
-                this.$message.error(resp.msg)
328
-                }
329
-            })
358
+          getDialysisRecordInitData().then(rs => {
359
+            var resp = rs.data
360
+            if (resp.state == 1) {
361
+            var zones = resp.data.zones
362
+            var schedules = resp.data.schedules
363
+            var zone_options = [{ id: 0, text: '全部' }]
364
+            for (let z_i = 0; z_i < zones.length; z_i++) {
365
+                const zone = zones[z_i]
366
+                zone_options.push({ id: zone.id, text: zone.name })
367
+            }
368
+            this.zone_options = zone_options
369
+            this.zone_schedules = this.processedDialysisSchedules(schedules, this.zone_options)
370
+            this.arr = this.processedDialysisSchedules(schedules, this.zone_options)
371
+            this.getData()
372
+            setTimeout(()=>{
373
+              this.$refs.tab.setCurrentRow(this.tableData[0]);
374
+            },10)
375
+            let id = this.tableData[0].patient_id
376
+            let date = this.tableData[0].schedule_date
377
+            this.getScheduleDetail(id,date);
378
+            } else {
379
+              this.$message.error(resp.msg)
380
+            }
381
+          })
330 382
         },
331 383
         // 班次
332 384
         handletimeType: function(index) {
@@ -414,22 +466,9 @@ import { parseTime } from "@/utils";
414 466
             })
415 467
         },
416 468
         changePatient(schedual){
417
-            //   console.log(schedual)
418
-            //   this.patient_id = schedual.patient_id;
419
-            //   this.date = schedual.schedule_date;
420
-            //   // this.getScheduleDetail();
421
-            //   // this.getLongAdvice();
422
-            
423
-            //   var patient_id = schedual.patient_id;
424
-            //   var date = schedual.schedule_date;
425
-            //   this.$router.push({
426
-            //     path: "/dialysis/details",
427
-            //     query: {
428
-            //       patient_id: patient_id,
429
-            //       date: date,
430
-            //       patient_name: schedual.patient.name
431
-            //     }
432
-            //   });
469
+          let id = schedual.patient_id
470
+          let date = schedual.schedule_date
471
+          this.getScheduleDetail(id,date);
433 472
         },
434 473
         getData(){
435 474
             let patientArr = []
@@ -564,13 +603,169 @@ import { parseTime } from "@/utils";
564 603
             this.tableData = newArr
565 604
             console.log('table',this.tableData)
566 605
         },
606
+        getScheduleDetail: function(id,date) {
607
+          var dateStr = parseTime(date, '{y}-{m}-{d}')
608
+          this.doctor_advices = []
609
+          getDialysisScheduleDetail(id, dateStr).then(rs => {
610
+            var resp = rs.data
611
+            if (resp.state == 1) {
612
+              var patient = resp.data.patient // 患者信息
613
+              var schedual = resp.data.schedual // 患者排班信息
614
+              var prescription = resp.data.prescription // 透析处方
615
+              if (prescription != null) {
616
+                if (prescription.body_fluid == -2) {
617
+                  prescription.body_fluid = 0
618
+                }
619
+
620
+              }
621
+              console.log('透析处方', prescription)
622
+              var solution = resp.data.solution // 透析方案
623
+              var receiver_treatment_access = resp.data.receiver_treatment_access // 接诊评估
624
+              console.log('receiver_treatment_access', receiver_treatment_access)
625
+              var predialysis_evaluation = resp.data.predialysis_evaluation // 透前评估
626
+              console.log('透前评估', predialysis_evaluation)
627
+              if (predialysis_evaluation != null) {
628
+                if (predialysis_evaluation.blood_access_part_id == -2) {
629
+                  predialysis_evaluation.blood_access_part_id = 0
630
+                }
631
+              }
632
+              var doctor_advices = resp.data.doctor_advices // 临时医嘱
633
+              // console.log("力气-------", doctor_advices);
634
+              var double_check = resp.data.double_check // 双人核对
635
+              var assessment_after_dislysis = resp.data.assessment_after_dislysis // 透后评估
636
+              // console.log("透后品谷数", assessment_after_dislysis);
637
+              var treatment_summary = resp.data.treatment_summary // 治疗小结
638
+              var monitor_records = resp.data.monitor_records // 透析监测
639
+              var dialysis_order = resp.data.dialysis_order // 透析记录
640
+
641
+              var niprocart_info = resp.data.niprocart_info
642
+              var jms_info = resp.data.jms_info
643
+              var fistula_needle_set_info = resp.data.fistula_needle_set_info
644
+              var fistula_needle_set_16_info = resp.data.fistula_needle_set_16_info
645
+              var hemoperfusion_info = resp.data.hemoperfusion_info
646
+              var dialyser_sterilised_info = resp.data.dialyser_sterilised_info
647
+              var filtryzer_info = resp.data.filtryzer_info
648
+              var dialyzers_info = resp.data.dialyzers_info
649
+              var injector_info = resp.data.injector_info
650
+              var bloodlines_info = resp.data.bloodlines_info
651
+              var tubingHemodialysis_info = resp.data.tubingHemodialysis_info
652
+              var safe_package_info = resp.data.safe_package_info
653
+              var aliquid_info = resp.data.aliquid_info
654
+
655
+              var lastPredialysisEvaluation = resp.data.lastPredialysisEvaluation
656
+              console.log('上次透前评估', lastPredialysisEvaluation)
657
+              if (lastPredialysisEvaluation != null) {
658
+                if (lastPredialysisEvaluation.blood_access_part_id == -2) {
659
+                  lastPredialysisEvaluation.blood_access_part_id = 0
660
+                }
661
+              }
662
+              var lastMonitorRecord = resp.data.lastMonitorRecord
663
+              var lastAssessmentAfterDislysis =
664
+                resp.data.lastAssessmentAfterDislysis
665
+              var lastDialysisPrescribe = resp.data.lastDialysisPrescribe
666
+              var lastDryWeightDislysis = resp.data.lastDryWeightDislysis
667
+
668
+              var system_prescribe = resp.data.system_prescribe
669
+
670
+              // this.$refs.nav.setLastRecord(
671
+              //   lastPredialysisEvaluation,
672
+              //   lastMonitorRecord,
673
+              //   lastAssessmentAfterDislysis,
674
+              //   lastDialysisPrescribe,
675
+              //   lastDryWeightDislysis,
676
+              //   schedual,
677
+              //   system_prescribe
678
+              // )
679
+              
680
+
681
+              var headNurses = resp.data.headNurse
682
+
683
+              var config = resp.data.config
684
+              this.lastPredialysisEvaluation = lastPredialysisEvaluation
685
+              this.lastMonitorRecord = lastMonitorRecord
686
+              this.lastAssessmentAfterDislysis = lastAssessmentAfterDislysis
687
+              this.lastDialysisPrescribe = lastDialysisPrescribe
688
+              this.lastDryWeightDislysis = lastDryWeightDislysis
689
+              this.headNurses = headNurses
690
+              this.system_prescribe = system_prescribe
691
+
692
+              this.niprocart_info = niprocart_info
693
+              this.jms_info = jms_info
694
+              this.fistula_needle_set_info = fistula_needle_set_info
695
+              this.fistula_needle_set_16_info = fistula_needle_set_16_info
696
+              this.hemoperfusion_info = hemoperfusion_info
697
+              this.dialyser_sterilised_info = dialyser_sterilised_info
698
+              this.filtryzer_info = filtryzer_info
699
+              this.dialyzers_info = dialyzers_info
700
+              this.injector_info = injector_info
701
+              this.bloodlines_info = bloodlines_info
702
+              this.tubingHemodialysis_info = tubingHemodialysis_info
703
+              this.safe_package_info = safe_package_info
704
+              this.aliquid_info = aliquid_info
705
+              this.config = config
706
+
707
+              this.patient = patient
708
+              this.schedual = schedual == null ? { id: 0 } : schedual
709
+              this.prescription = prescription == null ? { id: 0 } : prescription
710
+              this.solution = solution == null ? { id: 0 } : solution
711
+              this.receiver_treatment_access =
712
+                receiver_treatment_access == null
713
+                  ? { id: 0 }
714
+                  : receiver_treatment_access
715
+              this.predialysis_evaluation =
716
+                predialysis_evaluation == null ? { id: 0 } : predialysis_evaluation
717
+              this.doctor_advices = doctor_advices == null ? [] : doctor_advices
718
+              this.double_check = double_check == null ? { id: 0 } : double_check
719
+              this.assessment_after_dislysis =
720
+                assessment_after_dislysis == null
721
+                  ? { id: 0 }
722
+                  : assessment_after_dislysis
723
+              this.treatment_summary =
724
+                treatment_summary == null ? { id: 0 } : treatment_summary
725
+              this.monitor_records = monitor_records == null ? [] : monitor_records
726
+              this.dialysis_order =
727
+                dialysis_order == null ? { id: 0 } : dialysis_order
728
+
729
+              // this.$refs.stat_order.setAdvices(this.doctor_advices)
730
+              // this.$refs.monitoring.setRecords(this.monitor_records)
567 731
 
732
+              this.admin_users = resp.data.doctors
733
+              this.devices = resp.data.devices
734
+              this.device_numbers = resp.data.device_numbers
735
+
736
+              var device_map = {}
737
+              for (let index = 0; index < this.devices.length; index++) {
738
+                const device = this.devices[index]
739
+                device_map[device.id] = device
740
+              }
741
+              this.device_map = device_map
742
+
743
+              var admin_map = {}
744
+              for (let index = 0; index < this.admin_users.length; index++) {
745
+                const admin = this.admin_users[index]
746
+                admin_map[admin.id] = admin
747
+              }
748
+              this.admin_user_map = admin_map
749
+
750
+              var device_number_map = {}
751
+              for (let index = 0; index < this.device_numbers.length; index++) {
752
+                const device_number = this.device_numbers[index]
753
+                device_number_map[device_number.id] = device_number
754
+              }
755
+              this.device_number_map = device_number_map
756
+            } else {
757
+              this.$message.error(resp.msg)
758
+            }
759
+
760
+            if (this.lastDialysisPrescribe != null) {
761
+              delete this.lastDialysisPrescribe.target_ultrafiltration
762
+            }
763
+            if (this.solution != null) {
764
+              delete this.solution.target_ultrafiltration
765
+            }
766
+          })
767
+        },
568 768
     },
569
-    mounted(){
570
-      setTimeout(()=>{
571
-        this.$refs.tab.setCurrentRow(this.tableData[0]);
572
-      },10)
573
-    }
574 769
   }
575 770
 </script>
576 771
 
@@ -599,6 +794,7 @@ import { parseTime } from "@/utils";
599 794
   // }
600 795
 }
601 796
 .newContainer{
797
+  display: flex;
602 798
     .el-date-editor{
603 799
         .el-input__inner{
604 800
             padding-right:0px;

+ 139 - 30
src/xt_pages/upload/fast/basicInfo.vue View File

@@ -1,73 +1,72 @@
1 1
 <template>
2
-    
3 2
         <div class="page_basicInfo">
4 3
             <div class="basicOne">
5 4
                 <p class="basicLable">患者姓名:</p>
6
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
7
-                <el-button type="primary">复制</el-button>
5
+                <el-input placeholder="请输入内容" v-model="form.name" :disabled="true"></el-input>
6
+                <el-button type="primary" v-clipboard:copy="form.name" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
8 7
             </div>
9 8
             <div class="basicOne">
10 9
                 <p class="basicLable">透析编号:</p>
11
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
12
-                <el-button type="primary">复制</el-button>
10
+                <el-input placeholder="请输入内容" v-model="form.dialysis_no" :disabled="true"></el-input>
11
+                <el-button type="primary" v-clipboard:copy="form.dialysis_no" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
13 12
             </div>
14 13
             <div class="basicOne">
15 14
                 <p class="basicLable">证件类型:</p>
16
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
15
+                <el-input placeholder="请输入内容" v-model="form.type" :disabled="true"></el-input>
17 16
             </div>
18 17
             <div class="basicOne">
19 18
                 <p class="basicLable">证件号码:</p>
20
-                <el-input style="width:190px;" placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
21
-                <el-button type="primary">复制</el-button>
19
+                <el-input style="width:190px;" placeholder="请输入内容" v-model="form.id_card_no" :disabled="true"></el-input>
20
+                <el-button type="primary" v-clipboard:copy="form.id_card_no" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
22 21
             </div>
23 22
             <div class="basicOne">
24 23
                 <p class="basicLable">首次透析时间:</p>
25
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
26
-                <el-button type="primary">复制</el-button>
24
+                <el-input placeholder="请输入内容" v-model="form.first_dialysis_date" :disabled="true"></el-input>
25
+                <el-button type="primary" v-clipboard:copy="form.first_dialysis_date" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
27 26
             </div>
28 27
             <div class="basicOne">
29 28
                 <p class="basicLable">性别:</p>
30
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
29
+                <el-input placeholder="请输入内容" v-model="form.gender" :disabled="true"></el-input>
31 30
             </div>
32 31
             <div class="basicOne">
33 32
                 <p class="basicLable">生日:</p>
34
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
35
-                <el-button type="primary">复制</el-button>
33
+                <el-input placeholder="请输入内容" v-model="form.birthday" :disabled="true"></el-input>
34
+                <el-button type="primary" v-clipboard:copy="form.birthday" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
36 35
             </div>
37 36
             <div class="basicOne">
38 37
                 <p class="basicLable">工作:</p>
39
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
38
+                <el-input placeholder="请输入内容" v-model="form.work_unit" :disabled="true"></el-input>
40 39
             </div>
41 40
             <div class="basicOne">
42 41
                 <p class="basicLable">婚姻:</p>
43
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
42
+                <el-input placeholder="请输入内容" v-model="form.marital_status" :disabled="true"></el-input>
44 43
             </div>
45 44
             <div class="basicOne">
46 45
                 <p class="basicLable">学历:</p>
47
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
46
+                <el-input placeholder="请输入内容" v-model="form.education_level" :disabled="true"></el-input>
48 47
             </div>
49 48
             <div class="basicOne">
50 49
                 <p class="basicLable">民族:</p>
51
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
50
+                <el-input placeholder="请输入内容" v-model="form.nation" :disabled="true"></el-input>
52 51
             </div>
53 52
             <div class="basicOne">
54 53
                 <p class="basicLable">工作电话:</p>
55
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
56
-                <el-button type="primary">复制</el-button>
54
+                <el-input placeholder="请输入内容" v-model="form.relative_phone" :disabled="true"></el-input>
55
+                <el-button type="primary" v-clipboard:copy="form.relative_phone" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
57 56
             </div>
58 57
             <div class="basicOne">
59 58
                 <p class="basicLable">家庭地址:</p>
60
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
61
-                <el-button type="primary">复制</el-button>
59
+                <el-input placeholder="请输入内容" v-model="form.home_address" :disabled="true"></el-input>
60
+                <el-button type="primary" v-clipboard:copy="form.home_address" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
62 61
             </div>
63 62
             <div class="basicOne">
64 63
                 <p class="basicLable">医保类型:</p>
65
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
64
+                <el-input placeholder="请输入内容" v-model="form.reimbursement_way_id" :disabled="true"></el-input>
66 65
             </div>
67 66
             <div class="basicOne">
68 67
                 <p class="basicLable">联系电话:</p>
69
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
70
-                <el-button type="primary">复制</el-button>
68
+                <el-input placeholder="请输入内容" v-model="form.phone" :disabled="true"></el-input>
69
+                <el-button type="primary" v-clipboard:copy="form.phone" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
71 70
             </div>
72 71
             <div class="basicOne">
73 72
                 <p class="basicLable">姓名输入码:</p>
@@ -79,26 +78,136 @@
79 78
             </div>
80 79
             <div class="basicOne">
81 80
                 <p class="basicLable">传染病检查结果:</p>
82
-                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
83
-                <el-button type="primary">复制</el-button>
81
+                <el-input placeholder="请输入内容" v-model="form.is_infectious" :disabled="true"></el-input>
82
+                <el-button type="primary" v-clipboard:copy="form.is_infectious" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
84 83
             </div>
85 84
         </div>
86 85
 </template>
87 86
 
88 87
 <script>
89
-
88
+import { parseTime } from "@/utils";
89
+import { getDataConfig } from "@/utils/data";
90
+import { isNumber } from 'util';
90 91
 export default {
92
+    props:{
93
+        patient:Object
94
+    },
91 95
     data(){
92 96
       return{
93 97
         input:'',
94
-        
98
+        form:{
99
+            name:'',
100
+            dialysis_no:'',
101
+            type:'身份证',
102
+            id_card_no:'',
103
+            first_dialysis_date:'',
104
+            gender:'',
105
+            birthday:'',
106
+            work_unit:'',
107
+            marital_status:'',
108
+            education_level:'',
109
+            nation:'',
110
+            relative_phone:'',
111
+            home_address:'',
112
+            reimbursement_way_id:'',
113
+            phone:'',
114
+            is_infectious:''
115
+        },
116
+        educationOptions:[],
117
+        wayOptions:[]
95 118
       }
96 119
     },
97 120
     created(){
98
-        
121
+        console.log('patient',this.patient)
122
+        this.form = this.patient
123
+        this.getUpdate()
99 124
     },
100 125
     methods:{
101
-        
126
+        getEducation(id){
127
+            this.educationOptions = getDataConfig("patient", "education_types")
128
+            let name = ''
129
+            this.educationOptions.map(item => {
130
+                if(item.id == id){
131
+                    name = item.name
132
+                }
133
+            })
134
+           
135
+            return name
136
+        },
137
+        getReimbursement(id){
138
+            this.wayOptions = getDataConfig("patient", "reimbursement_ways")
139
+            let name = ''
140
+            this.wayOptions.map(item => {
141
+                if(item.id == id){
142
+                    name = item.name
143
+                     
144
+                }
145
+            })
146
+            return name
147
+        },
148
+        getUpdate(){
149
+            this.$set(this.form, 'type', '身份证')
150
+            this.$forceUpdate()
151
+            if(isNumber(this.form.first_dialysis_date)){
152
+                this.form.first_dialysis_date = parseTime(this.form.first_dialysis_date, '{y}-{m}-{d}')
153
+            }
154
+            
155
+            if(this.form.gender == 1){
156
+                this.form.gender = '男'
157
+            }else if(this.form.gender == 2){
158
+                this.form.gender = '女'
159
+            }else if(this.form.gender == 0){
160
+                this.form.gender = ''
161
+            }
162
+            if(isNumber(this.form.birthday)){
163
+                this.form.birthday = parseTime(this.form.birthday, '{y}-{m}-{d}')
164
+            }
165
+            
166
+            if(this.form.marital_status == 1){
167
+                this.form.marital_status = '未婚'
168
+            }else if(this.form.marital_status == 2){
169
+                this.form.marital_status = '已婚'
170
+            }else if(this.form.marital_status == 3){
171
+                this.form.marital_status = '离异'
172
+            }else if(this.form.marital_status == 0){
173
+                this.form.marital_status = ''
174
+            }
175
+            if(isNumber(this.form.education_level)){
176
+                if(this.form.education_level == 0){
177
+                    this.form.education_level = ''
178
+                }else{
179
+                    this.form.education_level = this.getEducation(this.form.education_level)
180
+                }
181
+            }
182
+            if(isNumber(this.form.reimbursement_way_id)){
183
+                if(this.form.reimbursement_way_id == 0){
184
+                    this.form.reimbursement_way_id = ''
185
+                }else{
186
+                    this.form.reimbursement_way_id = this.getReimbursement(this.form.reimbursement_way_id)
187
+                }
188
+            }
189
+            
190
+        },
191
+        onCopy() {
192
+            this.$message.success("复制成功");
193
+        },
194
+        onError() {
195
+            this.$message.success("复制失败,请重试");
196
+        }
197
+    },
198
+    watch:{
199
+        patient:{
200
+            handler:function(val) {
201
+                console.log(1111111111111,val)
202
+                Object.keys(val).map((item,index) => {
203
+                    this.$set(this.form, item, val[item])
204
+                    this.$forceUpdate()
205
+                })
206
+                this.getUpdate()
207
+            }
208
+        },
209
+        // immediate:true,
210
+        deep:true,
102 211
     }
103 212
 }
104 213
 </script>

+ 375 - 75
src/xt_pages/upload/fast/dialysisParams.vue View File

@@ -1,83 +1,177 @@
1 1
 <template>
2
-        <div class="page_dialysisParams">
3
-            <div class="cell clearfix" style="margin-top:40px;margin-left:70px;">
4
-                <label class="title">
5
-                    <span class="name">治疗日期</span> :
6
-                </label>
7
-                <div class="time">
8
-                    <ul class>
9
-                    <li
10
-                        :class="item.state == dayType ? 'active' : ''"
11
-                        @click="chooseDay(item.state)"
12
-                        v-for="item in day"
13
-                        :key="item.value"
14
-                    >{{ item.label }}</li>
15
-                    </ul>
16
-                </div>
17
-                <el-date-picker
18
-                    v-model="time"
19
-                    prefix-icon="el-icon-date"
20
-                    @change="changeTime"
21
-                    :editable="false"
22
-                    style="width: 150px;"
23
-                    type="date"
24
-                    placeholder="选择日期时间"
25
-                    align="right"
26
-                    format="yyyy-MM-dd"
27
-                    value-format="yyyy-MM-dd"
28
-                ></el-date-picker>
29
-                <label class="title" style="margin-left:10px;">
30
-                    <span class="name">患者信息</span> :
31
-                </label>
32
-                <div class="infoBox">
33
-                    <span>姓名:前蛮子</span>&nbsp;|&nbsp;<span>透析编号:001</span>
34
-                </div>
2
+    <div class="page_dialysisParams">
3
+        <div class="cell clearfix" style="margin-top:40px;margin-left:70px;">
4
+            <!-- <label class="title">
5
+                <span class="name">治疗日期</span> :
6
+            </label>
7
+            <div class="time">
8
+                <ul class>
9
+                <li
10
+                    :class="item.state == dayType ? 'active' : ''"
11
+                    @click="chooseDay(item.state)"
12
+                    v-for="item in day"
13
+                    :key="item.value"
14
+                >{{ item.label }}</li>
15
+                </ul>
35 16
             </div>
36
-            <div style="margin-left:70px;">
37
-                <el-table :data="tableData1" style="width: 100%" border>
38
-                    <el-table-column fixed prop="date" label="日期">
39
-                        <template slot-scope="scope">
40
-                            <p>{{ scope.row.date }}</p>
41
-                            <el-button size="mini" type="primary" @click="handleDelete(scope.$index, scope.row)">复制</el-button>
42
-                        </template>
43
-                    </el-table-column>
44
-                    <el-table-column prop="name" label="姓名">
45
-                        <template slot-scope="scope">
46
-                            <p>{{ scope.row.name }}</p>
47
-                            <el-button size="mini" type="primary" @click="handleDelete(scope.$index, scope.row)">复制</el-button>
48
-                        </template>
49
-                    </el-table-column>
50
-                    <el-table-column prop="province" label="省份">
51
-                        <template slot-scope="scope">
52
-                            <p>{{ scope.row.province }}</p>
53
-                            <el-button size="mini" type="primary" @click="handleDelete(scope.$index, scope.row)">复制</el-button>
54
-                        </template>
55
-                    </el-table-column>
56
-                    <el-table-column prop="city" label="市区">
57
-                        <template slot-scope="scope">
58
-                            <p>{{ scope.row.city }}</p>
59
-                            <el-button size="mini" type="primary" @click="handleDelete(scope.$index, scope.row)">复制</el-button>
60
-                        </template>
61
-                    </el-table-column>
62
-                    <el-table-column prop="address" label="地址">
63
-                        <template slot-scope="scope">
64
-                            <p>{{ scope.row.address }}</p>
65
-                            <el-button size="mini" type="primary" @click="handleDelete(scope.$index, scope.row)">复制</el-button>
66
-                        </template>
67
-                    </el-table-column>
68
-                    <el-table-column prop="zip" label="邮编">
69
-                        <template slot-scope="scope">
70
-                            <p>{{ scope.row.zip }}</p>
71
-                            <el-button size="mini" type="primary" @click="handleDelete(scope.$index, scope.row)">复制</el-button>
72
-                        </template>
73
-                    </el-table-column>
74
-                </el-table>
17
+            <el-date-picker
18
+                v-model="time"
19
+                prefix-icon="el-icon-date"
20
+                @change="changeTime"
21
+                :editable="false"
22
+                style="width: 150px;"
23
+                type="date"
24
+                placeholder="选择日期时间"
25
+                align="right"
26
+                format="yyyy-MM-dd"
27
+                value-format="yyyy-MM-dd"
28
+            ></el-date-picker> -->
29
+            <label class="title" style="margin-left:10px;">
30
+                <span class="name">患者信息</span> :
31
+            </label>
32
+            <div class="infoBox">
33
+                <span>姓名:{{ patient.name }}</span>&nbsp;|&nbsp;<span>透析编号:{{ patient.dialysis_no }}</span>
75 34
             </div>
76 35
         </div>
36
+        <div style="margin-left:70px;">
37
+            <el-table :data="monitor_records" style="width: 100%" border :span-method='objectSpanMethod'>
38
+                <el-table-column fixed prop="date" label="时间" width="140">
39
+                    <template slot-scope="scope">
40
+                        <p>{{ scope.row.created_time ? uParseTime(scope.row.created_time, '{y}-{m}-{d} {h}:{i}') : '' }}</p>
41
+                        <el-button size="mini" type="primary" v-clipboard:copy="uParseTime(scope.row.created_time, '{y}-{m}-{d} {h}:{i}')" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
42
+                    </template>
43
+                </el-table-column>
44
+                <el-table-column prop="name" :label="'静脉压\nmmHg'" width="120">
45
+                    <template slot-scope="scope">
46
+                        <p>{{ scope.row.venous_pressure }}</p>
47
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.venous_pressure" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
48
+                    </template>
49
+                </el-table-column>
50
+                <el-table-column prop="province" :label="'动脉压\nmmHg'" width="120">
51
+                    <template slot-scope="scope">
52
+                        <p>{{ scope.row.arterial_pressure }}</p>
53
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.arterial_pressure" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
54
+                    </template>
55
+                </el-table-column>
56
+                <el-table-column prop="city" :label="'电导度\nms/cm'" width="120">
57
+                    <template slot-scope="scope">
58
+                        <p>{{ scope.row.conductivity }}</p>
59
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.conductivity" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
60
+                    </template>
61
+                </el-table-column>
62
+                <el-table-column prop="address" :label="'血流量\nml/min'" width="120">
63
+                    <template slot-scope="scope">
64
+                        <p>{{ scope.row.blood_flow_volume }}</p>
65
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.blood_flow_volume" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
66
+                    </template>
67
+                </el-table-column>
68
+                <el-table-column prop="zip" :label="'透析液流量\nml/min'" width="120">
69
+                    <template slot-scope="scope">
70
+                        <p>{{ scope.row.dialysate_flow }}</p>
71
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.dialysate_flow" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
72
+                    </template>
73
+                </el-table-column>
74
+                <el-table-column prop="zip" :label="'超滤率\nml/h'" width="120">
75
+                    <template slot-scope="scope">
76
+                        <p>{{ scope.row.ultrafiltration_rate }}</p>
77
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.ultrafiltration_rate" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
78
+                    </template>
79
+                </el-table-column>
80
+                <el-table-column prop="zip" :label="'抗凝剂\n单位/h'" width="120">
81
+                </el-table-column>
82
+                <el-table-column prop="zip" :label="'体温\n℃'" width="120">
83
+                    <template slot-scope="scope">
84
+                        <p>{{ scope.row.temperature }}</p>
85
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.temperature" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
86
+                    </template>
87
+                </el-table-column>
88
+                <el-table-column prop="zip" :label="'脉搏\n次/分'" width="120">
89
+                    <template slot-scope="scope">
90
+                        <p>{{ scope.row.pulse_frequency }}</p>
91
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.pulse_frequency" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
92
+                    </template>
93
+                </el-table-column>
94
+                <el-table-column prop="zip" :label="'收缩压\nmmHg'" width="120">
95
+                    <template slot-scope="scope">
96
+                        <p>{{ scope.row.systolic_blood_pressure }}</p>
97
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.systolic_blood_pressure" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
98
+                    </template>
99
+                </el-table-column>
100
+                <el-table-column prop="zip" :label="'舒张压\nmmHg'" width="120">
101
+                    <template slot-scope="scope">
102
+                        <p>{{ scope.row.diastolic_blood_pressure }}</p>
103
+                        <el-button size="mini" type="primary" v-clipboard:copy="scope.row.diastolic_blood_pressure" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
104
+                    </template>
105
+                </el-table-column>
106
+                <el-table-column prop="zip" label="症状及处理" width="300">
107
+                    <template slot-scope="scope">
108
+                        <div v-if="scope.$index == 1">
109
+                        <div v-for="item in doctor" :key="item">
110
+                            <p>{{ item }}</p>
111
+                            <el-button size="mini" type="primary" v-clipboard:copy="item" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
112
+                        </div>
113
+                        </div>
114
+                    </template>
115
+                </el-table-column>
116
+            </el-table>
117
+
118
+            <!-- <div class="table">
119
+                <table class="fixedTable" border="1">
120
+                    <tr>
121
+                        <td style="height:60px;line-height:60px;border:none;border-bottom:1px solid #d0d3da;">时间</td>
122
+                        <td class="fixedColumn"></td>
123
+                        <td >静脉压<br />mmHg</td>
124
+                        <td >动脉压<br />mmHg</td>
125
+                        <td >电导度<br />ms/cm</td>
126
+                        <td >血流量<br />ml/min</td>
127
+                        <td >透析液流量<br />ml/min</td>
128
+                        <td >超滤率<br />ml/h</td>
129
+                        <td >抗凝剂<br />单位/h</td>
130
+                        <td >体温<br />℃</td>
131
+                        <td >脉搏<br />次/分</td>
132
+                        <td >收缩压<br />mmHg</td>
133
+                        <td >舒张压<br />mmHg</td>
134
+                        <td :rowspan="monitor_records.length + 1" style="width:300px;height:100%">
135
+                            <div>
136
+                                <div style="height:60px;line-height:60px;border-bottom:1px solid #d0d3da;">症状及处理</div>
137
+                                <div :style="{height: height}">
138
+                                    <div v-for="item in doctor" :key="item">
139
+                                        <p>{{ item }}</p>
140
+                                    </div>
141
+                                </div>
142
+                            </div>
143
+                        </td>
144
+                    </tr>
145
+                    <tr v-for="(item,index) in monitor_records" :key="index">
146
+                        <td style="border:none">{{  uParseTime(item.created_time, '{y}-{m}-{d} {h}:{i}') }}</td>
147
+                        <td class="fixedColumn"></td>
148
+                        <td>{{ item.venous_pressure }}</td>
149
+                        <td>{{ item.arterial_pressure }}</td>
150
+                        <td>{{ item.conductivity }}</td>
151
+                        <td>{{ item.blood_flow_volume }}</td>
152
+                        <td>{{ item.dialysate_flow }}</td>
153
+                        <td>{{ item.ultrafiltration_rate }}</td>
154
+                        <td></td>
155
+                        <td>{{ item.temperature }}</td>
156
+                        <td>{{ item.pulse_frequency }}</td>
157
+                        <td>{{ item.systolic_blood_pressure }}</td>
158
+                        <td>{{ item.diastolic_blood_pressure }}</td>
159
+                    </tr>
160
+                </table>
161
+            </div> -->
162
+        </div>
163
+    </div>
77 164
 </template>
78 165
 
79 166
 <script>
167
+import { parseTime } from "@/utils";
80 168
 export default {
169
+    props:{
170
+        monitor_records:Array,
171
+        patient:Object,
172
+        doctor_advices:Array,
173
+        prescription:Object,
174
+    },
81 175
     data(){
82 176
       return{
83 177
         tableData: [
@@ -218,13 +312,175 @@ export default {
218 312
             { value: 2, label: "前天", state: 2 },
219 313
         ],
220 314
         dayType: 0,
221
-        time:''
315
+        time:'',
316
+        textarea:'',
317
+        modeId:'',
318
+        advices:[],
319
+        height:''
222 320
       }
223 321
     },
322
+    created(){
323
+       
324
+        if(this.monitor_records.length > 5){
325
+            this.monitor_records = this.monitor_records
326
+        }else{
327
+            let num = 5 - this.monitor_records.length
328
+            for(let i = 0; i<num;i++){
329
+                this.monitor_records.push({id:0})
330
+            }
331
+            console.log(22222222222222222,this.monitor_records)
332
+        }
333
+        
334
+        if(this.prescription.mode_id){
335
+            this.modeId = this.getMode(this.prescription.mode_id)
336
+        }
337
+        if(this.doctor_advices.length > 0){
338
+            let str = ''
339
+            let arr = []
340
+            this.advices = this.doctor_advices
341
+            this.advices.map(item => {
342
+                str = item.advice_name + (item.advice_desc ? ('(' +  item.advice_desc + item.drug_spec_unit + ')') : '' )  + '  ' + item.prescribing_number + item.prescribing_number_unit + '  ' + 
343
+                item.single_dose + item.single_dose_unit + '  ' + item.delivery_way + item.execution_frequency + item.remark
344
+                arr.push(str)
345
+            })
346
+            this.doctor = arr
347
+            
348
+            // this.textarea = ''
349
+            // arr.map(item => {
350
+            //     this.textarea += item + "\n"
351
+            // })
352
+        }else if(this.doctor_advices.length == 0){
353
+            this.textarea = ''
354
+            this.textarea = '1.开始' + this.modeId + '治疗' + '\n' +
355
+                            '2.结束' + this.modeId + '治疗' + '\n' +
356
+                            '3.患者离开血透室'
357
+        }
358
+    },
224 359
     methods:{
225 360
         chooseDay(day) {
226 361
             this.dayType = day;
362
+        },
363
+        uParseTime(time, cFormat) {
364
+            if (time === 0) {
365
+                return ''
366
+            }
367
+            
368
+            if (arguments.length === 0) {
369
+                return null
370
+            }
371
+            const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
372
+            let date
373
+            if (typeof time === 'object') {
374
+                date = time
375
+            } else {
376
+                if (('' + time).length !== 13) time = parseInt(time) * 1000
377
+                date = new Date(time)
378
+            }
379
+            const formatObj = {
380
+                y: date.getFullYear(),
381
+                m: date.getMonth() + 1,
382
+                d: date.getDate(),
383
+                h: date.getHours(),
384
+                i: date.getMinutes(),
385
+                s: date.getSeconds(),
386
+                a: date.getDay()
387
+            }
388
+            const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
389
+                let value = formatObj[key]
390
+                if (key === 'a') {
391
+                return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
392
+                }
393
+                if (result.length > 0 && value < 10) {
394
+                value = '0' + value
395
+                }
396
+                return value || 0
397
+            })
398
+            return time_str
399
+        },
400
+        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
401
+            // console.log('rowIndex',rowIndex)
402
+            // console.log('columnIndex',columnIndex)
403
+            console.log('this.monitor_records.length',this.monitor_records.length)
404
+            if (columnIndex === 12) {
405
+                if (rowIndex > 0) {
406
+                    return {
407
+                    rowspan: this.monitor_records.length - 1 ,
408
+                    colspan: 1
409
+                    };
410
+                }else{
411
+                     return {
412
+                    rowspan: 0 ,
413
+                    colspan: 0
414
+                    };
415
+                }
416
+            }
417
+        },
418
+        getMode(id){
419
+            let name = ''
420
+            this.treatment_mode = Object.values(this.$store.getters.treatment_mode)
421
+            this.treatment_mode.map(item => {
422
+                if(item.id == id){
423
+                    name = item.name
424
+                }
425
+            })
426
+            return name
427
+        },
428
+        onCopy() {
429
+            this.$message.success("复制成功");
430
+        },
431
+        onError() {
432
+            this.$message.success("复制失败,请重试");
227 433
         }
434
+    },
435
+    watch:{
436
+        monitor_records:{
437
+            handler:function(val) {
438
+                if(this.monitor_records.length > 5){
439
+                    this.monitor_records = this.monitor_records
440
+                }else{
441
+                    let num = 5 - this.monitor_records.length
442
+                    for(let i =0; i<num;i++){
443
+                        this.monitor_records.push({id:1})
444
+                    }
445
+                    console.log(333333333333,this.monitor_records)
446
+                }
447
+            }
448
+        },
449
+        patient:{
450
+            handler:function(val) {
451
+            }
452
+        },
453
+        doctor_advices:{
454
+            handler:function(val) {
455
+                if(this.doctor_advices.length > 0){
456
+                    let str = ''
457
+                    let arr = []
458
+                    this.advices = this.doctor_advices
459
+                    this.advices.map(item => {
460
+                        str = item.advice_name + (item.advice_desc ? ('(' +  item.advice_desc + item.drug_spec_unit + ')') : '' )  + '  ' + item.prescribing_number + item.prescribing_number_unit + '  ' + 
461
+                        item.single_dose + item.single_dose_unit + '  ' + item.delivery_way + item.execution_frequency + item.remark
462
+                        arr.push(str)
463
+                    })
464
+                    this.textarea = ''
465
+                    arr.map(item => {
466
+                        this.textarea += item + "\n"
467
+                    })
468
+                }else if(this.doctor_advices.length == 0){
469
+                    this.textarea = ''
470
+                    this.textarea = '1.开始' + this.modeId + '治疗' + '\n' +
471
+                                    '2.结束' + this.modeId + '治疗' + '\n' +
472
+                                    '3.患者离开血透室'
473
+                }
474
+            }
475
+        },
476
+        prescription:{
477
+          handler:function(val) {
478
+                if(this.prescription.mode_id){
479
+                    this.modeId = this.getMode(this.prescription.mode_id)
480
+                }
481
+            }  
482
+        },
483
+        deep:true,
228 484
     }
229 485
 }
230 486
 </script>
@@ -237,7 +493,7 @@ export default {
237 493
     line-height: 40px;
238 494
 }
239 495
 .page_dialysisParams{
240
-    width: 100%;
496
+    // width: 76%;
241 497
     padding-right: 10px;
242 498
     .infoBox{
243 499
         padding: 10px 20px;
@@ -248,8 +504,43 @@ export default {
248 504
         display: flex;
249 505
         align-items: center;
250 506
     }
251
-    
507
+    .paramsTable{
508
+        // width: 1600px;
509
+        width:160%;
510
+        border: 1px solid #000;
511
+        border-spacing: 0px;
512
+        border-collapse: collapse;
513
+    }
514
+    .paramsTable td{
515
+        border:1px solid #000;
516
+        padding:5px;
517
+    }
518
+    .paramsTable th{
519
+        border:1px solid #000;
520
+        padding:5px;
521
+    }
522
+
523
+    // .paramsTable td:first-child{
524
+    //     position:absolute
525
+    // }
526
+    // .paramsTable th:first-child{
527
+    //     position:absolute
528
+    // }
529
+
530
+
531
+.table{width:100%;overflow-x: scroll;}
532
+
533
+.fixedTable{width:160%;text-align: center;color:#000;font-size:14px; border-collapse:collapse;background: #fff;}
534
+
535
+.fixedTable tr{line-height: 30px;border:1px solid #d0d3da;}
536
+
537
+// .fixedTable tr:first-child{height:40px;line-height: 40px;}
538
+
539
+.fixedTable td:first-child{position:absolute;width:140px;margin:0px 0px 0px 0px;background: #fff;}
540
+
541
+.fixedColumn{width:140px;}
252 542
 }
543
+
253 544
 </style>
254 545
 <style lang="scss">
255 546
 .page_dialysisParams{
@@ -260,7 +551,16 @@ export default {
260 551
         display: flex;
261 552
         align-items: center;
262 553
         flex-direction: column;
554
+        white-space: pre-line;
555
+        text-align: center;
556
+    }
557
+    ::-webkit-scrollbar{
558
+        height: 15px !important;
263 559
     }
264 560
 }
561
+html, body {
562
+        width: 100% !important;
563
+        height: 100% !important;
564
+    }
265 565
 
266 566
 </style>

+ 63 - 87
src/xt_pages/upload/fast/dialysisSummary.vue View File

@@ -1,112 +1,88 @@
1 1
 <template>
2
-        <div class="page_summary">
3
-            <div class="cell clearfix" style="margin-top:40px;margin-left:70px;">
4
-                <label class="title">
5
-                    <span class="name">治疗日期</span> :
6
-                </label>
7
-                <div class="time">
8
-                    <ul class>
9
-                    <li
10
-                        :class="item.state == dayType ? 'active' : ''"
11
-                        @click="chooseDay(item.state)"
12
-                        v-for="item in day"
13
-                        :key="item.value"
14
-                    >{{ item.label }}</li>
15
-                    </ul>
16
-                </div>
17
-                <el-date-picker
18
-                    v-model="time"
19
-                    prefix-icon="el-icon-date"
20
-                    @change="changeTime"
21
-                    :editable="false"
22
-                    style="width: 150px;"
23
-                    type="date"
24
-                    placeholder="选择日期时间"
25
-                    align="right"
26
-                    format="yyyy-MM-dd"
27
-                    value-format="yyyy-MM-dd"
28
-                ></el-date-picker>
29
-                <label class="title" style="margin-left:10px;">
30
-                    <span class="name">患者信息</span> :
31
-                </label>
32
-                <div class="infoBox">
33
-                    <span>姓名:前蛮子</span>&nbsp;|&nbsp;<span>透析编号:001</span>
34
-                </div>
2
+    <div class="page_summary">
3
+        <div class="cell clearfix" style="margin-top:40px;margin-left:70px;">
4
+            <!-- <label class="title">
5
+                <span class="name">治疗日期</span> :
6
+            </label>
7
+            <div class="time">
8
+                <ul class>
9
+                <li
10
+                    :class="item.state == dayType ? 'active' : ''"
11
+                    @click="chooseDay(item.state)"
12
+                    v-for="item in day"
13
+                    :key="item.value"
14
+                >{{ item.label }}</li>
15
+                </ul>
35 16
             </div>
36
-            <div style="margin-left:70px;">
37
-                <el-input type="textarea" :disabled="true" :rows="4" placeholder="请输入内容" v-model="textarea"></el-input>
38
-                <el-button type="primary" style="margin-top:10px;float:right;">复制</el-button>
17
+            <el-date-picker
18
+                v-model="time"
19
+                prefix-icon="el-icon-date"
20
+                @change="changeTime"
21
+                :editable="false"
22
+                style="width: 150px;"
23
+                type="date"
24
+                placeholder="选择日期时间"
25
+                align="right"
26
+                format="yyyy-MM-dd"
27
+                value-format="yyyy-MM-dd"
28
+            ></el-date-picker> -->
29
+            <label class="title" style="margin-left:10px;">
30
+                <span class="name">患者信息</span> :
31
+            </label>
32
+            <div class="infoBox">
33
+                <span>姓名:{{ patient.name }}</span>&nbsp;|&nbsp;<span>透析编号:{{ patient.dialysis_no }}</span>
39 34
             </div>
40 35
         </div>
36
+        <div style="margin-left:70px;">
37
+            <el-input type="textarea" :disabled="true" :rows="4" placeholder="请输入内容" v-model="dialysis_summary"></el-input>
38
+            <el-button type="primary" v-clipboard:copy="dialysis_summary" v-clipboard:success="onCopy" v-clipboard:error="onError" style="margin-top:10px;float:right;">复制</el-button>
39
+        </div>
40
+    </div>
41 41
 </template>
42 42
 
43 43
 <script>
44 44
 export default {
45
+    props:{
46
+        treatment_summary:Object,
47
+        patient:Object
48
+    },
45 49
     data(){
46 50
       return{
47
-        tableData: [
48
-          {
49
-              date: "2016",
50
-              name: "王小虎"
51
-          },
52
-          {
53
-              date: "2016",
54
-              name: "王小虎"
55
-          },
56
-          {
57
-              date: "2016",
58
-              name: "王小虎"
59
-          },
60
-          {
61
-              date: "2016",
62
-              name: "王小虎"
63
-          },
64
-          {
65
-              date: "2016",
66
-              name: "王小虎"
67
-          },
68
-          {
69
-              date: "2016",
70
-              name: "王小虎"
71
-          },
72
-          {
73
-              date: "2016",
74
-              name: "王小虎"
75
-          },
76
-          {
77
-              date: "2016",
78
-              name: "王小虎"
79
-          },
80
-          {
81
-              date: "2016",
82
-              name: "王小虎"
83
-          },
84
-          {
85
-              date: "2016",
86
-              name: "王小虎"
87
-          },
88
-          {
89
-              date: "2016",
90
-              name: "王小虎"
91
-          },
92
-          {
93
-              date: "2016",
94
-              name: "王小虎"
95
-          }
96
-        ],
97 51
         day: [
98 52
             { value: 0, label: "今天", state: 0 },
99 53
             { value: 1, label: "昨天", state: 1 },
100 54
             { value: 2, label: "前天", state: 2 },
101 55
         ],
102 56
         dayType: 0,
103
-        time:''
57
+        time:'',
58
+        dialysis_summary:''
104 59
       }
105 60
     },
61
+    created(){
62
+        this.dialysis_summary = this.treatment_summary.dialysis_summary
63
+    },
106 64
     methods:{
107 65
         chooseDay(day) {
108 66
             this.dayType = day;
67
+        },
68
+        onCopy() {
69
+            this.$message.success("复制成功");
70
+        },
71
+        onError() {
72
+            this.$message.success("复制失败,请重试");
109 73
         }
74
+    },
75
+    watch:{
76
+        treatment_summary:{
77
+            handler:function(val) {
78
+                this.dialysis_summary = this.treatment_summary.dialysis_summary
79
+            }
80
+        },
81
+        patient:{
82
+            handler:function(val) {
83
+            }
84
+        },
85
+        deep:true,
110 86
     }
111 87
 }
112 88
 </script>

+ 94 - 55
src/xt_pages/upload/fast/rescueRecord.vue View File

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
         <div class="page_rescueRecord">
3 3
             <div class="cell clearfix" style="margin-top:40px;margin-left:70px;">
4
-                <label class="title">
4
+                <!-- <label class="title">
5 5
                     <span class="name">治疗日期</span> :
6 6
                 </label>
7 7
                 <div class="time">
@@ -25,88 +25,127 @@
25 25
                     align="right"
26 26
                     format="yyyy-MM-dd"
27 27
                     value-format="yyyy-MM-dd"
28
-                ></el-date-picker>
28
+                ></el-date-picker> -->
29 29
                 <label class="title" style="margin-left:10px;">
30 30
                     <span class="name">患者信息</span> :
31 31
                 </label>
32 32
                 <div class="infoBox">
33
-                    <span>姓名:前蛮子</span>&nbsp;|&nbsp;<span>透析编号:001</span>
33
+                    <span>姓名:{{ patient.name }}</span>&nbsp;|&nbsp;<span>透析编号:{{ patient.dialysis_no }}</span>
34 34
                 </div>
35 35
             </div>
36 36
             <div style="margin-left:70px;">
37 37
                 <el-input type="textarea" :disabled="true" :rows="4" placeholder="请输入内容" v-model="textarea"></el-input>
38
-                <el-button type="primary" style="margin-top:10px;float:right;">复制</el-button>
38
+                <el-button type="primary" v-clipboard:copy="textarea" v-clipboard:success="onCopy" v-clipboard:error="onError" style="margin-top:10px;float:right;">复制</el-button>
39 39
             </div>
40 40
         </div>
41 41
 </template>
42 42
 
43 43
 <script>
44 44
 export default {
45
+    props:{
46
+        doctor_advices:Array,
47
+        patient:Object,
48
+        prescription:Object,
49
+    },
45 50
     data(){
46 51
       return{
47
-        tableData: [
48
-          {
49
-              date: "2016",
50
-              name: "王小虎"
51
-          },
52
-          {
53
-              date: "2016",
54
-              name: "王小虎"
55
-          },
56
-          {
57
-              date: "2016",
58
-              name: "王小虎"
59
-          },
60
-          {
61
-              date: "2016",
62
-              name: "王小虎"
63
-          },
64
-          {
65
-              date: "2016",
66
-              name: "王小虎"
67
-          },
68
-          {
69
-              date: "2016",
70
-              name: "王小虎"
71
-          },
72
-          {
73
-              date: "2016",
74
-              name: "王小虎"
75
-          },
76
-          {
77
-              date: "2016",
78
-              name: "王小虎"
79
-          },
80
-          {
81
-              date: "2016",
82
-              name: "王小虎"
83
-          },
84
-          {
85
-              date: "2016",
86
-              name: "王小虎"
87
-          },
88
-          {
89
-              date: "2016",
90
-              name: "王小虎"
91
-          },
92
-          {
93
-              date: "2016",
94
-              name: "王小虎"
95
-          }
96
-        ],
97 52
         day: [
98 53
             { value: 0, label: "今天", state: 0 },
99 54
             { value: 1, label: "昨天", state: 1 },
100 55
             { value: 2, label: "前天", state: 2 },
101 56
         ],
102 57
         dayType: 0,
103
-        time:''
58
+        time:'',
59
+        advices:[],
60
+        textarea:'',
61
+        modeId:''
104 62
       }
63
+    },
64
+    created(){
65
+        console.log('patient',this.prescription)
66
+        if(this.prescription.mode_id){
67
+            this.modeId = this.getMode(this.prescription.mode_id)
68
+        }
69
+        
70
+        if(this.doctor_advices.length > 0){
71
+            let str = ''
72
+            let arr = []
73
+            this.advices = this.doctor_advices
74
+            this.advices.map(item => {
75
+                str = item.advice_name + (item.advice_desc ? ('(' +  item.advice_desc + item.drug_spec_unit + ')') : '' )  + '  ' + item.prescribing_number + item.prescribing_number_unit + '  ' + 
76
+                item.single_dose + item.single_dose_unit + '  ' + item.delivery_way + item.execution_frequency + item.remark
77
+                arr.push(str)
78
+            })
79
+            this.textarea = ''
80
+            arr.map(item => {
81
+                this.textarea += item + "\n"
82
+            })
83
+        }else if(this.doctor_advices.length == 0){
84
+            this.textarea = ''
85
+            this.textarea = '1.开始' + this.modeId + '治疗' + '\n' +
86
+                            '2.结束' + this.modeId + '治疗' + '\n' +
87
+                            '3.患者离开血透室'
88
+        }
89
+        
90
+        
105 91
     },
106 92
     methods:{
107 93
         chooseDay(day) {
108 94
             this.dayType = day;
95
+        },
96
+        getMode(id){
97
+            let name = ''
98
+            this.treatment_mode = Object.values(this.$store.getters.treatment_mode)
99
+            this.treatment_mode.map(item => {
100
+                if(item.id == id){
101
+                    name = item.name
102
+                }
103
+            })
104
+            return name
105
+        },
106
+        onCopy() {
107
+            this.$message.success("复制成功");
108
+        },
109
+        onError() {
110
+            this.$message.success("复制失败,请重试");
109 111
         }
112
+    },
113
+    watch:{
114
+        doctor_advices:{
115
+            handler:function(val) {
116
+                if(this.doctor_advices.length > 0){
117
+                    let str = ''
118
+                    let arr = []
119
+                    this.advices = this.doctor_advices
120
+                    this.advices.map(item => {
121
+                        str = item.advice_name + (item.advice_desc ? ('(' +  item.advice_desc + item.drug_spec_unit + ')') : '' )  + '  ' + item.prescribing_number + item.prescribing_number_unit + '  ' + 
122
+                        item.single_dose + item.single_dose_unit + '  ' + item.delivery_way + item.execution_frequency + item.remark
123
+                        arr.push(str)
124
+                    })
125
+                    this.textarea = ''
126
+                    arr.map(item => {
127
+                        this.textarea += item + "\n"
128
+                    })
129
+                }else if(this.doctor_advices.length == 0){
130
+                    this.textarea = ''
131
+                    this.textarea = '1.开始' + this.modeId + '治疗' + '\n' +
132
+                                    '2.结束' + this.modeId + '治疗' + '\n' +
133
+                                    '3.患者离开血透室'
134
+                }
135
+            }
136
+        },
137
+        patient:{
138
+            handler:function(val) {
139
+            }
140
+        },
141
+        prescription:{
142
+          handler:function(val) {
143
+                if(this.prescription.mode_id){
144
+                    this.modeId = this.getMode(this.prescription.mode_id)
145
+                }
146
+            }  
147
+        },
148
+        deep:true,
110 149
     }
111 150
 }
112 151
 </script>

+ 373 - 243
src/xt_pages/upload/fast/treatInfo.vue View File

@@ -1,267 +1,397 @@
1 1
 <template>
2
-        <div class="page_treatInfo">
3
-            <div class="cell clearfix" style="margin-top:40px;margin-left:70px;">
4
-                <label class="title">
5
-                    <span class="name">治疗日期</span> :
6
-                </label>
7
-                <div class="time">
8
-                    <ul class>
9
-                    <li
10
-                        :class="item.state == dayType ? 'active' : ''"
11
-                        @click="chooseDay(item.state)"
12
-                        v-for="item in day"
13
-                        :key="item.value"
14
-                    >{{ item.label }}</li>
15
-                    </ul>
16
-                </div>
17
-                <el-date-picker
18
-                    v-model="time"
19
-                    prefix-icon="el-icon-date"
20
-                    @change="changeTime"
21
-                    :editable="false"
22
-                    style="width: 150px;"
23
-                    type="date"
24
-                    placeholder="选择日期时间"
25
-                    align="right"
26
-                    format="yyyy-MM-dd"
27
-                    value-format="yyyy-MM-dd"
28
-                ></el-date-picker>
29
-                <label class="title" style="margin-left:10px;">
30
-                    <span class="name">患者信息</span> :
31
-                </label>
32
-                <div class="infoBox">
33
-                    <span>姓名:前蛮子</span>&nbsp;|&nbsp;<span>透析编号:001</span>
34
-                </div>
35
-            </div>
36
-            <div class="cell clearfix" style="margin-left:70px;">
37
-                <div class="commonTitle">透析方案</div>
38
-            </div>
39
-            <div class="treatInfoMain">
40
-                <div class="basicOne">
41
-                    <p class="basicLable">治疗信息:</p>
42
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
43
-                </div>
44
-                <div class="basicOne">
45
-                    <p class="basicLable">治疗方式:</p>
46
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
47
-                </div>
48
-                <div class="basicOne">
49
-                    <p class="basicLable">治疗时间(小时):</p>
50
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
51
-                    <el-button type="primary">复制</el-button>
52
-                </div>
53
-                <div class="basicOne">
54
-                    <p class="basicLable">治疗次数:</p>
55
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
56
-                    <el-button type="primary">复制</el-button>
57
-                </div>
58
-                <div class="basicOne">
59
-                    <p class="basicLable">透析器:</p>
60
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
61
-                </div>
62
-                <div class="basicOne">
63
-                    <p class="basicLable">透析机:</p>
64
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
65
-                </div>
66
-                <div class="basicOne">
67
-                    <p class="basicLable">透析膜:</p>
68
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
69
-                </div>
70
-                <div class="basicOne">
71
-                    <p class="basicLable">膜面积(㎡):</p>
72
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
73
-                    <el-button type="primary">复制</el-button>
74
-                </div>
75
-                <div class="basicOne">
76
-                    <p class="basicLable">血管通路:</p>
77
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
78
-                </div>
79
-                <div class="basicOne">
80
-                    <p class="basicLable">血流量(ml/min):</p>
81
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
82
-                    <el-button type="primary">复制</el-button>
83
-                </div>
84
-                <div class="basicOne">
85
-                    <p class="basicLable">抗凝剂:</p>
86
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
87
-                </div>
88
-                <div class="basicOne">
89
-                    <p class="basicLable">首量:</p>
90
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
91
-                    <el-button type="primary">复制</el-button>
92
-                </div>
93
-                <div class="basicOne">
94
-                    <p class="basicLable">追加:</p>
95
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
96
-                    <el-button type="primary">复制</el-button>
97
-                </div>
98
-                
99
-            </div>
100
-            <div class="cell clearfix" style="margin-left:70px;">
101
-                <div class="commonTitle">透析记录与透后评估</div>
102
-            </div>
103
-            <div class="treatInfoMain">
104
-                <div class="basicOne">
105
-                    <p class="basicLable">置换液总量(L):</p>
106
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
107
-                    <el-button type="primary">复制</el-button>
108
-                </div>
109
-                <div class="basicOne">
110
-                    <p class="basicLable">滤出液实际值(L):</p>
111
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
112
-                    <el-button type="primary">复制</el-button>
113
-                </div>
114
-                <div class="basicOne">
115
-                    <p class="basicLable">透析中血浆总量(L):</p>
116
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
117
-                    <el-button type="primary">复制</el-button>
118
-                </div>
119
-                <div class="basicOne">
120
-                    <p class="basicLable">滤出血浆总量(L):</p>
121
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
122
-                    <el-button type="primary">复制</el-button>
123
-                </div>
124
-                <div class="basicOne">
125
-                    <p class="basicLable">干体重(kg):</p>
126
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
127
-                    <el-button type="primary">复制</el-button>
128
-                </div>
129
-                <div class="basicOne">
130
-                    <p class="basicLable">干体重备注:</p>
131
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
132
-                </div>
133
-                <div class="basicOne">
134
-                    <p class="basicLable">透前体重(kg):</p>
135
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
136
-                    <el-button type="primary">复制</el-button>
137
-                </div>
138
-                <div class="basicOne">
139
-                    <p class="basicLable">透前体重备注:</p>
140
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
141
-                </div>
142
-                <div class="basicOne">
143
-                    <p class="basicLable">透后体重(kg):</p>
144
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
145
-                    <el-button type="primary">复制</el-button>
146
-                </div>
147
-                <div class="basicOne">
148
-                    <p class="basicLable">预计脱水(kg):</p>
149
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
150
-                    <el-button type="primary">复制</el-button>
151
-                </div>
152
-                <div class="basicOne">
153
-                    <p class="basicLable">实际脱水(kg):</p>
154
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
155
-                    <el-button type="primary">复制</el-button>
156
-                </div>
157
-                <div class="basicOne">
158
-                    <p class="basicLable">其他方式:</p>
159
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
160
-                </div>
161
-                <div class="basicTwo">
162
-                    <p class="basicTwoLable">抗凝剂使用:</p>
163
-                    <el-input type="textarea" style="width:550px;" :disabled="true" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
164
-                </div>
165
-                <div class="basicTwo">
166
-                    <p class="basicTwoLable">特殊交代事项:</p>
167
-                    <el-input type="textarea" style="width:550px;" :disabled="true" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
168
-                </div>
169
-                <div class="basicTwo">
170
-                    <p class="basicTwoLable">医生记录及医嘱:</p>
171
-                    <el-input type="textarea" style="width:550px;" :disabled="true" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
172
-                </div>
173
-                
174
-            </div>
175
-            <div class="cell clearfix" style="margin-left:70px;">
176
-                <div class="commonTitle">责任签名</div>
177
-            </div>
178
-            <div class="treatInfoMain">
179
-                <div class="basicOne">
180
-                    <p class="basicLable">责任医生:</p>
181
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
182
-                    <el-button type="primary">复制</el-button>
183
-                </div>
184
-                <div class="basicOne">
185
-                    <p class="basicLable">责任护士:</p>
186
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
187
-                    <el-button type="primary">复制</el-button>
188
-                </div>
189
-                <div class="basicOne">
190
-                    <p class="basicLable">核对护士:</p>
191
-                    <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
192
-                    <el-button type="primary">复制</el-button>
193
-                </div>
2
+    <div class="page_treatInfo">
3
+        <div class="cell clearfix" style="margin-top:40px;margin-left:70px;">
4
+            <!-- <label class="title">
5
+                <span class="name">治疗日期</span> :
6
+            </label>
7
+            <div class="time">
8
+                <ul class>
9
+                <li
10
+                    :class="item.state == dayType ? 'active' : ''"
11
+                    @click="chooseDay(item.state)"
12
+                    v-for="item in day"
13
+                    :key="item.value"
14
+                >{{ item.label }}</li>
15
+                </ul>
194 16
             </div>
17
+            <el-date-picker
18
+                v-model="time"
19
+                prefix-icon="el-icon-date"
20
+                @change="changeTime"
21
+                :editable="false"
22
+                style="width: 150px;"
23
+                type="date"
24
+                placeholder="选择日期时间"
25
+                align="right"
26
+                format="yyyy-MM-dd"
27
+                value-format="yyyy-MM-dd"
28
+            ></el-date-picker> -->
29
+            <label class="title" style="margin-left:10px;">
30
+                <span class="name">患者信息</span> :
31
+            </label>
32
+            <div class="infoBox">
33
+                <span>姓名:{{ patient.name }}</span>&nbsp;|&nbsp;<span>透析编号:{{ patient.dialysis_no }}</span>
34
+            </div>
35
+        </div>
36
+        <div class="cell clearfix" style="margin-left:70px;">
37
+            <div class="commonTitle">透析方案</div>
38
+        </div>
39
+        <div class="treatInfoMain">
40
+            <div class="basicOne">
41
+                <p class="basicLable">治疗日期:</p>
42
+                <el-input placeholder="请输入内容" v-model="form.date" :disabled="true"></el-input>
43
+            </div>
44
+            <div class="basicOne">
45
+                <p class="basicLable">治疗方式:</p>
46
+                <el-input placeholder="请输入内容" v-model="form.mode_id" :disabled="true"></el-input>
47
+            </div>
48
+            <div class="basicOne">
49
+                <p class="basicLable">治疗时间(小时):</p>
50
+                <el-input placeholder="请输入内容" v-model="form.actual_treatment_hour" :disabled="true"></el-input>
51
+                <el-button type="primary" v-clipboard:copy="form.actual_treatment_hour" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
52
+            </div>
53
+            <div class="basicOne">
54
+                <p class="basicLable">治疗次数:</p>
55
+                <el-input placeholder="请输入内容" v-model="form.total" :disabled="true"></el-input>
56
+                <el-button type="primary" v-clipboard:copy="form.total" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
57
+            </div>
58
+            <div class="basicOne">
59
+                <p class="basicLable">透析器:</p>
60
+                <el-input placeholder="请输入内容" v-model="form.dialyzer_perfusion_apparatus" :disabled="true"></el-input>
61
+            </div>
62
+            <div class="basicOne">
63
+                <p class="basicLable">透析机:</p>
64
+                <el-input placeholder="请输入内容" v-model="form.machine_type" :disabled="true"></el-input>
65
+            </div>
66
+            <div class="basicOne">
67
+                <p class="basicLable">透析膜:</p>
68
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
69
+            </div>
70
+            <div class="basicOne">
71
+                <p class="basicLable">膜面积(㎡):</p>
72
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
73
+                <el-button type="primary" v-clipboard:copy="input" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
74
+            </div>
75
+            <div class="basicOne">
76
+                <p class="basicLable">血管通路:</p>
77
+                <el-input placeholder="请输入内容" v-model="form.blood_access_part_opera_id" :disabled="true"></el-input>
78
+            </div>
79
+            <div class="basicOne">
80
+                <p class="basicLable">血流量(ml/min):</p>
81
+                <el-input placeholder="请输入内容" v-model="form.blood_flow_volume" :disabled="true"></el-input>
82
+                <el-button type="primary" v-clipboard:copy="form.blood_flow_volume" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
83
+            </div>
84
+            <div class="basicOne">
85
+                <p class="basicLable">抗凝剂:</p>
86
+                <el-input placeholder="请输入内容" v-model="form.anticoagulant" :disabled="true"></el-input>
87
+            </div>
88
+            <div class="basicOne">
89
+                <p class="basicLable">首量:</p>
90
+                <el-input placeholder="请输入内容" v-model="form.anticoagulant_shouji" :disabled="true"></el-input>
91
+                <el-button type="primary" v-clipboard:copy="form.anticoagulant_shouji" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
92
+            </div>
93
+            <div class="basicOne">
94
+                <p class="basicLable">追加:</p>
95
+                <el-input placeholder="请输入内容" v-model="form.anticoagulant_weichi" :disabled="true"></el-input>
96
+                <el-button type="primary" v-clipboard:copy="form.anticoagulant_weichi" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
97
+            </div>
98
+            
99
+        </div>
100
+        <div class="cell clearfix" style="margin-left:70px;">
101
+            <div class="commonTitle">透析记录与透后评估</div>
195 102
         </div>
103
+        <div class="treatInfoMain">
104
+            <div class="basicOne">
105
+                <p class="basicLable">置换液总量(L):</p>
106
+                <el-input placeholder="请输入内容" v-model="form.displace_liqui_value" :disabled="true"></el-input>
107
+                <el-button type="primary" v-clipboard:copy="form.displace_liqui_value" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
108
+            </div>
109
+            <div class="basicOne">
110
+                <p class="basicLable">滤出液实际值(L):</p>
111
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
112
+                <el-button type="primary" v-clipboard:copy="input" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
113
+            </div>
114
+            <div class="basicOne">
115
+                <p class="basicLable">透析中血浆总量(L):</p>
116
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
117
+                <el-button type="primary" v-clipboard:copy="input" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
118
+            </div>
119
+            <div class="basicOne">
120
+                <p class="basicLable">滤出血浆总量(L):</p>
121
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
122
+                <el-button type="primary" v-clipboard:copy="input" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
123
+            </div>
124
+            <div class="basicOne">
125
+                <p class="basicLable">干体重(kg):</p>
126
+                <el-input placeholder="请输入内容" v-model="form.dry_weight" :disabled="true"></el-input>
127
+                <el-button type="primary" v-clipboard:copy="form.dry_weight" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
128
+            </div>
129
+            <div class="basicOne">
130
+                <p class="basicLable">干体重备注:</p>
131
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
132
+            </div>
133
+            <div class="basicOne">
134
+                <p class="basicLable">透前体重(kg):</p>
135
+                <el-input placeholder="请输入内容" v-model="form.weight_before" :disabled="true"></el-input>
136
+                <el-button type="primary" v-clipboard:copy="form.weight_before" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
137
+            </div>
138
+            <div class="basicOne">
139
+                <p class="basicLable">透前体重备注:</p>
140
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
141
+            </div>
142
+            <div class="basicOne">
143
+                <p class="basicLable">透后体重(kg):</p>
144
+                <el-input placeholder="请输入内容" v-model="form.weight_after" :disabled="true"></el-input>
145
+                <el-button type="primary" v-clipboard:copy="form.weight_after" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
146
+            </div>
147
+            <div class="basicOne">
148
+                <p class="basicLable">预计脱水(kg):</p>
149
+                <el-input placeholder="请输入内容" v-model="form.target_ultrafiltration" :disabled="true"></el-input>
150
+                <el-button type="primary" v-clipboard:copy="form.target_ultrafiltration" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
151
+            </div>
152
+            <div class="basicOne">
153
+                <p class="basicLable">实际脱水(kg):</p>
154
+                <el-input placeholder="请输入内容" v-model="form.actual_ultrafiltration" :disabled="true"></el-input>
155
+                <el-button type="primary" v-clipboard:copy="form.actual_ultrafiltration" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
156
+            </div>
157
+            <div class="basicOne">
158
+                <p class="basicLable">其他方式:</p>
159
+                <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
160
+            </div>
161
+            <div class="basicTwo">
162
+                <p class="basicTwoLable">抗凝剂使用:</p>
163
+                <el-input type="textarea" style="width:550px;" :disabled="true" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
164
+            </div>
165
+            <div class="basicTwo">
166
+                <p class="basicTwoLable">特殊交代事项:</p>
167
+                <el-input type="textarea" style="width:550px;" :disabled="true" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
168
+            </div>
169
+            <div class="basicTwo">
170
+                <p class="basicTwoLable">医生记录及医嘱:</p>
171
+                <el-input type="textarea" style="width:550px;" :disabled="true" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
172
+            </div>
173
+            
174
+        </div>
175
+        <div class="cell clearfix" style="margin-left:70px;">
176
+            <div class="commonTitle">责任签名</div>
177
+        </div>
178
+        <div class="treatInfoMain">
179
+            <div class="basicOne">
180
+                <p class="basicLable">责任医生:</p>
181
+                <el-input placeholder="请输入内容" v-model="form.doctor" :disabled="true"></el-input>
182
+                <el-button type="primary" v-clipboard:copy="form.doctor" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
183
+            </div>
184
+            <div class="basicOne">
185
+                <p class="basicLable">责任护士:</p>
186
+                <el-input placeholder="请输入内容" v-model="form.responsibleNurse" :disabled="true"></el-input>
187
+                <el-button type="primary" v-clipboard:copy="form.responsibleNurse" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
188
+            </div>
189
+            <div class="basicOne">
190
+                <p class="basicLable">核对护士:</p>
191
+                <el-input placeholder="请输入内容" v-model="form.checkNurse" :disabled="true"></el-input>
192
+                <el-button type="primary" v-clipboard:copy="form.checkNurse" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
193
+            </div>
194
+        </div>
195
+    </div>
196 196
 </template>
197 197
 
198 198
 <script>
199
+import { parseTime } from "@/utils";
200
+import { getDataConfig } from "@/utils/data";
201
+import { isNumber } from 'util';
199 202
 export default {
203
+    props:{
204
+        prescription:Object,
205
+        predialysis_evaluation:Object,
206
+        assessment_after_dislysis:Object,
207
+        patient:Object,
208
+        monitor_records:Array,
209
+        admin_users:Array,
210
+        dialysis_order:Object,
211
+        double_check:Object,
212
+        selected_date:Number
213
+    },
200 214
     data(){
201 215
       return{
202
-        tableData: [
203
-          {
204
-              date: "2016",
205
-              name: "王小虎"
206
-          },
207
-          {
208
-              date: "2016",
209
-              name: "王小虎"
210
-          },
211
-          {
212
-              date: "2016",
213
-              name: "王小虎"
214
-          },
215
-          {
216
-              date: "2016",
217
-              name: "王小虎"
218
-          },
219
-          {
220
-              date: "2016",
221
-              name: "王小虎"
222
-          },
223
-          {
224
-              date: "2016",
225
-              name: "王小虎"
226
-          },
227
-          {
228
-              date: "2016",
229
-              name: "王小虎"
230
-          },
231
-          {
232
-              date: "2016",
233
-              name: "王小虎"
234
-          },
235
-          {
236
-              date: "2016",
237
-              name: "王小虎"
238
-          },
239
-          {
240
-              date: "2016",
241
-              name: "王小虎"
242
-          },
243
-          {
244
-              date: "2016",
245
-              name: "王小虎"
246
-          },
247
-          {
248
-              date: "2016",
249
-              name: "王小虎"
250
-          }
251
-        ],
252 216
         day: [
253 217
             { value: 0, label: "今天", state: 0 },
254 218
             { value: 1, label: "昨天", state: 1 },
255 219
             { value: 2, label: "前天", state: 2 },
256 220
         ],
257 221
         dayType: 0,
258
-        time:''
222
+        time:'',
223
+
224
+        input:'',
225
+        textarea:'',
226
+        form:{
227
+            date:'',
228
+            mode_id:'',
229
+            actual_treatment_hour:'',
230
+            total:'',
231
+            dialyzer_perfusion_apparatus:'',
232
+            machine_type:'',
233
+            blood_access_part_opera_id:'',
234
+            blood_flow_volume:'',
235
+            anticoagulant:'',
236
+            anticoagulant_shouji:'',
237
+            anticoagulant_weichi:'',
238
+            displace_liqui_value:'',
239
+            dry_weight:'',
240
+            weight_before:'',
241
+            weight_after:'',
242
+            target_ultrafiltration:'',
243
+            actual_ultrafiltration:'',
244
+            doctor:'',
245
+            responsibleNurse:'',
246
+            checkNurse:''
247
+        }
259 248
       }
260 249
     },
250
+    created(){
251
+        this.prescription = this.prescription
252
+        this.predialysis_evaluation = this.predialysis_evaluation
253
+        this.assessment_after_dislysis = this.assessment_after_dislysis
254
+        this.patient = this.patient
255
+        this.monitor_records = this.monitor_records
256
+        this.admin_users = this.admin_users
257
+        this.dialysis_order = this.dialysis_order
258
+        this.double_check = this.double_check
259
+        this.getUpdate()
260
+        console.log(999999999,this.selected_date.getTime() / 1000)
261
+         
262
+    },
261 263
     methods:{
262 264
         chooseDay(day) {
263 265
             this.dayType = day;
266
+        },
267
+        getMode(id){
268
+            let name = ''
269
+            this.treatment_mode = Object.values(this.$store.getters.treatment_mode)
270
+            this.treatment_mode.map(item => {
271
+                if(item.id == id){
272
+                    name = item.name
273
+                }
274
+            })
275
+            return name
276
+        },
277
+        getBloodAccessPartOpera(id){
278
+            let name = ''
279
+            this.blood_access_part_opera = getDataConfig('hemodialysis', 'vascular_access_desc')
280
+            this.blood_access_part_opera.map(item => {
281
+                if(item.id == id){
282
+                    name = item.name
283
+                }
284
+            })
285
+            return name
286
+        },
287
+        getAdminUser(id) {
288
+            this.adminUser = this.admin_users
289
+            if (id == 0) {
290
+                return "";
291
+            }
292
+            if (id == undefined) {
293
+                return "";
294
+            }
295
+            for (let i = 0; i < this.adminUser.length; i++) {
296
+                if (this.adminUser[i].id == id) {
297
+                return this.adminUser[i].name;
298
+                }
299
+            }
300
+        },
301
+        getUpdate(){
302
+            this.form.date = parseTime(parseInt(this.selected_date.getTime() / 1000), '{y}-{m}-{d}')
303
+            this.form.mode_id = this.prescription.mode_id
304
+            this.form.actual_treatment_hour = this.assessment_after_dislysis.actual_treatment_hour
305
+            this.form.total = this.patient.total_dialysis + this.patient.user_sys_before_count
306
+            this.form.dialyzer_perfusion_apparatus = this.prescription.dialyzer_perfusion_apparatus
307
+            this.form.machine_type = this.predialysis_evaluation.machine_type
308
+            this.form.blood_access_part_opera_id = this.predialysis_evaluation.blood_access_part_opera_id
309
+            if(this.monitor_records.length > 0){
310
+                this.form.blood_flow_volume = this.monitor_records[0].blood_flow_volume
311
+            }else{
312
+                this.form.blood_flow_volume = ''
313
+            }
314
+            
315
+            this.form.anticoagulant = this.prescription.anticoagulant
316
+            this.form.anticoagulant_shouji = this.prescription.anticoagulant_shouji
317
+            this.form.anticoagulant_weichi = this.prescription.anticoagulant_weichi
318
+            this.form.mode_id = this.getMode(this.form.mode_id)
319
+            this.form.blood_access_part_opera_id = this.getBloodAccessPartOpera(this.form.blood_access_part_opera_id)
320
+
321
+            this.form.displace_liqui_value = this.prescription.displace_liqui_value
322
+            this.form.dry_weight = this.predialysis_evaluation.dry_weight
323
+            this.form.weight_before = this.predialysis_evaluation.weight_before
324
+            this.form.weight_after = this.assessment_after_dislysis.weight_after
325
+            this.form.target_ultrafiltration = this.prescription.target_ultrafiltration
326
+            this.form.actual_ultrafiltration = this.assessment_after_dislysis.actual_ultrafiltration
327
+            this.form.doctor = this.getAdminUser(this.prescription.creater) 
328
+            this.form.responsibleNurse = this.getAdminUser(this.dialysis_order.start_nurse) 
329
+            if(this.double_check.creater == this.dialysis_order.start_nurse){
330
+                this.form.checkNurse = this.getAdminUser(this.double_check.modifier)
331
+            }else{
332
+                this.form.checkNurse = this.getAdminUser(this.double_check.creater)
333
+            }
334
+        },
335
+        onCopy() {
336
+            this.$message.success("复制成功");
337
+        },
338
+        onError() {
339
+            this.$message.success("复制失败,请重试");
264 340
         }
341
+    },
342
+    watch:{
343
+        prescription:{
344
+            handler:function(val) {
345
+                console.log("处方",val)
346
+                this.getUpdate()
347
+            }
348
+        },
349
+        predialysis_evaluation:{
350
+           handler:function(val) {
351
+                console.log("处方",val)
352
+                this.getUpdate()
353
+            } 
354
+        },
355
+        assessment_after_dislysis:{
356
+           handler:function(val) {
357
+                console.log("处方",val)
358
+                this.getUpdate()
359
+            }  
360
+        },
361
+        patient:{
362
+           handler:function(val) {
363
+                console.log("处方",val)
364
+                this.getUpdate()
365
+            }  
366
+        },
367
+        monitor_records:{
368
+           handler:function(val) {
369
+                console.log("处方",val)
370
+                this.getUpdate()
371
+            }  
372
+        },
373
+        admin_users:{
374
+           handler:function(val) {
375
+                console.log("处方",val)
376
+                this.getUpdate()
377
+            }  
378
+        },
379
+        dialysis_order:{
380
+           handler:function(val) {
381
+                console.log("处方",val)
382
+                this.getUpdate()
383
+            }  
384
+        },
385
+        double_check:{
386
+           handler:function(val) {
387
+                console.log("处方",val)
388
+                this.getUpdate()
389
+            }  
390
+        },
391
+
392
+
393
+        // immediate:true,
394
+        deep:true,
265 395
     }
266 396
 }
267 397
 </script>