4 次代碼提交 e8d0676a33 ... 8cf6f5d50a

作者 SHA1 備註 提交日期
  seimin 8cf6f5d50a 解决冲突 2 周之前
  seimin 0adda59b9b bugfix 2 周之前
  seimin c74ff668d2 Merge branch 'master' into develop 2 周之前
  seimin 159fd57f2d 白求恩调整优化 2 周之前
共有 32 個文件被更改,包括 1436 次插入129 次删除
  1. 18 1
      src/app/components/configurationCenter/configuration-drug/configuration-drug.component.html
  2. 36 6
      src/app/components/configurationCenter/configuration-drug/configuration-drug.component.ts
  3. 210 0
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.component.html
  4. 303 0
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.component.less
  5. 348 0
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.component.ts
  6. 20 0
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.module.ts
  7. 2 1
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.html
  8. 2 0
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.ts
  9. 3 1
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen.module.ts
  10. 1 0
      src/app/share/businessData-detail-info-modal/businessData-detail-info-modal.component.html
  11. 8 5
      src/app/share/businessData-detail-modal/businessData-detail-modal.component.html
  12. 6 6
      src/app/share/businessData-detail-modal/businessData-detail-modal.component.less
  13. 53 0
      src/app/share/patient-log-prompt-modal/patient-log-prompt-modal.component.html
  14. 165 0
      src/app/share/patient-log-prompt-modal/patient-log-prompt-modal.component.less
  15. 56 0
      src/app/share/patient-log-prompt-modal/patient-log-prompt-modal.component.ts
  16. 3 0
      src/app/share/share.module.ts
  17. 1 4
      src/app/share/view-specimen/view-specimen.component.html
  18. 9 5
      src/app/share/view-specimen/view-specimen.component.ts
  19. 12 8
      src/app/views/batch-specimen/batch-specimen.component.ts
  20. 43 15
      src/app/views/drug-search/drug-search.component.html
  21. 30 7
      src/app/views/drug-search/drug-search.component.ts
  22. 3 3
      src/app/views/fuwutai/fuwutai.component.ts
  23. 1 1
      src/app/views/hushijiandan/hushijiandan.component.html
  24. 2 2
      src/app/views/hushijiandan/hushijiandan.component.ts
  25. 2 2
      src/app/views/inspect-info-config/inspect-info-config.component.html
  26. 3 0
      src/app/views/inspect-info-config/inspect-info-config.component.ts
  27. 7 3
      src/app/views/patient-search/patient-search.component.html
  28. 12 0
      src/app/views/patient-search/patient-search.component.ts
  29. 21 19
      src/app/views/specimen-search/specimen-search.component.html
  30. 8 4
      src/app/views/specimen-search/specimen-search.component.less
  31. 46 34
      src/app/views/specimen-search/specimen-search.component.ts
  32. 2 2
      src/app/views/task-type-management/task-type-management.component.html

+ 18 - 1
src/app/components/configurationCenter/configuration-drug/configuration-drug.component.html

@@ -101,6 +101,11 @@
101 101
 										  <nz-form-label class="label">支持拍照留存</nz-form-label>
102 102
 										  <nz-checkbox-group [(ngModel)]="item.postData.drugsEndPhoto"></nz-checkbox-group>
103 103
 										</div>
104
+                    <!-- 开通一扫交接 -->
105
+										<div class="display_flex align-items_center mb8">
106
+										  <nz-form-label class="label">开通一扫交接</nz-form-label>
107
+										  <nz-checkbox-group [(ngModel)]="item.postData.drugsScanHandover"></nz-checkbox-group>
108
+										</div>
104 109
                   </ng-container>
105 110
 									<!-- 药单显示患者 -->
106 111
 									<div class="display_flex align-items_center mb8">
@@ -138,7 +143,7 @@
138 143
                   <!-- 自动建单 -->
139 144
 									<div class="display_flex align-items_center mb8">
140 145
 									  <nz-form-label class="label">是否自动建单</nz-form-label>
141
-									  <nz-checkbox-group [(ngModel)]="item.postData.autoCreate"></nz-checkbox-group>
146
+									  <nz-checkbox-group [(ngModel)]="item.postData.autoCreate" (ngModelChange)="changeAutoCreate($event, item)"></nz-checkbox-group>
142 147
 									</div>
143 148
 									<!-- 药品自动建单状态 -->
144 149
 									<div class="display_flex align-items_center mb8" *ngIf="item.postData.autoCreate[0].checked">
@@ -147,6 +152,18 @@
147 152
 										  <nz-option *ngFor="let item of drugStateData" [nzLabel]="item.name" [nzValue]="item.id"></nz-option>
148 153
 										</nz-select>
149 154
 									</div>
155
+                  <!-- 限制药单类型建单 -->
156
+                  <div class="display_flex align-items_center mb8" *ngIf="item.postData.autoCreate[0].checked">
157
+                    <nz-form-label class="label">限制药单类型建单</nz-form-label>
158
+                    <nz-select nzMode="multiple" class="w320px" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择限制药单类型建单" [(ngModel)]="item.postData.drugsCreateLimitMarkType">
159
+                      <ng-container *ngFor="let option of markTypeList">
160
+                        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
161
+                      </ng-container>
162
+                      <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
163
+                        <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
164
+                      </nz-option>
165
+                    </nz-select>
166
+                  </div>
150 167
                 </div>
151 168
                 <div class="bottom">
152 169
                   <button class="login-form-button" nzType="primary" [nzLoading]="btnLoading" nz-button (click)="submitForm()">保存</button>

+ 36 - 6
src/app/components/configurationCenter/configuration-drug/configuration-drug.component.ts

@@ -33,6 +33,7 @@ export class ConfigurationDrugComponent implements OnInit {
33 33
     this.activeDictionary = this.dictionaryKeyList[0];
34 34
     this.init();
35 35
 		this.getDrugState();
36
+		this.getMarkTypeList();
36 37
   }
37 38
 
38 39
   // 工单模式
@@ -70,13 +71,15 @@ export class ConfigurationDrugComponent implements OnInit {
70 71
 				showPatientInfo: [{ label:'是否开启', value: 0 }],//药单显示患者
71 72
         drugsEndManual: undefined,//终点科室手动填写
72 73
         drugsEndPhoto: [{ label:'是否开启', value: 0 }],//终点科室支持拍照留存
74
+        drugsScanHandover: [{ label:'是否开启', value: 0 }],//终点科室开通一扫交接
73 75
 				showDrugsBagTypeCount: [{ label:'是否开启', value: 0 }],//是否显示药品数、种类数
74 76
 				showDrugsBagDetails: [{ label:'是否开启', value: 0 }],//是否支持查看药品详情信息
75 77
 				sendingMergeOrder: [{ label:'是否开启', value: 0 }],//待送达合并工单
76 78
 				drugsResidueCreateOrder: [{ label:'是否开启', value: 0 }],//交接后,剩余药包是否建单
77 79
 				urgentCreateOrder: [{ label:'是否开启', value: 0 }],//是否开启紧急配送建单
78 80
 				autoCreate: [{ label:'是否开启', value: 0 }], // 是否自动建单
79
-				autoCreateState: undefined // 药品自动建单状态
81
+				autoCreateState: undefined, // 药品自动建单状态
82
+				drugsCreateLimitMarkType: [], // 限制药单类型建单
80 83
 			}
81 84
     },
82 85
     {
@@ -97,13 +100,15 @@ export class ConfigurationDrugComponent implements OnInit {
97 100
 				showPatientInfo: [{ label:'是否开启', value: 0 }],//药单显示患者
98 101
         drugsEndManual: undefined,//终点科室手动填写
99 102
         drugsEndPhoto: [{ label:'是否开启', value: 0 }],//终点科室支持拍照留存
103
+        drugsScanHandover: [{ label:'是否开启', value: 0 }],//终点科室开通一扫交接
100 104
         showDrugsBagTypeCount: [{ label:'是否开启', value: 0 }],//是否显示药品数、种类数
101 105
 				showDrugsBagDetails: [{ label:'是否开启', value: 0 }],//是否支持查看药品详情信息
102 106
 				sendingMergeOrder: [{ label:'是否开启', value: 0 }],//待送达合并工单
103 107
         drugsResidueCreateOrder: [{ label:'是否开启', value: 0 }],//交接后,剩余药包是否建单
104 108
         urgentCreateOrder: [{ label:'是否开启', value: 0 }],//是否开启紧急配送建单
105 109
 				autoCreate: [{ label:'是否开启', value: 0 }], // 是否自动建单
106
-				autoCreateState: undefined // 药品自动建单状态
110
+				autoCreateState: undefined, // 药品自动建单状态
111
+        drugsCreateLimitMarkType: [], // 限制药单类型建单
107 112
 			}
108 113
     },
109 114
     {
@@ -124,13 +129,15 @@ export class ConfigurationDrugComponent implements OnInit {
124 129
 				showPatientInfo: [{ label:'是否开启', value: 0 }],//药单显示患者
125 130
         drugsEndManual: undefined,//终点科室手动填写
126 131
         drugsEndPhoto: [{ label:'是否开启', value: 0 }],//终点科室支持拍照留存
132
+        drugsScanHandover: [{ label:'是否开启', value: 0 }],//终点科室开通一扫交接
127 133
         showDrugsBagTypeCount: [{ label:'是否开启', value: 0 }],//是否显示药品数、种类数
128 134
 				showDrugsBagDetails: [{ label:'是否开启', value: 0 }],//是否支持查看药品详情信息
129 135
         sendingMergeOrder: [{ label:'是否开启', value: 0 }],//待送达合并工单
130 136
         drugsResidueCreateOrder: [{ label:'是否开启', value: 0 }],//交接后,剩余药包是否建单
131 137
         urgentCreateOrder: [{ label:'是否开启', value: 0 }],//是否开启紧急配送建单
132 138
 				autoCreate: [{ label:'是否开启', value: 0 }], // 是否自动建单
133
-				autoCreateState: undefined // 药品自动建单状态
139
+				autoCreateState: undefined, // 药品自动建单状态
140
+        drugsCreateLimitMarkType: [], // 限制药单类型建单
134 141
 			}
135 142
     },
136 143
     {
@@ -151,13 +158,15 @@ export class ConfigurationDrugComponent implements OnInit {
151 158
 				showPatientInfo: [{ label:'是否开启', value: 0 }],//药单显示患者
152 159
         drugsEndManual: undefined,//终点科室手动填写
153 160
         drugsEndPhoto: [{ label:'是否开启', value: 0 }],//终点科室支持拍照留存
161
+        drugsScanHandover: [{ label:'是否开启', value: 0 }],//终点科室开通一扫交接
154 162
         showDrugsBagTypeCount: [{ label:'是否开启', value: 0 }],//是否显示药品数、种类数
155 163
 				showDrugsBagDetails: [{ label:'是否开启', value: 0 }],//是否支持查看药品详情信息
156 164
         sendingMergeOrder: [{ label:'是否开启', value: 0 }],//待送达合并工单
157 165
         drugsResidueCreateOrder: [{ label:'是否开启', value: 0 }],//交接后,剩余药包是否建单
158 166
         urgentCreateOrder: [{ label:'是否开启', value: 0 }],//是否开启紧急配送建单
159 167
 				autoCreate: [{ label:'是否开启', value: 0 }], // 是否自动建单
160
-				autoCreateState: undefined // 药品自动建单状态
168
+				autoCreateState: undefined, // 药品自动建单状态
169
+        drugsCreateLimitMarkType: [], // 限制药单类型建单
161 170
 			}
162 171
     },
163 172
     {
@@ -178,13 +187,15 @@ export class ConfigurationDrugComponent implements OnInit {
178 187
 				showPatientInfo: [{ label:'是否开启', value: 0 }],//药单显示患者
179 188
         drugsEndManual: undefined,//终点科室手动填写
180 189
         drugsEndPhoto: [{ label:'是否开启', value: 0 }],//终点科室支持拍照留存
190
+        drugsScanHandover: [{ label:'是否开启', value: 0 }],//终点科室开通一扫交接
181 191
         showDrugsBagTypeCount: [{ label:'是否开启', value: 0 }],//是否显示药品数、种类数
182 192
 				showDrugsBagDetails: [{ label:'是否开启', value: 0 }],//是否支持查看药品详情信息
183 193
         sendingMergeOrder: [{ label:'是否开启', value: 0 }],//待送达合并工单
184 194
         drugsResidueCreateOrder: [{ label:'是否开启', value: 0 }],//交接后,剩余药包是否建单
185 195
         urgentCreateOrder: [{ label:'是否开启', value: 0 }],//是否开启紧急配送建单
186 196
 				autoCreate: [{ label:'是否开启', value: 0 }], // 是否自动建单
187
-				autoCreateState: undefined // 药品自动建单状态
197
+				autoCreateState: undefined, // 药品自动建单状态
198
+        drugsCreateLimitMarkType: [], // 限制药单类型建单
188 199
 			}
189 200
     },
190 201
   ];
@@ -198,6 +209,14 @@ export class ConfigurationDrugComponent implements OnInit {
198 209
 		});
199 210
 	}
200 211
 
212
+  // 获取药单类型
213
+	markTypeList:any = []
214
+	getMarkTypeList(){
215
+		this.mainService.getDictionary("list", "drugsbag_mark_type").subscribe((data) => {
216
+			this.markTypeList = data
217
+		});
218
+	}
219
+
201 220
   // 点击数据字典key
202 221
   activeDictionary:any;
203 222
   clickDictionaryKey(item){
@@ -222,6 +241,7 @@ export class ConfigurationDrugComponent implements OnInit {
222 241
       this.activeDictionary.postData.drugsEndCheckScanIds = this.activeDictionary.postData.drugsEndCheckScanIds.map(v => ({...v, checked: false}));;
223 242
       this.activeDictionary.postData.drugsEndManual = undefined;
224 243
       this.activeDictionary.postData.drugsEndPhoto[0].checked = false;
244
+      this.activeDictionary.postData.drugsScanHandover[0].checked = false;
225 245
     }
226 246
   }
227 247
 
@@ -278,6 +298,7 @@ export class ConfigurationDrugComponent implements OnInit {
278 298
       drugsEndCheckScanIds: this.activeDictionary.postData.drugsEndCheckScanIds.filter(v => v.checked).map(v => v.value).toString() || undefined,
279 299
       drugsEndManual: this.activeDictionary.postData.drugsEndManual ? { id: this.activeDictionary.postData.drugsEndManual } : undefined,
280 300
       drugsEndPhoto: this.activeDictionary.postData.drugsEndPhoto[0].checked ? 1 : 0,
301
+      drugsScanHandover: this.activeDictionary.postData.drugsScanHandover[0].checked ? 1 : 0,
281 302
 			showPatientInfo: this.activeDictionary.postData.showPatientInfo[0].checked ? 1 : 0,
282 303
 			showDrugsBagTypeCount: this.activeDictionary.postData.showDrugsBagTypeCount[0].checked ? 1 : 0,
283 304
 			showDrugsBagDetails: this.activeDictionary.postData.showDrugsBagDetails[0].checked ? 1 : 0,
@@ -287,7 +308,8 @@ export class ConfigurationDrugComponent implements OnInit {
287 308
 			autoCreate: this.activeDictionary.postData.autoCreate[0].checked ? 1 : 0,
288 309
 			autoCreateState:{
289 310
 				id:this.activeDictionary.postData.autoCreateState || undefined
290
-			}
311
+			},
312
+      drugsCreateLimitMarkType: this.activeDictionary.postData.drugsCreateLimitMarkType.length ? this.activeDictionary.postData.drugsCreateLimitMarkType.toString() : undefined,
291 313
 		};
