Przeglądaj źródła

Merge branch '20200710_pc_vue_new_branch' into 20200916_pc_vue_new_branch

csx 4 lat temu
rodzic
commit
07c77366be

+ 21 - 0
src/api/his/his.js Wyświetl plik

@@ -130,6 +130,27 @@ export function getHisPrescriptionList() {
130 130
 }
131 131
 
132 132
 
133
+export function getHisPrescriptionInfo(params) {
134
+  return request({
135
+    url: "/api/hisprescription/info",
136
+    method: "get",
137
+    params:params,
138
+  });
139
+}
140
+
141
+
142
+
143
+export function getConfig() {
144
+  return request({
145
+    url: "/api/medicalinsurance/config",
146
+    method: "get",
147
+  });
148
+}
149
+
150
+
151
+
152
+
153
+
133 154
 
134 155
 
135 156
 

+ 57 - 8
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue Wyświetl plik

@@ -42,15 +42,15 @@
42 42
           <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">打印处置单</el-button>
43 43
           <el-button size="small" @click="open(2)" type="primary">打印治疗单</el-button>
44 44
           <el-button size="small" @click="open(3)" type="primary">打印</el-button>
45
-          <el-button v-loading="loadingone" v-if="hisPatientInfo == null || hisPatientInfo.id == 0 " size="small"
46
-                     @click="open(6)"
47
-                     type="primary">挂号
48
-          </el-button>
49
-          <el-button v-loading="loadingtwo" v-if="hisPatientInfo != null && hisPatientInfo.id > 0 " size="small"
45
+          <!--<el-button v-loading="loadingone" v-if="hisPatientInfo == null || hisPatientInfo.id == 0 " size="small"-->
46
+                     <!--@click="open(6)"-->
47
+                     <!--type="primary">挂号-->
48
+          <!--</el-button>-->
49
+          <el-button v-loading="loadingtwo" v-if="(curPrescriptions.advices.length >0 || curPrescriptions.project.length >0) && (this.info.prescription_status == 1)" size="small"
50 50
                      @click="open(4)"
51 51
                      type="primary">收费
52 52
           </el-button>
53
-          <el-button size="small" @click="open(5)" type="primary">退费</el-button>
53
+          <el-button size="small" @click="open(5)" type="primary" v-if="this.info.prescription_status == 3">退费</el-button>
54 54
         </div>
55 55
 
56 56
         <div class="mainCenter">
@@ -87,8 +87,11 @@
87 87
 
88 88
                   </div>
89 89
                   <div class="costBox">
90
-                    <span>当前处方总费用:<span style="color:red;">{{ getTotal() }}元</span></span>
91
-                    <span>{{ state }}</span>
90
+                    <span>当前处方总费用:<span style="color:red;">{{ total}}元</span></span>
91
+                    <span v-if="this.curPrescriptions.order_status  == 1">待结算</span>
92
+                    <span v-if="this.curPrescriptions.order_status  == 2">已结算</span>
93
+                    <span v-if="this.curPrescriptions.order_status  == 2">已退费</span>
94
+
92 95
                   </div>
93 96
                 </div>
94 97
                 <div class="centerRight">
@@ -114,6 +117,8 @@
114 117
                   <ul class="basicUl">
115 118
                     <li style="width:50%;">医生:{{ info.doctor }}</li>
116 119
                     <li style="width:50%;">科室:{{ info.departments }}</li>
120
+                    <li style="width:50%;">总费用:{{ getTotal() }}</li>
121
+
117 122
                     <li style="width:100%;">判断结果:{{info.diagnosis}}</li>
118 123
                     <li style="width:100%;">是否有传染病:</li>
119 124
                     <li style="width:100%;">血压:</li>
@@ -340,6 +345,9 @@
340 345
               }
341 346
               this.prescriptions.push(obj)
342 347
               this.curPrescriptions = this.prescriptions[0]
348
+              this.total = 0
349
+              this.total = this.getTotalOne()
350
+              console.log(this.total)
343 351
 
344 352
             }
345 353
           }
@@ -363,6 +371,14 @@
363 371
             this.curPrescriptions = temp
364 372
           }
365 373
         }
374
+        console.log(this.curPrescriptions)
375
+
376
+        this.total = 0
377
+        this.total = this.getTotalOne()
378
+        console.log(this.total)
379
+
380
+
381
+
366 382
       }, deepClone(source) {
367 383
         if (!source && typeof source !== 'object') {
368 384
           throw new Error('error arguments', 'shallowClone')
@@ -376,6 +392,34 @@
376 392
           }
377 393
         })
378 394
         return targetObj
395
+      },getTotalOne(){
396
+        var total = 0
397
+          if(this.curPrescriptions.type == 1) {
398
+            if (this.curPrescriptions.advices != null) {
399
+              for (let a = 0; a < this.curPrescriptions.advices.length; a++) {
400
+                console.log(this.curPrescriptions.advices[a].retail_price)
401
+                console.log(this.curPrescriptions.advices[a].prescribing_number)
402
+
403
+                total = total + this.curPrescriptions.advices[a].retail_price * this.curPrescriptions.advices[a].prescribing_number
404
+              }
405
+            }
406
+            return total
407
+
408
+          }else{
409
+            var total = 0
410
+            if (this.curPrescriptions.project != null) {
411
+              for (let b = 0; b < this.curPrescriptions.project.length; b++) {
412
+                console.log(this.curPrescriptions.project[b].price )
413
+                console.log(this.curPrescriptions.project[b].total )
414
+                total = total + this.curPrescriptions.project[b].price * this.curPrescriptions.project[b].total
415
+              }
416
+            }
417
+            return total
418
+
419
+          }
420
+
421
+
422
+
379 423
       },
