seimin vor 9 Monaten
Ursprung
Commit
57e9f89836

+ 5 - 6
src/app/views/hushijiandan/hushijiandan.component.html

@@ -1641,13 +1641,12 @@
1641 1641
                     >
1642 1642
                       <thead>
1643 1643
                         <tr class="thead">
1644
-                          <th nzWidth="6%">序号</th>
1644
+                          <th nzWidth="5%">#</th>
1645 1645
                           <th nzWidth="12%">患者姓名<br>住院号</th>
1646 1646
                           <th nzWidth="12%">手术时间</th>
1647 1647
                           <th nzWidth="20%">申请科室</th>
1648
-                          <th>手术名称</th>
1649
-                          <th nzWidth="15%">状态</th>
1650
-                          <th nzWidth="20%" *ngIf="currentDept.typeValue == 'surgery'">操作</th>
1648
+                          <th>手术名称<br>状态</th>
1649
+                          <th nzWidth="30%" *ngIf="currentDept.typeValue == 'surgery'">操作</th>
1651 1650
                         </tr>
1652 1651
                       </thead>
1653 1652
                       <tbody>
@@ -1656,8 +1655,7 @@
1656 1655
                           <td>{{ item.patientDTO ? item.patientDTO.patientName : '' }}({{ item.patientDTO ? item.patientDTO.bedNum : '' }})<br>{{ item.patientDTO ? item.patientDTO.residenceNo : '' }}</td>
1657 1656
                           <td>{{ item.applyDate | date:'MM-dd HH:mm' }}</td>
1658 1657
                           <td>{{ item.areaDeptDTO ? (deptDisplay == 2 ? item.areaDeptDTO.deptalias : item.areaDeptDTO.dept) : '' }}</td>
1659
-                          <td>{{ item.surgeryName }}</td>
1660
-                          <td>{{ item.state?.name }}</td>
1658
+                          <td>{{ item.surgeryName }}<br>{{ item.state?.name }}</td>
1661 1659
                           <td *ngIf="currentDept.typeValue == 'surgery'">
1662 1660
                             <!-- 手术状态是【手术安排】和【接患者中】,并且【是否开启手术即将开始通知】开启 -->
1663 1661
                             <button class="btn1 mr8 mb8 mt8" (click)="surgeryBegin($event, item)" *ngIf="item.state && (item.state.value == 3 || item.state.value == 7) && surgeryConfigs.surgeryBegin == 1">即将开始</button>
@@ -1667,6 +1665,7 @@
1667 1665
                             <button class="btn1 mr8 mb8 mt8" (click)="sendWard($event, item)" *ngIf="item.patientDTO && surgeryConfigs && surgeryConfigs.remandClinical == 1 && item.state && item.state.value == 8">送回病房</button>
1668 1666
                             <!-- 手术状态是【手术中】,并且【是否开通送回苏醒室】开启 -->
1669 1667
                             <button class="btn1 mr8 mb8 mt8" (click)="sendAwakeningRoom($event, item)" *ngIf="item.patientDTO && surgeryConfigs && surgeryConfigs.remandRecovery == 1 && item.state && item.state.value == 8">送回苏醒间</button>
1668
+                            <button class="btn1 mr8 mb8 mt8" (click)="createOrder($event, item)">一键建单</button>
1670 1669
                           </td>
1671 1670
                         </tr>
1672 1671
                       </tbody>

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