292 314
     this.btnLoading = true;
293 315
     this.mainService
@@ -383,6 +405,7 @@ export class ConfigurationDrugComponent implements OnInit {
383 405
           this.activeDictionary.postData.drugsEndCheckScanIds = this.activeDictionary.postData.drugsEndCheckScanIds.map(v => ({...v, checked: (this.configs.drugsEndCheckScanIds || '').split(',').includes(v.value.toString())}));
384 406
           this.activeDictionary.postData.drugsEndManual = this.configs.drugsEndManual ? this.configs.drugsEndManual.id : undefined;
385 407
           this.activeDictionary.postData.drugsEndPhoto[0].checked = this.configs.drugsEndPhoto == 1;
408
+          this.activeDictionary.postData.drugsScanHandover[0].checked = this.configs.drugsScanHandover == 1;
386 409
 					this.activeDictionary.postData.showPatientInfo[0].checked = this.configs.showPatientInfo == 1;
387 410
 					this.activeDictionary.postData.showDrugsBagTypeCount[0].checked = this.configs.showDrugsBagTypeCount == 1;
388 411
 					this.activeDictionary.postData.showDrugsBagDetails[0].checked = this.configs.showDrugsBagDetails == 1;
@@ -391,7 +414,14 @@ export class ConfigurationDrugComponent implements OnInit {
391 414
 					this.activeDictionary.postData.urgentCreateOrder[0].checked = this.configs.urgentCreateOrder == 1;
392 415
 					this.activeDictionary.postData.autoCreate[0].checked = this.configs.autoCreate == 1;
393 416
 					this.activeDictionary.postData.autoCreateState = this.configs.autoCreateState && this.configs.autoCreateState.id || undefined;
417
+          this.activeDictionary.postData.drugsCreateLimitMarkType = this.configs.drugsCreateLimitMarkType ? this.configs.drugsCreateLimitMarkType.split(',').map(v => +v) : [];
394 418
 				}
395 419
       });
396 420
   }
421
+
422
+  // 是否自动建单
423
+  changeAutoCreate(e, item){
424
+    item.postData.autoCreateState = null;
425
+    item.postData.drugsCreateLimitMarkType = [];
426
+  }
397 427
 }

+ 210 - 0
src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.component.html

@@ -0,0 +1,210 @@
1
+<div class="content priority">
2
+  <div class="contentInner">
3
+    <div class="list-template" id="wechatTable">
4
+      <div class="list-template__content">
5
+        <div class="list-template__bottom">
6
+          <div class="list-template__top" nz-row>
7
+            <div nz-col nzXl='17' class="list-template__searchBox">
8
+            </div>
9
+            <div nz-col nzXl="7" class="list-template__btns">
10
+              <button nz-button class="btn default" (click)="addWechatModal()" *ngIf="this.taskTypeDTO.id">新增</button>
11
+            </div>
12
+          </div>
13
+          <nz-table class="list-template__nzTable" [nzData]="dataList" nzSize="middle" [nzShowPagination]="false"
14
+            [nzLoading]="loading1">
15
+            <thead>
16
+              <tr class="thead">
17
+                <th nzWidth="14%">班次</th>
18
+                <th nzWidth="14%">急查建单</th>
19
+                <th nzWidth="14%">普查建单</th>
20
+                <th nzWidth="14%">限制检验接收科室</th>
21
+                <th nzWidth="14%">自动清理标本</th>
22
+                <th nzWidth="14%">停用|启用</th>
23
+                <th nzWidth="16%">操作</th>
24
+              </tr>
25
+            </thead>
26
+            <tbody>
27
+              <tr *ngFor="let data of dataList;let i = index">
28
+                <td>{{data.scheduleClassDTO?.name}}</td>
29
+                <td>{{data.urgentFlag == 1 ? '启用' : '停用'}}</td>
30
+                <td>{{data.ordinaryFlag == 1 ? '启用' : '停用'}}</td>
31
+                <td>{{data.autoDeptLimit == 1 ? '启用' : '停用'}}</td>
32
+                <td>{{data.autoCleanSpecimen == 1 ? '启用' : '停用'}}</td>
33
+                <td>{{data.flag == 1 ? '启用' : '停用'}}</td>
34
+                <td>
35
+                  <div class="coop">
36
+                    <span (click)="showDelModal(data, '您确认要删除吗?', '删除', 'del')">删除</span>
37
+                    <span (click)="editWechat(data)">编辑</span>
38
+                    <span (click)="showDelModal(data, '您确认要' + (data.flag == 1 ? '停用' : '启用') + '吗?', data.flag == 1 ? '停用' : '启用', 'flag')">{{data.flag == 1 ? '停用' : '启用'}}</span>
39
+                  </div>
40
+                </td>
41
+              </tr>
42
+            </tbody>
43
+          </nz-table>
44
+        </div>
45
+      </div>
46
+    </div>
47
+  </div>
48
+</div>
49
+
50
+<!-- 操作成功/失败提示框 -->
51
+<app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
52
+  [info]="promptInfo">
53
+</app-prompt-modal>
54
+
55
+<!-- 删除模态框 -->
56
+<app-dialog-delete [delModal]="delModal" (hideDelModalEvent)="hideDelModal()" [btnLoading]="btnLoading"
57
+(confirmDelEvent)="confirmDel()" [content]="tipsMsg1"></app-dialog-delete>
58
+
59
+<!-- 新增/编辑模态框 -->
60
+<div class="save display_flex justify-content_flex-center align-items_center add" *ngIf="modalWechat">
61
+  <div class="modalBody">
62
+    <div class="title">{{modelName}}<i class="icon_transport transport-guanbi" (click)="hideWechatModal()"></i></div>
63
+    <div class="content">
64
+      <form nz-form [formGroup]="validateForm" class="addForm">
65
+        <nz-form-item>
66
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="classesId">班次</nz-form-label>
67
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择班次!">
68
+            <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="classesId" nzPlaceHolder="请选择班次" nzServerSearch>
69
+              <ng-container *ngFor="let data of classList">
70
+                <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
71
+              </ng-container>
72
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
73
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
74
+              </nz-option>
75
+            </nz-select>
76
+          </nz-form-control>
77
+        </nz-form-item>
78
+        <nz-form-item>
79
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="autoCleanSpecimen">自动清理标本</nz-form-label>
80
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择自动清理标本!">
81
+            <nz-radio-group formControlName="autoCleanSpecimen">
82
+              <label nz-radio [nzValue]="1">启用</label>
83
+              <label nz-radio [nzValue]="0">停用</label>
84
+            </nz-radio-group>
85
+          </nz-form-control>
86
+        </nz-form-item>
87
+        <nz-form-item>
88
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="urgentFlag">急查建单</nz-form-label>
89
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择急查建单!">
90
+            <nz-radio-group formControlName="urgentFlag" (ngModelChange)="changeUrgentFlag($event)">
91
+              <label nz-radio [nzValue]="1">启用</label>
92
+              <label nz-radio [nzValue]="0">停用</label>
93
+            </nz-radio-group>
94
+          </nz-form-control>
95
+        </nz-form-item>
96
+        <nz-form-item [hidden]="validateForm.value.urgentFlag != 1">
97
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="urgentTypeIds">急查标本类型</nz-form-label>
98
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择急查标本类型!">
99
+            <nz-select nzMode="multiple" [nzDropdownMatchSelectWidth]="false" formControlName="urgentTypeIds" nzPlaceHolder="请选择急查标本类型" nzShowSearch nzAllowClear>
100
+              <ng-container *ngFor="let option of specimenTypeList">
101
+                <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
102
+              </ng-container>
103
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
104
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
105
+              </nz-option>
106
+            </nz-select>
107
+          </nz-form-control>
108
+        </nz-form-item>
109
+        <nz-form-item>
110
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="ordinaryFlag">普查建单</nz-form-label>
111
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择普查建单!">
112
+            <nz-radio-group formControlName="ordinaryFlag" (ngModelChange)="changeOrdinaryFlag($event)">
113
+              <label nz-radio [nzValue]="1">启用</label>
114
+              <label nz-radio [nzValue]="0">停用</label>
115
+            </nz-radio-group>
116
+          </nz-form-control>
117
+        </nz-form-item>
118
+        <nz-form-item [hidden]="validateForm.value.ordinaryFlag != 1">
119
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="ordinaryTypeIds">普查标本类型</nz-form-label>
120
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择普查标本类型!">
121
+            <nz-select nzMode="multiple" [nzDropdownMatchSelectWidth]="false" formControlName="ordinaryTypeIds" nzPlaceHolder="请选择普查标本类型" nzShowSearch nzAllowClear>
122
+              <ng-container *ngFor="let option of specimenTypeList">
123
+                <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
124
+              </ng-container>
125
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
126
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
127
+              </nz-option>
128
+            </nz-select>
129
+          </nz-form-control>
130
+        </nz-form-item>
131
+        <nz-form-item>
132
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="autoDeptLimit">限制检验接收科室</nz-form-label>
133
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择限制检验接收科室!">
134
+            <nz-radio-group formControlName="autoDeptLimit" (ngModelChange)="changeAutoDeptLimit($event)">
135
+              <label nz-radio [nzValue]="1">启用</label>
136
+              <label nz-radio [nzValue]="0">停用</label>
137
+            </nz-radio-group>
138
+          </nz-form-control>
139
+        </nz-form-item>
140
+        <nz-form-item [hidden]="validateForm.value.autoDeptLimit != 1">
141
+          <nz-form-label [nzSpan]="4" nzRequired nzFor="limitDeptIds">收取检验科室</nz-form-label>
142
+          <nz-form-control [nzSpan]="20" nzErrorTip="请选择收取检验科室!">
143
+            <nz-select nzMode="multiple" [nzDropdownMatchSelectWidth]="false" formControlName="limitDeptIds" nzPlaceHolder="请选择收取检验科室" nzShowSearch nzAllowClear>
144
+              <ng-container *ngFor="let option of deptList">
145
+                <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
146
+              </ng-container>
147
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
148
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
149
+              </nz-option>
150
+            </nz-select>
151
+          </nz-form-control>
152
+        </nz-form-item>
153
+        <!-- <nz-form-item>
154
+          <nz-form-label [nzSpan]="6" nzRequired nzFor="stype">标本类型</nz-form-label>
155
+          <nz-form-control [nzSpan]="18" nzErrorTip="请选择标本类型!">
156
+            <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="stype" nzPlaceHolder="请选择标本类型" nzServerSearch>
157
+              <ng-container *ngFor="let data of typeList">
158
+                <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
159
+              </ng-container>
160
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
161
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
162
+              </nz-option>
163
+            </nz-select>
164
+          </nz-form-control>
165
+        </nz-form-item>
166
+        <nz-form-item>
167
+          <nz-form-label [nzSpan]="6" nzRequired nzFor="checkItem">检验项目</nz-form-label>
168
+          <nz-form-control [nzSpan]="18" nzErrorTip="请输入检验项目!">
169
+            <nz-input-group>
170
+              <input formControlName="checkItem" nz-input placeholder="请输入检验项目">
171
+            </nz-input-group>
172
+          </nz-form-control>
173
+        </nz-form-item>
174
+        <nz-form-item>
175
+          <nz-form-label [nzSpan]="6" nzFor="startDept"><span class="visibility_hidden">囧</span>申请科室</nz-form-label>
176
+          <nz-form-control [nzSpan]="18" nzErrorTip="请选择申请科室!">
177
+            <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="startDept" nzPlaceHolder="请选择申请科室" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeDeptInp($event)" (nzOpenChange)="openChangeDept($event)" (ngModelChange)="setIsSelecting(true)">
178
+              <ng-container *ngFor="let option of deptList">
179
+                <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
180
+              </ng-container>
181
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
182
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
183
+              </nz-option>
184
+            </nz-select>
185
+          </nz-form-control>
186
+        </nz-form-item>
187
+        <nz-form-item>
188
+          <nz-form-label [nzSpan]="6" nzFor="tubeType"><span class="visibility_hidden">囧</span>试管类型</nz-form-label>
189
+          <nz-form-control [nzSpan]="18" nzErrorTip="请选择试管类型!">
190
+            <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="tubeType" nzPlaceHolder="请选择试管类型" nzServerSearch>
191
+              <nz-option *ngFor="let data of tubeTypeList" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
192
+            </nz-select>
193
+          </nz-form-control>
194
+        </nz-form-item>
195
+        <nz-form-item>
196
+          <nz-form-label [nzSpan]="6" nzRequired nzFor="urgent">标记类型</nz-form-label>
197
+          <nz-form-control [nzSpan]="18" nzErrorTip="请选择标记类型!">
198
+            <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="urgent" nzPlaceHolder="请选择标记类型" nzServerSearch>
199
+              <nz-option nzLabel="标记加急" [nzValue]="1"></nz-option>
200
+            </nz-select>
201
+          </nz-form-control>
202
+        </nz-form-item> -->
203
+      </form>
204
+    </div>
205
+    <div class=" display_flex justify-content_flex-center">
206
+      <button nzType="primary" nz-button (click)="submitWechatForm()" [nzLoading]="btnLoading">确认</button>
207
+      <button class="btn cancel" nz-button nzType="default" (click)="hideWechatModal()">取消</button>
208
+    </div>
209
+  </div>
210
+</div>

+ 303 - 0
src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.component.less