380 424
       getTotal() {
381 425
         var total = 0
@@ -561,10 +605,15 @@
561 605
                 name: '处方' + index,
562 606
                 advices: tempAdvice,
563 607
                 project: tempProject,
608
+                order_status:response.data.data.prescription[i].order_status,
564 609
                 type: response.data.data.prescription[i].type
565 610
               }
566 611
               this.prescriptions.push(obj)
567 612
               this.curPrescriptions = this.prescriptions[0]
613
+              this.total = 0
614
+              this.total = this.getTotalOne()
615
+              console.log(this.total)
616
+
568 617
 
569 618
             }
570 619
           }

+ 2 - 1
src/xt_pages/outpatientCharges/summaryDetail.vue Wyświetl plik

@@ -115,7 +115,8 @@ export default {
115 115
           this.curPrescriptions = temp
116 116
         }
117 117
       }
118
-    }, deepClone(source) {
118
+    },
119
+    deepClone(source) {
119 120
       if (!source && typeof source !== 'object') {
120 121
         throw new Error('error arguments', 'shallowClone')
121 122
       }

+ 63 - 67
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue Wyświetl plik

@@ -19,12 +19,12 @@
19 19
             <el-input v-model="patientInfo.id_card_no" placeholder="" readonly></el-input>
20 20
           </el-form-item>
21 21
           <!--<el-form-item label="挂号类型: " prop="name">-->
22
-            <!--<el-input v-model="hisPatientInfo.register_type" placeholder="" readonly></el-input>-->
22
+          <!--<el-input v-model="hisPatientInfo.register_type" placeholder="" readonly></el-input>-->
23 23
           <!--</el-form-item>-->
24 24
           <el-form-item label="挂号类型: " prop="name">
25 25
             <el-select style="margin-right:5px;" v-model="register_type" placeholder="">
26 26
               <el-option
27
-                v-for="(item,index) in getDictionaryDataConfig('system','register_type')"
27
+                v-for="(item,index) in this.register_types"
28 28
                 :key="index"
29 29
                 :label="item.name"
30 30
                 :value="item.name">
@@ -210,7 +210,8 @@
210 210
         </template>
211 211
       </div>
212 212
     </div>
213
-    <additionalCharges ref='additionalCharges' :hisPatientInfo="hisPatientInfo" :patientInfo="patientInfo"></additionalCharges>
213
+    <additionalCharges ref='additionalCharges' :hisPatientInfo="hisPatientInfo"
214
+                       :patientInfo="patientInfo"></additionalCharges>
214 215
     <select-template ref='selectTemplate'></select-template>
215 216
     <save-template ref='saveTemplate'></save-template>
216 217
   </div>
@@ -223,8 +224,7 @@
223 224
     delHisPrescription,
224 225
     getInitData,
225 226
     getPatientInfo,
226
-    getSchedulePatientList,
227
-
227
+    getSchedulePatientList
228 228
   } from '@/api/his/his'
229 229
   import { getDictionaryDataConfig } from '@/utils/data'
230 230
   import prescriptionTable from './prescriptionTable'
@@ -257,7 +257,7 @@
257 257
     },