@@ -1609,11 +1609,11 @@ export class HushijiandanComponent implements OnInit {
1609 1609
   // 获取患者信息
1610 1610
   snum = 0;
1611 1611
   getPatient(e?) {
1612
-    if ((this.currentDept.typeValue == "checkRoom2" || this.currentDept.typeValue == "outpatientDept" || this.currentDept.typeValue == "checkRoom" || this.currentDept.typeValue == "outpatientService") && !this.tabSearchCont) {
1612
+    if ((this.currentDept.typeValue == "outpatientDept" || this.currentDept.typeValue == "checkRoom" || this.currentDept.typeValue == "outpatientService") && !this.tabSearchCont) {
1613 1613
       this.pLoading = false;
1614 1614
       this.patientList = [];
1615 1615
       this.infoLength = 0;
1616
-      return; //护士端如果登录后如果科室类型为“检查科室”、“门诊科室”、“检验科室”、“门诊服务点”,默认不显示患者信息
1616
+      return; //护士端如果登录后如果科室类型为“门诊科室”、“检验科室”、“门诊服务点”,默认不显示患者信息
1617 1617
     }
1618 1618
     this.pLoading = true;
1619 1619
     let postData = {
@@ -1642,6 +1642,19 @@ export class HushijiandanComponent implements OnInit {
1642 1642
       postData["patient"]["parentIdOnly"] = true;
1643 1643
       postData["patient"]["recoveryDept"] = this.loginUserDeptId;
1644 1644
       postData["patient"]["recoveryDeptDTO"] = {keyWord: '1'};
1645
+    }else if(this.currentDept.typeValue == "checkRoom2"){
1646
+      // 患者信息
1647
+      postData["patient"] = {
1648
+        keyWord: e ? e : this.tabSearchCont,
1649
+      };
1650
+      // 查询父级科室患者
1651
+      postData["patient"]["parentIdOnly"] = true;
1652
+      if (this.tabSearchCont) {
1653
+        delete postData["patient"]["department"]; //搜索范围为全院在院患者
1654
+        delete postData["patient"]["checkTempDept"];
1655
+      } else {
1656
+        postData["patient"]["checkTempDept"] = { id: this.loginUserDeptId };
1657
+      }
1645 1658
     }else{
1646 1659
       // 患者信息
1647 1660
       postData["patient"] = {
@@ -2111,6 +2124,12 @@ export class HushijiandanComponent implements OnInit {
2111 2124
     this.sendAwakeningRoomInfo = `您是否确定将<span style="color:red;">${item.patientDTO ? item.patientDTO.patientName : ''}</span>患者送往<span style="color:red;">${this.surgeryConfigs.recoveryDeptDTO ? (this.deptDisplay == 2 ? this.surgeryConfigs.recoveryDeptDTO.deptalias : this.surgeryConfigs.recoveryDeptDTO.dept) : ''}</span>科室吗?`
2112 2125
   }
2113 2126
 
2127
+  // 手术排程信息-一键建单
2128
+  createOrder(e, item){
2129
+    e.stopPropagation();
2130
+    this.newPatientOrder(item.patientDTO);
2131
+  }
2132
+
2114 2133
   // 患者信息一键建单
2115 2134
   patientModal: boolean = false; //患者信息一键建单模态框
2116 2135
   patientMsg; //患者信息

+ 12 - 0
src/app/views/quilt-washing-trend-analysis/quilt-washing-trend-analysis.component.html

@@ -28,6 +28,18 @@
28 28
             <nz-option [nzLabel]="item.name" [nzValue]="item.value" *ngFor="let item of quarterList"></nz-option>
29 29
           </nz-select>
30 30
         </div>
31
+        <div class="searchItem">
32
+          <span class="label">被服种类</span>:
33
+          <nz-select style="width: 135px;" class="formItem" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
34
+            (nzOnSearch)="changeClothesTypeId($event)" nzAllowClear nzPlaceHolder="请选择被服" [(ngModel)]="searchDto.clothesTypeId">
35
+            <ng-container *ngFor="let option of allClothesType">
36
+              <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
37
+            </ng-container>
38
+            <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
39
+              <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
40
+            </nz-option>
41
+          </nz-select>
42
+        </div>
31 43
       </div>
32 44
       <div class="btns">
33 45
         <button nz-button nzType="primary" (click)='search()'>搜索</button>

+ 43 - 1
src/app/views/quilt-washing-trend-analysis/quilt-washing-trend-analysis.component.ts

@@ -6,6 +6,8 @@ import { MainService } from "../../services/main.service";
6 6
 import { DateService } from "../../services/date.service";
7 7
 import { MyServiceService } from "../../services/my-service.service";
8 8
 import { ToolService } from "../../services/tool.service";
9
+import { Subject } from 'rxjs';
10
+import { debounceTime } from 'rxjs/operators';
9 11
 
10 12
 @Component({
11 13
   selector: "app-quilt-washing-trend-analysis",
@@ -21,10 +23,15 @@ export class QuiltWashingTrendAnalysisComponent implements OnInit {
21 23
     private myService: MyServiceService,
22 24
     private tool: ToolService
23 25
   ) {}
24
-
26
+  searchTimerSubject = new Subject();
25 27
   ngOnInit() {
28
+    this.searchTimerSubject.pipe(debounceTime(500)).subscribe((v) => {
29
+      let fun = v[0];
30
+      fun.call(this, v[1]);
31
+    });
26 32
     this.coopBtns = this.tool.initCoopBtns(this.route);
27 33
     this.getAllHos();
34
+    this.getAllClothesType();
28 35
     this.changeDateType();
29 36
   }
30 37
 
@@ -34,6 +41,7 @@ export class QuiltWashingTrendAnalysisComponent implements OnInit {
34 41
     year: +format(new Date(), "yyyy"),//季度-年
35 42
     quarter: getQuarter(new Date()),//季度
36 43
     tabType: 'YoY',//YoY/同比,MoM/环比
44
+    clothesTypeId: undefined, //选择被服
37 45
   }
38 46
 
39 47
   tabTypes = [
@@ -291,6 +299,38 @@ export class QuiltWashingTrendAnalysisComponent implements OnInit {
291 299
   search() {
292 300
     this.getData();
293 301
   }
302
+  // 用户输入搜索被服
303
+  isLoading = false;
304
+  changeClothesTypeId(e) {
305
+    this.searchTimer(this.getAllClothesType, e);
306
+  }
307
+  // 边输入边搜索节流阀
308
+  searchTimer(fun, e) {
309
+    this.isLoading = true;
310
+    this.searchTimerSubject.next([fun, e]);
311
+  }
312
+  // 获取被服
313
+  getAllClothesType(e?, those?) {
314
+    let that = those || this;
315
+    let postData: any = {
316
+      idx: 0,
317
+      sum: 10,
318
+      dictionaryTree: {
319
+        name: e || "",
320
+        hosId: that.hospital,
321
+        level: 2,
322
+        key: 'clothes_type',
323
+        deleted: 0,
324
+      },
325
+    };
326
+    that.isLoading = true;
327
+    that.mainService
328
+      .getFetchDataList("simple/data", "dictionaryTree", postData)
329
+      .subscribe((data) => {
330
+        that.allClothesType = data.list;
331
+        that.isLoading = false;
332
+      });
333
+  }
294 334
   // 重置
295 335
   reset() {
296 336
     this.searchDto = {
@@ -299,6 +339,7 @@ export class QuiltWashingTrendAnalysisComponent implements OnInit {
299 339
       year: +format(new Date(), "yyyy"),//季度-年
300 340
       quarter: getQuarter(new Date()),//季度
301 341
       tabType: 'YoY',//YoY/同比,MoM/环比
342
+      clothesTypeId: undefined, //选择被服
302 343
     }
303 344
     this.search();
304 345
   }
@@ -317,6 +358,7 @@ export class QuiltWashingTrendAnalysisComponent implements OnInit {
317 358
       tabType: this.searchDto.tabType,
318 359
       hosId: this.hospital,
319 360
       type: this.searchDto.dateType,
361
+      clothesTypeId: this.searchDto.clothesTypeId || undefined,
320 362
     };
321 363
     switch (postData.type) {
322 364
       case "day":

+ 1 - 1
src/app/views/washing-batch-view/washing-batch-view-routing.module.ts

@@ -4,7 +4,7 @@ import { WashingBatchViewComponent } from "./washing-batch-view.component";
4 4
 
5 5
 const routes: Routes = [
6 6
   {
7
-    path: ":id",
7
+    path: ":id/:createTime",
8 8
     component: WashingBatchViewComponent,
9 9
   },
10 10
 ];

+ 1 - 1
src/app/views/washing-batch-view/washing-batch-view.component.html

@@ -3,7 +3,7 @@
3 3
   <div class="head">
4 4
     <div class="head_logo">
5 5
       <div class="logo"><img [src]="tool.logoUrl" [alt]="tool.logoTitle"></div>
6
-      <div class="title">被服洗涤</div>
6
+      <div class="title">被服洗涤<span class="createTime">{{createTime|date:'yyyy-MM-dd HH:mm'}}</span></div>
7 7
     </div>
8 8
     <div class="red">请选择被服科室绑定分类和父级被服分类后进行搜索</div>
9 9
   </div>

+ 3 - 0
src/app/views/washing-batch-view/washing-batch-view.component.less

@@ -43,6 +43,9 @@
43 43
         font-weight: bold;
44 44
         color: @primary-color;
45 45
         margin-left: 30px;
46
+        .createTime{
47
+          margin-left: 24px;
48
+        }
46 49
       }
47 50
     }
48 51
 

+ 2 - 0
src/app/views/washing-batch-view/washing-batch-view.component.ts

@@ -64,6 +64,8 @@ export class WashingBatchViewComponent implements OnInit, AfterViewInit {
64 64
   rows:any[] = [['id', 'clothesState', ''], [], ['','件数', '费用/元']];
65 65
   totalData:any = {};
66 66
 
67
+  createTime = this.route.snapshot.paramMap.get("createTime");
68
+
67 69
   //搜索
68 70
   changeInpSubject = new Subject(); //防抖
69 71
   changeInp(e, type) {

+ 2 - 2
src/app/views/washing-batch/washing-batch.component.ts

@@ -131,7 +131,7 @@ export class WashingBatchComponent implements OnInit {
131 131
     if(data.batchState.value == 1){
132 132
       this.recallOrderShow = true;
133 133
     }else{
134
-      this.router.navigateByUrl("/washingBatchView/" + this.coopData.id);
134
+      this.router.navigateByUrl(`/washingBatchView/${this.coopData.id}/${this.coopData.createTime}`);
135 135
     }
136 136
   }
137 137
   // 设置为洗涤中
@@ -155,7 +155,7 @@ export class WashingBatchComponent implements OnInit {
155 155
   }
156 156
   // 立即查看
157 157
   recAndDel() {
158
-    this.router.navigateByUrl("/washingBatchView/" + this.coopData.id);
158
+    this.router.navigateByUrl(`/washingBatchView/${this.coopData.id}/${this.coopData.createTime}`);
159 159
   }
160 160
   // 取消
161 161
   closeRecallOrderModal() {

+ 3 - 3
upload/production.js

@@ -1,11 +1,11 @@
1 1
 const shell = require('shelljs')
2 2
 const path = require('path');
3 3
 const config = {
4
-  ip: "118.190.89.49", // ssh地址
4
+  ip: "47.113.226.223", // ssh地址
5 5
   username: "root", // ssh 用户名
6 6
   port: 22,      //端口
7
-  password: "dstech@123", // ssh 密码
8
-  path: '/home/itsm_v2_/web/pc', // 上传地址,删除地址
7
+  password: "DStech@123", // ssh 密码
8
+  path: '/home/itsm/project/html2/pc', // 上传地址,删除地址
9 9
   buildPath: '../dist/pc' // 本地打包后文件地址
10 10
 }
11 11
 let Client = require('ssh2-sftp-client');