@@ -0,0 +1,303 @@
1
+@import "../../../../../../src/theme.less";
2
+:host {
3
+  height: 100%;
4
+  display: flex;
5
+  flex-direction: column;
6
+  justify-content: space-between;
7
+  background-color: #F0F2F5;
8
+  .list-template__nzTable,
9
+  .list-template__bottom{
10
+    padding: 0!important;
11
+    border: none!important;
12
+    background: #fff!important;
13
+  }
14
+  .list-template{
15
+    width: 100%!important;
16
+    height: 100%!important;
17
+    padding: 0!important;
18
+  }
19
+  .circleWrap{
20
+    position: relative;
21
+    .circle{
22
+      width: 8px;
23
+      height: 8px;
24
+      border-radius: 50%;
25
+      position: absolute;
26
+      top: 50%;
27
+      left: -8px;
28
+      transform: translate(-50%,-50%);
29
+      &.red{
30
+        background-color: red;
31
+      }
32
+    }
33
+  }
34
+  .content{
35
+    flex: 1;
36
+    min-height: 0;
37
+    display: flex;
38
+    flex-direction: column;
39
+    justify-content: space-between;
40
+    border: 1px solid #EEF3F9;
41
+    &.priority{
42
+      background-color: #fff;
43
+      .contentInner{
44
+        padding: 0 16px 16px;
45
+        border: 1px solid #E8EBEF;
46
+      }
47
+    }
48
+    .contentItem{
49
+      padding: 4px 16px;
50
+      cursor: pointer;
51
+      overflow: hidden;
52
+      text-overflow: ellipsis;
53
+      white-space: nowrap;
54
+      &.active{
55
+        color: @primary-color;
56
+        background-color: #F0F6ED;
57
+        border-radius: 4px;
58
+      }
59
+    }
60
+    .contentInner{
61
+      flex: 1;
62
+      display: flex;
63
+      justify-content: space-between;
64
+      align-items: center;
65
+      padding: 0 16px;
66
+      gap: 16px;
67
+      .contentHead{
68
+        height: 45px;
69
+        display: flex;
70
+        justify-content: space-between;
71
+        align-items: center;
72
+        gap: 16px;
73
+        padding: 0 16px;
74
+        font-size: 16px;
75
+        font-weight: bold;
76
+        border-bottom: 1px solid #D9D9D9;
77
+        .title{
78
+          overflow: hidden;
79
+          text-overflow: ellipsis;
80
+          white-space: nowrap;
81
+        }
82
+        .btns{
83
+          flex-shrink: 0;
84
+        }
85
+      }
86
+      .contentBody{
87
+        padding: 0 8px;
88
+        margin: 4px 0;
89
+        flex: 1;
90
+      }
91
+      .address{
92
+        flex: 1;
93
+        height: 100%;
94
+        background: #FFFFFF;
95
+        border: 1px solid #E8EBEF;
96
+        display: flex;
97
+        flex-direction: column;
98
+        width: 0;
99
+      }
100
+      .addressAssign{
101
+        flex: 3;
102
+        height: 100%;
103
+        background: #FFFFFF;
104
+        border: 1px solid #E8EBEF;
105
+        display: flex;
106
+        flex-direction: column;
107
+        width: 0;
108
+      }
109
+      .list-template__searchItem {
110
+        .label {
111
+          color: #333;
112
+          display: inline-block;
113
+          width: 70px;
114
+          text-align-last: justify;
115
+          text-align: justify;
116
+          &.label--big {
117
+            width: 100px;
118
+          }
119
+        }
120
+        .formItem {
121
+          width: 135px;
122
+        }
123
+      }
124
+    }
125
+    .contentBtns{
126
+      margin-bottom: 16px;
127
+      display: flex;
128
+      justify-content: center;
129
+      align-items: center;
130
+    }
131
+  }
132
+
133
+  .save {
134
+    position: fixed;
135
+    left: 0;
136
+    top: 0;
137
+    width: 100%;
138
+    height: 100%;
139
+    background: rgba(0, 0, 0, 0.4);
140
+    z-index: 99;
141
+
142
+    .tips{
143
+      margin-bottom: 16px!important;
144
+    }
145
+
146
+    .modalBody {
147
+      width: 350px;
148
+      background: #fff;
149
+      border-radius: 5px;
150
+      padding: 10px 20px;
151
+      color: #333;
152
+
153
+      .title {
154
+        width: 100%;
155
+        text-align: center;
156
+        font-size: 18px;
157
+        position: relative;
158
+
159
+        i {
160
+          position: absolute;
161
+          right: 0;
162
+          top: 0;
163
+          font-size: 20px;
164
+          color: #666;
165
+          cursor: pointer;
166
+          padding: 0 5px;
167
+        }
168
+      }
169
+
170
+      .content {
171
+        width: 310px;
172
+        background: #f9fafb;
173
+        border: 1px solid #e5e9ed;
174
+        border-radius: 5px;
175
+        overflow: hidden;
176
+        margin-top: 12px;
177
+        padding: 16px 0;
178
+
179
+        .busyList{
180
+          display: flex;
181
+          margin-bottom: 8px;
182
+          .busyContent{
183
+            margin-right: 8px;
184
+            flex: 1;
185
+          }
186
+        }
187
+
188
+        & > div {
189
+          text-align: center;
190
+          margin: 0;
191
+
192
+          &.icon {
193
+            // margin-top: 17px;
194
+
195
+            i {
196
+              color: #34b349;
197
+              font-size: 30px !important;
198
+
199
+              &.transport-wenhao {
200
+                color: #f5a523;
201
+              }
202
+
203
+              &.transport-shibai {
204
+                color: #ff3a52;
205
+              }
206
+            }
207
+          }
208
+
209
+          &.defeat {
210
+            color: #333;
211
+            font-size: 14px;
212
+          }
213
+
214
+          &:nth-child(3) {
215
+            font-size: 14px;
216
+            color: #666;
217
+          }
218
+        }
219
+        .workAssignmentTips {
220
+          font-size: 12px;
221
+        }
222
+      }
223
+
224
+      button {
225
+        margin-top: 10px;
226
+
227
+        &.btn {
228
+          margin-left: 8px;
229
+        }
230
+      }
231
+    }
232
+
233
+    // 新增
234
+    &.add {
235
+      .modalBody {
236
+        width: 900px;
237
+        height: auto;
238
+
239
+        .content {
240
+          width: 100%;
241
+          height: auto;
242
+          padding: 16px;
243
+          max-height: 800px;
244
+          overflow-y: auto;
245
+
246
+          .addForm {
247
+            .ant-form-item {
248
+              margin-bottom: 0;
249
+
250
+              .ant-form-item-label {
251
+                text-align: left;
252
+              }
253
+
254
+              .desc {
255
+                margin-top: 5px;
256
+              }
257
+            }
258
+
259
+            .datesControl {
260
+              margin-top: -16px;
261
+
262
+              .ant-form-item-label {
263
+                line-height: 40px;
264
+              }
265
+            }
266
+
267
+            .timer {
268
+              .ant-form-item-label {
269
+                width: 100%;
270
+                text-align: left;
271
+              }
272
+
273
+              .numInp {
274
+                margin-right: 5px;
275
+              }
276
+
277
+              .line {
278
+                margin-right: 5px;
279
+              }
280
+            }
281
+
282
+            .timer2 {
283
+              .ant-form-item-label {
284
+                line-height: 20px;
285
+              }
286
+            }
287
+          }
288
+
289
+          .editForm {
290
+            .ant-form-item {
291
+              margin-bottom: 15px;
292
+
293
+              .ant-form-item-label {
294
+                line-height: 14px;
295
+                text-align: left;
296
+              }
297
+            }
298
+          }
299
+        }
300
+      }
301
+    }
302
+  }
303
+}

+ 348 - 0
src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.component.ts

@@ -0,0 +1,348 @@
1
+import { Component, OnInit, Input } from "@angular/core";
2
+import { Subject } from 'rxjs';
3
+import { debounceTime } from 'rxjs/operators';
4
+import { Validators, FormGroup, FormBuilder } from '@angular/forms';
5
+import { ToolService } from 'src/app/services/tool.service';
6
+import { NzMessageService } from 'ng-zorro-antd';
7
+import { MainService } from 'src/app/services/main.service';
8
+
9
+@Component({
10
+  selector: "app-configuration-specimen-auto-build-order",
11
+  templateUrl: "./configuration-specimen-auto-build-order.component.html",
12
+  styleUrls: ["./configuration-specimen-auto-build-order.component.less"],
13
+})
14
+export class ConfigurationSpecimenAutoBuildOrderComponent implements OnInit {
15
+  @Input() taskTypeDTO:any = {};
16
+  constructor(
17
+    private mainService: MainService,
18
+    private fb: FormBuilder,
19
+    private tool: ToolService,
20
+    private message: NzMessageService,
21
+  ) {}
22
+
23
+  coopData: any = {}; //当前操作列
24
+  hosId: any = this.tool.getCurrentHospital().id;
25
+  classList: any = [];
26
+
27
+  searchTimerSubject = new Subject();
28
+
29
+  ngOnInit() {
30
+    this.searchTimerSubject.pipe(debounceTime(500)).subscribe((v) => {
31
+      let fun = v[0];
32
+      fun.call(this, v[1]);
33
+    });
34
+    this.classList = this.taskTypeDTO.classesIds || [];
35
+    this.getSpecimenTypeList();
36
+    this.getDeptList();
37
+    this.getList();
38
+  }
39
+
40
+  // 新增弹框
41
+  modelName = ""; //模态框名称
42
+  modalWechat: boolean = false; //新增/编辑模态框
43
+  add: boolean; //true:新增;false:编辑
44
+  addWechatModal() {
45
+    this.modelName = "新增";
46
+    this.add = true; //新增
47
+    this.modalWechat = true;
48
+    this.initWechatForm();
49
+  }
50
+  //关闭新增/编辑弹框
51
+  hideWechatModal() {
52
+    this.modalWechat = false;
53
+  }
54
+
55
+  // 防抖
56
+  isLoading = false;
57
+  isSelecting:boolean = false; // 是否在选中状态
58
+  searchTimer(fun, e) {
59
+    if (this.isSelecting) {
60
+      this.isSelecting = false; // 重置标志
61
+      return; // 跳过处理
62
+    }
63
+    this.isLoading = true;
64
+    this.searchTimerSubject.next([fun, e]);
65
+  }
66
+
67
+  // 设置标志
68
+  setIsSelecting(flag){
69
+    this.isSelecting = flag; // 设置标志
70
+  }
71
+
72
+  openChangeDept(flag){
73
+    flag && this.setIsSelecting(false);
74
+    flag && this.getDeptList();
75
+  }
76
+
77
+  // 科室搜索
78
+  changeDeptInp(e) {
79
+    this.searchTimer(this.getDeptList, e);
80
+  }
81
+
82
+  // 获取申请科室
83
+  deptList: any = [];
84
+  getDeptList(e = undefined) {
85
+    let postData = {
86
+      idx: 0,
87
+      sum: 99999,
88
+      department: {
89
+        searchType: 1,// 简单查询
90
+        dept: e,
91
+        hospital: {
92
+          id: this.hosId,
93
+        },
94
+        type: {
95
+          value: "checkRoom",
96
+        },
97
+      }
98
+    };
99
+    this.isLoading = true;
100
+    this.mainService
101
+      .getFetchDataList("simple/data", "department", postData)
102
+      .subscribe((data) => {
103
+        this.isLoading = false;
104
+        this.deptList = data.list || [];
105
+      });
106
+  }
107
+
108
+  requiredChange(field, required: boolean): void {
109
+    if (!required) {
110
+      this.validateForm.get(field)!.clearValidators();
111
+      this.validateForm.get(field)!.markAsPristine();
112
+    } else {
113
+      this.validateForm.get(field)!.setValidators(Validators.required);
114
+      this.validateForm.get(field)!.markAsDirty();
115
+    }
116
+    this.validateForm.get(field)!.updateValueAndValidity();
117
+  }
118
+
119
+  changeUrgentFlag(e){
120
+    this.validateForm.controls.urgentTypeIds.setValue([]);
121
+    this.requiredChange('urgentTypeIds', e == 1);
122
+  }
123
+
124
+  changeOrdinaryFlag(e){
125
+    this.validateForm.controls.ordinaryTypeIds.setValue([]);
126
+    this.requiredChange('ordinaryTypeIds', e == 1);
127
+  }
128
+
129
+  changeAutoDeptLimit(e){
130
+    this.validateForm.controls.limitDeptIds.setValue([]);
131
+    this.requiredChange('limitDeptIds', e == 1);
132
+  }
133
+
134
+  // 编辑
135
+  editWechat(data) {
136
+    console.log(data);
137
+    this.modelName = "编辑";
138
+    this.add = false;
139
+    this.modalWechat = true;
140
+    this.initWechatForm();
141
+    this.coopData = data;
142
+    this.validateForm.controls.classesId.setValue(data.classesId || null);
143
+    this.validateForm.controls.autoCleanSpecimen.setValue(data.autoCleanSpecimen || 0);
144
+    this.validateForm.controls.urgentFlag.setValue(data.urgentFlag || 0);
145
+    this.validateForm.controls.urgentTypeIds.setValue(data.urgentTypeIds ? data.urgentTypeList.map(v => v.id) : []);
146
+    this.validateForm.controls.ordinaryFlag.setValue(data.ordinaryFlag || 0);
147
+    this.validateForm.controls.ordinaryTypeIds.setValue(data.ordinaryTypeIds ? data.ordinaryTypeList.map(v => v.id) : []);
148
+    this.validateForm.controls.autoDeptLimit.setValue(data.autoDeptLimit || 0);
149
+    this.validateForm.controls.limitDeptIds.setValue(data.limitDeptIds ? data.limitDeptList.map(v => v.id) : []);
150
+
151
+    this.requiredChange('urgentTypeIds', data.urgentFlag == 1);
152
+    this.requiredChange('ordinaryTypeIds', data.ordinaryFlag == 1);
153
+    this.requiredChange('limitDeptIds', data.autoDeptLimit == 1);
154
+  }
155
+
156
+  // 新增/编辑表单提交
157
+  btnLoading: boolean = false; //提交按钮loading状态
158
+  submitWechatForm(): void {
159
+    for (const i in this.validateForm.controls) {
160
+      this.validateForm.controls[i].markAsDirty();
161
+      this.validateForm.controls[i].updateValueAndValidity();
162
+    }
163
+    if (this.validateForm.invalid) {
164
+      return;
165
+    }
166
+    console.log(this.validateForm.value);
167
+    this.btnLoading = true;
168
+    let postData:any = {};
169
+
170
+    if (this.add) {
171
+      //增加
172
+      postData = {
173
+        createRuleConfiguration: {
174
+          hosId: this.hosId,
175
+          taskType: this.taskTypeDTO.id,
176
+          flag: 1,
177
+          classesId: this.validateForm.value.classesId,
178
+          autoCleanSpecimen: this.validateForm.value.autoCleanSpecimen,
179
+          urgentFlag: this.validateForm.value.urgentFlag,
180
+          urgentTypeIds: this.validateForm.value.urgentTypeIds ? this.validateForm.value.urgentTypeIds.toString() : undefined,
181
+          ordinaryFlag: this.validateForm.value.ordinaryFlag,
182
+          ordinaryTypeIds: this.validateForm.value.ordinaryTypeIds ? this.validateForm.value.ordinaryTypeIds.toString() : undefined,
183
+          autoDeptLimit: this.validateForm.value.autoDeptLimit,
184
+          limitDeptIds: this.validateForm.value.limitDeptIds ? this.validateForm.value.limitDeptIds.toString() : undefined,
185
+        }
186
+      };
187
+    } else {
188
+      //编辑
189
+      postData = {
190
+        createRuleConfiguration: {
191
+          ...this.coopData,
192
+          classesId: this.validateForm.value.classesId,
193
+          autoCleanSpecimen: this.validateForm.value.autoCleanSpecimen,
194
+          urgentFlag: this.validateForm.value.urgentFlag,
195
+          urgentTypeIds: this.validateForm.value.urgentTypeIds ? this.validateForm.value.urgentTypeIds.toString() : undefined,
196
+          ordinaryFlag: this.validateForm.value.ordinaryFlag,
197
+          ordinaryTypeIds: this.validateForm.value.ordinaryTypeIds ? this.validateForm.value.ordinaryTypeIds.toString() : undefined,
198
+          autoDeptLimit: this.validateForm.value.autoDeptLimit,
199
+          limitDeptIds: this.validateForm.value.limitDeptIds ? this.validateForm.value.limitDeptIds.toString() : undefined,
200
+        }
201
+      };
202
+    }
203
+    this.mainService
204
+      .coopData(this.add ? "addData" : "updData", "createRuleConfiguration", postData)
205
+      .subscribe((result) => {
206
+        this.btnLoading = false;
207
+        this.hideWechatModal();
208
+        let msg = "";
209
+        if (this.add) {
210
+          msg = "新增";
211
+        } else {
212
+          msg = "修改";
213
+        }
214
+        if (result.status == 200) {
215
+          this.showPromptModal(msg, true, '');
216
+        } else {
217
+          this.showPromptModal(msg, false, result.msg);
218
+        }
219
+      });
220
+  }
221
+
222
+  // 初始化新增form表单
223
+  validateForm: FormGroup; //新增/编辑表单
224
+  initWechatForm() {
225
+    this.validateForm = this.fb.group({
226
+      classesId: [null, [Validators.required]],
227
+      autoCleanSpecimen: [0, [Validators.required]],
228
+      urgentFlag: [0, [Validators.required]],
229
+      urgentTypeIds: [null],
230
+      ordinaryFlag: [0, [Validators.required]],
231
+      ordinaryTypeIds: [null],
232
+      autoDeptLimit: [0, [Validators.required]],
233
+      limitDeptIds: [null],
234
+    });
235
+  }
236
+
237
+  // 获取列表
238
+  loading1:boolean = false;
239
+  dataList: any[] = []; //表格数据
240
+  getList() {
241
+    if(!this.taskTypeDTO.id){
242
+      this.dataList = [];
243
+      return;
244
+    }
245
+    let data = {
246
+      idx: 0,
247
+      sum: 9999,
248
+      createRuleConfiguration: {
249
+        hosId: this.hosId,
250
+        taskType: this.taskTypeDTO.id,
251
+      },
252
+    };
253
+    this.loading1 = true;
254
+    this.mainService
255
+      .getFetchDataList("simple/data", "createRuleConfiguration", data)
256
+      .subscribe((data) => {
257
+        this.loading1 = false;
258
+        if (data.status == 200) {
259
+          this.dataList = data.list || [];
260
+        }else{
261
+          this.message.error(data.msg || "请求数据失败");
262
+        }
263
+      });
264
+  }
265
+
266
+  // 获取标本类型
267
+  specimenTypeList: any = [];
268
+  getSpecimenTypeList() {
269
+    this.mainService.getDictionary('list', 'specimen_type').subscribe((data) => {
270
+      this.specimenTypeList = data || [];
271
+    });
272
+  }
273
+
274
+  delModal: boolean = false; //删除模态框
275
+  tipsMsg1: string; //提示框信息
276
+  tipsMsg2: string; //操作后信息
277
+  confirmDelType: string; //确认的类型(启用/停用,删除)
278
+  showDelModal(
279
+    data,
280
+    tipsMsg1: string,
281
+    tipsMsg2: string,
282
+    type: string,
283
+  ) {
284
+    this.confirmDelType = type;
285
+    this.delModal = true;
286
+    this.coopData = data;
287
+    this.tipsMsg1 = tipsMsg1;
288
+    this.tipsMsg2 = tipsMsg2;
289
+  }
290
+  // 隐藏删除框
291
+  hideDelModal() {
292
+    this.delModal = false;
293
+  }
294
+  // 确认删除
295
+  confirmDel() {
296
+    this.btnLoading = true;
297
+    if (this.confirmDelType === "del") {
298
+      //删除
299
+      this.mainService
300
+        .simplePost("rmvData", "createRuleConfiguration", [this.coopData.id])
301
+        .subscribe((data) => {
302
+          this.btnLoading = false;
303
+          this.delModal = false;
304
+          if (data.status == 200) {
305
+            this.showPromptModal(this.tipsMsg2, true, "");
306
+          } else {
307
+            this.showPromptModal(this.tipsMsg2, false, data.msg);
308
+          }
309
+        });
310
+    }else if (this.confirmDelType === "flag") {
311
+      //启用/停用
312
+    let postData:any = {
313
+      createRuleConfiguration: {
314
+        ...this.coopData,
315
+        flag: this.coopData.flag == 1 ? 0 : 1,
316
+      }
317
+    };
318
+
319
+    this.mainService
320
+      .coopData("updData", "createRuleConfiguration", postData)
321
+      .subscribe((result) => {
322
+        this.btnLoading = false;
323
+        this.delModal = false;
324
+        if (result.status == 200) {
325
+          this.showPromptModal(this.coopData.flag == 1 ? '停用' : '启用', true, '');
326
+        } else {
327
+          this.showPromptModal(this.coopData.flag == 1 ? '停用' : '启用', false, result.msg);
328
+        }
329
+      });
330
+    }
331
+  }
332
+
333
+  // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
334
+  promptContent: string; //操作提示框提示信息
335
+  ifSuccess: boolean; //操作成功/失败
336
+  promptInfo: string; //操作结果提示信息
337
+  promptModalShow: boolean; //操作提示框是否展示
338
+  showPromptModal(con, success, promptInfo?) {
339
+    this.promptModalShow = false;
340
+    this.promptContent = con;
341
+    this.ifSuccess = success;
342
+    this.promptInfo = promptInfo;
343
+    setTimeout(() => {
344
+      this.promptModalShow = true;
345
+    }, 100);
346
+    this.getList();
347
+  }
348
+}

