瀏覽代碼

护士端手术

seimin 1 年之前
父節點
當前提交
d5e52d4f54

+ 1 - 1
proxy.conf.json

@@ -1,6 +1,6 @@
1
 {
1
 {
2
   "/service": {
2
   "/service": {
3
-    "target": "http://192.168.4.240",
3
+    "target": "http://192.168.3.108",
4
     "logLevel": "debug",
4
     "logLevel": "debug",
5
     "changeOrigin": true,
5
     "changeOrigin": true,
6
     "pathRewrite": {
6
     "pathRewrite": {

+ 153 - 3
src/app/views/hushijiandan/hushijiandan.component.html

@@ -48,7 +48,7 @@
48
           </button>
48
           </button>
49
         </div>
49
         </div>
50
         <!-- 患者信息 -->
50
         <!-- 患者信息 -->
51
-        <div class="checkedInfo patient" style="padding-bottom: 0" *ngIf="currentDept.typeValue != 'surgery'; else elseBlock">
51
+        <div class="checkedInfo patient" style="padding-bottom: 0" *ngIf="currentDept.typeValue != 'surgery'; else elseBlock1">
52
           <overlay-scrollbars #osComponentRef4 class="box">
52
           <overlay-scrollbars #osComponentRef4 class="box">
53
             <div
53
             <div
54
               class="loading display_flex align-items_center justify-content_flex-center"
54
               class="loading display_flex align-items_center justify-content_flex-center"
@@ -177,7 +177,7 @@
177
             </div>
177
             </div>
178
           </overlay-scrollbars>
178
           </overlay-scrollbars>
179
         </div>
179
         </div>
180
-        <ng-template #elseBlock>
180
+        <ng-template #elseBlock1>
181
           <!-- 手术安排信息 -->
181
           <!-- 手术安排信息 -->
182
           <div class="checkedInfo patient" style="padding-bottom: 0">
182
           <div class="checkedInfo patient" style="padding-bottom: 0">
183
             <overlay-scrollbars #osComponentRef4 class="box">
183
             <overlay-scrollbars #osComponentRef4 class="box">
@@ -309,7 +309,7 @@
309
           <div class="mainInfo" nz-row>
309
           <div class="mainInfo" nz-row>
310
             <div nz-col nzSpan="17" class="cont">
310
             <div nz-col nzSpan="17" class="cont">
311
               <div class="top">
311
               <div class="top">
312
-                <div class="nums borderB" nz-row *ngIf="currentDept.typeValue != 'surgery'">
312
+                <div class="nums borderB" nz-row *ngIf="currentDept.typeValue != 'surgery'; else elseBlock2">
313
                   <!-- 标本信息未开通 -->
313
                   <!-- 标本信息未开通 -->
314
                   <div
314
                   <div
315
                     *ngIf="!deptTaskTypeRules.openSpecimen"
315
                     *ngIf="!deptTaskTypeRules.openSpecimen"
@@ -584,6 +584,148 @@
584
                     </div>
584
                     </div>
585
                   </div>
585
                   </div>
586
                 </div>
586
                 </div>
587
+                <ng-template #elseBlock2>
588
+                  <div class="nums borderB" nz-row>
589
+                    <!-- 手术未开通 -->
590
+                    <div
591
+                      *ngIf="!deptTaskTypeRules.openPatientTransport && !surgeryLoading"
592
+                      nz-col
593
+                      nzSpan="24"
594
+                      nz-row
595
+                      class="h100p"
596
+                    >
597
+                      <div
598
+                        class="notAvailable display_flex align-items_center justify-content_flex-center"
599
+                      >
600
+                        <div>
601
+                          <img
602
+                            src="../../assets/images/icon_jianchakong.png"
603
+                            alt=""
604
+                          />
605
+                          <div>暂未开通</div>
606
+                        </div>
607
+                      </div>
608
+                      <div
609
+                        nz-col
610
+                        nzSpan="6"
611
+                        class="borderR alignC display_flex justify-content_flex-center align-items_center h100p"
612
+                      >
613
+                        <span>*****</span>
614
+                      </div>
615
+                      <div nz-col nzSpan="18" class="h100p">
616
+                        <div
617
+                          class="txtC h50p alignC display_flex justify-content_flex-center align-items_center overAuto borderB"
618
+                        >
619
+                          <span>*****</span>
620
+                        </div>
621
+                        <div
622
+                          class="txtC h50p alignC display_flex justify-content_flex-center align-items_center overAuto"
623
+                        >
624
+                          <span>*****</span>
625
+                        </div>
626
+                      </div>
627
+                    </div>
628
+                    <!-- 手术已开通 -->
629
+                    <div
630
+                      *ngIf="deptTaskTypeRules.openPatientTransport && !surgeryLoading"
631
+                      nz-col
632
+                      nzSpan="24"
633
+                      nz-row
634
+                      class="h100p"
635
+                    >
636
+                      <div
637
+                        nz-col
638
+                        nzSpan="8"
639
+                        class="borderR alignC display_flex justify-content_flex-center align-items_center h100p"
640
+                      >
641
+                        <button *ngIf="surgeryWKOMsg.patientDTO" [nzLoading]="sLoading1" nz-button nzType="primary" class="btn txtC mr8" (click)="sendWard($event, surgeryWKOMsg)">送回病房</button>
642
+                        <button *ngIf="surgeryWKOMsg.patientDTO" [nzLoading]="sLoading2" nz-button nzType="primary" class="btn txtC" (click)="sendAwakeningRoom($event, surgeryWKOMsg)">送回苏醒间</button>
643
+                      </div>
644
+                      <div nz-col nzSpan="16" class="h100p">
645
+                        <div class="txtC h50p borderB">
646
+                          <div class="swiperBox">
647
+                            <div class="swiper" *ngIf="surgeryWKOMsg.patientDTO">
648
+                              <div class="item txtC alignC display_flex justify-content_flex-center align-items_center patientStyle">
649
+                                <ng-container *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.illnessState">
650
+                                  <i
651
+                                    *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.illnessState.value === '2'"
652
+                                    class="colorRed icon_transport transport-wei"
653
+                                    nz-tooltip
654
+                                    nzTooltipTitle="病危"
655
+                                  ></i>
656
+                                  <i
657
+                                    *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.illnessState.value === '3'"
658
+                                    class="colorRed icon_transport transport-zhong1"
659
+                                    nz-tooltip
660
+                                    nzTooltipTitle="病重"
661
+                                  ></i>
662
+                                </ng-container>
663
+                                <ng-container *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.careLevel">
664
+                                  <i
665
+                                    *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.careLevel.value === '0'"
666
+                                    class="icon_transport transport-te1"
667
+                                    nz-tooltip
668
+                                    nzTooltipTitle="特级护理"
669
+                                  ></i>
670
+                                  <i
671
+                                    *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.careLevel.value === '1'"
672
+                                    class="icon_transport transport-Bduanshuzi1"
673
+                                    nz-tooltip
674
+                                    nzTooltipTitle="一级护理"
675
+                                  ></i>
676
+                                  <i
677
+                                    *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.careLevel.value === '2'"
678
+                                    class="icon_transport transport-Bduanshuzi"
679
+                                    nz-tooltip
680
+                                    nzTooltipTitle="二级护理"
681
+                                  ></i>
682
+                                  <i
683
+                                    *ngIf="surgeryWKOMsg.patientDTO && surgeryWKOMsg.patientDTO.careLevel.value === '3'"
684
+                                    class="icon_transport transport-Bduanshuzi11"
685
+                                    nz-tooltip
686
+                                    nzTooltipTitle="三级护理"
687
+                                  ></i>
688
+                                </ng-container>
689
+                                <strong>{{ surgeryWKOMsg.patientDTO ? surgeryWKOMsg.patientDTO.patientName : '' }}({{ surgeryWKOMsg.patientDTO ? surgeryWKOMsg.patientDTO.residenceNo : '' }})</strong>
690
+                              </div>
691
+                            </div>
692
+                            <div class="swiper none display_flex justify-content_flex-center align-items_center" *ngIf="!surgeryWKOMsg.patientDTO">
693
+                              <div class="item alignC display_flex justify-content_flex-center align-items_center">
694
+                                <span>暂无信息</span>
695
+                              </div>
696
+                            </div>
697
+                          </div>
698
+                        </div>
699
+                        <div class="txtC h50p">
700
+                          <div class="swiperBox">
701
+                            <div class="swiper" *ngIf="surgeryWKOMsg.surgeryName">
702
+                              <div class="item txtC alignC display_flex justify-content_flex-center align-items_center">
703
+                                <span>{{ surgeryWKOMsg.surgeryName }}</span>
704
+                              </div>
705
+                            </div>
706
+                            <div class="swiper none display_flex justify-content_flex-center align-items_center" *ngIf="!surgeryWKOMsg.surgeryName">
707
+                              <div class="item alignC display_flex justify-content_flex-center align-items_center">
708
+                                <span>暂无信息</span>
709
+                              </div>
710
+                            </div>
711
+                          </div>
712
+                        </div>
713
+                      </div>
714
+                    </div>
715
+                    <div
716
+                      *ngIf="surgeryLoading"
717
+                      nz-col
718
+                      nzSpan="24"
719
+                      nz-row
720
+                      class="h100p display_flex justify-content_flex-center align-items_center"
721
+                    >
722
+                      <div class="txtC" style="text-align: center">
723
+                        <img src="../../../assets/images/loading.gif" alt="" />
724
+                        <div>加载中...</div>
725
+                      </div>
726
+                    </div>
727
+                  </div>
728
+                </ng-template>
587
                 <div class="tab borderB" nz-row style="padding: 4px 0">
729
                 <div class="tab borderB" nz-row style="padding: 4px 0">
588
                   <div
730
                   <div
589
                     nz-col
731
                     nz-col
@@ -3555,3 +3697,11 @@
3555
 <!-- 是否一键接患者模态框 -->
3697
 <!-- 是否一键接患者模态框 -->
3556
 <app-dialog-delete [delModal]="pickUpModal" (hideDelModalEvent)="hidePickUpModal()" [btnLoading]="btnLoading"
3698
 <app-dialog-delete [delModal]="pickUpModal" (hideDelModalEvent)="hidePickUpModal()" [btnLoading]="btnLoading"
3557
 (confirmDelEvent)="confirmPickUp()" [content]="pickUpInfo"></app-dialog-delete>
3699
 (confirmDelEvent)="confirmPickUp()" [content]="pickUpInfo"></app-dialog-delete>
3700
+
3701
+<!-- 手术中患者-送回病房 -->
3702
+<app-dialog-delete [delModal]="sendWardModal" (hideDelModalEvent)="hideSendWardModal()" [btnLoading]="sLoading1"
3703
+(confirmDelEvent)="confirmSendWard()" [content]="sendWardInfo"></app-dialog-delete>
3704
+
3705
+<!-- 手术中患者-送回苏醒区 -->
3706
+<app-dialog-delete [delModal]="sendAwakeningRoomModal" (hideDelModalEvent)="hideSendAwakeningRoomModal()" [btnLoading]="sLoading2"
3707
+(confirmDelEvent)="confirmSendAwakeningRoom()" [content]="sendAwakeningRoomInfo"></app-dialog-delete>

+ 17 - 0
src/app/views/hushijiandan/hushijiandan.component.less

@@ -5,6 +5,23 @@
5
   height: 100%;
5
   height: 100%;
6
   display: flex;
6
   display: flex;
7
 
7
 
8
+  .patientStyle{
9
+    i {
10
+      color: @primary-color;
11
+      font-size: 20px;
12
+      font-weight: normal;
13
+      margin-right: 4px;
14
+
15
+      &.colorRed {
16
+        color: red;
17
+      }
18
+
19
+      &.transport-te1 {
20
+        font-size: 22px;
21
+      }
22
+    }
23
+  }
24
+
8
   .bxForm {
25
   .bxForm {
9
     margin-top: 32px;
26
     margin-top: 32px;
10
   }
27
   }

+ 127 - 2
src/app/views/hushijiandan/hushijiandan.component.ts

@@ -251,6 +251,7 @@ export class HushijiandanComponent implements OnInit {
251
 
251
 
252
   specimenWorkOrderMsg: any = {}; //急标普标数量&信息
252
   specimenWorkOrderMsg: any = {}; //急标普标数量&信息
253
   jpDrugsWKOMsg: any = {}; //药品静配提示信息
253
   jpDrugsWKOMsg: any = {}; //药品静配提示信息
254
+  surgeryWKOMsg: any = {}; //手术提示信息
254
 
255
 
255
   // 切换综合日志和一键报修
256
   // 切换综合日志和一键报修
256
   smallTabs = [];
257
   smallTabs = [];
@@ -741,6 +742,36 @@ export class HushijiandanComponent implements OnInit {
741
       });
742
       });
742
   }
743
   }
743
 
744
 
745
+  // 手术提示信息
746
+  surgeryLoading = false;
747
+  getSurgeryWKOMsg() {
748
+    if(this.currentDept.typeValue != 'surgery'){
749
+      return;
750
+    }
751
+    let that = this;
752
+    let postData = {
753
+      idx: 0,
754
+      sum: 1,
755
+      surgery: {
756
+        applyDateStart: format(startOfDay(new Date()), "yyyy-MM-dd HH:mm:ss"),
757
+        applyDateEnd: format(endOfDay(new Date()), "yyyy-MM-dd HH:mm:ss"),
758
+        hosId: this.currentHospital.id,
759
+        surgeryDept: this.loginUserDeptId,
760
+        state: {
761
+          key: 'surgery_trans_state',
762
+          value: 8
763
+        }
764
+      }
765
+    }
766
+    this.surgeryLoading = true;
767
+    that.mainService
768
+      .getFetchDataList("simple/data", "surgery", postData)
769
+      .subscribe((data) => {
770
+        this.surgeryLoading = false;
771
+        this.surgeryWKOMsg = Array.isArray(data.list) ? (data.list[0] ? data.list[0] : {}) : {};
772
+      });
773
+  }
774
+
744
   // 药品静配提示信息
775
   // 药品静配提示信息
745
   drugJpLoading = false;
776
   drugJpLoading = false;
746
   getJpDrugsWKOMsg() {
777
   getJpDrugsWKOMsg() {
@@ -1006,6 +1037,10 @@ export class HushijiandanComponent implements OnInit {
1006
         if (search === undefined) {
1037
         if (search === undefined) {
1007
           that.deptTaskTypeRules = data.data;
1038
           that.deptTaskTypeRules = data.data;
1008
           that.getOrderList();
1039
           that.getOrderList();
1040
+          if(that.deptTaskTypeRules.openPatientTransport){
1041
+            // 手术权限
1042
+            that.getSurgeryWKOMsg();
1043
+          }
1009
           if (
1044
           if (
1010
             that.deptTaskTypeRules.openInspection ||
1045
             that.deptTaskTypeRules.openInspection ||
1011
             that.deptTaskTypeRules.openPatientTransport
1046
             that.deptTaskTypeRules.openPatientTransport
@@ -1177,7 +1212,11 @@ export class HushijiandanComponent implements OnInit {
1177
         applyDateStart: format(startOfDay(new Date()), "yyyy-MM-dd HH:mm:ss"),
1212
         applyDateStart: format(startOfDay(new Date()), "yyyy-MM-dd HH:mm:ss"),
1178
         applyDateEnd: format(endOfDay(new Date()), "yyyy-MM-dd HH:mm:ss"),
1213
         applyDateEnd: format(endOfDay(new Date()), "yyyy-MM-dd HH:mm:ss"),
1179
         hosId: this.currentHospital.id,
1214
         hosId: this.currentHospital.id,
1180
-        surgeryDept: this.loginUserDeptId
1215
+        surgeryDept: this.loginUserDeptId,
1216
+        state: {
1217
+          key: 'surgery_trans_state',
1218
+          value: 3
1219
+        }
1181
       };
1220
       };
1182
     }else{
1221
     }else{
1183
       // 患者信息
1222
       // 患者信息
@@ -1196,7 +1235,7 @@ export class HushijiandanComponent implements OnInit {
1196
         postData["patient"]["department"] = { id: this.loginUserDeptId };
1235
         postData["patient"]["department"] = { id: this.loginUserDeptId };
1197
       }
1236
       }
1198
     }
1237
     }
1199
-    
1238
+
1200
     this.snum++;
1239
     this.snum++;
1201
     this.mainService
1240
     this.mainService
1202
       .getFetchDataList(this.currentDept.typeValue == 'surgery' ? "simple/data" : 'nurse', this.currentDept.typeValue == 'surgery' ? "surgery" : 'patient', postData)
1241
       .getFetchDataList(this.currentDept.typeValue == 'surgery' ? "simple/data" : 'nurse', this.currentDept.typeValue == 'surgery' ? "surgery" : 'patient', postData)
@@ -1450,6 +1489,92 @@ export class HushijiandanComponent implements OnInit {
1450
     this.pickUpItem = item;
1489
     this.pickUpItem = item;
1451
     this.pickUpInfo = `您本次需要从<span style="color:red;">${item.areaDeptDTO ? (this.deptDisplay == 2 ? item.areaDeptDTO.deptalias : item.areaDeptDTO.dept) : ''}</span>科室接<span style="color:red;">${item.patientDTO ? item.patientDTO.patientName : ''}</span>患者到<span style="color:red;">${item.surgeryDeptDTO ? (this.deptDisplay == 2 ? item.surgeryDeptDTO.deptalias : item.surgeryDeptDTO.dept) : ''}</span>手术间进行手术,您确认接患者吗?`
1490
     this.pickUpInfo = `您本次需要从<span style="color:red;">${item.areaDeptDTO ? (this.deptDisplay == 2 ? item.areaDeptDTO.deptalias : item.areaDeptDTO.dept) : ''}</span>科室接<span style="color:red;">${item.patientDTO ? item.patientDTO.patientName : ''}</span>患者到<span style="color:red;">${item.surgeryDeptDTO ? (this.deptDisplay == 2 ? item.surgeryDeptDTO.deptalias : item.surgeryDeptDTO.dept) : ''}</span>手术间进行手术,您确认接患者吗?`
1452
   }
1491
   }
1492
+  sendWardModal: boolean = false; //模态框
1493
+  sendWardInfo:string = '';
1494
+  sendWardItem: any = {};
1495
+  hideSendWardModal() {
1496
+    this.sendWardModal = false;
1497
+  }
1498
+  // 确认
1499
+  sLoading1 = false;
1500
+  confirmSendWard() {
1501
+    alert('暂无接口');
1502
+    return;
1503
+    console.log(this.sendWardItem);
1504
+    this.sLoading1 = true;
1505
+    this.mainService
1506
+      .createOrTakeOrder({
1507
+        type: 'surgery',
1508
+        id: this.sendWardItem.id,
1509
+        workOrder: {
1510
+          sourceld: 2,
1511
+          createDept: this.loginUser.dept.id,
1512
+          platform: 2
1513
+        }
1514
+      })
1515
+      .subscribe((result:any) => {
1516
+        this.sLoading1 = false;
1517
+        this.sendWardModal = false;
1518
+        if(result.state == 200){
1519
+          this.showPromptModal("创建", true, "");
1520
+          this.getOrderList();
1521
+          this.getDeptTaskType();
1522
+          this.getTodayNum();
1523
+        }else{
1524
+          this.showPromptModal("创建", false, result.msg);
1525
+        }
1526
+      });
1527
+  }
1528
+  // 手术中患者-送回病房
1529
+  sendWard(e, item){
1530
+    e.stopPropagation();
1531
+    this.sendWardModal = true;
1532
+    this.sendWardItem = item;
1533
+    this.sendWardInfo = `您确认送回病房吗?`
1534
+  }
1535
+  sendAwakeningRoomModal: boolean = false; //模态框
1536
+  sendAwakeningRoomInfo:string = '';
1537
+  sendAwakeningRoomItem: any = {};
1538
+  hideSendAwakeningRoomModal() {
1539
+    this.sendAwakeningRoomModal = false;
1540
+  }
1541
+  // 确认
1542
+  sLoading2 = false;
1543
+  confirmSendAwakeningRoom() {
1544
+    alert('暂无接口');
1545
+    return;
1546
+    console.log(this.sendAwakeningRoomItem);
1547
+    this.sLoading2 = true;
1548
+    this.mainService
1549
+      .createOrTakeOrder({
1550
+        type: 'surgery',
1551
+        id: this.sendAwakeningRoomItem.id,
1552
+        workOrder: {
1553
+          sourceld: 2,
1554
+          createDept: this.loginUser.dept.id,
1555
+          platform: 2
1556
+        }
1557
+      })
1558
+      .subscribe((result:any) => {
1559
+        this.sLoading2 = false;
1560
+        this.sendAwakeningRoomModal = false;
1561
+        if(result.state == 200){
1562
+          this.showPromptModal("创建", true, "");
1563
+          this.getOrderList();
1564
+          this.getDeptTaskType();
1565
+          this.getTodayNum();
1566
+        }else{
1567
+          this.showPromptModal("创建", false, result.msg);
1568
+        }
1569
+      });
1570
+  }
1571
+  // 手术中患者-送回苏醒区
1572
+  sendAwakeningRoom(e, item){
1573
+    e.stopPropagation();
1574
+    this.sendAwakeningRoomModal = true;
1575
+    this.sendAwakeningRoomItem = item;
1576
+    this.sendAwakeningRoomInfo = `您确认送回苏醒区吗?`
1577
+  }
1453
 
1578
 
1454
   // 患者信息一键建单
1579
   // 患者信息一键建单
1455
   patientModal: boolean = false; //患者信息一键建单模态框
1580
   patientModal: boolean = false; //患者信息一键建单模态框