258 258
     data() {
259 259
       return {
260
-        register_type:"",
260
+        register_type: '',
261 261
         value: '',
262 262
         form: {
263 263
           name: ''
@@ -297,7 +297,12 @@
297 297
         teamList: [],
298 298
         doctors: [],
299 299
         departMent: [],
300
-        curStatus: 0
300
+        curStatus: 0,
301
+        register_types: [
302
+          { id: 1, name: '医保' },
303
+          { id: 2, name: '自费' }
304
+
305
+        ]
301 306
       }
302 307
     },
303 308
     methods: {
@@ -346,11 +351,11 @@
346 351
       changeKind(val) {
347 352
         this.drugs = []
348 353
 
349
-        if(val == 0){
354
+        if (val == 0) {
350 355
           this.drugs = this.allDrugs
351
-        }else{
352
-          for (let i = 0; i < this.allDrugs.length; i++){
353
-            if (this.allDrugs[i].drug_type == val){
356
+        } else {
357
+          for (let i = 0; i < this.allDrugs.length; i++) {
358
+            if (this.allDrugs[i].drug_type == val) {
354 359
               this.drugs.push(this.allDrugs[i])
355 360
             }
356 361
           }
@@ -371,7 +376,6 @@
371 376
             this.advices_template = response.data.data.advices_template
372 377
             this.doctors = response.data.data.doctors
373 378
 
374
-
375 379
           }
376 380
         })
377 381
 
@@ -415,41 +419,40 @@
415 419
         }
416 420
       },
417 421
       clearData() {
418
-        console.log("111111")
422
+        console.log('111111')
419 423
         this.curPrescriptions = []
420 424
         this.curStatus = 0
421 425
         this.curDrugs = []
422 426
         this.preDrugs = []
423 427
         this.teamList = []
424 428
 
425
-
426 429
       },
427
-      setData(data,info) {
430
+      setData(data, info) {
428 431
         this.curStatus = 0
429 432
         this.prescriptions = data
430 433
         this.curPrescriptions = this.prescriptions[0]
431
-        if(this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0 ){
434
+        if (this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0) {
432 435
           this.curStatus = 1
433
-          this.customTabIndex= 1
436
+          this.customTabIndex = 1
434 437
           this.rightTab = 1
435 438
           this.showOne = true
436 439
           this.showTwo = false
437 440
 
438 441
         }
439 442
 
440
-        if(this.curPrescriptions.project.length > 0 && this.curPrescriptions.advices.length == 0 ){
443
+        if (this.curPrescriptions.project.length > 0 && this.curPrescriptions.advices.length == 0) {
441 444
           this.curStatus = 2
442
-          this.customTabIndex= 2
445
+          this.customTabIndex = 2
443 446
           this.rightTab = 2
444 447
           this.showOne = false
445 448
           this.showTwo = true
446 449
         }
447 450
 
448
-
449 451
         this.state1 = info.diagnosis
450 452
         this.state2 = info.sick_history
451 453
         this.doctorValue = info.doctor
452 454
         this.departmentValue = info.departments
455
+        this.register_type = info.register_type
453 456
 
454 457
 
455 458
         // console.log(this.$refs)
@@ -463,13 +466,13 @@
463 466
         }
464 467
       },
465 468
       open(index) {
466
-        if(this.doctorValue.length <= 0){
467
-          this.$message.error("医生不能为空")
469
+        if (this.doctorValue.length <= 0) {
470
+          this.$message.error('医生不能为空')
468 471
           return
469 472
         }
470 473
 
471
-        if(this.departmentValue.length <= 0){
472
-          this.$message.error("科室不能为空")
474
+        if (this.departmentValue.length <= 0) {
475
+          this.$message.error('科室不能为空')
473 476
           return
474 477
         }
475 478
 
@@ -479,9 +482,10 @@
479 482
             diagnose: this.state1,
480 483
             sick_history: this.state2,
481 484
             doctor: this.doctorValue,
482
-               department: this.departmentValue,
485
+            department: this.departmentValue,
483 486
             record_date: this.record_date,
484
-            his_patient_id: this.hisPatientInfo.id
487
+            his_patient_id: this.hisPatientInfo.id,
488
+            reg_type: this.register_type
485 489
           }
486 490
 
487 491
           for (let i = 0; i < this.prescriptions.length; i++) {
@@ -536,10 +540,10 @@
536 540
         this.curStatus = 0
537 541
       },
538 542
       removeTab(targetName) {
539
-        this.$confirm("处方删除后不可恢复,是否确认删除", "删除", {
540
-          confirmButtonText: "确 定",
541
-          cancelButtonText: "取 消",
542
-          type: "warning"
543
+        this.$confirm('处方删除后不可恢复,是否确认删除', '删除', {
544
+          confirmButtonText: '确 定',
545
+          cancelButtonText: '取 消',
546
+          type: 'warning'
543 547
         }).then(() => {
544 548
           let id = 0
545 549
           for (let i = 0; i < this.prescriptions.length; i++) {
@@ -568,10 +572,10 @@
568 572
             for (let i = 0; i < this.prescriptions.length; i++) {
569 573
               if (activeName == this.prescriptions[i].name) {
570 574
                 this.curPrescriptions = this.prescriptions[i]
571
-                if(this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0){
575
+                if (this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0) {
572 576
                   this.curStatus = 1
573 577
                 }
574
-                if(this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0){
578
+                if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0) {
575 579
                   this.curStatus = 2
576 580
                 }
577 581
               }
@@ -580,8 +584,7 @@
580 584
               this.curPrescriptions = []
581 585
               this.curStatus = 0
582 586
             }
583
-          }
584
-          else {
587
+          } else {
585 588
             let params = {
586 589
               'id': id
587 590
             }
@@ -607,10 +610,10 @@
607 610
                 for (let i = 0; i < this.prescriptions.length; i++) {
608 611
                   if (activeName == this.prescriptions[i].name) {
609 612
                     this.curPrescriptions = this.prescriptions[i]
610
-                    if(this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0){
613
+                    if (this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0) {
611 614
                       this.curStatus = 1
612 615
                     }
613
-                    if(this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0){
616
+                    if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0) {
614 617
                       this.curStatus = 2
615 618
                     }
616 619
                   }
@@ -626,29 +629,27 @@
626 629
           }
627 630
 
628 631
         })
629
-          .catch(() => {});
630
-
631
-
632
+          .catch(() => {
633
+          })
632 634
 
633 635
       },
634 636
       clickTab(index) {
635
-        if (index == 1){
637
+        if (index == 1) {
636 638
           if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0) {
637
-            this.$message.error("当前处方为项目,无法切换为药品,需要新开处方")
639
+            this.$message.error('当前处方为项目,无法切换为药品,需要新开处方')
638 640
             return
639 641
           }
640
-        }else{
642
+        } else {
641 643
           if (this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0) {
642
-            this.$message.error("当前处方为药品,无法切换为项目,需要新开处方")
644
+            this.$message.error('当前处方为药品,无法切换为项目,需要新开处方')
643 645
             return
644 646
           }
645 647
 
646
-
647 648
         }
648 649
 
649 650
         if (index == 1) {
650 651
 
651
-            this.teamList = []
652
+          this.teamList = []
652 653
           this.$refs.tables.clearSelection()
653 654
 
654 655
           this.showOne = true
@@ -674,21 +675,20 @@
674 675
         //用来区分处方属于项目还是药品
675 676
         if (this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0) {
676 677
           this.customTabIndex = 1
677
-          this.curStatus =1
678
+          this.curStatus = 1
678 679
 
679 680
         }
680 681
         if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0) {
681 682
           this.customTabIndex = 2
682
-          this.curStatus =2
683
+          this.curStatus = 2
683 684
         }
684 685
         if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length == 0) {
685 686
           // this.customTabIndex = this.rightTab
686 687
           this.customTabIndex = index
687
-          this.curStatus =0
688
+          this.curStatus = 0
688 689
 
689 690
         }
690 691
 
691
-
692 692
       }, changeAllGoodInfoTableData: function(selection) {
693 693
         this.curDrugs = selection
694 694
       }, addCharges() {
@@ -699,23 +699,23 @@
699 699
       },
700 700
       comfirm() {
701 701
 
702
-        if (this.curStatus == 1  && this.rightTab == 2) {
702
+        if (this.curStatus == 1 && this.rightTab == 2) {
703 703
           this.$message.error('改处方是药品,无法添加项目')
704 704
           this.teamList = []
705 705
           this.$refs.tables.clearSelection()
706 706
           return
707 707
         }
708 708
 
709
-        if (this.curStatus ==2 && this.rightTab == 1) {
709
+        if (this.curStatus == 2 && this.rightTab == 1) {
710 710
           this.$message.error('改处方是项目,无法添加药品')
711 711
           this.curDrugs = []
712 712
           this.$refs.multipleTable.clearSelection()
713 713
           return
714 714
         }
715 715
 
716
-        for (let i = 0; i < this.teamList.length; i++){
717
-          for (let a = 0; a < this.curPrescriptions.project.length; a++){
718
-            if(this.teamList[i].id == this.curPrescriptions.project[a].project_id){
716
+        for (let i = 0; i < this.teamList.length; i++) {
717
+          for (let a = 0; a < this.curPrescriptions.project.length; a++) {
718
+            if (this.teamList[i].id == this.curPrescriptions.project[a].project_id) {
719 719
               this.$message.error('改处方存在相同的项目,无法添加相同的项目')
720 720
               return
721 721
 
@@ -726,10 +726,9 @@
726 726
         console.log(this.curDrugs)
727 727
         console.log(this.curPrescriptions.advices)
728 728
 
729
-
730
-        for (let i = 0; i < this.curDrugs.length; i++){
731
-          for (let a = 0; a < this.curPrescriptions.advices.length; a++){
732
-            if(this.curDrugs[i].id == this.curPrescriptions.advices[i].id){
729
+        for (let i = 0; i < this.curDrugs.length; i++) {
730
+          for (let a = 0; a < this.curPrescriptions.advices.length; a++) {
731
+            if (this.curDrugs[i].id == this.curPrescriptions.advices[i].id) {
733 732
               this.$message.error('改处方存在相同的药品,无法添加相同的药品')
734 733
               return
735 734
 
@@ -737,9 +736,6 @@
737 736
           }
738 737
         }
739 738
 
740
-
741
-
742
-
743 739
         for (let i = 0; i < this.prescriptions.length; i++) {
744 740
           if (this.prescriptions[i].name == this.editableTabsValue) {
745 741
             var temp = this.deepClone(this.curDrugs)
@@ -750,7 +746,7 @@
750 746
               for (let b = 0; b < temp.length; b++) {
751 747
                 let obj = {
752 748
                   advice_id: 0,
753
-                  id:  temp[b].id,
749
+                  id: temp[b].id,
754 750
                   drug_name: temp[b].drug_name,
755 751
                   single_dose: temp[b].single_dose,
756 752
                   delivery_way: temp[b].delivery_way,
@@ -761,7 +757,7 @@
761 757
                   single_dose_unit: temp[b].min_unit,
762 758
                   prescribing_number_unit: temp[b].min_unit,
763 759
                   min_unit: temp[b].min_unit,
764
-                  medical_insurance_number:temp[b].medical_insurance_number,
760
+                  medical_insurance_number: temp[b].medical_insurance_number
765 761
 
766 762
                 }
767 763
                 this.prescriptions[i].advices.push(obj)
@@ -780,10 +776,10 @@
780 776
                   delivery_way: temp2[b].delivery_way,
781 777
                   execution_frequency: temp2[b].execution_frequency,
782 778
                   number_days: temp2[b].number_days,
783
-                  total:temp2[b].total,
784
-                  price:temp2[b].price,
785
-                  remark:"",
786
-                  medical_code:temp2[b].medical_code,
779
+                  total: temp2[b].total,
780
+                  price: temp2[b].price,
781
+                  remark: '',
782
+                  medical_code: temp2[b].medical_code
787 783
                 }
788 784
                 console.log(obj)
789 785
                 this.prescriptions[i].project.push(obj)

+ 272 - 178
src/xt_pages/outpatientDoctorStation/components/inquiriesDetail.vue Wyświetl plik

@@ -1,191 +1,285 @@
1 1
 <template>
2
-    <el-dialog
3
-        title="详情"
4
-        width="1000px"
5
-        :visible.sync="visible"
6
-        :before-close="_close"
7
-        class="detailDialog"
8
-    >
9
-        <el-tabs v-model="activeName">
10
-            <el-tab-pane label="处方详情" name="first">
11
-                <el-table :data="tableData" border height="350" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
12
-                    <el-table-column align="center" prop="name" label="类型">
13
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
14
-                    </el-table-column>
15
-                    <el-table-column align="center" prop="name" label="医嘱名称">
16
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
17
-                    </el-table-column>
18
-                    <el-table-column align="center" prop="name" label="组">
19
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
20
-                    </el-table-column>
21
-                    <el-table-column align="center" prop="name" label="每次量">
22
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
23
-                    </el-table-column>
24
-                    <el-table-column align="center" prop="name" label="单位">
25
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
26
-                    </el-table-column>
27
-                    <el-table-column align="center" prop="name" label="用法">
28
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
29
-                    </el-table-column>
30
-                    <el-table-column align="center" prop="name" label="频率">
31
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
32
-                    </el-table-column>
33
-                    <el-table-column align="center" prop="name" label="天数">
34
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
35
-                    </el-table-column>
36
-                    <el-table-column align="center" prop="name" label="总量">
37
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
38
-                    </el-table-column>
39
-                    <el-table-column align="center" prop="name" label="单位">
40
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
41
-                    </el-table-column>
42
-                    <el-table-column align="center" prop="name" label="限制说明">
43
-                        <template slot-scope="scope">{{ scope.row.date }}</template>
44
-                    </el-table-column>
45
-                </el-table> 
46
-            </el-tab-pane>
47
-            <el-tab-pane label="病历详情" name="second">
48
-                <div class="detailMain">
49
-                    <span style="width:240px;">处方号:344431222222222</span>
50
-                    <span style="width:200px;">医生:医生</span>
51
-                    <span style="width:200px;">科室:儿科</span>
52
-                    <span style="width:200px;">创建时间:2020-10-10 01:12:20</span>
53
-                </div>
54
-                <div class="commonCell">
55
-                    <p>基本信息</p>
56
-                    <div class="detailMain">
57
-                        <span style="width:240px;">疾病名称:无</span>
58
-                        <span style="width:200px;">症状:医生</span>
59
-                        <span style="width:200px;">发病日期:2020-10-10 01:12:20</span>
60
-                        <span style="width:200px;">是否传染:否</span>
61
-                    </div>
62
-                </div>
63
-                <div class="commonCell">
64
-                    <p>体格信息</p>
65
-                    <div class="detailMain">
66
-                        <span style="width:140px;">体温:℃</span>
67
-                        <span style="width:140px;">呼吸:0 次/分</span>
68
-                        <span style="width:140px;">脉搏:0 次/分</span>
69
-                        <span style="width:200px;">血压:0。00~0.00 mmHg</span>
70
-                    </div>
71
-                </div>
72
-                <div class="commonCell">
73
-                    <p></p>
74
-                    <div class="detailMain">
75
-                        <span style="width:140px;">血糖:0 mmol/L</span>
76
-                        <span style="width:140px;">血脂:0 mmol/L</span>
77
-                        <span style="width:140px;">身高:0 cm</span>
78
-                        <span style="width:200px;">体重:0 kg</span>
79
-                    </div>
80
-                </div>
81
-                <div class="commonCell">
82
-                    <p>主诉</p>
83
-                    <div>无</div>
84
-                </div>
85
-                <div class="commonCell">
86
-                    <p>现病史</p>
87
-                    <div>无</div>
88
-                </div>
89
-                <div class="commonCell">
90
-                    <p>门诊诊断</p>
91
-                    <div>无</div>
92
-                </div>
93
-                <div class="commonCell">
94
-                    <p>门诊医嘱</p>
95
-                    <div>无</div>
96
-                </div>
97
-                <div class="commonCell">
98
-                    <p>过敏史</p>
99
-                    <div>无</div>
100
-                </div>
101
-                <div class="commonCell">
102
-                    <p>既往史</p>
103
-                    <div>无</div>
104
-                </div>
105
-                <div class="commonCell">
106
-                    <p>个人史</p>
107
-                    <div>无</div>
108
-                </div>
109
-                <div class="commonCell">
110
-                    <p>家族史</p>
111
-                    <div>无</div>
112
-                </div>
113
-            </el-tab-pane>
2
+  <el-dialog
3
+    title="详情"
4
+    width="1000px"
5
+    :visible.sync="visible"
6
+    :before-close="_close"
7
+    class="detailDialog"
8
+  >
9
+    <el-tabs v-model="activeName">
10
+      <el-tab-pane label="处方详情" name="first">
11
+        <el-tabs class="preTabs" v-model="editableTabsValue" type="card" @tab-click="tabclickEvent">
12
+          <el-tab-pane
13
+            v-for="(item, index) in prescriptions"
14
+            :key="index"
15
+            :label="item.name"
16
+            :name="item.name"
17
+          >
18
+          </el-tab-pane>
19
+
20
+          <div class="RP">
21
+            Rp
22
+          </div>
23
+          <new-prescription-table ref="prescription_tables"
24
+                                  :prescription="curPrescriptions"></new-prescription-table>
114 25
         </el-tabs>
115
-        <div slot="footer" class="dialog-footer">
116
-            <el-button @click="hide">取 消</el-button>
117
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
26
+
27
+      </el-tab-pane>
28
+      <el-tab-pane label="病历详情" name="second">
29
+        <div class="detailMain">
30
+          <span style="width:240px;">处方号:344431222222222</span>
31
+          <span style="width:200px;">医生:医生</span>
32
+          <span style="width:200px;">科室:儿科</span>
33
+          <span style="width:200px;">创建时间:2020-10-10 01:12:20</span>
34
+        </div>
35
+        <div class="commonCell">
36
+          <p>基本信息</p>
37
+          <div class="detailMain">
38
+            <span style="width:240px;">疾病名称:无</span>
39
+            <span style="width:200px;">症状:医生</span>
40
+            <span style="width:200px;">发病日期:2020-10-10 01:12:20</span>
41
+            <span style="width:200px;">是否传染:否</span>
42
+          </div>
43
+        </div>
44
+        <div class="commonCell">
45
+          <p>体格信息</p>
46
+          <div class="detailMain">
47
+            <span style="width:140px;">体温:℃</span>
48
+            <span style="width:140px;">呼吸:0 次/分</span>
49
+            <span style="width:140px;">脉搏:0 次/分</span>
50
+            <span style="width:200px;">血压:0。00~0.00 mmHg</span>
51
+          </div>
52
+        </div>
53
+        <div class="commonCell">
54
+          <p></p>
55
+          <div class="detailMain">
56
+            <span style="width:140px;">血糖:0 mmol/L</span>
57
+            <span style="width:140px;">血脂:0 mmol/L</span>
58
+            <span style="width:140px;">身高:0 cm</span>
59
+            <span style="width:200px;">体重:0 kg</span>
60
+          </div>
61
+        </div>
62
+        <div class="commonCell">
63
+          <p>主诉</p>
64
+          <div>无</div>
65
+        </div>
66
+        <div class="commonCell">
67
+          <p>现病史</p>
68
+          <div>无</div>
69
+        </div>
70
+        <div class="commonCell">
71
+          <p>门诊诊断</p>
72
+          <div>无</div>
73
+        </div>
74
+        <div class="commonCell">
75
+          <p>门诊医嘱</p>
76
+          <div>无</div>
77
+        </div>
78
+        <div class="commonCell">
79
+          <p>过敏史</p>
80
+          <div>无</div>
118 81
         </div>
119
-    </el-dialog>         
82
+        <div class="commonCell">
83
+          <p>既往史</p>
84
+          <div>无</div>
85
+        </div>
86
+        <div class="commonCell">
87
+          <p>个人史</p>
88
+          <div>无</div>
89
+        </div>
90
+        <div class="commonCell">
91
+          <p>家族史</p>
92
+          <div>无</div>
93
+        </div>
94
+      </el-tab-pane>
95
+    </el-tabs>
96
+    <div slot="footer" class="dialog-footer">
97
+      <el-button @click="hide">取 消</el-button>
98
+      <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
99
+    </div>
100
+  </el-dialog>
120 101
 </template>
121 102
 
103
+
104
+
122 105
 <script>
123
-export default {
124
-    data(){
125
-        return{
126
-            visible:false,
127
-            tableData: [{
128
-            date: '2016-05-02',
129
-            name: '王小虎',
130
-            address: '上海市普陀区金沙江路 1518 弄'
131
-            }, {
132
-            date: '2016-05-04',
133
-            name: '王小虎',
134
-            address: '上海市普陀区金沙江路 1517 弄'
135
-            }, {
136
-            date: '2016-05-01',
137
-            name: '王小虎',
138
-            address: '上海市普陀区金沙江路 1519 弄'
139
-            }, {
140
-            date: '2016-05-03',
141
-            name: '王小虎',
142
-            address: '上海市普陀区金沙江路 1516 弄'
143
-            }],
144
-            activeName:'first'
145
-        }
106
+  import { getHisPrescriptionInfo } from '@/api/his/his'
107
+  import NewPrescriptionTable from './newPrescriptionTable'
108
+
109
+  export default {
110
+    components: { NewPrescriptionTable },
111
+    data() {
112
+      return {
113
+        visible: false,
114
+        activeName: 'first',
115
+        curPrescriptions: {},
116
+        prescriptions: [],
117
+        record_date: '',
118
+        editableTabsValue: '1',
119
+        loadingone: false,
120
+        editableTabs: [{
121
+          title: '处方1',
122
+          name: '1'
123
+        }],
124
+        tabIndex: 1,
125
+        hisPatientInfo: {},
126
+        loadingtwo: false,
127
+        patientTableData: [{
128
+          name: '杨美英',
129
+          mdtrt_id: '1709946'
130
+        }],
131
+        patientInfo: { id: 0 },
132
+        doctor: {},
133
+        total: 0,
134
+        state: '未收费',
135
+        radio: 1,
136
+        radioStatus: 1,
137
+        search_input: ''
138
+      }
146 139
     },
147
-    methods:{
148
-        _close: function(done) {
149
-            // this.clear()
150
-            done()
151
-        },
152
-        clear: function() {
153
-            this.form.id = 0;
154
-            this.form.name = "";
155
-            this.form.intro = "";
156
-        },
157
-        show() {
158
-            // this.clear()
159
-            this.visible = true
160
-        },
161
-        hide() {
162
-            // this.clear()
163
-            this.visible = false
164
-        },
165
-    }
166
-}
167
-</script>
140
+    methods: {
141
+      tabclickEvent(val) {
142
+        for (let i = 0; i < this.prescriptions.length; i++) {
143
+          if (this.prescriptions[i].name == val.name) {
144
+            this.curPrescriptions = {}
145
+            var temp = this.deepClone(this.prescriptions[i])
146
+            this.curPrescriptions = temp
147
+          }
148
+        }
149
+      },
150
+      deepClone(source) {
151
+        if (!source && typeof source !== 'object') {
152
+          throw new Error('error arguments', 'shallowClone')
153
+        }
154
+        const targetObj = source.constructor === Array ? [] : {}
155
+        Object.keys(source).forEach((keys) => {
156
+          if (source[keys] && typeof source[keys] === 'object') {
157
+            targetObj[keys] = this.deepClone(source[keys])
158
+          } else {
159
+            targetObj[keys] = source[keys]
160
+          }
161
+        })
162
+        return targetObj
163
+      },
168 164
 
169
-<style lang="scss">
170
-.detailDialog{
171
-    .el-dialog__body{
172
-        padding: 0 20px 30px;
173
-    }
174
-    .detailMain{
175
-        // padding:5px;
176
-        span{
177
-            display: inline-block;
165
+      moreState(tab, event) {
166
+        if (tab == 'more') {
167
+          return false
178 168
         }
179
-    }
180
-    .commonCell{
181
-        display: flex;
182
-        line-height: 40px;
183
-        >p{
184
-            font-weight: bold;
185
-            color:#000;
186
-            width: 80px;
169
+      },
170
+
171
+      _close: function(done) {
172
+        // this.clear()
173
+        done()
174
+      },
175
+      clear: function() {
176
+        this.form.id = 0
177
+        this.form.name = ''
178
+        this.form.intro = ''
179
+      },
180
+      show(id) {
181
+        let params={
182
+          id:id,
187 183
         }
184
+        getHisPrescriptionInfo(params).then(response => {
185
+          if (response.data.state == 0) {
186
+            this.$message.error(response.data.msg)
187
+            return false
188
+          } else {
189
+            this.patientInfo = response.data.data.order.patient
190
+            this.hisPatientInfo = response.data.data.order.his_patient
191
+            this.prescriptions = []
192
+            for (let i = 0; i < response.data.data.prescription.length; i++) {
193
+              var prescription = response.data.data.prescription[i]
194
+              let tempAdvice = []
195
+              let tempProject = []
196
+              for (let b = 0; b < prescription.advices.length; b++) {
197
+                let obj = {
198
+                  advice_id: prescription.advices[b].id,
199
+                  drug_name: prescription.advices[b].advice_name,
200
+                  single_dose: prescription.advices[b].single_dose,
201
+                  delivery_way: prescription.advices[b].delivery_way,
202
+                  execution_frequency: prescription.advices[b].execution_frequency,
203
+                  retail_price: prescription.advices[b].price.toString(),
204
+                  remark: prescription.advices[b].remark,
205
+                  prescribing_number: prescription.advices[b].prescribing_number.toString(),
206
+                  single_dose_unit: prescription.advices[b].single_dose_unit,
207
+                  prescribing_number_unit: prescription.advices[b].prescribing_number_unit,
208
+                  min_unit: prescription.advices[b].single_dose_unit,
209
+                  medical_insurance_number: prescription.advices[b].med_list_codg
210
+
211
+                }
212
+                tempAdvice.push(obj)
213
+              }
214
+
215
+              for (let b = 0; b < prescription.project.length; b++) {
216
+                let obj = {
217
+                  id: prescription.project[b].id,
218
+                  project_id: prescription.project[b].project.id,
219
+                  project_name: prescription.project[b].project.project_name,
220
+                  statistical_classification: prescription.project[b].statistical_classification,
221
+                  single_dose: prescription.project[b].single_dose,
222
+                  delivery_way: prescription.project[b].delivery_way,
223
+                  execution_frequency: prescription.project[b].execution_frequency,
224
+                  number_days: prescription.project[b].day,
225
+                  total: prescription.project[b].count.toString(),
226
+                  price: prescription.project[b].price,
227
+                  remark: prescription.project[b].remark,
228
+                  medical_code: prescription.project[b].project.medical_code
229
+                }
230
+                tempProject.push(obj)
231
+              }
232
+              let index = i + 1
233
+              let obj = {
234
+                id: prescription.id,
235
+                name: '处方' + index,
236
+                advices: tempAdvice,
237
+                project: tempProject,
238
+                type: response.data.data.prescription[i].type
239
+              }
240
+              this.prescriptions.push(obj)
241
+              this.curPrescriptions = this.prescriptions[0]
242
+            }
243
+          }
244
+        })
245
+        // this.clear()
246
+        this.visible = true
247
+
248
+
249
+
250
+      },
251
+      hide() {
252
+        // this.clear()
253
+        this.visible = false
254
+      }
188 255
     }
189
-}
256
+  }
257
+</script>
258
+
259
+<style lang="scss">
260
+  .detailDialog {
261
+
262
+  .el-dialog__body {
263
+    padding: 0 20px 30px;
264
+  }
265
+
266
+  .detailMain {
267
+  span {
268
+    display: inline-block;
269
+  }
270
+
271
+  }
272
+  .commonCell {
273
+    display: flex;
274
+    line-height: 40px;
275
+
276
+  > p {
277
+    font-weight: bold;
278
+    color: #000;
279
+    width: 80px;
280
+  }
281
+
282
+  }
283
+  }
190 284
 </style>
191 285
 

+ 28 - 16
src/xt_pages/outpatientDoctorStation/pastInquiries.vue Wyświetl plik

@@ -15,35 +15,40 @@
15 15
       </div>
16 16
       <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }"
17 17
                 :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
18
-        <el-table-column align="center" width="60" label="序号">
19
-          <template slot-scope="scope">
20
-            1
21
-          </template>
18
+        <el-table-column align="center" label="序号" width="60" type="index">
19
+          <!--<template slot-scope="scope">{{ scope.$index +1 }}</template>-->
22 20
         </el-table-column>
23 21
         <el-table-column align="center" prop="name" label="姓名" width="100">
24
-          <template slot-scope="scope">{{ scope.row.date }}</template>
22
+          <template slot-scope="scope">{{ scope.row.patient.name }}</template>
25 23
         </el-table-column>
26 24
         <el-table-column align="center" prop="name" label="处方日期" width="110">
27
-          <template slot-scope="scope">{{ scope.row.date }}</template>
28
-        </el-table-column>
29
-        <el-table-column align="center" prop="name" label="患者类型">
30
-          <template slot-scope="scope">{{ scope.row.date }}</template>
25
+          <template slot-scope="scope"> {{getTimes(scope.row.record_date)}}</template>
26
+
31 27
         </el-table-column>
28
+        <!--<el-table-column align="center" prop="name" label="患者类型">-->
29
+          <!--<template slot-scope="scope">{{}}</template>-->
30
+        <!--</el-table-column>-->
32 31
         <el-table-column align="center" prop="name" label="处方号">
33
-          <template slot-scope="scope">{{ scope.row.date }}</template>
32
+          <template slot-scope="scope">{{scope.row.prescription_number}}</template>
34 33
         </el-table-column>
35 34
         <el-table-column align="center" prop="name" label="开立医生">
36
-          <template slot-scope="scope">{{ scope.row.date }}</template>
35
+          <template slot-scope="scope">{{scope.row.doctor}}</template>
37 36
         </el-table-column>
38 37
         <el-table-column align="center" prop="name" label="诊断">
39
-          <template slot-scope="scope">{{ scope.row.date }}</template>
38
+          <template slot-scope="scope">{{ scope.row.diagnosis }}</template>
40 39
         </el-table-column>
41 40
         <el-table-column align="center" prop="name" label="状态">
42
-          <template slot-scope="scope">{{ scope.row.date }}</template>
41
+          <template slot-scope="scope">
42
+            <div v-if=" scope.row.prescription_status == 1">新建</div>
43
+            <div v-if=" scope.row.prescription_status == 2">待结算</div>
44
+            <div v-if=" scope.row.prescription_status == 3">已结算</div>
45
+            <div v-if=" scope.row.prescription_status == 4">已退费</div>
46
+
47
+          </template>
43 48
         </el-table-column>
44 49
         <el-table-column align="center" prop="name" label="操作" width="100">
45 50
           <template slot-scope="scope">
46
-            <el-button size="mini" type="primary" @click="handerDelete">详情</el-button>
51
+            <el-button size="mini" type="primary" @click="handerShowDetail(scope.row)">详情</el-button>
47 52
           </template>
48 53
         </el-table-column>
49 54
       </el-table>
@@ -56,6 +61,7 @@
56 61
         style="margin-top:20px;float: right"
57 62
         layout="total, sizes, prev, pager, next, jumper"
58 63
         :total="total"
64
+
59 65
       >
60 66
       </el-pagination>
61 67
       <inquiries-detail ref="inquiriesDetail"></inquiries-detail>
@@ -67,6 +73,7 @@
67 73
   import BreadCrumb from '@/xt_pages/components/bread-crumb'
68 74
   import inquiriesDetail from './components/inquiriesDetail'
69 75
   import { getHisPrescriptionList } from '@/api/his/his'
76
+  import { uParseTime } from '@/utils/tools'
70 77
 
71 78
   export default {
72 79
     components: {
@@ -99,14 +106,19 @@
99 106
       }
100 107
     },
101 108
     methods: {
102
-      handerDelete() {
103
-        this.$refs.inquiriesDetail.show()
109
+      getTimes(time) {
110
+        return uParseTime(time, "{y}-{m}-{d}");
111
+      },
112
+      handerShowDetail(row) {
113
+        console.log(row)
114
+        this.$refs.inquiriesDetail.show(row.id)
104 115
       }, getHisPrescriptionList() {
105 116
         getHisPrescriptionList().then(response => {
106 117
           if (response.data.state == 0) {
107 118
             this.$message.error(response.data.msg)
108 119
             return false
109 120
           } else {
121
+            this.tableData = response.data.data.order
110 122
 
111 123
           }
112 124
         })