+ 20 - 0
src/app/components/configurationCenter/configuration-specimen/configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.module.ts

@@ -0,0 +1,20 @@
1
+import { NgModule } from '@angular/core';
2
+import { CommonModule } from '@angular/common';
3
+
4
+import { ConfigurationSpecimenAutoBuildOrderComponent } from './configuration-specimen-auto-build-order.component';
5
+import { ShareModule } from 'src/app/share/share.module';
6
+
7
+
8
+@NgModule({
9
+  declarations: [
10
+    ConfigurationSpecimenAutoBuildOrderComponent,
11
+  ],
12
+  imports: [
13
+    CommonModule,
14
+    ShareModule,
15
+  ],
16
+  exports: [
17
+    ConfigurationSpecimenAutoBuildOrderComponent,
18
+  ]
19
+})
20
+export class ConfigurationSpecimenAutoBuildOrderModule { }

+ 2 - 1
src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.html

@@ -194,13 +194,14 @@
194 194
               <!-- 自动建单配置 -->
195 195
               <div *ngIf="tabModalName=='automaticOrderCreation'">
196 196
                 <!-- 自动建单 -->
197
+                 <app-configuration-specimen-auto-build-order [taskTypeDTO]="taskTypeDTO"></app-configuration-specimen-auto-build-order>
197 198
               </div>
198 199
               <!-- 特殊标本标记 -->
199 200
               <div *ngIf="tabModalName=='specialSpecimenMarking'">
200 201
                 <app-configuration-special-specimen-marking></app-configuration-special-specimen-marking>
201 202
               </div>
202 203
               <div class="bottom">
203
-                <button *ngIf="tabModalName != 'specialSpecimenMarking'" class="login-form-button" nzType="primary" [nzLoading]="btnLoading" nz-button (click)="submitForm()">保存</button>
204
+                <button *ngIf="tabModalName == 'characteristics'" class="login-form-button" nzType="primary" [nzLoading]="btnLoading" nz-button (click)="submitForm()">保存</button>
204 205
               </div>
205 206
             </div>
206 207
             <div class="list" *ngIf="loading">

+ 2 - 0
src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.ts

@@ -594,6 +594,7 @@ export class ConfigurationSpecimenComponent implements OnInit {
594 594
   }
595 595
 
596 596
   // 获取配置
597
+  taskTypeDTO:any = {};
597 598
   getConfig() {
598 599
     this.loading = true;
599 600
 		let postData = null;
@@ -640,6 +641,7 @@ export class ConfigurationSpecimenComponent implements OnInit {
640 641
         this.loading = false;
641 642
         if (result.status == 200) {
642 643
           this.configs = result.list[0] || {};
644
+          this.taskTypeDTO = this.configs.taskTypeDTO || {};
643 645
 					if(this.activeDictionaryKey=='examine'){
644 646
             // 检验标本
645 647
             this.speHandoverTubeType = this.configs.speHandoverTubeType;

+ 3 - 1
src/app/components/configurationCenter/configuration-specimen/configuration-specimen.module.ts

@@ -6,6 +6,7 @@ import { ShareModule } from 'src/app/share/share.module';
6 6
 import { ConfigurationSpecimenComponent } from './configuration-specimen.component';
7 7
 import { ConfigurationSpecimenReturnModule } from './configuration-specimen-return/configuration-specimen-return.module';
8 8
 import { ConfigurationSpecialSpecimenMarkingModule } from './configuration-special-specimen-marking/configuration-special-specimen-marking.module';
9
+import { ConfigurationSpecimenAutoBuildOrderModule } from './configuration-specimen-auto-build-order/configuration-specimen-auto-build-order.module';
9 10
 import { ConfigurationCheckoutProjectModule } from './configuration-checkout-project/configuration-checkout-project.module';
10 11
 
11 12
 @NgModule({
@@ -17,7 +18,8 @@ import { ConfigurationCheckoutProjectModule } from './configuration-checkout-pro
17 18
     ShareModule,
18 19
     ConfigurationSpecimenReturnModule,
19 20
     ConfigurationSpecialSpecimenMarkingModule,
20
-		ConfigurationCheckoutProjectModule
21
+		ConfigurationCheckoutProjectModule,
22
+    ConfigurationSpecimenAutoBuildOrderModule,
21 23
   ],
22 24
   exports: [
23 25
     ConfigurationSpecimenComponent,

+ 1 - 0
src/app/share/businessData-detail-info-modal/businessData-detail-info-modal.component.html

@@ -8,6 +8,7 @@
8 8
       <div>单号:{{drugsBag.packid}}</div>
9 9
       <div>申请科室:{{drugsBag.target ? drugsBag.target.dept : ''}}</div>
10 10
       <div>发药科室:{{drugsBag.launch ? drugsBag.launch.dept : ''}}</div>
11
+      <div>打印时间:{{drugsBag.creatTime}}</div>
11 12
     </div>
12 13
     <div class="content">
13 14
       <ng-container *ngIf="configs.showDrugsBagDetails === 1 && (type === 'drugsJpbag' || type === 'drugsWestern' || type === 'drugsReturn' || type === 'drugsPoison' || type === 'drugsHerbal')">

+ 8 - 5
src/app/share/businessData-detail-modal/businessData-detail-modal.component.html

@@ -8,6 +8,7 @@
8 8
       <div>单号:{{drugsBag.packid}}</div>
9 9
       <div>申请科室:{{drugsBag.target ? drugsBag.target.dept : ''}}</div>
10 10
       <div>发药科室:{{drugsBag.launch ? drugsBag.launch.dept : ''}}</div>
11
+      <div>打印时间:{{drugsBag.creatTime}}</div>
11 12
     </div>
12 13
     <div class="content">
13 14
       <!-- 血制品 -->
@@ -68,22 +69,24 @@
68 69
         <thead>
69 70
           <tr class="thead">
70 71
             <th nzWidth="5%">序号</th>
71
-            <th nzWidth="11%">单号</th>
72
-						<th nzWidth="10%" *ngIf="configs.showPatientInfo==1">患者信息</th>
72
+            <th nzWidth="12%">单号</th>
73
+            <th nzWidth="14%">发药科室|打印时间</th>
74
+						<th nzWidth="8%" *ngIf="configs.showPatientInfo==1">患者信息</th>
73 75
             <th nzWidth="8%" *ngIf="configs.showDrugsBagTypeCount==1">种类数</th>
74 76
             <th nzWidth="8%" *ngIf="configs.showDrugsBagTypeCount==1">总数</th>
75 77
             <th nzWidth="10%">收取人/交接人</th>
76 78
             <!-- <th nzWidth="10%">收取交接人</th> -->
77
-            <th nzWidth="14%">收取时间</th>
79
+            <th nzWidth="12%">收取时间</th>
78 80
             <th nzWidth="10%">送达人/交接人</th>
79 81
             <!-- <th nzWidth="10%">送达交接人</th> -->
80
-            <th nzWidth="14%">送达时间</th>
82
+            <th nzWidth="12%">送达时间</th>
81 83
           </tr>
82 84
         </thead>
83 85
         <tbody>
84 86
           <tr *ngFor="let data of drugsBugMultipleList;let i = index;" (click)="viewDetail(type, data.id)" [ngStyle]="{ 'cursor': configs.showDrugsBagDetails == 1 ? 'pointer' : '' }">
85 87
             <td>{{i+1}}</td>
86 88
 						<td [ngStyle]="{ 'text-decoration': configs.showDrugsBagDetails == 1 ? 'underline' : '' }">{{ data.packid }}</td>
89
+            <td>{{ data.launch?.dept }}<br>{{ data.creatTime }}</td>
87 90
 						<td nz-tooltip [nzTooltipTitle]="data.patientNames" *ngIf="configs.showPatientInfo==1">
88 91
 							{{ data.patientNames }}
89 92
 						</td>
@@ -160,7 +163,7 @@
160 163
 							<span class="sign" *ngIf="orderId != data.gdIdSend && orderId != data.gdid"></span>
161 164
 						{{ (pageIndex - 1) * pageSize + i + 1 }}</td>
162 165
             <td>{{ data.sickRoom ? data.sickRoom.dept : "-" }}</td>
163
-            <td>{{ data.patientName}}<span *ngIf="data.bedNum">({{data.bedNum}})</span><br>{{data.residenceNo}}</td>
166
+            <td>{{ data.patientName}}<span *ngIf="data.bedNum">({{data.bedNum}})</span><br>{{data.residenceNo || data.patientNo}}</td>
164 167
             <td class="underline" (click)="viewSpecimenHistory(data)">{{ data.scode || "-" }}</td>
165 168
             <td>{{ data.specimenDesc || "-" }}</td>
166 169
             <td>{{ data.stype ? data.stype.name : "-" }}<span *ngIf="data.tubeType">,</span>{{data.tubeType && data.tubeType.name}}</td>

+ 6 - 6
src/app/share/businessData-detail-modal/businessData-detail-modal.component.less

@@ -31,7 +31,7 @@
31 31
   }
32 32
   .hospitalTable {
33 33
     width: 100%;
34
-		height: calc(100vh - 280px);
34
+		height: calc(100vh - 366px);
35 35
 		overflow-y: auto;
36 36
     td {
37 37
       text-align: center !important;
@@ -91,8 +91,8 @@
91 91
   //   border-radius: 5px;
92 92
   //   color: #333;
93 93
 		// position: relative;
94
-		
95
-		height: calc(100vh - 100px);
94
+
95
+		// height: calc(100vh - 100px);
96 96
 		min-height: 580px;
97 97
 		border-radius: 5px;
98 98
 		background: #fff;
@@ -138,7 +138,7 @@
138 138
       flex-direction: column;
139 139
       justify-content: center;
140 140
       align-items: center;
141
-			
141
+
142 142
       &.content-search {
143 143
         min-height: 147px;
144 144
         justify-content: start;
@@ -189,14 +189,14 @@
189 189
         }
190 190
       }
191 191
     }
192
-		
192
+
193 193
 		.bottom-btn{
194 194
 			.btn {
195 195
 				position: absolute;
196 196
 				bottom: 10px;
197 197
 			}
198 198
 		}
199
-		
199
+
200 200
     button {
201 201
       margin-top: 10px;
202 202
       margin-bottom: 10px;

+ 53 - 0
src/app/share/patient-log-prompt-modal/patient-log-prompt-modal.component.html

@@ -0,0 +1,53 @@
1
+<div
2
+  class="modal display_flex justify-content_flex-center align-items_center"
3
+  *ngIf="show"
4
+>
5
+  <div class="modalBody">
6
+    <div class="title">
7
+      查看日志<i class="icon_transport transport-guanbi" (click)="hideModal()"></i>
8
+    </div>
9
+    <div class="content">
10
+      <nz-table
11
+        class="hospitalTable"
12
+        [nzData]="historySpecimenList"
13
+        nzSize="middle"
14
+        [nzShowPagination]="false"
15
+        [nzLoading]="hsLoading"
16
+      >
17
+        <thead>
18
+          <tr class="thead">
19
+            <th nzWidth="8%">序号</th>
20
+            <th nzWidth="23%">动作</th>
21
+            <th nzWidth="23%">时间</th>
22
+            <th nzWidth="23%">备注</th>
23
+            <th nzWidth="23%">操作人</th>
24
+          </tr>
25
+        </thead>
26
+        <tbody>
27
+          <tr *ngFor="let data of historySpecimenList; let i = index">
28
+            <td>{{ i+(historySpecimenPageIndex-1) * historySpecimenPageSize + 1 }}</td>
29
+            <td>{{ data.type?.name }}</td>
30
+            <td>{{ data.time | date: "MM-dd HH:mm:ss" }}</td>
31
+            <td>{{ data.remark }}</td>
32
+            <td>{{ data.operationUserDTO?.name }}</td>
33
+          </tr>
34
+        </tbody>
35
+      </nz-table>
36
+      <div class="pagination">
37
+        <nz-pagination
38
+          [(nzPageIndex)]="historySpecimenPageIndex"
39
+          [(nzTotal)]="historySpecimenListLength"
40
+          [(nzPageSize)]="historySpecimenPageSize"
41
+          (nzPageIndexChange)="getHistorySpecimen()"
42
+          (nzPageSizeChange)="getHistorySpecimen()"
43
+        >
44
+        </nz-pagination>
45
+      </div>
46
+    </div>
47
+    <div class="display_flex justify-content_flex-center">
48
+      <button class="btn cancel" nz-button (click)="hideModal()">
49
+        关闭
50
+      </button>
51
+    </div>
52
+  </div>
53
+</div>

+ 165 - 0
src/app/share/patient-log-prompt-modal/patient-log-prompt-modal.component.less

@@ -0,0 +1,165 @@
1
+@import "../../../../src/theme.less";
2
+.modal {
3
+  position: fixed;
4
+  left: 0;
5
+  top: 0;
6
+  width: 100%;
7
+  height: 100%;
8
+  background: rgba(0, 0, 0, 0.4);
9
+  z-index: 999;
10
+  .hospitalTable {
11
+    width: 100%;
12
+    td {
13
+      text-align: center !important;
14
+    }
15
+    .thead {
16
+      background-image: linear-gradient(to right, @bg-start, @bg-end);
17
+      th {
18
+        text-align: center !important;
19
+        color: #fff;
20
+        background: transparent;
21
+      }
22
+    }
23
+  }
24
+
25
+  .pagination{
26
+    padding: 8px;
27
+    margin-left: auto;
28
+  }
29
+
30
+  .modalBody {
31
+    width: 700px;
32
+    min-height: 220px;
33
+    background: #fff;
34
+    border-radius: 5px;
35
+    padding: 10px 20px;
36
+    color: #333;
37
+    &.modalBody-search {
38
+      width: 480px;
39
+      min-height: 250px;
40
+    }
41
+
42
+    .title {
43
+      width: 100%;
44
+      text-align: center;
45
+      font-size: 18px;
46
+      position: relative;
47
+
48
+      i {
49
+        position: absolute;
50
+        right: 0;
51
+        top: 0;
52
+        font-size: 20px;
53
+        color: #666;
54
+        cursor: pointer;
55
+        padding: 0 5px;
56
+      }
57
+    }
58
+
59
+    .content {
60
+      min-height: 117px;
61
+      background: #f9fafb;
62
+      border: 1px solid #e5e9ed;
63
+      border-radius: 5px;
64
+      overflow: hidden;
65
+      margin-top: 12px;
66
+      display: flex;
67
+      flex-direction: column;
68
+      justify-content: center;
69
+      align-items: center;
70
+      &.content-search {
71
+        min-height: 147px;
72
+        justify-content: start;
73
+        .defeat-search {
74
+          width: 100%;
75
+          height: 52px;
76
+          display: flex;
77
+          justify-content: center;
78
+          align-items: center;
79
+          border-bottom: solid 1px #e5e9ed;
80
+          em {
81
+            color: #666;
82
+            font-style: normal;
83
+          }
84
+        }
85
+        .form {
86
+          width: 100%;
87
+          padding: 0 16px;
88
+          .ant-form-item-label,
89
+          .ant-form-explain {
90
+            text-align: left !important;
91
+          }
92
+        }
93
+      }
94
+
95
+      div {
96
+        &.defeat {
97
+          color: #333;
98
+          font-size: 28px;
99
+        }
100
+        &.countDown {
101
+          font-size: 14px;
102
+          color: 666;
103
+          em {
104
+            font-style: normal;
105
+            color: @primary-color;
106
+          }
107
+        }
108
+
109
+        &:nth-child(3) {
110
+          font-size: 14px;
111
+          color: #666;
112
+          padding-bottom: 10px;
113
+        }
114
+      }
115
+    }
116
+
117
+    button {
118
+      margin-top: 10px;
119
+
120
+      &.btn {
121
+        margin-left: 8px;
122
+      }
123
+    }
124
+  }
125
+
126
+  // 新增
127
+  &.add {
128
+    .modalBody {
129
+      width: 480px;
130
+      height: auto;
131
+
132
+      .content {
133
+        width: 100%;
134
+        height: auto;
135
+        padding: 18px 14px 0 14px;
136
+
137
+        .addForm {
138
+          .ant-form-item {
139
+            margin-bottom: 15px;
140
+
141
+            .ant-form-item-label {
142
+              line-height: 0;
143
+            }
144
+          }
145
+        }
146
+
147
+        .editForm {
148
+          .ant-form-item {
149
+            margin-bottom: 15px;
150
+
151
+            .ant-form-item-label {
152
+              line-height: 0;
153
+            }
154
+          }
155
+        }
156
+      }
157
+
158
+      button {
159
+        &:nth-child(1) {
160
+          margin-right: 20px;
161
+        }
162
+      }
163
+    }
164
+  }
165
+}

+ 56 - 0
src/app/share/patient-log-prompt-modal/patient-log-prompt-modal.component.ts

@@ -0,0 +1,56 @@
1
+import { Component, OnInit, Input, Output, EventEmitter } from "@angular/core";
2
+import { MainService } from "../../services/main.service";
3
+import { ToolService } from "src/app/services/tool.service";
4
+
5
+@Component({
6
+  selector: "app-patient-log-prompt-modal",
7
+  templateUrl: "./patient-log-prompt-modal.component.html",
8
+  styleUrls: ["./patient-log-prompt-modal.component.less"],
9
+})
10
+export class PatientLogPromptModalComponent implements OnInit {
11
+  hosId;
12
+  // 切换科室,切换弹窗
13
+  hsLoading = false;
14
+  historySpecimenList: any = [];
15
+  historySpecimenPageIndex: number = 1; //表格当前页码
16
+  historySpecimenPageSize: number = 5; //表格每页展示条数
17
+  historySpecimenListLength: number = 10; //表格总数据量
18
+  @Input() show: Boolean;
19
+  @Input() id: String;
20
+
21
+  @Output() closeModelHs = new EventEmitter<any>(); //1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
22
+
23
+  constructor(private mainService: MainService, private tool: ToolService) {}
24
+
25
+  ngOnInit() {
26
+    this.hosId = this.tool.getCurrentHospital().id;
27
+    this.getHistorySpecimen();
28
+  }
29
+  // 关闭弹窗
30
+  hideModal() {
31
+    this.closeModelHs.emit(JSON.stringify({ show: false })); //emits(向上弹射)事件
32
+  }
33
+  // 获取列表数据
34
+  getHistorySpecimen(idx?) {
35
+    if (idx) {
36
+      this.historySpecimenPageIndex = 1;
37
+    }
38
+    let postData = {
39
+      idx: this.historySpecimenPageIndex - 1,
40
+      sum: this.historySpecimenPageSize,
41
+      patientLog: {
42
+        patient: {
43
+          id: this.id,
44
+        },
45
+      },
46
+    };
47
+    this.hsLoading = true;
48
+    this.mainService
49
+      .getFetchDataList("simple/data", "patientLog", postData)
50
+      .subscribe((data) => {
51
+        this.hsLoading = false;
52
+        this.historySpecimenList = data.list || [];
53
+        this.historySpecimenListLength = data.totalNum || 0;
54
+      });
55
+  }
56
+}

+ 3 - 0
src/app/share/share.module.ts

@@ -76,6 +76,7 @@ import { UploadFileComponent } from './upload-file/upload-file.component';
76 76
 import { AddInspectTwoModalComponent } from './add-inspect-two-modal/add-inspect-two-modal.component';
77 77
 import { AddInspectThreeModalComponent } from './add-inspect-three-modal/add-inspect-three-modal.component';
78 78
 import { ViewSpecimenComponent } from './view-specimen/view-specimen.component';
79
+import { PatientLogPromptModalComponent } from './patient-log-prompt-modal/patient-log-prompt-modal.component';
79 80
 
80 81
 @NgModule({
81 82
   declarations: [
@@ -152,6 +153,7 @@ import { ViewSpecimenComponent } from './view-specimen/view-specimen.component';
152 153
     PackageSpecimenRuleComponent,
153 154
     SpecimenPackageListModalComponent,
154 155
     SpecimenPackageLogPromptModalComponent,
156
+    PatientLogPromptModalComponent,
155 157
     InspectLogPromptModalComponent,
156 158
 		UploadFileComponent
157 159
   ],
@@ -239,6 +241,7 @@ import { ViewSpecimenComponent } from './view-specimen/view-specimen.component';
239 241
     PackageSpecimenRuleComponent,
240 242
     SpecimenPackageListModalComponent,
241 243
     SpecimenPackageLogPromptModalComponent,
244
+    PatientLogPromptModalComponent,
242 245
     InspectLogPromptModalComponent,
243 246
 		UploadFileComponent
244 247
   ]

+ 1 - 4
src/app/share/view-specimen/view-specimen.component.html

@@ -3,10 +3,7 @@
3 3
 >
4 4
   <div class="modalBody" style="width: 1200px;">
5 5
     <div class="title">
6
-      标本查看<i
7
-        class="icon_transport transport-guanbi"
8
-        (click)="hideModal()"
9
-      ></i>
6
+      标本查看({{packageNo}})<i class="icon_transport transport-guanbi" (click)="hideModal()"></i>
10 7
     </div>
11 8
 		<div class="list-template">
12 9
 		  <div class="list-template__content">

+ 9 - 5
src/app/share/view-specimen/view-specimen.component.ts

@@ -20,7 +20,7 @@ export class ViewSpecimenComponent implements OnInit {
20 20
 	changeInpSubject = new Subject(); //防抖
21 21
 	userId:any = 0;
22 22
 	tubeTypeId:any = 0;
23
-	
23
+
24 24
   @Input() speId: String;
25 25
 
26 26
   @Output() closeModelHs = new EventEmitter<any>(); //1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
@@ -35,27 +35,28 @@ export class ViewSpecimenComponent implements OnInit {
35 35
   hideModal() {
36 36
     this.closeModelHs.emit(JSON.stringify({ show: false })); //emits(向上弹射)事件
37 37
   }
38
-	
38
+
39 39
 	// 重置
40 40
 	reset(){
41 41
 		this.userId = 0
42 42
 		this.tubeTypeId = 0
43 43
 		this.getHistorySpecimen(true)
44 44
 	}
45
-	
45
+
46 46
 	// 选择患者
47 47
 	userChange(e){
48 48
 		this.getHistorySpecimen(true)
49 49
 	}
50
-	
50
+
51 51
 	// 选择试管类型
52 52
 	tubeChange(e){
53 53
 		this.getHistorySpecimen(true)
54 54
 	}
55
-	
55
+
56 56
   // 获取列表数据
57 57
 	userList:any = [];
58 58
 	tubeList:any = [];
59
+  packageNo:string = '';
59 60
   getHistorySpecimen(idx?) {
60 61
     if (idx) {
61 62
       this.historySpecimenPageIndex = 1;
@@ -71,7 +72,10 @@ export class ViewSpecimenComponent implements OnInit {
71 72
       .getInfoPack(this.speId, postData)
72 73
       .subscribe((data:any) => {
73 74
         this.hsLoading = false;
75
+        this.packageNo = data.packageNo;
74 76
         this.historySpecimenList = data.specimen || [];
77
+        data.patient = data.patient || [];
78
+        data.tubeType = data.tubeType || [];
75 79
 				data.patient.forEach(i=>{
76 80
 					if(i.bedNum){
77 81
 						i.name = i.patientName + '-' + i.bedNum + '-' + i.patientNo

+ 12 - 8
src/app/views/batch-specimen/batch-specimen.component.ts

@@ -79,7 +79,7 @@ export class BatchSpecimenComponent implements OnInit, AfterViewInit {
79 79
       .subscribe((result) => {
80 80
         if (result.status == 200) {
81 81
           this.configs = result.list[0] || {};
82
-          this.querySaveSpePackage();
82
+          this.querySaveSpePackage(true);
83 83
         }
84 84
       });
85 85
   }
@@ -89,7 +89,7 @@ export class BatchSpecimenComponent implements OnInit, AfterViewInit {
89 89
   typeSpecimentList:any[] = [];
90 90
   patientSpecimentList:any[] = [];
91 91
   package:any = {};
92
-  querySaveSpePackage(){
92
+  querySaveSpePackage(isInit = false){
93 93
     this.maskFlag = this.message.loading("正在加载中..", {
94 94
       nzDuration: 0,
95 95
     }).messageId;
@@ -112,11 +112,15 @@ export class BatchSpecimenComponent implements OnInit, AfterViewInit {
112 112
           this.typeSpecimentList = result.tube || [];
113 113
           this.patientSpecimentList = result.patient || [];
114 114
           this.package = result.package || {};
115
-          this.getList();
115
+          if(isInit){
116
+            this.showDelModal({}, '您确认要重置标本吗,重置会先清空标本在根据规则自动清点?','重置标本','reset');
117
+          }else{
118
+            this.getList();
119
+          }
116 120
         }
117 121
       })
118 122
   }
119
-	
123
+
120 124
 	// 批量移除
121 125
 	infoContent:any;
122 126
 	batchDel(){
@@ -128,7 +132,7 @@ export class BatchSpecimenComponent implements OnInit, AfterViewInit {
128 132
 		this.tipsMsg1 = `您确认要移除${this.checkedDepIds.length}项标本吗?`
129 133
 		this.delModal = true;
130 134
 	}
131
-	
135
+
132 136
 	// 选中表格中科室
133 137
 	mapOfCheckedId: { [key: string]: boolean } = {};
134 138
 	checkedDepIds = []; //已选中科室id
@@ -145,20 +149,20 @@ export class BatchSpecimenComponent implements OnInit, AfterViewInit {
145 149
 	  this.checkedDepIds = arr;
146 150
 	  console.log(this.checkedDepIds);
147 151
 	}
148
-	
152
+
149 153
 	//表格整行选中
150 154
 	selectedListData(id) {
151 155
 	  this.mapOfCheckedId[id] = !this.mapOfCheckedId[id];
152 156
 	  this.refreshStatus();
153 157
 	}
154
-	
158
+
155 159
 	// 全选
156 160
 	isAllDisplayDataChecked = false; //当前页是否全选
157 161
 	checkAll(value: boolean): void {
158 162
 	  this.listOfData.forEach((item) => (this.mapOfCheckedId[item.id] = value));
159 163
 	  this.refreshStatus();
160 164
 	}
161
-	
165
+
162 166
   inspectActiveList: any = [];//选中检查列表
163 167
   patientActiveList: any = [];//选中患者列表
164 168
 

+ 43 - 15
src/app/views/drug-search/drug-search.component.html

@@ -56,7 +56,7 @@
56 56
             </nz-option>
57 57
           </nz-select>
58 58
         </div>
59
-				
59
+
60 60
 				<div class="list-template__searchItem">
61 61
 				  <span class="label">药品类型:</span>
62 62
 				  <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzShowSearch nzAllowClear
@@ -66,7 +66,7 @@
66 66
 				    </ng-container>
67 67
 				  </nz-select>
68 68
 				</div>
69
-				
69
+
70 70
 				<div class="list-template__searchItem">
71 71
 				  <span class="label">收取人:</span>
72 72
 				  <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzServerSearch nzShowSearch nzAllowClear
@@ -79,7 +79,7 @@
79 79
 				    </nz-option>
80 80
 				  </nz-select>
81 81
 				</div>
82
-				
82
+
83 83
 				<div class="list-template__searchItem">
84 84
 				  <span class="label width-105">收取时间区间:</span>
85 85
 				  <nz-range-picker nzShowTime [(ngModel)]="searchCriteria.dateRange" (nzOnCalendarChange)="onCalendarChangeDate($event)" (ngModelChange)="changeDate($event)"></nz-range-picker>
@@ -98,7 +98,8 @@
98 98
         <thead>
99 99
           <tr class="thead">
100 100
             <th nzWidth="5%">序号</th>
101
-						<th nzWidth="12%">请领单号|药品类型</th>
101
+						<th nzWidth="6%">请领单号|药品类型</th>
102
+						<th nzWidth="6%">药单类型</th>
102 103
             <th nzWidth="12%">发药科室|申请科室</th>
103 104
             <th nzWidth="10%">同步时间</th>
104 105
 						<th nzWidth="12%">收取人|收取时间</th>
@@ -116,6 +117,7 @@
116 117
 							<div>{{data.packid}}</div>
117 118
 							<div>{{data.drugsBagType && data.drugsBagType.name}}</div>
118 119
 						</td>
120
+            <td>{{ data.markType?.name }}</td>
119 121
             <td>
120 122
 							<div>{{ data.launch?.dept}}</div>
121 123
 							<div>{{ data.target?.dept }}</div>
@@ -184,7 +186,7 @@
184 186
             </nz-input-group>
185 187
           </nz-form-control>
186 188
         </nz-form-item>
187
-				
189
+
188 190
 				<nz-form-item>
189 191
 				  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="batchNo">批次号</nz-form-label>
190 192
 				  <nz-form-control nzErrorTip="请选择批次号!">
@@ -193,7 +195,7 @@
193 195
 				    </nz-input-group>
194 196
 				  </nz-form-control>
195 197
 				</nz-form-item>
196
-				
198
+
197 199
 				<nz-form-item>
198 200
 				  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="launch">发药科室</nz-form-label>
199 201
 				  <nz-form-control nzErrorTip="请选择发药科室!">
@@ -210,7 +212,7 @@
210 212
 				    </nz-input-group>
211 213
 				  </nz-form-control>
212 214
 				</nz-form-item>
213
-				
215
+
214 216
 				<nz-form-item>
215 217
 				  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="target">申请科室</nz-form-label>
216 218
 				  <nz-form-control nzErrorTip="请选择申请科室!">
@@ -227,7 +229,7 @@
227 229
 				    </nz-input-group>
228 230
 				  </nz-form-control>
229 231
 				</nz-form-item>
230
-				
232
+
231 233
 				<nz-form-item>
232 234
 				  <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="creatTime">同步时间</nz-form-label>
233 235
 				  <nz-form-control nzErrorTip="请选择同步时间!">
@@ -242,7 +244,7 @@
242 244
 				    </nz-input-group>
243 245
 				  </nz-form-control>
244 246
 				</nz-form-item>
245
-				
247
+
246 248
 				<nz-form-item>
247 249
 				  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="drugsState">药品状态</nz-form-label>
248 250
 				  <nz-form-control nzErrorTip="请选择药品状态!">
@@ -255,7 +257,7 @@
255 257
 				    </nz-input-group>
256 258
 				  </nz-form-control>
257 259
 				</nz-form-item>
258
-				
260
+
259 261
 				<nz-form-item>
260 262
 				  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="drugsBagType">药品类型</nz-form-label>
261 263
 				  <nz-form-control nzErrorTip="请选择药品类型!">
@@ -268,6 +270,19 @@
268 270
 				    </nz-input-group>
269 271
 				  </nz-form-control>
270 272
 				</nz-form-item>
273
+
274
+        <nz-form-item>
275
+				  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="markType">药单类型</nz-form-label>
276
+				  <nz-form-control nzErrorTip="请选择药单类型!">
277
+				    <nz-input-group>
278
+							<nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzAllowClear nzPlaceHolder="请选择药单类型" formControlName="markType">
279
+							  <ng-container *ngFor="let option of markTypeList">
280
+							    <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
281
+							  </ng-container>
282
+							</nz-select>
283
+				    </nz-input-group>
284
+				  </nz-form-control>
285
+				</nz-form-item>
271 286
       </form>
272 287
     </div>
273 288
     <div class="display_flex justify-content_flex-center">
@@ -278,7 +293,7 @@
278 293
 </div>
279 294
 
280 295
 <!-- 发送消息 -->
281
-<app-dialog-delete [delModal]="sendModal" (hideDelModalEvent)="hideSendModal()" [btnLoading]="btnLoading" 
296
+<app-dialog-delete [delModal]="sendModal" (hideDelModalEvent)="hideSendModal()" [btnLoading]="btnLoading"
282 297
   (confirmDelEvent)="confirmSend()" (cancelDelEvent)="cancelSend()" content="您确认发送消息吗?消息发送会进入建单通道" confirmTxt="是" cancelTxt="否">
283 298
 </app-dialog-delete>
284 299
 
@@ -308,7 +323,7 @@
308 323
 							</nz-input-group>
309 324
 						</nz-form-control>
310 325
 					</nz-form-item>
311
-					
326
+
312 327
 					<nz-form-item>
313 328
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="drugsBagType">药品类型</nz-form-label>
314 329
 					  <nz-form-control nzErrorTip="请选择药品类型!">
@@ -321,7 +336,20 @@
321 336
 					    </nz-input-group>
322 337
 					  </nz-form-control>
323 338
 					</nz-form-item>
324
-				
339
+
340
+          <nz-form-item>
341
+					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="markType">药单类型</nz-form-label>
342
+					  <nz-form-control nzErrorTip="请选择药单类型!">
343
+					    <nz-input-group>
344
+								<nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzAllowClear nzPlaceHolder="请选择药单类型" formControlName="markType">
345
+								  <ng-container *ngFor="let option of markTypeList">
346
+								    <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
347
+								  </ng-container>
348
+								</nz-select>
349
+					    </nz-input-group>
350
+					  </nz-form-control>
351
+					</nz-form-item>
352
+
325 353
 					<nz-form-item>
326 354
 						<nz-form-label [nzSm]="6" [nzXs]="24" nzFor="target">申请科室</nz-form-label>
327 355
 						<nz-form-control nzErrorTip="请选择申请科室!">
@@ -338,7 +366,7 @@
338 366
 							</nz-input-group>
339 367
 						</nz-form-control>
340 368
 					</nz-form-item>
341
-					
369
+
342 370
 					<nz-form-item>
343 371
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="amount">生成数量</nz-form-label>
344 372
 					  <nz-form-control nzErrorTip="请选择生成数量!">
@@ -347,7 +375,7 @@
347 375
 							</nz-input-group>
348 376
 					  </nz-form-control>
349 377
 					</nz-form-item>
350
-					
378
+
351 379
 					<nz-form-item>
352 380
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="sendMsg">是否自动发消息</nz-form-label>
353 381
 					  <nz-form-control nzErrorTip="请选择是否自动发消息!">

+ 30 - 7
src/app/views/drug-search/drug-search.component.ts

@@ -57,6 +57,7 @@ export class DrugSearchComponent implements OnInit {
57 57
 		});
58 58
     this.getHospital();
59 59
 		this.getDrugsList();
60
+		this.getMarkTypeList();
60 61
 		this.getDept('');
61 62
 		this.searchUser('');
62 63
 		this.searchTypes();
@@ -141,6 +142,14 @@ export class DrugSearchComponent implements OnInit {
141 142
 		});
142 143
 	}
143 144
 
145
+  // 获取药单类型
146
+	markTypeList:any = [];
147
+	getMarkTypeList(){
148
+		this.mainService.getDictionary("list", "drugsbag_mark_type").subscribe((res) => {
149
+		  this.markTypeList = res;
150
+		});
151
+	}
152
+
144 153
 	//获取用户
145 154
 	userSearch:any = [];
146 155
 	searchUser(keyword) {
@@ -334,6 +343,7 @@ export class DrugSearchComponent implements OnInit {
334 343
 	    creatTime: [null, [Validators.required]],
335 344
 	    drugsState: [null, [Validators.required]],
336 345
 			drugsBagType: [null, []],
346
+			markType: [null, []],
337 347
 	  });
338 348
 	}
339 349
 
@@ -363,6 +373,9 @@ export class DrugSearchComponent implements OnInit {
363 373
 				drugsBagType: {
364 374
 					id: this.validateForm.value.drugsBagType
365 375
 				},
376
+				markType: {
377
+					id: this.validateForm.value.markType
378
+				},
366 379
 				launch: {
367 380
 					id:this.validateForm.value.launch
368 381
 				},
@@ -383,6 +396,11 @@ export class DrugSearchComponent implements OnInit {
383 396
 		}else{
384 397
 			delete data.drugsBag.drugsBagType
385 398
 		}
399
+		if(this.validateForm.value.markType){
400
+			data.drugsBag.markType.id = this.validateForm.value.markType
401
+		}else{
402
+			delete data.drugsBag.markType
403
+		}
386 404
 		that.btnLoading = true;
387 405
 	  that.mainService
388 406
 	    .dataPost(this.add ? "addData":"updData", "drugsBag", data)
@@ -411,6 +429,7 @@ export class DrugSearchComponent implements OnInit {
411 429
 		this.validateForm.controls.target.setValue(data.target.id)
412 430
 		this.validateForm.controls.drugsState.setValue(data.drugsState.id)
413 431
 		this.validateForm.controls.drugsBagType.setValue(data.drugsBagType && data.drugsBagType.id)
432
+		this.validateForm.controls.markType.setValue(data.markType && data.markType.id)
414 433
 		this.validateForm.controls.creatTime.setValue(data.creatTime);
415 434
 		let item = this.deptList1.find(i=>i.id == data.launch.id)
416 435
 		if(!item){
@@ -428,34 +447,35 @@ export class DrugSearchComponent implements OnInit {
428 447
 		}
429 448
 		this.modal = true
430 449
 	}
431
-	
450
+
432 451
 	// 自动生成
433 452
 	autoCreateModal:boolean = false;
434 453
 	autoCreate(){
435 454
 		this.autoCreateModal = true
436 455
 		this.initAutoForm()
437 456
 	}
438
-	
457
+
439 458
 	// 初始化form
440 459
 	validateAutoForm: FormGroup
441 460
 	initAutoForm(){
442 461
 		this.validateAutoForm = this.fb.group({
443 462
 			launch: [null, [Validators.required]],
444 463
 			drugsBagType: [null, [Validators.required]],
464
+			markType: [null, []],
445 465
 			target: [null, []],
446 466
 			amount: [1, []],
447 467
 			sendMsg: ['0', []],
448 468
 		});
449 469
 	}
450
-	
470
+
451 471
 	numChange(e){
452 472
 		console.log(4, e)
453 473
 	}
454
-	
474
+
455 475
 	hideAutoModal(){
456 476
 		this.autoCreateModal = false
457 477
 	}
458
-	
478
+
459 479
 	// 自动生成提交
460 480
 	submitAutoForm(){
461 481
 		var that = this;
@@ -471,7 +491,10 @@ export class DrugSearchComponent implements OnInit {
471 491
 				sendMsg: this.validateAutoForm.value.sendMsg || undefined,
472 492
 				drugsBagType: {
473 493
 					id: this.validateAutoForm.value.drugsBagType
474
-				}
494
+				},
495
+				markType: {
496
+					id: this.validateAutoForm.value.markType
497
+				},
475 498
 			}
476 499
 		};
477 500
 		that.btnLoading = true;
@@ -488,7 +511,7 @@ export class DrugSearchComponent implements OnInit {
488 511
 		    }
489 512
 		  });
490 513
 	}
491
-	
514
+
492 515
 	// 消息发送
493 516
 	sendModal:boolean = false;
494 517
 	sendMsg(data){

+ 3 - 3
src/app/views/fuwutai/fuwutai.component.ts

@@ -5644,7 +5644,7 @@ export class FuwutaiComponent implements OnInit {
5644 5644
               execDeptId: e.execDept.id,
5645 5645
               yyTime: e.yyTime,
5646 5646
               priority: e.priority,
5647
-              label: (e.newTime + '--' + e.newTime2 || "") + " " + e.execDept.dept + " 进行 " + (e.inspectName || "检查"),
5647
+              label: (e.newTime + '--' + e.newTime2 || "") + " " + e.execDept.dept + " 进行 " + (e.inspectName + '-' + e.inspectCode || "检查"),
5648 5648
               value: e["id"],
5649 5649
               checked: false,
5650 5650
               remark: e.remark,
@@ -7290,7 +7290,7 @@ export class FuwutaiComponent implements OnInit {
7290 7290
               execDeptId: e.execDept.id,
7291 7291
               yyTime: e.yyTime,
7292 7292
               priority: e.priority,
7293
-              label: (e.newTime + '--' + e.newTime2 || "") + " " + e.execDept.dept + " 进行 " + (e.inspectName || "检查"),
7293
+              label: (e.newTime + '--' + e.newTime2 || "") + " " + e.execDept.dept + " 进行 " + (e.inspectName + '-' + e.inspectCode || "检查"),
7294 7294
               value: e["id"],
7295 7295
               checked: false,
7296 7296
             });
@@ -7361,7 +7361,7 @@ export class FuwutaiComponent implements OnInit {
7361 7361
             execDeptId: e.execDept.id,
7362 7362
             yyTime: e.yyTime,
7363 7363
             priority: e.priority,
7364
-            label: (e.newTime + '--' + e.newTime2 || "") + " " + e.execDept.dept + " 进行 " + (e.inspectName || "检查"),
7364
+            label: (e.newTime + '--' + e.newTime2 || "") + " " + e.execDept.dept + " 进行 " + (e.inspectName + '-' + e.inspectCode || "检查"),
7365 7365
             value: e["id"],
7366 7366
             checked: false,
7367 7367
           });

+ 1 - 1
src/app/views/hushijiandan/hushijiandan.component.html

@@ -1500,7 +1500,7 @@
1500 1500
                 <nz-form-label [nzSm]="24" [nzXs]="24" nzFor="linkCheck">关联的检查</nz-form-label>
1501 1501
                 <nz-form-control class="datesGroup" *ngIf="linkCheckLis.length">
1502 1502
                   <nz-checkbox-wrapper nz-row class="linkCheckCheck w100" ngDefaultControl formControlName="linkCheck" (nzOnChange)="linkCheckLisChange($event)">
1503
-                    <div nz-row nz-col nzSpan="12" *ngFor="let item of linkCheckLis">
1503
+                    <div nz-row nz-col nzSpan="24" *ngFor="let item of linkCheckLis">
1504 1504
                       <div nz-col nzSpan="24">
1505 1505
                         <label nz-checkbox [nzValue]="item" [title]="item.remark" *ngIf="item.remark"><i class="icon_transport transport-chaoshi"></i>{{ item.label}}</label>
1506 1506
                         <label nz-checkbox [nzValue]="item" *ngIf="!item.remark">{{ item.label}}</label>

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

@@ -3521,7 +3521,7 @@ export class HushijiandanComponent implements OnInit {
3521 3521
                   ? e.execDept.deptalias
3522 3522
                   : e.execDept.dept) +
3523 3523
                 " 进行 " +
3524
-                (e.inspectName || "检查"),
3524
+                (e.inspectName + '-' + e.inspectCode || "检查"),
3525 3525
               value: e["id"],
3526 3526
               checked: false,
3527 3527
               remark: e.remark,
@@ -5713,7 +5713,7 @@ export class HushijiandanComponent implements OnInit {
5713 5713
                   ? e.execDept.deptalias
5714 5714
                   : e.execDept.dept) +
5715 5715
                 " 进行 " +
5716
-                (e.inspectName || "检查"),
5716
+                (e.inspectName + '-' + e.inspectCode || "检查"),
5717 5717
               value: e["id"],
5718 5718
               checked: false,
5719 5719
               remark: e.remark,

+ 2 - 2
src/app/views/inspect-info-config/inspect-info-config.component.html

@@ -106,8 +106,8 @@
106 106
                   <span class="circle red" title="无预约时间检查"></span>
107 107
                 </ng-container>
108 108
               </ng-template>
109
-              <span [title]="inspect.remark" *ngIf="inspect.remark"><i class="icon_transport transport-chaoshi"></i>{{(inspect.yyEndTime || "") + " " + (inspect.execDept ? (deptDisplay == 2 ? inspect.execDept.deptalias : inspect.execDept.dept) : '') + " 进行 " + (inspect.inspectName || "检查")}} <span class="inspectState" *ngIf="inspect.gdId" (click)="detail($event, inspect.gdId)">{{inspect.inspectState?.name}}</span></span>
110
-              <span *ngIf="!inspect.remark">{{(inspect.yyEndTime || "") + " " + (inspect.execDept ? (deptDisplay == 2 ? inspect.execDept.deptalias : inspect.execDept.dept) : '') + " 进行 " + (inspect.inspectName || "检查")}} <span class="inspectState" *ngIf="inspect.gdId" (click)="detail($event, inspect.gdId)">{{inspect.inspectState?.name}}</span></span>
109
+              <span [title]="inspect.remark" *ngIf="inspect.remark"><i class="icon_transport transport-chaoshi"></i>{{(inspect.yyEndTime || "") + " " + (inspect.execDept ? (deptDisplay == 2 ? inspect.execDept.deptalias : inspect.execDept.dept) : '') + " 进行 " + (inspect.inspectName + '-' + inspect.inspectCode || "检查")}} <span class="inspectState" *ngIf="inspect.gdId" (click)="detail($event, inspect.gdId)">{{inspect.inspectState?.name}}</span></span>
110
+              <span *ngIf="!inspect.remark">{{(inspect.yyEndTime || "") + " " + (inspect.execDept ? (deptDisplay == 2 ? inspect.execDept.deptalias : inspect.execDept.dept) : '') + " 进行 " + (inspect.inspectName + '-' + inspect.inspectCode || "检查")}} <span class="inspectState" *ngIf="inspect.gdId" (click)="detail($event, inspect.gdId)">{{inspect.inspectState?.name}}</span></span>
111 111
             </span>
112 112
             <span *ngIf="!inspect.gdId" class="icon_transport transport-weibiaoti2010104" (click)="editInspect({data: data, inspect: inspect})"></span>
113 113
             <span *ngIf="!inspect.gdId" class="icon_transport transport-shanchu1" (click)="showDelModal({data: data, inspect: inspect}, '您确认要删除吗?','删除','delInspect')"></span>

+ 3 - 0
src/app/views/inspect-info-config/inspect-info-config.component.ts

@@ -55,6 +55,7 @@ export class InspectInfoConfigComponent implements OnInit {
55 55
       nzDuration: 0,
56 56
     }).messageId;
57 57
     let postData = this.listOfData.find(v => v.id == id);
58
+    postData.operationType = 'evaluatePatient';
58 59
     this.mainService
59 60
     .simplePost("addData", 'patient', postData)
60 61
     .subscribe((data) => {
@@ -78,6 +79,7 @@ export class InspectInfoConfigComponent implements OnInit {
78 79
     postData.illnessState = {
79 80
       id: illnessStateId,
80 81
     }
82
+    postData.operationType = 'evaluatePatient';
81 83
     this.mainService
82 84
     .simplePost("addData", 'patient', postData)
83 85
     .subscribe((data) => {
@@ -261,6 +263,7 @@ export class InspectInfoConfigComponent implements OnInit {
261 263
     let postData = {
262 264
       ...this.coopData.data,
263 265
       remark,
266
+      operationType: 'evaluatePatient',
264 267
     };
265 268
 
266 269
     this.mainService

+ 7 - 3
src/app/views/patient-search/patient-search.component.html

@@ -79,10 +79,10 @@
79 79
             <th nzWidth="10%">住院号|条码号</th>
80 80
             <th nzWidth="10%">院区|当前科室</th>
81 81
             <th nzWidth="10%">护理等级</th>
82
-            <th nzWidth="10%">病情级别</th>
83
-            <th nzWidth="10%">性别、年龄</th>
82
+            <th nzWidth="8%">病情级别</th>
83
+            <th nzWidth="8%">性别、年龄</th>
84 84
             <th nzWidth="12%">陪检方式|注意事项</th>
85
-            <th nzWidth="10%">操作</th>
85
+            <th nzWidth="14%">操作</th>
86 86
           </tr>
87 87
         </thead>
88 88
         <tbody>
@@ -100,6 +100,7 @@
100 100
               <div class="coop">
101 101
                 <span *ngIf="coopBtns.edit" (click)="edit(data)">编辑</span>
102 102
                 <span *ngIf="coopBtns.removeSign" (click)="showDelModal(data, '您确认要清空标记吗?','清空标记','clearSign')">清空标记</span>
103
+                <span *ngIf="coopBtns.lookLog" (click)="showLogs(data)">查看日志</span>
103 104
               </div>
104 105
             </td>
105 106
           </tr>
@@ -295,3 +296,6 @@
295 296
 <!-- 操作成功/失败提示框 -->
296 297
 <app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
297 298
   [info]="promptInfo"></app-prompt-modal>
299
+
300
+<!-- 查看日志 -->
301
+<app-patient-log-prompt-modal *ngIf="logPromptModalShow" [show]="logPromptModalShow" [id]="patientId" (closeModelHs)="closeModelLog($event)"></app-patient-log-prompt-modal>

+ 12 - 0
src/app/views/patient-search/patient-search.component.ts

@@ -506,4 +506,16 @@ export class PatientSearchComponent implements OnInit {
506 506
         });
507 507
     }
508 508
   }
509
+
510
+  // 查看日志弹窗
511
+  logPromptModalShow = false; //弹窗开关
512
+  patientId = ""; //查看记录携带id
513
+  showLogs(data) {
514
+    this.patientId = data.id;
515
+    this.logPromptModalShow = true;
516
+  }
517
+  // 关闭日志弹窗
518
+  closeModelLog(e) {
519
+    this.logPromptModalShow = JSON.parse(e).show;
520
+  }
509 521
 }

+ 21 - 19
src/app/views/specimen-search/specimen-search.component.html

@@ -184,7 +184,7 @@
184 184
 							<div>{{ data.checkDept ? data.checkDept.dept : "-" }}</div>
185 185
 						</td>
186 186
             <td>
187
-							<div>{{data.residenceNo}}</div>
187
+							<div>{{data.residenceNo || data.patientNo}}</div>
188 188
 							<div>
189 189
 								{{ data.patientName}}<span *ngIf="data.bedNum">({{data.bedNum}})</span>
190 190
 							</div>
@@ -200,7 +200,7 @@
200 200
             <td>{{ data.stype ? data.stype.name : "-" }}<span *ngIf="data.tubeType">,</span>{{data.tubeType && data.tubeType.name}}</td>
201 201
             <td>{{ data.speState ? data.speState.name : "-" }}</td>
202 202
             <td>
203
-							<div>{{ data.receiverName || "-" }}</div>
203
+							<div>{{ data.receiverName }}<ng-container *ngIf="data.packageId">-<span class="underline" (click)="viewSpe(data.packageId)">包</span></ng-container></div>
204 204
 							<div>{{ data.arriveTime || "-" }}</div>
205 205
 						</td>
206 206
             <td>{{ data.transTime || '-' }}</td>
@@ -289,7 +289,7 @@
289 289
 							</nz-input-group>
290 290
 						</nz-form-control>
291 291
 					</nz-form-item>
292
-					
292
+
293 293
 					<nz-form-item>
294 294
 						<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="checkDept">检验科室</nz-form-label>
295 295
 						<nz-form-control nzErrorTip="请选择检验科室!">
@@ -306,7 +306,7 @@
306 306
 							</nz-input-group>
307 307
 						</nz-form-control>
308 308
 					</nz-form-item>
309
-					
309
+
310 310
 					<nz-form-item>
311 311
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="patientId">患者</nz-form-label>
312 312
 					  <nz-form-control nzErrorTip="请选择患者!">
@@ -324,8 +324,8 @@
324 324
 					  </nz-form-control>
325 325
 					</nz-form-item>
326 326
 				</div>
327
-				
328
-				<div class="df"> 
327
+
328
+				<div class="df">
329 329
 					<nz-form-item>
330 330
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="examinationItemsId">检验项目</nz-form-label>
331 331
 					  <nz-form-control nzErrorTip="请选择检验项目!">
@@ -342,7 +342,7 @@
342 342
 					    </nz-input-group>
343 343
 					  </nz-form-control>
344 344
 					</nz-form-item>
345
-					
345
+
346 346
 					<nz-form-item>
347 347
 					  <nz-form-label [nzSm]="7" [nzXs]="24" nzFor="stype">标本类型</nz-form-label>
348 348
 					  <nz-form-control nzErrorTip="请选择标本类型!">
@@ -351,7 +351,7 @@
351 351
 					    </nz-input-group>
352 352
 					  </nz-form-control>
353 353
 					</nz-form-item>
354
-					
354
+
355 355
 					<nz-form-item>
356 356
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="tubeType">试管类型</nz-form-label>
357 357
 					  <nz-form-control nzErrorTip="请选择试管类型!">
@@ -361,7 +361,7 @@
361 361
 					  </nz-form-control>
362 362
 					</nz-form-item>
363 363
 				</div>
364
-				
364
+
365 365
       	<div class="df">
366 366
 					<nz-form-item>
367 367
 					  <nz-form-label [nzSm]="6" nzRequired [nzXs]="24" nzFor="speState">默认状态</nz-form-label>
@@ -371,7 +371,7 @@
371 371
 							</nz-input-group>
372 372
 					  </nz-form-control>
373 373
 					</nz-form-item>
374
-					
374
+
375 375
 					<nz-form-item>
376 376
 					  <nz-form-label [nzSm]="6" nzRequired [nzXs]="24" nzFor="urgent">紧急度</nz-form-label>
377 377
 					  <nz-form-control nzErrorTip="请选择紧急度!">
@@ -383,7 +383,7 @@
383 383
 							</nz-input-group>
384 384
 					  </nz-form-control>
385 385
 					</nz-form-item>
386
-					
386
+
387 387
 					<nz-form-item>
388 388
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="collectNurseId">采集人</nz-form-label>
389 389
 					  <nz-form-control nzErrorTip="请选择采集人!">
@@ -401,7 +401,7 @@
401 401
 					  </nz-form-control>
402 402
 					</nz-form-item>
403 403
 				</div>
404
-				
404
+
405 405
 				<div class="df">
406 406
 					<nz-form-item>
407 407
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="sendMsg">是否自动发消息</nz-form-label>
@@ -447,7 +447,7 @@
447 447
 					    </nz-input-group>
448 448
 					  </nz-form-control>
449 449
 					</nz-form-item>
450
-					
450
+
451 451
 					<nz-form-item>
452 452
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="sendMsg">是否自动发消息</nz-form-label>
453 453
 					  <nz-form-control nzErrorTip="请选择是否自动发消息!">
@@ -459,7 +459,7 @@
459 459
 					    </nz-input-group>
460 460
 					  </nz-form-control>
461 461
 					</nz-form-item>
462
-				
462
+
463 463
       </form>
464 464
     </div>
465 465
     <div class="display_flex justify-content_flex-center">
@@ -492,7 +492,7 @@
492 492
 							</nz-input-group>
493 493
 						</nz-form-control>
494 494
 					</nz-form-item>
495
-					
495
+
496 496
 					<nz-form-item>
497 497
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="patientId">患者</nz-form-label>
498 498
 					  <nz-form-control nzErrorTip="请选择患者!">
@@ -509,7 +509,7 @@
509 509
 					    </nz-input-group>
510 510
 					  </nz-form-control>
511 511
 					</nz-form-item>
512
-				
512
+
513 513
 					<nz-form-item>
514 514
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="examinationItemsId">检验项目</nz-form-label>
515 515
 					  <nz-form-control nzErrorTip="请选择检验项目!">
@@ -526,7 +526,7 @@
526 526
 					    </nz-input-group>
527 527
 					  </nz-form-control>
528 528
 					</nz-form-item>
529
-					
529
+
530 530
 					<nz-form-item>
531 531
 					  <nz-form-label nzRequired [nzSm]="6" [nzXs]="24" nzFor="amount">生成数量</nz-form-label>
532 532
 					  <nz-form-control nzErrorTip="请选择生成数量!">
@@ -535,7 +535,7 @@
535 535
 							</nz-input-group>
536 536
 					  </nz-form-control>
537 537
 					</nz-form-item>
538
-					
538
+
539 539
 					<nz-form-item>
540 540
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="urgent">紧急度</nz-form-label>
541 541
 					  <nz-form-control nzErrorTip="请选择紧急度!">
@@ -547,7 +547,7 @@
547 547
 							</nz-input-group>
548 548
 					  </nz-form-control>
549 549
 					</nz-form-item>
550
-					
550
+
551 551
 					<nz-form-item>
552 552
 					  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="sendMsg">是否自动发消息</nz-form-label>
553 553
 					  <nz-form-control nzErrorTip="请选择是否自动发消息!">
@@ -567,3 +567,5 @@
567 567
     </div>
568 568
   </div>
569 569
 </div>
570
+<!-- 查看标本 -->
571
+<app-view-specimen *ngIf="showModal" [speId]="speId" (closeModelHs)="closeModel($event)"></app-view-specimen>

+ 8 - 4
src/app/views/specimen-search/specimen-search.component.less

@@ -6,6 +6,10 @@
6 6
   display: flex;
7 7
   justify-content: space-between;
8 8
 }
9
+.underline{
10
+  text-decoration: underline;
11
+	cursor: pointer;
12
+}
9 13
 .save {
10 14
   position: fixed;
11 15
   left: 0;
@@ -120,16 +124,16 @@
120 124
 							.ant-form-item-label{
121 125
 								overflow: visible !important;
122 126
 							}
123
-							
127
+
124 128
 							.ant-select{
125 129
 								width: 100% !important;
126 130
 							}
127
-							
131
+
128 132
 						  .ant-form-item-label {
129 133
 						    line-height: 14px;
130 134
 						    text-align: left;
131 135
 						  }
132
-						
136
+
133 137
 						  .desc {
134 138
 						    margin-top: 5px;
135 139
 						  }
@@ -137,7 +141,7 @@
137 141
 					}
138 142
           .ant-form-item {
139 143
             margin-bottom: 15px;
140
-						
144
+
141 145
 						.ant-select{
142 146
 							width: 100% !important;
143 147
 						}

+ 46 - 34
src/app/views/specimen-search/specimen-search.component.ts

@@ -14,7 +14,7 @@ import { ActivatedRoute, Router } from "@angular/router";
14 14
 })
15 15
 export class SpecimenSearchComponent implements OnInit {
16 16
   constructor(
17
-	private mainService: MainService, 
17
+	private mainService: MainService,
18 18
 	private tool: ToolService,
19 19
 	private fb: FormBuilder,
20 20
 	public route: ActivatedRoute,
@@ -49,7 +49,7 @@ export class SpecimenSearchComponent implements OnInit {
49 49
   changeInp2Subject = new Subject();
50 50
 	changeInpPaSubject = new Subject();
51 51
 	coopBtns:any;
52
-	
52
+
53 53
   ngOnInit() {
54 54
 		this.coopBtns = this.tool.initCoopBtns(this.route);
55 55
 		this.hosId = this.tool.getCurrentHospital().id;
@@ -80,6 +80,18 @@ export class SpecimenSearchComponent implements OnInit {
80 80
     console.log(value);
81 81
     this.getList(1, this.sortCurrentKey, this.sortCurrentValue);
82 82
   }
83
+	// 关闭弹窗
84
+	closeModel(e){
85
+		this.showModal = JSON.parse(e).show;
86
+	}
87
+
88
+	// 查看标本
89
+	speId:any;
90
+	showModal:boolean = false;
91
+	viewSpe(packageId){
92
+		this.speId = packageId;
93
+		this.showModal = true;
94
+	}
83 95
   // 搜索类型
84 96
   isLoading1 = false;
85 97
   searchTypes() {
@@ -164,19 +176,19 @@ export class SpecimenSearchComponent implements OnInit {
164 176
 	    this.searchCriteria.dateRange = [dateStart,dateEnd];
165 177
 	  }
166 178
 	}
167
-	
179
+
168 180
 	// 搜索患者
169 181
 	changePatient(e, type){
170 182
 		this.isLoading = true;
171 183
 		this.changeInpPaSubject.next([e, type]);
172
-	}	
173
-	
184
+	}
185
+
174 186
 	// 搜索用户
175 187
 	changeUser(e){
176 188
 		this.isLoading = true;
177 189
 		this.changeInpUserSubject.next(e);
178
-	}	
179
-	
190
+	}
191
+
180 192
 	// 获取用户
181 193
 	userList:any = [];
182 194
 	getUserList(name?){
@@ -195,7 +207,7 @@ export class SpecimenSearchComponent implements OnInit {
195 207
 		    this.userList = data.list;
196 208
 		  });
197 209
 	}
198
-	
210
+
199 211
 	// 获取检验项目
200 212
 	projectList:any = [];
201 213
 	getProjectList(){
@@ -216,7 +228,7 @@ export class SpecimenSearchComponent implements OnInit {
216 228
 			}
217 229
 		});
218 230
 	}
219
-	
231
+
220 232
 	// 获取患者
221 233
 	patientList:any = [];
222 234
 	getPatient(type, patientName?){
@@ -241,7 +253,7 @@ export class SpecimenSearchComponent implements OnInit {
241 253
 						i.patientName = i.patientName + '('+ i.bedNum +')'
242 254
 					}
243 255
 					if(!i.bedNum && !i.residenceNo){
244
-						i.patientName = i.patientName 
256
+						i.patientName = i.patientName
245 257
 					}
246 258
 					if(!i.bedNum && i.residenceNo){
247 259
 						i.patientName = i.patientName +'-'+ i.residenceNo
@@ -251,7 +263,7 @@ export class SpecimenSearchComponent implements OnInit {
251 263
 		  }
252 264
 		});
253 265
 	}
254
-	
266
+
255 267
 	// 选择检验项目
256 268
 	stypeId:any;
257 269
 	tubeTypeId:any;
@@ -269,35 +281,35 @@ export class SpecimenSearchComponent implements OnInit {
269 281
 			this.tubeTypeId = null
270 282
 		}
271 283
 	}
272
-	
284
+
273 285
 	onAutoExamineChange(e){
274 286
 
275 287
 	}
276
-	
288
+
277 289
 	// 选择申请科室
278 290
 	onDeptChange(e){
279 291
 		this.validateForm.controls.patientId.setValue(null)
280 292
 		this.getPatient(1);
281 293
 	}
282
-	
294
+
283 295
 	// 选择患者
284 296
 	onPatientChange(e){
285 297
 
286 298
 	}
287
-	
299
+
288 300
 	//  选择开始时间
289 301
 	applyDate:any;
290 302
 	onApplyChange(result: Date): void {
291
-	
303
+
292 304
 	}
293
-	
305
+
294 306
 	// 自动生成
295 307
 	autoCreateModal:boolean = false;
296 308
 	autoCreate(){
297 309
 		this.autoCreateModal = true
298 310
 		this.initAutoForm()
299 311
 	}
300
-	
312
+
301 313
 	// 初始化form
302 314
 	validateAutoForm: FormGroup
303 315
 	initAutoForm(){
@@ -310,22 +322,22 @@ export class SpecimenSearchComponent implements OnInit {
310 322
 			sendMsg: ['0', []],
311 323
 		});
312 324
 	}
313
-	
325
+
314 326
 	numChange(e){
315 327
 		console.log(4, e)
316 328
 	}
317
-	
329
+
318 330
 	// 选择申请科室
319 331
 	onAutoDeptChange(e){
320 332
 		this.validateAutoForm.controls.patientId.setValue(null)
321 333
 		this.getPatient(2);
322 334
 	}
323
-	
335
+
324 336
 	hideAutoModal(){
325 337
 		this.autoCreateModal = false
326 338
 		this.patientList = [];
327 339
 	}
328
-	
340
+
329 341
 	// 自动生成提交
330 342
 	submitAutoForm(){
331 343
 		var that = this;
@@ -357,7 +369,7 @@ export class SpecimenSearchComponent implements OnInit {
357 369
 		    }
358 370
 		  });
359 371
 	}
360
-	
372
+
361 373
 	// 设置核收
362 374
 	collectModal:boolean = false;
363 375
 	itemData:any;
@@ -366,7 +378,7 @@ export class SpecimenSearchComponent implements OnInit {
366 378
 		this.collectModal = true
367 379
 		this.initCollectForm()
368 380
 	}
369
-	
381
+
370 382
 	// 初始化form
371 383
 	validateCollectForm: FormGroup
372 384
 	initCollectForm(){
@@ -375,11 +387,11 @@ export class SpecimenSearchComponent implements OnInit {
375 387
 			sendMsg: ['0', [Validators.required]],
376 388
 		});
377 389
 	}
378
-	
390
+
379 391
 	hideCollectModal(){
380 392
 		this.collectModal = false
381 393
 	}
382
-	
394
+
383 395
 	// 设置核收提交
384 396
 	submitCollectForm(){
385 397
 		var that = this;
@@ -410,7 +422,7 @@ export class SpecimenSearchComponent implements OnInit {
410 422
 		    }
411 423
 		  });
412 424
 	}
413
-	
425
+
414 426
 	// 消息发送
415 427
 	sendModal:boolean = false;
416 428
 	tipsMsg2:any = '您确定要发送消息吗?';
@@ -418,11 +430,11 @@ export class SpecimenSearchComponent implements OnInit {
418 430
 		this.itemData = data;
419 431
 		this.sendModal = true;
420 432
 	}
421
-	
433
+
422 434
 	hideSendModal(){
423 435
 		this.sendModal = false;
424 436
 	}
425
-	
437
+
426 438
 	// 确定发送消息
427 439
 	confirmSend(){
428 440
 		let data = {
@@ -444,7 +456,7 @@ export class SpecimenSearchComponent implements OnInit {
444 456
 		    }
445 457
 		  });
446 458
 	}
447
-	
459
+
448 460
 	// 新增
449 461
 	addModal:boolean = false;
450 462
 	view:boolean = false;
@@ -452,13 +464,13 @@ export class SpecimenSearchComponent implements OnInit {
452 464
 		this.addModal = true;
453 465
 		this.initForm();
454 466
 	}
455
-	
467
+
456 468
 	hideModal() {
457 469
 	  this.addModal = false;
458 470
 		this.patientList = [];
459 471
 	  this.initForm();
460 472
 	}
461
-	
473
+
462 474
 	// 初始化form
463 475
 	validateForm: FormGroup; //新增/编辑表单
464 476
 	initForm() {
@@ -475,7 +487,7 @@ export class SpecimenSearchComponent implements OnInit {
475 487
 			sendMsg: ['0', []],
476 488
 	  });
477 489
 	}
478
-	
490
+
479 491
 	// 表单提交
480 492
 	submitForm(): void {
481 493
 	  var that = this;
@@ -519,7 +531,7 @@ export class SpecimenSearchComponent implements OnInit {
519 531
 	      }
520 532
 	    });
521 533
 	}
522
-	
534
+
523 535
   // 重置
524 536
   reset() {
525 537
     this.searchCriteria = {

+ 2 - 2
src/app/views/task-type-management/task-type-management.component.html

@@ -858,7 +858,7 @@
858 858
           </div>
859 859
           <div *ngIf="depaShow3">
860 860
             <!-- 标本配送才有自动建单,重要! -->
861
-            <div class="red">自动建单需配置检验科室的工作时间;任务类型的开通科室;关联班次的时间区间;配置是否急标;配置标本类型;</div>
861
+            <!-- <div class="red">自动建单需配置检验科室的工作时间;任务类型的开通科室;关联班次的时间区间;配置是否急标;配置标本类型;</div>
862 862
             <nz-form-label class="label">自动建单</nz-form-label>
863 863
             <div class="item_type_cont">
864 864
               <div>
@@ -898,7 +898,7 @@
898 898
                   <span class="icon_text">设置</span>
899 899
                 </div>
900 900
               </div>
901
-            </div>
901
+            </div> -->
902 902
             <nz-form-label class="label">自动(手动)建单追加终点科室</nz-form-label>
903 903
             <nz-select class="mb8 w100" nzMode="multiple" nzPlaceHolder="请选择科室" nzAllowClear nzShowSearch nzServerSearch
904 904
               [(ngModel)]="addEndDeptIds" (nzOnSearch)="onSearch($event)">