ソースを参照

Merge branch 'develop' into lmm

seimin 4 ヶ月 前
コミット
aa24c32329
共有32 個のファイルを変更した1741 個の追加799 個の削除を含む
  1. 12 1
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.html
  2. 4 0
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.less
  3. 30 1
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts
  4. 6 6
      src/app/components/configurationCenter/configuration-key/configuration-key.component.html
  5. 1 1
      src/app/components/configurationCenter/configuration-key/configuration-key.component.less
  6. 1 1
      src/app/components/configurationCenter/configuration-key/configuration-key.component.ts
  7. 29 2
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.html
  8. 67 32
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.less
  9. 88 16
      src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.ts
  10. 15 1
      src/app/services/main.service.ts
  11. 7 0
      src/app/services/tool.service.ts
  12. 79 21
      src/app/share/pathology-add/pathology-add.component.html
  13. 8 1
      src/app/share/pathology-add/pathology-add.component.less
  14. 196 55
      src/app/share/pathology-add/pathology-add.component.ts
  15. 66 23
      src/app/share/pathology-detail/pathology-detail.component.html
  16. 227 0
      src/app/share/pathology-detail/pathology-detail.component.less
  17. 30 475
      src/app/share/pathology-detail/pathology-detail.component.ts
  18. 1 1
      src/app/views/dispensing-batch/dispensing-batch.component.html
  19. 50 2
      src/app/views/hushijiandan/hushijiandan.component.html
  20. 243 2
      src/app/views/hushijiandan/hushijiandan.component.less
  21. 84 8
      src/app/views/hushijiandan/hushijiandan.component.ts
  22. 19 1
      src/app/views/incident-management/incident-management.component.html
  23. 46 4
      src/app/views/incident-management/incident-management.component.ts
  24. 1 1
      src/app/views/office-management/office-management.component.ts
  25. 1 1
      src/app/views/repository-manage-add/repository-manage-add.component.html
  26. 3 2
      src/app/views/repository-manage-add/repository-manage-add.component.less
  27. 10 0
      src/app/views/repository-manage/repository-manage.component.html
  28. 12 2
      src/app/views/repository-manage/repository-manage.component.ts
  29. 89 43
      src/app/views/specimen-room-view/specimen-room-view.component.html
  30. 232 1
      src/app/views/specimen-room-view/specimen-room-view.component.less
  31. 74 89
      src/app/views/specimen-room-view/specimen-room-view.component.ts
  32. 10 6
      src/app/views/users-management/users-management.component.ts

+ 12 - 1
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.html

@@ -1,14 +1,25 @@
1 1
 <div class="content priority">
2 2
   <div class="contentInner">
3
+		<div class="hos-title">{{currentHospital.hosName}}</div>
3 4
     <div class="addressAssign">
4 5
       <overlay-scrollbars #osComponentRef2 class="contentBody2">
5 6
         <div class="contentBody">
6 7
           <div class="classList" *ngFor="let item of hospitalList">
7 8
             <span>{{ item.desc }}:</span>
8
-            <nz-radio-group [(ngModel)]="item.value">
9
+            <nz-radio-group [(ngModel)]="item.value" (ngModelChange)="radioChange(item)" *ngIf="item.type==null">
9 10
               <label nz-radio nzValue="1">是</label>
10 11
               <label nz-radio nzValue="0">否</label>
11 12
             </nz-radio-group>
13
+						
14
+						<!-- <nz-select class="w320px" *ngIf="item.type" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch nzAllowClear
15
+						  (nzOnSearch)="changeSelect($event)" [nzPlaceHolder]="'请选择'+item.desc" [(ngModel)]="item.value">
16
+						  <ng-container *ngFor="let option of item.data">
17
+						    <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
18
+						  </ng-container>
19
+						  <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
20
+						    <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
21
+						  </nz-option>
22
+						</nz-select> -->
12 23
           </div>
13 24
         </div>
14 25
       </overlay-scrollbars>

+ 4 - 0
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.less

@@ -28,6 +28,10 @@
28 28
       .contentInner{
29 29
         padding: 90px 158px 72px;
30 30
         border: 1px solid #E8EBEF;
31
+				.hos-title{
32
+					font-weight: 600;
33
+					font-size: 16px;
34
+				}
31 35
         .addressAssign{
32 36
           width: 100%;
33 37
           border: none;

+ 30 - 1
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts

@@ -24,7 +24,36 @@ export class ConfigurationHospitalComponent implements OnInit {
24 24
     this.currentHospital = this.tool.getCurrentHospital();
25 25
     this.getList();
26 26
   }
27
-
27
+	
28
+	radioChange(data){
29
+		console.log(123,data)
30
+		return
31
+		let index = this.hospitalList.findIndex(i=>i.id == data.id)
32
+		if(data.key=='itsmQuoteOtherDeptWorkHour' && data.value==1){
33
+			let item = {
34
+				desc:'引用科室',
35
+				key:'hour',
36
+				type:'select',
37
+				data:[],
38
+				value:''
39
+			}
40
+			this.hospitalList.splice(index, 0, item)
41
+		}else if(data.key=='itsmQuoteOtherDeptConsumable' && data.value==1){
42
+			let item = {
43
+				desc:'引用科室',
44
+				key:'consumable',
45
+				type:'select',
46
+				data:[],
47
+				value:''
48
+			}
49
+			this.hospitalList.splice(index, 0, item)
50
+		}
51
+	}
52
+	
53
+	changeSelect(data){
54
+		
55
+	}
56
+	
28 57
   // 新增/编辑表单提交
29 58
   btnLoading: boolean = false; //提交按钮loading状态
30 59
   submitMessageForm(): void {

+ 6 - 6
src/app/components/configurationCenter/configuration-key/configuration-key.component.html

@@ -4,14 +4,14 @@
4 4
       <div class="contentBody2">
5 5
         <div class="TaskTypeManagement">
6 6
           <div class="taskTypeInfo">
7
-<!--            <div class="top">
8
-              <div class="item" (click)="tabModal('characteristics')" [ngClass]="{'items':tabModalName=='characteristics'}">
9
-                特性配置
7
+           <div class="top">
8
+              <div class="item" [ngClass]="{'items':tabModalName=='characteristics'}">
9
+                {{hosName}}
10 10
               </div>
11
-              <div class="item" (click)="tabModal('automaticOrderCreation')" [ngClass]="{'items':tabModalName=='automaticOrderCreation'}">
11
+          <!--    <div class="item" (click)="tabModal('automaticOrderCreation')" [ngClass]="{'items':tabModalName=='automaticOrderCreation'}">
12 12
                 自动建单配置
13
-              </div>
14
-            </div> -->
13
+              </div> -->
14
+            </div>
15 15
             <div class="list" *ngIf="!loading">
16 16
               <!-- 动态数字密钥 -->
17 17
               <div>

+ 1 - 1
src/app/components/configurationCenter/configuration-key/configuration-key.component.less

@@ -263,7 +263,7 @@
263 263
 
264 264
         & > div {
265 265
           border-right: 1px solid #e5e9ed;
266
-          width: 30%;
266
+          width: 100%;
267 267
           text-align: center; // display: flex;
268 268
           // align-items: center;
269 269
           cursor: pointer;

+ 1 - 1
src/app/components/configurationCenter/configuration-key/configuration-key.component.ts

@@ -15,7 +15,7 @@ export class ConfigurationKeyComponent implements OnInit {
15 15
   btnLoading:boolean = false; //提交按钮的loading
16 16
   tabModalName:string = 'characteristics'; //当前选中的tab
17 17
   hosId = this.tool.getCurrentHospital().id; //当前院区
18
-
18
+	hosName = this.tool.getCurrentHospital().hosName //当前院区名称
19 19
   // 数字密钥
20 20
   returnSpecimenWhetherHandover:any[] = [
21 21
     {label:'是否开启',value: 0}

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

@@ -1,8 +1,13 @@
1
-<div class="content specimen">
1
+<div class="content specimen" id="dictionary">
2 2
   <div class="contentInner">
3
+		<div class="address">
4
+		  <overlay-scrollbars #osComponentRef1 class="contentBody">
5
+		    <div class="contentItem" [title]="item.name" [ngClass]="{ active: item.key == activeDictionaryKey }" (click)="clickDictionaryKey(item)" *ngFor="let item of dictionaryKeyList">{{ item.name }}</div>
6
+		  </overlay-scrollbars>
7
+		</div>
3 8
     <div class="addressAssign">
4 9
       <div class="contentBody2">
5
-        <div class="TaskTypeManagement">
10
+        <div class="TaskTypeManagement" *ngIf="activeDictionaryKey=='examine'">
6 11
           <div class="taskTypeInfo">
7 12
             <div class="top">
8 13
               <div class="item" (click)="tabModal('characteristics')" [ngClass]="{'items':tabModalName=='characteristics'}">
@@ -99,6 +104,28 @@
99 104
             </div>
100 105
           </div>
101 106
         </div>
107
+				<div class="TaskTypeManagement" *ngIf="activeDictionaryKey=='pathology'">
108
+					<div class="taskTypeInfo">
109
+						<div class="list">
110
+							<!--是否支持根据手术新建申请单 -->
111
+							<div class="display_flex align-items_center mb8">
112
+								<nz-form-label class="label">是否支持根据手术新建申请单</nz-form-label>
113
+								<nz-checkbox-group [(ngModel)]="autoCreate"></nz-checkbox-group>
114
+							</div>
115
+							<div class="bottom">
116
+								<button class="login-form-button" nzType="primary" [nzLoading]="btnLoading" nz-button (click)="submitPathologyForm()">保存</button>
117
+							</div>
118
+							<div class="list" *ngIf="loading">
119
+							  <div class="loadingFull display_flex justify-content_flex-center align-items_center">
120
+							    <div class="loadingFullInner">
121
+							      <img src="../../../assets/images/loading.gif" alt="">
122
+							      <div>加载中...</div>
123
+							    </div>
124
+							  </div>
125
+							</div>
126
+						</div>
127
+					</div>
128
+				</div>
102 129
       </div>
103 130
     </div>
104 131
   </div>

+ 67 - 32
src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.less

@@ -15,6 +15,66 @@
15 15
     width: 100%!important;
16 16
     height: 100%!important;
17 17
   }
18
+  #dictionary{
19
+    margin: 24px 16px;
20
+    .addressAssign{
21
+      flex: 7;
22
+    }
23
+    .contentItem{
24
+      margin: 0 16px;
25
+      padding: 8px;
26
+      text-align: center;
27
+      &.active{
28
+        background-color: @primary-color;
29
+        color: #fff;
30
+        border-radius: 4px;
31
+      }
32
+    }
33
+    .contentBody{
34
+      padding: 16px;
35
+      min-height: 0;
36
+      display: flex;
37
+      flex-direction: column;
38
+    }
39
+    .contentBody2{
40
+      flex: 1;
41
+    }
42
+    ::ng-deep .ant-form-item{
43
+      margin-bottom: 0;
44
+    }
45
+    .dictionaryRow{
46
+      display: flex;
47
+      align-items: center;
48
+      justify-content: center;
49
+      gap: 16px;
50
+      .orders{
51
+        flex: 1;
52
+        display: flex;
53
+        justify-content: flex-end;
54
+        align-items: center;
55
+      }
56
+      .name{
57
+        width: 100px;
58
+        display: flex;
59
+        justify-content: flex-end;
60
+        align-items: center;
61
+      }
62
+      .value{
63
+        flex: 3;
64
+        display: flex;
65
+        align-items: center;
66
+        .valueInput{
67
+          width: 600px;
68
+        }
69
+        .icon_transport{
70
+          font-size: 20px;
71
+          color: #8a8a8a;
72
+          cursor: pointer;
73
+        }
74
+      }
75
+
76
+    }
77
+  }
18 78
   .content{
19 79
     flex: 1;
20 80
     min-height: 0;
@@ -22,33 +82,12 @@
22 82
     flex-direction: column;
23 83
     justify-content: space-between;
24 84
     border: 1px solid #EEF3F9;
25
-    &.specimen{
26
-      margin: 24px 24px 0;
85
+    &.priority{
86
+      margin: 24px 118px 0;
27 87
       background-color: #fff;
28 88
       .contentInner{
29
-        padding: 40px 158px 72px;
89
+        padding: 48px 206px;
30 90
         border: 1px solid #E8EBEF;
31
-        .addressAssign{
32
-          width: 100%;
33
-          border: none;
34
-        }
35
-        .contentBody{
36
-          flex: 1;
37
-          display: flex;
38
-          flex-direction: column;
39
-          align-items: center;
40
-          padding: 0 16px;
41
-          gap: 32px;
42
-        }
43
-        .hospital{
44
-          width: 100%;
45
-          text-align: left;
46
-        }
47
-        .classList{
48
-          .select{
49
-            width: 313px;
50
-          }
51
-        }
52 91
       }
53 92
     }
54 93
     .contentItem{
@@ -66,10 +105,10 @@
66 105
     .contentInner{
67 106
       flex: 1;
68 107
       display: flex;
69
-      flex-direction: column;
108
+      justify-content: space-between;
70 109
       align-items: center;
71 110
       padding: 0 16px;
72
-      gap: 32px;
111
+      gap: 16px;
73 112
       .contentHead{
74 113
         height: 45px;
75 114
         display: flex;
@@ -90,13 +129,10 @@
90 129
         }
91 130
       }
92 131
       .contentBody{
93
-        padding: 0 8px 16px;
132
+        padding: 0 8px;
94 133
         margin: 4px 0;
95 134
         flex: 1;
96 135
       }
97
-      .contentBody2{
98
-        flex: 1;
99
-      }
100 136
       .address{
101 137
         flex: 1;
102 138
         height: 100%;
@@ -139,9 +175,8 @@
139 175
       align-items: center;
140 176
     }
141 177
   }
142
-
143 178
   .TaskTypeManagement {
144
-    height: calc(100vh - 224px);
179
+    height: calc(100vh - 136px);
145 180
     background: #f9fafb;
146 181
     overflow: hidden;
147 182
     padding: 16px 20px;

+ 88 - 16
src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component.ts

@@ -15,7 +15,22 @@ export class ConfigurationSpecimenComponent implements OnInit {
15 15
   btnLoading:boolean = false; //提交按钮的loading
16 16
   tabModalName:string = 'characteristics'; //当前选中的tab
17 17
   hosId = this.tool.getCurrentHospital().id; //当前院区
18
-
18
+	
19
+	// tab类型
20
+	dictionaryKeyList:any[] = [
21
+		{
22
+			name:'检查标本',key:'examine'
23
+		},
24
+		{
25
+			name:'病理标本',key:'pathology'
26
+		}
27
+	];
28
+	
29
+	// 扫描时指定科室不提醒勾选项
30
+	autoCreate:any[] = [
31
+	  {label:'是否开启',value: 0}
32
+	];
33
+	
19 34
   // 扫描时指定科室不提醒勾选项
20 35
   deptNotAlert:any[] = [
21 36
     {label:'是否开启',value: 0}
@@ -77,7 +92,19 @@ export class ConfigurationSpecimenComponent implements OnInit {
77 92
     this.getDeptList();
78 93
     this.getTaskType();
79 94
   }
80
-
95
+	
96
+	// 点击数据字典key
97
+	activeDictionaryKey:any = 'examine';
98
+	clickDictionaryKey(item){
99
+	  this.activeDictionaryKey = item.key;
100
+		if(item.key=='examine'){
101
+			this.getDeptList();
102
+			this.getTaskType();
103
+		}else{
104
+			this.getTaskTypesId()
105
+		}
106
+	}
107
+	
81 108
   // 扫描时指定科室不提醒勾选项
82 109
   changeDeptNotAlert(e){
83 110
     console.log(e);
@@ -135,7 +162,27 @@ export class ConfigurationSpecimenComponent implements OnInit {
135 162
   tabModal(tabModalName:string){
136 163
     this.tabModalName = tabModalName;
137 164
   }
138
-  // 保存
165
+	
166
+	//病理标本保存
167
+	submitPathologyForm(){
168
+		let postData:any = {
169
+		  id: this.configs.id,
170
+		  taskType: this.taskTypeData.id,
171
+		  hosId: this.hosId,
172
+		  autoCreate: this.autoCreate[0].checked ? 1 : 0,
173
+		};
174
+		this.btnLoading = true;
175
+		this.mainService
176
+		  .simplePost("addData", "taskTypeConfig", postData)
177
+		  .subscribe((result) => {
178
+		    this.btnLoading = false;
179
+		    if (result.status == 200) {
180
+		      this.getConfig();
181
+		    }
182
+		  });
183
+	}
184
+	
185
+  // 检查标本保存
139 186
   submitForm() {
140 187
     if(!this.tasktype.id){
141 188
       this.msg.create("warning", "请先配置患者陪检任务类型!");
@@ -170,7 +217,16 @@ export class ConfigurationSpecimenComponent implements OnInit {
170 217
         }
171 218
       });
172 219
   }
173
-
220
+	
221
+	// 获取任务类型(病理标本)
222
+	taskTypeData:any;
223
+	getTaskTypesId() {
224
+		this.mainService.getDictionary("list", "ordinary_field").subscribe((data) => {
225
+			this.taskTypeData = data.find(i=>i.value=='pathology')
226
+			this.getConfig();
227
+		});
228
+	}
229
+	
174 230
   //获取任务类型
175 231
   getTaskType() {
176 232
     this.loading = true;
@@ -202,24 +258,40 @@ export class ConfigurationSpecimenComponent implements OnInit {
202 258
   // 获取配置
203 259
   getConfig() {
204 260
     this.loading = true;
205
-    let postData = {
206
-      idx: 0,
207
-      sum: 10,
208
-      taskTypeConfig: {
209
-        taskTypeDTO: {
210
-          hosId: {
211
-            id: this.hosId
212
-          },
213
-          associationType: this.tasktype.associationType
214
-        }
215
-      }
216
-    };
261
+		let postData = null;
262
+		if(this.activeDictionaryKey=='examine'){
263
+			postData = {
264
+			  idx: 0,
265
+			  sum: 10,
266
+			  taskTypeConfig: {
267
+			    taskTypeDTO: {
268
+			      hosId: {
269
+			        id: this.hosId
270
+			      },
271
+			      associationType: this.tasktype.associationType
272
+			    }
273
+			  }
274
+			};
275
+		}else{
276
+			postData = {
277
+			  idx: 0,
278
+			  sum: 10,
279
+			  taskTypeConfig: {
280
+					hosId:this.hosId,
281
+					taskType:this.taskTypeData.id
282
+			  }
283
+			};
284
+		}
285
+    
217 286
     this.mainService
218 287
       .getFetchDataList("simple/data", "taskTypeConfig", postData)
219 288
       .subscribe((result) => {
220 289
         this.loading = false;
221 290
         if (result.status == 200) {
222 291
           this.configs = result.list[0] || {};
292
+					// 病理标本
293
+					this.autoCreate[0].checked = this.configs.autoCreate == 1;
294
+					// 检查标本
223 295
           this.deptNotAlert[0].checked = this.configs.deptNotAlert == 1;
224 296
           this.arriveScanCode[0].checked = this.configs.arriveScanCode == 1;
225 297
           this.arriveScanDynamicCode[0].checked = this.configs.arriveScanDynamicCode == 1;

+ 15 - 1
src/app/services/main.service.ts

@@ -929,7 +929,21 @@ export class MainService {
929 929
 	     headers: this.headers,
930 930
 	   });
931 931
 	 }
932
-
932
+	
933
+	//病理申请单追加打印/全量打印
934
+	 pathologyCheckPrint(type,businessId) {
935
+	   return this.http.post(host.host + `/pathology/check/${type}/${businessId}`, {}, {
936
+	     headers: this.headers,
937
+	   });
938
+	 }
939
+	
940
+	// 病例申请单暂存
941
+	pathologyOperation(data,operation) {
942
+	  return this.http.post(host.host + `/pathology/${operation}`, data, {
943
+	    headers: this.headers,
944
+	  });
945
+	}
946
+	
933 947
 	// 病理查询标本条码
934 948
 	pathologyScanCode(data) {
935 949
 	  return this.http.post(host.host + `/pathology/scanCode`, data, {

+ 7 - 0
src/app/services/tool.service.ts

@@ -41,6 +41,10 @@ export class ToolService {
41 41
       JSON.parse(localStorage.getItem("user")).infoPermission.hospitals || []
42 42
     );
43 43
   }
44
+	// 获取权限中的信息
45
+	getUserInfoPermission() {
46
+	  return JSON.parse(localStorage.getItem("user")).infoPermission || [];
47
+	}
44 48
   // 获取权限中的分组
45 49
   getGroupList() {
46 50
     return JSON.parse(localStorage.getItem("user")).infoPermission.groups || [];
@@ -282,6 +286,9 @@ export class ToolService {
282 286
         case "reject":
283 287
           coopBtns.reject = true; //不受理
284 288
           break;
289
+				case "strideLook":
290
+				  coopBtns.strideLook = true; //跨科查看
291
+				  break;
285 292
       }
286 293
     });
287 294
     console.log(coopBtns);

+ 79 - 21
src/app/share/pathology-add/pathology-add.component.html

@@ -6,20 +6,24 @@
6 6
 			<form nz-form [formGroup]="validateForm" class="addForm" (ngSubmit)="submitForm()">
7 7
 				<div class="content-item boder-right">
8 8
 					<nz-form-item class="form-title-box">
9
-						<div class="form-title">取标本位置:{{detailsData.surgeryDeptDTO.dept}}</div>
10
-						<div class="form-title">取材医生:{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
9
+						<div class="form-title" *ngIf="detailsData.pathologyFormType==null">申请单类型:无</div>
10
+						<div class="form-title" *ngIf="detailsData.pathologyFormType==1">申请单类型:术中快速病理检查申请单</div>
11
+						<div class="form-title" *ngIf="detailsData.pathologyFormType==0">申请单类型:病理检查申请单</div>
12
+						<div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status?detailsData.status.name:'-'}}</div>
11 13
 					</nz-form-item>
12 14
 					<nz-form-item class="form-title-box">
13
-						<div class="form-title"><span class="font-weight-500">申请单号:</span>{{detailsData.applyCode}}</div>
14
-						<div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status.name}}</div>
15
+						<div class="form-title"><span class="font-weight-500">申请单号:</span>{{detailsData.applyCode}}</div>
16
+						<div class="form-title over-class"><span class="font-weight-500">申请科室:</span>{{detailsData.patientDTO.department.dept}}</div>
15 17
 					</nz-form-item>
16 18
 					<nz-form-item class="form-title-box">
17
-						<div class="form-title"><span class="font-weight-500">科室名称:</span>{{detailsData.patientDTO.department.dept}}</div>
18
-						<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
19
+						<div class="form-title">手术间:{{detailsData.surgeryDeptDTO.dept}}</div>
20
+						<div class="form-title">取材医生:{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
19 21
 					</nz-form-item>
20 22
 					<nz-form-item class="form-title-box">
21 23
 						<div class="form-title"><span class="font-weight-500">患者信息:</span>{{detailsData.patientDTO.patientName}} ({{detailsData.patientDTO.bedNum}}床)</div>
22 24
 						<div class="form-title"><span class="font-weight-500">年龄:</span>{{detailsData.patientDTO.age||'-'}}</div>
25
+						<div class="form-title"><span class="font-weight-500">性别:</span>{{detailsData.patientDTO.gender?detailsData.patientDTO.gender.name:'-'}}</div>
26
+						<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
23 27
 					</nz-form-item>
24 28
 					<nz-form-item>
25 29
 						<div class="form-title width-100 font-weight-500">诊断:</div>
@@ -47,26 +51,26 @@
47 51
 				</div>
48 52
 				
49 53
 				<div class="content-item">
50
-<!-- 					<nz-form-item class="form-item">
51
-						<nz-form-label nzRequired nzFor="intraoperativeFindings" [nzSm]="6" [nzXs]="24">术中所见</nz-form-label>
52
-						<nz-form-control nzErrorTip="请输入术中所见" [nzSm]="24" [nzXs]="24">
53
-							<textarea rows="3" nz-input formControlName="intraoperativeFindings" placeholder="请输入术中所见"></textarea>
54
+					<nz-form-item class="form-item" *ngIf="detailsData.pathologyFormType==null">
55
+						<nz-form-label nzRequired nzFor="pathologyFormType" [nzSm]="6" [nzXs]="24">申请单类型</nz-form-label>
56
+						<nz-form-control nzErrorTip="请选择申请单类型!" [nzSm]="18" [nzXs]="24">
57
+							<nz-radio-group formControlName="pathologyFormType">
58
+								<label nz-radio [nzValue]="1">术中快速病理检查申请单</label>
59
+								<label nz-radio [nzValue]="0">病理检查申请单</label>
60
+							</nz-radio-group>
54 61
 						</nz-form-control>
55
-					</nz-form-item> -->
62
+					</nz-form-item>
56 63
 					<nz-form-item class="form-item">
57
-						<nz-form-label nzRequired nzFor="intraoperativeRapidity" [nzSm]="6" [nzXs]="24">是否术中快速</nz-form-label>
58
-						<nz-form-control nzErrorTip="请选择!" [nzSm]="18" [nzXs]="24">
59
-							<nz-radio-group formControlName="intraoperativeRapidity">
60
-								<label nz-radio [nzValue]="1">是</label>
61
-								<label nz-radio [nzValue]="0">否</label>
62
-							</nz-radio-group>
64
+						<nz-form-label nzFor="intraoperativeFindings" [nzSm]="4" [nzXs]="24">术中所见</nz-form-label>
65
+						<nz-form-control nzErrorTip="请输入术中所见" [nzSm]="20" [nzXs]="24">
66
+							<input nz-input formControlName="intraoperativeFindings" placeholder="请输入术中所见"/>
63 67
 						</nz-form-control>
64 68
 					</nz-form-item>
65 69
 					<nz-form-item class="form-item">
66 70
 						<nz-form-label nzRequired nzFor="project" [nzSm]="4" [nzXs]="24">检验项目</nz-form-label>
67 71
 						<nz-form-control nzErrorTip="请选择检验项目!" [nzSm]="20" [nzXs]="24">
68 72
 							<nz-input-group>
69
-								<nz-select nzSearch nzShowSearch nzMode="multiple" nzPlaceHolder="请选择检验项目" formControlName="project">
73
+								<nz-select nzSearch nzMode="multiple" nzShowSearch nzPlaceHolder="请选择检验项目" formControlName="project">
70 74
 									<ng-container *ngFor="let option of projectData">
71 75
 										<nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
72 76
 									</ng-container>
@@ -119,6 +123,7 @@
119 123
 						<div *ngFor="let item of specimenList;let index=index;" class="specimen-item">
120 124
 							<div class="specimen-name" (click)="specimenEdit($event,item,index)">
121 125
 							{{item.partSource?item.partSource.name:''}}{{item.organ?item.organ.name:''}}{{item.specimenName}}
126
+							({{item.specimenCode}})
122 127
 							</div>
123 128
 							<span class="icon_transport transport-lajitong specimen-icon" (click)="specimenDel($event,item,index)"></span>
124 129
 						</div>
@@ -129,8 +134,16 @@
129 134
 		<div class="mask-style" *ngIf="isSpinning">
130 135
 			<nz-spin nzSimple class="spin-style"></nz-spin>
131 136
 		</div>
132
-		<div class="display_flex justify-content_flex-center bottom-btn">
133
-		  <button class="btn btn-right" nz-button nzType="primary" (click)="submitForm()" [nzLoading]="btnLoading">打印标本</button>
137
+		<div class="display_flex justify-content_flex-center bottom-btn" *ngIf="statusValue==1">
138
+			<button class="btn btn-right" nz-button nzType="primary" (click)="temporary('temporary')" [nzLoading]="zcLoading">暂存</button>
139
+		  <button class="btn btn-right" nz-button nzType="primary" (click)="submitForm('print')" [nzLoading]="btnLoading">打印标本</button>
140
+			<button class="btn cancel" nz-button nzType="default" (click)="hideModal()">取消</button>
141
+		</div>
142
+		
143
+		<div class="display_flex justify-content_flex-center bottom-btn" *ngIf="statusValue==2 || statusValue==3 || statusValue==4">
144
+			<button class="btn btn-right" nz-button nzType="primary" (click)="temporary('submit')" [nzLoading]="zcLoading">保存</button>
145
+		  <button class="btn btn-right" nz-button nzType="primary" (click)="superaddition()" [nzLoading]="zjLoading">追加打印</button>
146
+			<button class="btn btn-right" nz-button nzType="primary" (click)="submitForm('all')" [nzLoading]="btnLoading">全量打印</button>
134 147
 			<button class="btn cancel" nz-button nzType="default" (click)="hideModal()">取消</button>
135 148
 		</div>
136 149
 	</div>
@@ -267,7 +280,7 @@
267 280
   <!-- 打印 -->
268 281
   <div id="report" style="display: none;">
269 282
 		<div class="monad">
270
-			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1" style="border: 1px solid #AAAAAA;
283
+			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && operation != 'addPrint'" style="border: 1px solid #AAAAAA;
271 284
 				border-radius: 5px;font-size: 12px;">
272 285
 				 <div style="display: flex;">
273 286
 					 <img style="width: 50%;height: 70px;border-radius: 5px;" [src]="printData.applyBarCode" alt="">
@@ -310,8 +323,53 @@
310 323
 					<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;padding:1px;">日期</div>
311 324
 					<div style="width:80%;box-sizing: border-box;padding:1px;border-right: 1px solid #fff;">{{printData.specimenList[0].inVitroTime|date:'yyyy-MM-dd'}}</div>
312 325
 				</div>
326
+			</div>
327
+			
328
+			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>0 && operation == 'addPrint'" style="border: 1px solid #AAAAAA;
329
+				border-radius: 5px;font-size: 12px;">
330
+				 <div style="display: flex;">
331
+					 <img style="width: 50%;height: 70px;border-radius: 5px;" [src]="printData.applyBarCode" alt="">
332
+					 <div style="width: 50%;">
333
+						 
334
+						 <img style="width: 100%; border-radius: 5px;
335
+						 	position: relative;top: 15px;right: 7px;" [src]="tool.logoUrl" alt="">
336
+					 	<!-- <img style="width: 100%; border-radius: 5px;
337
+					 		position: relative;top: 15px;right: 7px;" src="../../../assets/images/yc_logo.png" alt=""> -->
338
+					 </div>
339
+				 </div>
313 340
 				
341
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
342
+					<div style="width:20%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>
343
+					<div style="width:50%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">{{printData.patientName}}</div>
344
+					<div style="width:14%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">性别</div>
345
+					<div style="width:16%;padding:1px;border-top: 1px solid #aaa;">{{printData.specimenList[0].patientGender}}</div>
346
+				</div>
347
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
348
+					<div style="width:20%;border-right: 1px solid #AAAAAA;padding:1px;">住院号</div>
349
+					<div style="width:50%;border-right: 1px solid #AAAAAA;padding:1px;">{{printData.residenceNo}}</div>
350
+					<div style="width:14%;border-right: 1px solid #AAAAAA;padding:1px;">年龄</div>
351
+					<div style="width:16%;padding:1px;"> {{printData.patientAge}}岁</div>
352
+				</div>
353
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
354
+					<div style="width:20%;border-right: 1px solid #AAAAAA;padding:1px;">科室 </div>
355
+					<div style="width:50%;border-right: 1px solid #AAAAAA;
356
+					padding:1px;overflow: hidden;white-space: nowrap">{{printData.patientDept}}</div>
357
+					<div style="width:14%;border-right: 1px solid #AAAAAA;padding:1px;">床号</div>
358
+					<div style="width:16%;padding:1px;">{{printData.patientBedNum}}床</div>
359
+				</div>
360
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
361
+					<div style="width:20%;border-right: 1px solid #AAAAAA;padding:1px;">部位 </div>
362
+					<div style="width:50%;border-right: 1px solid #AAAAAA;
363
+					padding:1px;overflow: hidden;white-space: nowrap">{{printData.takePart}}</div>
364
+					<div style="width:14%;border-right: 1px solid #AAAAAA;padding:1px;">标本数</div>
365
+					<div style="width:16%;padding:1px;">{{printData.specimenNum}}</div>
366
+				</div>
367
+				<div style="display: flex;">
368
+					<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;padding:1px;">日期</div>
369
+					<div style="width:80%;box-sizing: border-box;padding:1px;border-right: 1px solid #fff;">{{printData.specimenList[0].inVitroTime|date:'yyyy-MM-dd'}}</div>
370
+				</div>
314 371
 			</div>
372
+			
315 373
 			<div style="height: 20px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1"></div>
316 374
 			<div style="font-size: 12px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>0">
317 375
 				<div *ngFor="let data of printData.specimenList; let index=index;">

+ 8 - 1
src/app/share/pathology-add/pathology-add.component.less

@@ -28,7 +28,7 @@
28 28
 	background: rgba(0, 0, 0, 0.4);
29 29
 	z-index: 99;
30 30
 	.pathology-content{
31
-		width: 80%;
31
+		width: 90%;
32 32
 		background: #fff;
33 33
 		border-radius: 5px;
34 34
 		padding: 10px 20px;
@@ -110,6 +110,12 @@
110 110
 							color: #333;
111 111
 							margin-right: 40px;
112 112
 						}
113
+						.over-class{
114
+							width: 310px;
115
+							overflow:hidden;
116
+							text-overflow:ellipsis;
117
+							white-space:nowrap;
118
+						}
113 119
 					}
114 120
 					.ant-form-item {
115 121
 					  margin-bottom: 14px;
@@ -142,6 +148,7 @@
142 148
 				}
143 149
 				.boder-right{
144 150
 					border-right: 1px solid #e5e9ed;
151
+					margin-top: 10px;
145 152
 				}
146 153
 				.specimen-item{
147 154
 					display: flex;

+ 196 - 55
src/app/share/pathology-add/pathology-add.component.ts

@@ -23,6 +23,7 @@ export class PathologyAddComponent implements OnInit {
23 23
 	@Output() pathologyCancel = new EventEmitter();
24 24
 	@Input() surgeryId: string;
25 25
 	@Input() patientId: string;
26
+	@Input() detailId: string;
26 27
 	
27 28
 	constructor(
28 29
 		private http: HttpClient,
@@ -71,9 +72,9 @@ export class PathologyAddComponent implements OnInit {
71 72
 	// 初始化新增form表单
72 73
 	initForm() {
73 74
 		this.validateForm = this.fb.group({
74
-		  intraoperativeRapidity: [null, [Validators.required]],
75
+		  pathologyFormType: [null, [Validators.required]],
75 76
 			specimenGenre: [null, [Validators.required]],
76
-			// intraoperativeFindings: [null, [Validators.required]],
77
+			intraoperativeFindings: [null, []],
77 78
 			project: [null, [Validators.required]],
78 79
 			// surgicalPlan: [null, [Validators.required]],
79 80
 			specimenNum: [null,[Validators.required]],
@@ -81,31 +82,36 @@ export class PathologyAddComponent implements OnInit {
81 82
 		});
82 83
 	}
83 84
 	
85
+	statusValue:any = 1;
84 86
 	fetchDataList(){
85 87
 		let data = {
86 88
 		  idx: 0,
87 89
 		  sum: 9999,
88 90
 		  pathologyForm: {
89
-		    surgeryId: this.surgeryId || "",
91
+				surgeryId: this.surgeryId || "",
90 92
 		    patientId: this.patientId || "",
91 93
 		    hosId: this.hosId || "" ,
92 94
 		  },
93 95
 		};
94 96
 		this.isSpinning = true;
95
-		this.mainService
96
-		  .getFetchDataList("data", "pathologyForm", data)
97
+		// this.mainService
98
+		//   .getFetchDataList("data", "pathologyForm", data)
99
+			this.mainService.getFetchData("data", "pathologyForm", this.detailId)
97 100
 		  .subscribe((data) => {
98 101
 		    this.isSpinning = false;
99
-		    this.detailsData = data.list[0];
100
-				// if(this.detailsData.surgicalPlan){
101
-				// 	this.validateForm.controls.surgicalPlan.setValue(this.detailsData.surgicalPlan);
102
-				// }
103
-				// if(this.detailsData.intraoperativeFindings){
104
-				// 	this.validateForm.controls.intraoperativeFindings.setValue(this.detailsData.intraoperativeFindings);
105
-				// }
102
+		    this.detailsData = data.data;
103
+				if(this.detailsData.status){
104
+					this.statusValue = this.detailsData.status.value
105
+				}
106
+				if(this.detailsData.pathologyFormType!=null){
107
+					this.validateForm.controls.pathologyFormType.setValue(this.detailsData.pathologyFormType);
108
+				}
109
+				if(this.detailsData.intraoperativeFindings){
110
+					this.validateForm.controls.intraoperativeFindings.setValue(this.detailsData.intraoperativeFindings);
111
+				}
106 112
 				this.getProDicData()
107 113
 				this.getDicData()
108
-				this.getSampleData()
114
+				this.getSampleData('load')
109 115
 				this.getSourceData()
110 116
 				this.getSysData()
111 117
 		  });
@@ -266,7 +272,7 @@ export class PathologyAddComponent implements OnInit {
266 272
 		  .subscribe((data) => {
267 273
 		    this.btnLoading = false;
268 274
 		    this.delModal = false;
269
-				this.getSampleData()
275
+				this.getSampleData('')
270 276
 		    if (data.status==200) {
271 277
 		      this.showSpecimenModal("删除", true, "");
272 278
 		    } else {
@@ -571,7 +577,7 @@ export class PathologyAddComponent implements OnInit {
571 577
 	}
572 578
 	
573 579
 	// 获取标本列表
574
-	getSampleData(){
580
+	getSampleData(type){
575 581
 		let data={
576 582
 			idx: 0,
577 583
 			sum: 9999,
@@ -583,21 +589,23 @@ export class PathologyAddComponent implements OnInit {
583 589
 		  .getFetchDataList("data", "pathologySpecimen", data)
584 590
 		  .subscribe((res) => {
585 591
 		    this.specimenList = res.list
586
-				let str = []
587
-				if(res.list.length>0){
588
-					for(let i of res.list){
589
-						str.push(i.system.name + '-' + i.organ.name)
592
+				if(type!='load'){
593
+					let str = []
594
+					if(res.list.length>0){
595
+						for(let i of res.list){
596
+							str.push(i.system.name + '-' + i.organ.name)
597
+						}
598
+						const newStr = new Set(str);
599
+						const newData = Array.from(newStr);
600
+						this.validateForm.controls.takePart.setValue(newData.join('、'));
590 601
 					}
591
-					const newStr = new Set(str);
592
-					const newData = Array.from(newStr);
593
-					this.validateForm.controls.takePart.setValue(newData.join('、'));
594 602
 				}
595 603
 				this.validateForm.controls.specimenNum.setValue(this.specimenList.length);
596 604
 		  });
597 605
 	}
598 606
 	
599 607
 	hideSpecimenModal(){
600
-		this.getSampleData()
608
+		this.getSampleData('')
601 609
 		this.specimenModal = false
602 610
 	}
603 611
 	
@@ -622,8 +630,8 @@ export class PathologyAddComponent implements OnInit {
622 630
 		let ids = this.validateForm.value.project.join(',')
623 631
 		let data: any = {
624 632
 			pathologyForm:{
625
-				...this.validateForm.value,
626 633
 				...this.detailsData,
634
+				...this.validateForm.value,
627 635
 				inVitroTime:this.startDate,
628 636
 				surgeryId: this.surgeryId || "",
629 637
 				patientId: this.patientId || "",
@@ -633,15 +641,22 @@ export class PathologyAddComponent implements OnInit {
633 641
 				specimenType:{
634 642
 					id:this.validateForm.value.specimenGenre
635 643
 				}
636
-			}
644
+			},
645
+			operation:'',
646
+			pathologySpecimenIds:'',
637 647
 		};
638 648
 		delete data.pathologyForm.patientDTO
639 649
 		delete data.pathologyForm.surgeryDeptDTO
640 650
 		delete data.pathologyForm.surgeryDoctorDTO
641 651
 		delete data.pathologyForm.specimenGenre
642 652
 		data.pathologyForm.specimenNum = this.specimenList.length
643
-		console.log(77,data.pathologyForm.specimenNum)
644
-
653
+		if(this.operation=='addPrint' || this.operation=='wholePrint'){
654
+			data.operation = this.operation
655
+			data.pathologySpecimenIds = this.pathologySpecimenIds
656
+		}else{
657
+			delete data.operation
658
+			delete data.pathologySpecimenIds
659
+		}
645 660
 		this.printLoading = true;
646 661
 		this.mainService
647 662
 		  .pathologyPrint(data)
@@ -704,8 +719,9 @@ export class PathologyAddComponent implements OnInit {
704 719
 		  });
705 720
 	}
706 721
 	
707
-	printData:any;
708
-	submitForm(): void{
722
+	// 暂存/保存
723
+	zcLoading:any = false;
724
+	temporary(type): void{
709 725
 		var that = this;
710 726
 		for (const i in that.validateForm.controls) {
711 727
 		  that.validateForm.controls[i].markAsDirty();
@@ -716,26 +732,14 @@ export class PathologyAddComponent implements OnInit {
716 732
 			this.message.error('标本不能为空')
717 733
 			return
718 734
 		}
719
-		if(this.detailsData.status.name=='未打印'){
720
-			this.notModal = true
721
-			this.validatePrintForm = this.fb.group({
722
-			  inVitroTime: [null, [Validators.required]],
723
-				jobNumber: [null, [Validators.required]],
724
-				name:[null, [Validators.required]],
725
-			});
726
-			let date = new Date();
727
-			this.startDate = format(date, "yyyy-MM-dd HH:mm:ss")
728
-			this.validatePrintForm.controls.inVitroTime.setValue(this.startDate);
729
-			return
730
-		}
731
-
732
-		let data: any = {
735
+		let data = {
733 736
 			pathologyForm:{
734
-				...this.validateForm.value,
735 737
 				...this.detailsData,
738
+				...this.validateForm.value,
736 739
 				surgeryId: this.surgeryId || "",
737 740
 				patientId: this.patientId || "",
738 741
 				hosId: this.hosId || "" ,
742
+				pathologyInspectIds: this.validateForm.value.project.join(','),
739 743
 				specimenType:{
740 744
 					id:this.validateForm.value.specimenGenre
741 745
 				}
@@ -746,17 +750,154 @@ export class PathologyAddComponent implements OnInit {
746 750
 		delete data.pathologyForm.surgeryDeptDTO
747 751
 		delete data.pathologyForm.surgeryDoctorDTO 
748 752
 		delete data.pathologyForm.specimenGenre 
749
-		that.btnLoading = true;
750
-		that.mainService
753
+		that.zcLoading = true;
754
+		this.mainService.pathologyOperation(data,'storage').subscribe((res:any) => {
755
+			that.zcLoading = false;
756
+			if(res.status==200){
757
+				this.message.success('操作成功')
758
+				this.hideModal()
759
+			}else{
760
+				this.message.error(res.msg)
761
+			}
762
+		});
763
+	}
764
+	
765
+	// 追加打印
766
+	zjLoading:any = false;
767
+	operation:any;
768
+	pathologySpecimenIds:any;
769
+	superaddition(): void{
770
+		var that = this;
771
+		this.operation = 'addPrint'
772
+		for (const i in that.validateForm.controls) {
773
+		  that.validateForm.controls[i].markAsDirty();
774
+		  that.validateForm.controls[i].updateValueAndValidity();
775
+		}
776
+		if (that.validateForm.invalid) return;
777
+		if(this.specimenList.length==0){
778
+			this.message.error('标本不能为空')
779
+			return
780
+		}
781
+		that.mainService.pathologyCheckPrint('pathologyForm',this.detailsData.id).subscribe((res:any)=>{
782
+			if(res.ids){
783
+				this.notModal = true
784
+				this.pathologySpecimenIds = res.ids
785
+				this.validatePrintForm = this.fb.group({
786
+				  inVitroTime: [null, [Validators.required]],
787
+					jobNumber: [null, [Validators.required]],
788
+					name:[null, [Validators.required]],
789
+				});
790
+				let date = new Date();
791
+				this.startDate = format(date, "yyyy-MM-dd HH:mm:ss")
792
+				this.validatePrintForm.controls.inVitroTime.setValue(this.startDate);
793
+			}else{
794
+				this.message.info('无新标本需要打印')
795
+			}
796
+		})
797
+	}
798
+	
799
+	// 打印标本/全量
800
+	printData:any;
801
+	submitForm(type): void{
802
+		var that = this;
803
+		this.operation = 'wholePrint'
804
+		for (const i in that.validateForm.controls) {
805
+		  that.validateForm.controls[i].markAsDirty();
806
+		  that.validateForm.controls[i].updateValueAndValidity();
807
+		}
808
+		if (that.validateForm.invalid) return;
809
+		if(this.specimenList.length==0){
810
+			this.message.error('标本不能为空')
811
+			return
812
+		}
813
+		if(type=='all'){
814
+			that.mainService.pathologyCheckPrint('pathologyForm',this.detailsData.id).subscribe((res:any)=>{
815
+				if(res.ids){
816
+					this.notModal = true
817
+					this.pathologySpecimenIds = res.ids
818
+					this.validatePrintForm = this.fb.group({
819
+					  inVitroTime: [null, [Validators.required]],
820
+						jobNumber: [null, [Validators.required]],
821
+						name:[null, [Validators.required]],
822
+					});
823
+					let date = new Date();
824
+					this.startDate = format(date, "yyyy-MM-dd HH:mm:ss")
825
+					this.validatePrintForm.controls.inVitroTime.setValue(this.startDate);
826
+				}else{
827
+					let data: any = {
828
+						pathologyForm:{
829
+							...this.detailsData,
830
+							...this.validateForm.value,
831
+							surgeryId: this.surgeryId || "",
832
+							patientId: this.patientId || "",
833
+							hosId: this.hosId || "" ,
834
+							pathologyInspectIds: this.validateForm.value.project.join(','),
835
+							specimenType:{
836
+								id:this.validateForm.value.specimenGenre
837
+							}
838
+						},
839
+						operation:'',
840
+						pathologySpecimenIds:'',
841
+					};
842
+					data.pathologyForm.specimenNum = this.specimenList.length
843
+					if(this.operation=='addPrint' || this.operation=='wholePrint'){
844
+						data.operation = this.operation
845
+						data.pathologySpecimenIds = this.pathologySpecimenIds
846
+					}else{
847
+						delete data.operation
848
+						delete data.pathologySpecimenIds
849
+					}
850
+					delete data.pathologyForm.patientDTO
851
+					delete data.pathologyForm.surgeryDeptDTO
852
+					delete data.pathologyForm.surgeryDoctorDTO 
853
+					delete data.pathologyForm.specimenGenre 
854
+					that.btnLoading = true;
855
+					this.printFun(data)
856
+				}
857
+			})
858
+		}else{
859
+			this.operation = 'null'
860
+			if(this.statusValue==1){
861
+				this.notModal = true
862
+				this.validatePrintForm = this.fb.group({
863
+					inVitroTime: [null, [Validators.required]],
864
+					jobNumber: [null, [Validators.required]],
865
+					name:[null, [Validators.required]],
866
+				});
867
+				let date = new Date();
868
+				this.startDate = format(date, "yyyy-MM-dd HH:mm:ss")
869
+				this.validatePrintForm.controls.inVitroTime.setValue(this.startDate);
870
+				return
871
+			}
872
+			let data: any = {
873
+				pathologyForm:{
874
+					...this.detailsData,
875
+					...this.validateForm.value,
876
+					surgeryId: this.surgeryId || "",
877
+					patientId: this.patientId || "",
878
+					hosId: this.hosId || "" ,
879
+					specimenType:{
880
+						id:this.validateForm.value.specimenGenre
881
+					}
882
+				}
883
+			};
884
+			data.pathologyForm.specimenNum = this.specimenList.length
885
+			delete data.pathologyForm.patientDTO
886
+			delete data.pathologyForm.surgeryDeptDTO
887
+			delete data.pathologyForm.surgeryDoctorDTO 
888
+			delete data.pathologyForm.specimenGenre 
889
+			this.btnLoading = true;
890
+			this.printFun(data)
891
+		}
892
+	}
893
+	
894
+	// 打印
895
+	printFun(data){
896
+		this.mainService
751 897
 		  .pathologyPrint(data)
752 898
 		  .subscribe((res:any) => {
753 899
 				if(res.status==200){
754 900
 					let arr = res.data;
755
-					// if(arr.specimenList.length==1){
756
-					// 	for(let i of arr.specimenList){
757
-					// 		i.applyCode = data.pathologyForm.applyCode
758
-					// 	}
759
-					// }
760 901
 					if(arr.applyBarCode){
761 902
 						arr.applyBarCode = this.sanitizer.bypassSecurityTrustResourceUrl(arr.applyBarCode)
762 903
 					}
@@ -764,8 +905,8 @@ export class PathologyAddComponent implements OnInit {
764 905
 						i.applyCode = arr.applyCode?arr.applyCode:data.pathologyForm.applyCode
765 906
 						i.barCode = this.sanitizer.bypassSecurityTrustResourceUrl(i.barCode)
766 907
 					}
767
-					that.btnLoading = false;
768
-					that.printData = arr;
908
+					this.btnLoading = false;
909
+					this.printData = arr;
769 910
 					setTimeout(() => {
770 911
 					  const printContent = document.getElementById("report");
771 912
 					  const WindowPrt = window.open("", "", "width=100,height=1000");
@@ -775,7 +916,7 @@ export class PathologyAddComponent implements OnInit {
775 916
 							WindowPrt.focus();
776 917
 							WindowPrt.print();
777 918
 							WindowPrt.close();
778
-							that.hideModal();
919
+							this.hideModal();
779 920
 						},500)
780 921
 					}, 500);
781 922
 				}else{
@@ -786,7 +927,7 @@ export class PathologyAddComponent implements OnInit {
786 927
 	
787 928
 	// 关闭标本
788 929
 	closeSpecimenModel(){
789
-		this.getSampleData()
930
+		this.getSampleData('')
790 931
 		this.hideSpecimenModal()
791 932
 	}
792 933
 	

+ 66 - 23
src/app/share/pathology-detail/pathology-detail.component.html

@@ -4,17 +4,24 @@
4 4
 			<i class="icon_transport transport-guanbi" (click)="closeDetailMoadl()"></i></div>
5 5
 			<div class="content">
6 6
 				<div class="content-item boder-right">
7
-					<div class="form-title-box">
8
-						<div class="form-title"><span class="font-weight-500">是否术中快速:</span>{{detailsData.intraoperativeRapidity==1?'是':'否'}}</div>
9
-						<div class="form-title"><span class="font-weight-500">申请单编号:</span>{{detailsData.applyCode}}</div>
10
-						<div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status.name}}</div>
11
-						<div class="form-title"><span class="font-weight-500">科室名称:</span>{{detailsData.patientDTO.department.dept}}</div>
12
-					</div>
13
-					<div class="form-title-box">
14
-						<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
7
+					<nz-form-item class="form-title-box">
8
+						<div class="form-title">申请单类型:{{detailsData.pathologyFormType==1?'术中快速病理检查申请单':'病理检查申请单'}}</div>
9
+						<div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status?detailsData.status.name:'-'}}</div>
10
+					</nz-form-item>
11
+					<nz-form-item class="form-title-box">
12
+						<div class="form-title"><span class="font-weight-500">申请单号:</span>{{detailsData.applyCode}}</div>
13
+						<div class="form-title over-class"><span class="font-weight-500">申请科室:</span>{{detailsData.patientDTO.department.dept}}</div>
14
+					</nz-form-item>
15
+					<nz-form-item class="form-title-box">
16
+						<div class="form-title">手术间:{{detailsData.surgeryDeptDTO.dept}}</div>
17
+						<div class="form-title">取材医生:{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
18
+					</nz-form-item>
19
+					<nz-form-item class="form-title-box">
15 20
 						<div class="form-title"><span class="font-weight-500">患者信息:</span>{{detailsData.patientDTO.patientName}} ({{detailsData.patientDTO.bedNum}}床)</div>
16
-						<div class="form-title"><span class="font-weight-500">年龄:</span>{{detailsData.patientDTO.age||'-'}}岁</div>
17
-					</div>
21
+						<div class="form-title"><span class="font-weight-500">年龄:</span>{{detailsData.patientDTO.age||'-'}}</div>
22
+						<div class="form-title"><span class="font-weight-500">性别:</span>{{detailsData.patientDTO.gender.name||'-'}}</div>
23
+						<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
24
+					</nz-form-item>
18 25
 					
19 26
 					<div class="form-title-box">
20 27
 						<div class="form-title"><span class="font-weight-500">检验项目:</span>{{project||'无'}}</div>
@@ -35,28 +42,28 @@
35 42
 						<div class="form-title font-weight-500">手术方案:</div>
36 43
 						<div class="indent">{{detailsData.surgicalPlan||'无'}}</div>
37 44
 					</div>
38
-<!-- 					<div class="form-list">
45
+					<div class="form-list">
39 46
 						<div class="form-title font-weight-500">术中所见:</div>
40 47
 						<div class="indent">{{detailsData.intraoperativeFindings||'无'}}</div>
41
-					</div> -->
48
+					</div>
42 49
 
43 50
 					<div class="form-title-box">
44 51
 						<div class="form-title"><span class="font-weight-500">标本类型:</span>{{detailsData.specimenType.name||'无'}}</div>
45 52
 						<div class="form-title"><span class="font-weight-500">标本数量:</span>{{detailsData.specimenNum||'无'}}</div>
46
-						<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
47 53
 					</div>
48 54
 					
49 55
 					<div class="form-title-box">
50
-						<div class="form-title"><span class="font-weight-500">送检医生:</span>{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
51
-						<div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
52
-						<div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
56
+						<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
57
+						<!-- <div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
58
+						<!-- <div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
53 59
 					</div>
54 60
 					
55 61
 					<div class="form-list">
56 62
 						<div class="form-title font-weight-500">标本:</div>
57 63
 						<div class="form-title-box">
58
-							<div class="form-title" *ngFor="let item of specimenList">
64
+							<div class="form-title cursor" *ngFor="let item of specimenList" (click)="specimenView(item)">
59 65
 								{{item.partSource?item.partSource.name:''}}{{item.organ?item.organ.name:''}}{{item.specimenName}}
66
+								({{item.specimenCode}})
60 67
 							</div>
61 68
 						</div>
62 69
 					</div>
@@ -83,6 +90,7 @@
83 90
 					</nz-steps>
84 91
 				</div>
85 92
 			</div>
93
+			
86 94
 			<div class="display_flex justify-content_flex-center bottom-btn">
87 95
 				<button class="btn btn-right" *ngIf="detailsData.status.value==6 || 
88 96
 				detailsData.status.value==7 || detailsData.status.value==8 || 
@@ -92,11 +100,6 @@
92 100
 				detailsData.status.value==3 || detailsData.status.value==4 || 
93 101
 				detailsData.status.value==5" nz-button nzType="primary" (click)="submitPrint()" [nzLoading]="btnLoading">补打</button>
94 102
 				
95
-				<!-- <button class="btn btn-right" *ngIf="detailsData.status.value==2 || 
96
-				detailsData.status.value==3 || detailsData.status.value==4 || 
97
-				detailsData.status.value==5" nz-button nzType="primary" 
98
-				(click)="immobilization()">标本固定</button> -->
99
-				
100 103
 				<button class="btn cancel" *ngIf="detailsData.status.value==2 || 
101 104
 				detailsData.status.value==3 || detailsData.status.value==4 || 
102 105
 				detailsData.status.value==5" nz-button nzType="default" (click)="closeDetailMoadl()">取消</button>
@@ -204,4 +207,44 @@
204 207
 				</div>
205 208
 			</div>
206 209
 		</div>
207
-  </div>
210
+  </div>
211
+	
212
+	<!-- 查看标本 -->
213
+	<div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="specimenViewDialog">
214
+	  <div class="modalBody modalBody-ga">
215
+	    <div class="title">查看标本<i class="icon_transport transport-guanbi" (click)="hideSpecimenModal()"></i>
216
+	    </div>
217
+	    <overlay-scrollbars #osComponentRef1 class="content">
218
+	      <div class="list-template__bottom">
219
+	        <nz-table class="list-template__nzTable" [nzData]="viewData" nzSize="middle" [nzShowPagination]="false"
220
+	          [nzLoading]="loading1">
221
+	          <thead>
222
+	            <tr class="thead">
223
+								<th>标本名称</th>
224
+	              <th>编码</th>
225
+	              <th>备注</th>
226
+	              <th>离体时间</th>
227
+	              <th>离体操作人</th>
228
+	              <th>固定时间</th>
229
+	              <th>固定操作人</th>
230
+	            </tr>
231
+	          </thead>
232
+	          <tbody>
233
+	            <tr *ngFor="let data of viewData">
234
+								<td>{{ data.specimenName }}</td>
235
+	              <td>{{ data.specimenCode }}</td>
236
+	              <td>{{ data.remark ? data.remark : '无' }}</td>
237
+								<td>{{ data.inVitroTime ? (data.inVitroTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
238
+								<td>{{ data.inVitroOperator ? data.inVitroOperator.name : '-' }}</td>
239
+								<td>{{ data.fixationTime ? (data.fixationTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
240
+								<td>{{ data.fixationOperator ? data.fixationOperator.name : '-' }}</td>
241
+	            </tr>
242
+	          </tbody>
243
+	        </nz-table>
244
+	      </div>
245
+	    </overlay-scrollbars>
246
+	    <div class="display_flex justify-content_flex-center">
247
+	      <button class="btn" nz-button nzType="primary" (click)="hideSpecimenModal()">知道了</button>
248
+	    </div>
249
+	  </div>
250
+	</div>

+ 227 - 0
src/app/share/pathology-detail/pathology-detail.component.less

@@ -1,3 +1,5 @@
1
+@import "../../../../src/theme.less";
2
+
1 3
 /* 修改垂直滚动条 */
2 4
 ::-webkit-scrollbar {
3 5
 	width: 4px; /* 修改宽度 */
@@ -101,6 +103,10 @@
101 103
 					}
102 104
 					.form-list{
103 105
 						margin-bottom: 10px;
106
+						.cursor{
107
+							text-decoration: underline;
108
+							cursor: pointer;
109
+						}
104 110
 						.indent{
105 111
 							text-indent: 2ch;
106 112
 							color: #333;
@@ -175,3 +181,224 @@
175 181
 	}
176 182
 	
177 183
 }
184
+
185
+.save {
186
+  position: fixed;
187
+  left: 0;
188
+  top: 0;
189
+  width: 100%;
190
+  height: 100%;
191
+  background: rgba(0, 0, 0, 0.4);
192
+  z-index: 999;
193
+	.modalBody-ga{
194
+		width: 80% !important;
195
+		.list-template__searchBox{
196
+			margin-top: 10px;
197
+		}
198
+		.ant-select{
199
+			width: 20%;
200
+		}
201
+	}
202
+  .modalBody {
203
+    width: 350px;
204
+    background: #fff;
205
+    border-radius: 5px;
206
+    padding: 10px 20px;
207
+    color: #333;
208
+
209
+    .title {
210
+      width: 100%;
211
+      text-align: center;
212
+      font-size: 18px;
213
+      position: relative;
214
+
215
+      i {
216
+        position: absolute;
217
+        right: 0;
218
+        top: 0;
219
+        font-size: 20px;
220
+        color: #666;
221
+        cursor: pointer;
222
+        padding: 0 5px;
223
+      }
224
+    }
225
+
226
+    .content {
227
+      width: 100%;
228
+      height: 117px;
229
+      background: #f9fafb;
230
+      border: 1px solid #e5e9ed;
231
+      border-radius: 5px;
232
+      overflow: hidden;
233
+      margin-top: 12px;
234
+
235
+      div {
236
+        text-align: center;
237
+        margin: 0;
238
+
239
+        &.icon {
240
+          margin-top: 17px;
241
+
242
+          i {
243
+            color: #34b349;
244
+            font-size: 30px !important;
245
+
246
+            &.transport-wenhao {
247
+              color: #f5a523;
248
+            }
249
+
250
+            &.transport-shibai {
251
+              color: #ff3a52;
252
+            }
253
+          }
254
+        }
255
+
256
+        &.defeat {
257
+          color: #333;
258
+          font-size: 18px;
259
+        }
260
+
261
+        &:nth-child(3) {
262
+          font-size: 14px;
263
+          color: #666;
264
+        }
265
+      }
266
+    }
267
+
268
+    button {
269
+      margin-top: 10px;
270
+
271
+      &.btn {
272
+        margin-left: 8px;
273
+      }
274
+    }
275
+  }
276
+
277
+  // 新增
278
+  &.add {
279
+    .modalBody {
280
+      width: 420px;
281
+      height: auto;
282
+
283
+      .content {
284
+        width: 100%;
285
+        height: auto;
286
+        padding: 19px 14px 0 14px;
287
+        max-height: 500px;
288
+        overflow-y: auto;
289
+				
290
+				.ant-select{
291
+					width: 100%;
292
+				}
293
+				.ant-calendar-picker{
294
+					width: 100% !important;
295
+				}
296
+				.list-template__bottom {
297
+				  background: #f9fafb;
298
+				  border: 1px solid #e5e9ed;
299
+				  border-radius: 8px;
300
+				  padding-bottom: 56px;
301
+				  position: relative;
302
+				  .list-template__nzTable {
303
+				    padding: 16px 16px 0;
304
+				
305
+				    .thead {
306
+				      background-image: linear-gradient(to right, @bg-start, @bg-end);
307
+				
308
+				      th {
309
+				        background: transparent;
310
+				        color: #fff;
311
+				        text-align: center;
312
+				      }
313
+				    }
314
+				
315
+				    .ant-table-body {
316
+				      border-bottom: 1px solid #e5e9ed;
317
+				    }
318
+				
319
+				    .ant-table-tbody {
320
+				      tr {
321
+				        text-align: center;
322
+				        color: #333;
323
+				
324
+				        td {
325
+				          border: none;
326
+				
327
+				          &.tab_hover:hover{
328
+				            text-decoration: underline;
329
+				            cursor: pointer;
330
+				          }
331
+				
332
+				          .coop {
333
+				            button{
334
+				              color: #333;
335
+				            }
336
+				            span,button {
337
+				              display: inline-block;
338
+				              padding: 0 8px;
339
+				              cursor: pointer;
340
+				              position: relative;
341
+				
342
+				              &::after {
343
+				                content: "|";
344
+				                position: absolute;
345
+				                top: 0;
346
+				                right: 0;
347
+				              }
348
+				
349
+				              &:hover,
350
+				              &:active {
351
+				                color: @primary-color;
352
+				              }
353
+				
354
+				              &:nth-last-child(1) {
355
+				                &::after {
356
+				                  content: "";
357
+				                }
358
+				              }
359
+				            }
360
+				          }
361
+				        }
362
+				      }
363
+				    }
364
+				  }
365
+				  .list-template__pagination {
366
+				    height: 56px;
367
+				    display: flex;
368
+				    align-items: center;
369
+				    position: absolute;
370
+				    right: 8px;
371
+				  }
372
+				}
373
+				
374
+        .addForm {
375
+          .ant-form-item {
376
+            margin-bottom: 14px;
377
+
378
+            .ant-form-item-label {
379
+              line-height: 14px;
380
+              text-align: left;
381
+            }
382
+          }
383
+        }
384
+
385
+        .editForm {
386
+          .ant-form-item {
387
+            margin-bottom: 14px;
388
+
389
+            .ant-form-item-label {
390
+              line-height: 0;
391
+              text-align: left;
392
+            }
393
+          }
394
+        }
395
+      }
396
+
397
+      button {
398
+        &:nth-child(1) {
399
+          margin-right: 20px;
400
+        }
401
+      }
402
+    }
403
+  }
404
+}

+ 30 - 475
src/app/share/pathology-detail/pathology-detail.component.ts

@@ -23,6 +23,7 @@ export class PathologyDetailComponent implements OnInit {
23 23
 	@Output() pathologyCancel = new EventEmitter();
24 24
 	@Input() surgeryId: string;
25 25
 	@Input() patientId: string;
26
+	@Input() detailId: string;
26 27
 	
27 28
 	constructor(
28 29
 		private http: HttpClient,
@@ -76,8 +77,7 @@ export class PathologyDetailComponent implements OnInit {
76 77
 	hosId:any;
77 78
 	pathologyLogs:any //日志
78 79
 	printLoading:boolean = false;
79
-	printData:any = [];
80
-	project:any = [];
80
+	project:any;
81 81
 	
82 82
   ngOnInit() {
83 83
 		this.hosId = this.tool.getCurrentHospital().id;
@@ -86,6 +86,7 @@ export class PathologyDetailComponent implements OnInit {
86 86
   }
87 87
 	
88 88
 	// 补打
89
+	printData:any;
89 90
 	submitPrint(){
90 91
 		let that = this
91 92
 		let data: any = {
@@ -106,11 +107,6 @@ export class PathologyDetailComponent implements OnInit {
106 107
 		  .subscribe((res:any) => {
107 108
 				if(res.status==200){
108 109
 					let arr = res.data;
109
-					// if(arr.specimenList.length==1){
110
-					// 	for(let i of arr.specimenList){
111
-					// 		i.applyCode = data.pathologyForm.applyCode
112
-					// 	}
113
-					// }
114 110
 					if(arr.applyBarCode){
115 111
 						arr.applyBarCode = this.sanitizer.bypassSecurityTrustResourceUrl(arr.applyBarCode)
116 112
 					}
@@ -143,354 +139,40 @@ export class PathologyDetailComponent implements OnInit {
143 139
 		this.pathologyCancel.emit()
144 140
 	}
145 141
 	
146
-	// 初始化新增form表单
147
-	// initForm() {
148
-	// 	this.validateForm = this.fb.group({
149
-	// 	  intraoperativeRapidity: [1, [Validators.required]],
150
-	// 		specimenGenre: [null, [Validators.required]],
151
-	// 		intraoperativeFindings: [null, [Validators.required]],
152
-	// 		surgicalPlan: [null, [Validators.required]],
153
-	// 		specimenNum: [null,[Validators.required]],
154
-	// 		takePart: [null, [Validators.required]]
155
-	// 	});
156
-	// }
157
-	
158 142
 	// 获取详情
143
+	statusValue:any;
159 144
 	fetchDataList(){
160 145
 		let data = {
161 146
 		  idx: 0,
162 147
 		  sum: 9999,
163 148
 		  pathologyForm: {
164
-		    surgeryId: this.surgeryId || "",
149
+				surgeryId: this.surgeryId || "",
165 150
 		    patientId: this.patientId || "",
166 151
 		    hosId: this.hosId || "" ,
167 152
 		  },
168 153
 		};
169 154
 		this.isSpinning = true;
170
-		this.mainService
171
-		  .getFetchDataList("data", "pathologyForm", data)
155
+		// this.mainService
156
+		//   .getFetchDataList("data", "pathologyForm", data)
157
+			this.mainService.getFetchData("data", "pathologyForm", this.detailId)
172 158
 		  .subscribe((data) => {
173 159
 		    this.isSpinning = false;
174
-		    this.detailsData = data.list[0];
175
-				this.pathologyLogs = data.list[0].formLogDTOS
160
+		    this.detailsData = data.data;
161
+				if(this.detailsData.status){
162
+					this.statusValue = this.detailsData.status.value
163
+				}
164
+				this.pathologyLogs = data.data.formLogDTOS
176 165
 				this.stepLength = this.pathologyLogs.length
177 166
 				if(this.detailsData.pathologyInspectDTOS){
178
-					for(let i of this.detailsData.pathologyInspectDTOS){
179
-						this.project.push(i.inspectProject.name)
180
-					}
167
+					this.project = this.detailsData.pathologyInspectDTOS.map(i=>{
168
+						return i.inspectProject.name
169
+					})
181 170
 					this.project = this.project.join('、')
182 171
 				}
183
-				// if(this.detailsData.surgicalPlan){
184
-				// 	this.validateForm.controls.surgicalPlan.setValue(this.detailsData.surgicalPlan);
185
-				// }
186
-				// if(this.detailsData.intraoperativeFindings){
187
-				// 	this.validateForm.controls.intraoperativeFindings.setValue(this.detailsData.intraoperativeFindings);
188
-				// }
189 172
 				this.getSampleData()
190 173
 		  });
191 174
 	}
192 175
 	
193
-	// // 获取标本类型
194
-	// getDicData(){
195
-	// 	this.mainService.getDictionary("list", "pathology_specimen_type").subscribe((res) => {
196
-	// 		this.specimenData = res
197
-	// 	});
198
-	// }
199
-	
200
-	// // 获取标本-位置来源
201
-	// getSourceData(){
202
-	// 	this.mainService.getDictionary("list", "pathology_position").subscribe((res) => {
203
-	// 		this.placeList = res
204
-	// 	});
205
-	// }
206
-	
207
-	// // 获取标本-系统
208
-	// getSysData(){
209
-	// 	let postData: any = {
210
-	// 	  idx: 0,
211
-	// 	  sum: 9999,
212
-	// 	  dictionaryTree: {
213
-	// 	    level: 1,
214
-	// 	    key: 'pathology_specimen',
215
-	// 	    deleted: 0,
216
-	// 	  },
217
-	// 	};
218
-	// 	this.mainService
219
-	// 	  .getFetchDataList("simple/data", "dictionaryTree", postData)
220
-	// 	  .subscribe((data) => {
221
-	// 	    this.systemList = data.list;
222
-	// 	  });
223
-
224
-	// }
225
-	
226
-	// // 获取标本-器官
227
-	// getApparatusData(id,item,type){
228
-	// 	let postData: any = {
229
-	// 	  idx: 0,
230
-	// 	  sum: 9999,
231
-	// 	  dictionaryTree: {
232
-	// 	    level: 2,
233
-	// 			parent:id,
234
-	// 	    key: 'pathology_specimen',
235
-	// 	    deleted: 0,
236
-	// 	  },
237
-	// 	};
238
-	// 	this.mainService
239
-	// 	  .getFetchDataList("simple/data", "dictionaryTree", postData)
240
-	// 	  .subscribe((data) => {
241
-	// 			if(data.list.length>0){
242
-	// 				this.apparatusList = data.list;
243
-	// 				if(type=='edit'){
244
-	// 					setTimeout(_=>{
245
-	// 						let index3 = this.apparatusList.findIndex(i=>i.id==item.organ.id)
246
-	// 						this.apparatusIndex = index3
247
-	// 						this.apparatusId = Number(item.organ.id);
248
-	// 					},100)
249
-	// 				}
250
-	// 			}else{
251
-	// 				this.message.info('暂无数据')
252
-	// 			}
253
-	// 	  });
254
-	// }
255
-	
256
-	// // 获取标本-标本名称
257
-	// getSpNameData(id,item,type){
258
-	// 	let postData: any = {
259
-	// 	  idx: 0,
260
-	// 	  sum: 9999,
261
-	// 	  dictionaryTree: {
262
-	// 	    level: 3,
263
-	// 			parent:id,
264
-	// 	    key: 'pathology_specimen',
265
-	// 	    deleted: 0,
266
-	// 	  },
267
-	// 	};
268
-	// 	this.mainService
269
-	// 	  .getFetchDataList("simple/data", "dictionaryTree", postData)
270
-	// 	  .subscribe((data) => {
271
-	// 	    this.specimenNameList = data.list;
272
-	// 			this.specimenNameList.push({
273
-	// 				name:'其他',
274
-	// 				id:'qita'
275
-	// 			})
276
-	// 			if(type=='edit'){
277
-	// 				if(item.sample){
278
-	// 					this.validateSpecimenForm = this.fb.group({
279
-	// 					  remark: [null, [Validators.required]]
280
-	// 					});
281
-	// 					setTimeout(_=>{
282
-	// 						let index4 = this.specimenNameList.findIndex(i=>i.id==item.sample.id)
283
-	// 						this.specimenNameIndex = index4
284
-	// 						this.specimenNameName = item.sample.name
285
-	// 						this.specimenNameId = Number(item.sample.id);
286
-	// 					},100)
287
-	// 				}else{
288
-	// 					this.validateSpecimenForm = this.fb.group({
289
-	// 					  remark: [null, [Validators.required]],
290
-	// 						specimenName: [null, [Validators.required]]
291
-	// 					});
292
-	// 					this.specimenNameIndex = this.specimenNameList.length-1
293
-	// 					this.specimenNameName = 'qita'
294
-	// 					this.validateSpecimenForm.controls.specimenName.setValue(item.specimenName);
295
-	// 				}
296
-	// 				setTimeout(_=>{
297
-	// 					this.validateSpecimenForm.controls.remark.setValue(item.remark);
298
-	// 					this.specimenModal = true
299
-	// 				},50)
300
-	// 			}
301
-	// 	  });
302
-	// }
303
-	
304
-	// // 删除标本
305
-	// delModal:boolean = false
306
-	// coopId:any;
307
-	// specimenDel(e,item,index){
308
-	// 	this.delModal = true
309
-	// 	this.coopId = item.id
310
-	// }
311
-	
312
-	// // 确定删除
313
-	// confirmDel(){
314
-	// 	this.mainService
315
-	// 	  .coopTypeConfig(
316
-	// 	    "rmvData",
317
-	// 	    "pathologySpecimen",
318
-	// 	     [this.coopId]
319
-	// 	  )
320
-	// 	  .subscribe((data) => {
321
-	// 	    this.btnLoading = false;
322
-	// 	    this.delModal = false;
323
-	// 			this.getSampleData()
324
-	// 	    if (data.status==200) {
325
-	// 	      this.showSpecimenModal("删除", true, "");
326
-	// 	    } else {
327
-	// 	      this.showSpecimenModal("删除", false, data.data[0].msg);
328
-	// 	    }
329
-	// 	  });
330
-	// }
331
-	// // 确定删除
332
-	// hideDelModal() {
333
-	//   this.delModal = false;
334
-	// }
335
-	
336
-	// // 编辑标本
337
-	// specimenDetailId:any = null;
338
-	// specimenEdit(e,item,index){
339
-	// 	this.specimenDetailId = item.id
340
-	// 	let index1 = this.placeList.findIndex(i=>i.id==item.partSource.id)
341
-	// 	this.placeIndex = index1
342
-	// 	this.placeId = Number(item.partSource.id)
343
-	// 	let index2 = this.systemList.findIndex(i=>i.id==item.system.id)
344
-	// 	this.systemIndex = index2
345
-	// 	this.systemId = Number(item.system.id)
346
-	// 	this.getApparatusData(item.system.id,item,'edit')
347
-	// 	this.getSpNameData(item.organ.id,item,'edit')
348
-	// }
349
-	
350
-	// // 选择标本
351
-	// openSpecimen(){
352
-	// 	this.validateSpecimenForm = this.fb.group({
353
-	// 	  remark: [null, [Validators.required]]
354
-	// 	});
355
-	// 	this.specimenDetailId = null;
356
-	// 	this.placeIndex = null;
357
-	// 	this.systemIndex = null;
358
-	// 	this.apparatusIndex = null;
359
-	// 	this.specimenNameIndex = null;
360
-	// 	this.placeId = null;
361
-	// 	this.systemId = null;
362
-	// 	this.apparatusId = null;
363
-	// 	this.specimenNameId = null;
364
-	// 	this.placeList=[]; //位置来源数据
365
-	// 	this.systemList=[]; //系统数据
366
-	// 	this.apparatusList=[]; //器官数据
367
-	// 	this.specimenNameList=[]; //标本名称数据
368
-	// 	this.getSourceData()
369
-	// 	this.getSysData()
370
-	// 	this.specimenModal = true
371
-	// }
372
-	
373
-	// // 选择位置来源
374
-	// placeId:any = null;
375
-	// placeClick(e,item,index){
376
-	// 	this.placeId = item.id
377
-	// 	this.placeIndex = index
378
-	// }
379
-	
380
-	// // 选择系统
381
-	// systemId:any = null;
382
-	// systemClick(e,item,index){
383
-	// 	this.systemId = Number(item.id)
384
-	// 	this.systemIndex = index
385
-	// 	this.apparatusList = [];
386
-	// 	this.apparatusId = null;
387
-	// 	this.apparatusIndex = null;
388
-	// 	this.getApparatusData(item.id,{},'select')
389
-	// }
390
-	
391
-	// // 选择器官
392
-	// apparatusId:any = null;
393
-	// apparatusClick(e,item,index){
394
-	// 	this.apparatusId = Number(item.id)
395
-	// 	this.apparatusIndex = index
396
-	// 	this.specimenNameList = [];
397
-	// 	this.specimenNameId = null;
398
-	// 	this.specimenNameIndex = null;
399
-	// 	this.getSpNameData(item.id,{},'select')
400
-	// }
401
-	
402
-	// // 选择标本名称
403
-	// specimenNameId:any = null;
404
-	// specimenNameName:any = null;
405
-	// specimenNameClick(e,item,index){
406
-	// 	this.specimenNameIndex = index
407
-	// 	let remark = this.validateSpecimenForm.value.remark
408
-	// 	if(item.id == 'qita'){
409
-	// 		this.validateSpecimenForm = this.fb.group({
410
-	// 		  remark: [remark?remark:null, [Validators.required]],
411
-	// 			specimenName: [null, [Validators.required]]
412
-	// 		});
413
-	// 		this.specimenNameId = 'null'
414
-	// 		this.specimenNameName = 'qita'
415
-	// 	}else{
416
-	// 		this.validateSpecimenForm = this.fb.group({
417
-	// 		  remark: [remark?remark:null, [Validators.required]],
418
-	// 		});
419
-	// 		this.specimenNameId = item.id
420
-	// 		this.specimenNameName = item.name
421
-	// 	}
422
-	// }
423
-	
424
-	// // 保存标本
425
-	// btnSpLoading:boolean = false;
426
-	// submitSpecimen(){
427
-	// 	if(this.placeIndex==null){
428
-	// 		this.message.error('请选择位置来源')
429
-	// 		return
430
-	// 	}
431
-	// 	if(this.systemIndex==null){
432
-	// 		this.message.error('请选择系统')
433
-	// 		return
434
-	// 	}
435
-	// 	if(this.apparatusIndex==null){
436
-	// 		this.message.error('请选择器官')
437
-	// 		return
438
-	// 	}
439
-	// 	if(this.specimenNameIndex==null){
440
-	// 		this.message.error('请选择标本名称')
441
-	// 		return
442
-	// 	}
443
-	// 	for (const i in this.validateSpecimenForm.controls) {
444
-	// 	  this.validateSpecimenForm.controls[i].markAsDirty();
445
-	// 	  this.validateSpecimenForm.controls[i].updateValueAndValidity();
446
-	// 	}
447
-	// 	if (this.validateSpecimenForm.invalid) return;
448
-	// 	let data = {
449
-	// 		pathologyFormId:this.detailsData.id,
450
-	// 		partSource:{
451
-	// 			id:this.placeId
452
-	// 		},
453
-	// 		system:{
454
-	// 			id:this.systemId
455
-	// 		},
456
-	// 		organ:{
457
-	// 			id:this.apparatusId
458
-	// 		},
459
-	// 		sample:{
460
-	// 			id:this.specimenNameId
461
-	// 		},
462
-	// 		hosId:this.hosId,
463
-	// 		specimenName:null,
464
-	// 		id:'',
465
-	// 		remark:this.validateSpecimenForm.value.remark
466
-	// 	};
467
-	// 	if(this.specimenNameName == 'qita'){
468
-	// 		delete data.sample
469
-	// 		data.specimenName = this.validateSpecimenForm.value.specimenName
470
-	// 	}else{
471
-	// 		data.specimenName = this.specimenNameName
472
-	// 	}
473
-	// 	let queryType = null
474
-	// 	if(this.specimenDetailId){
475
-	// 		queryType = 'updData'
476
-	// 		data.id = this.specimenDetailId
477
-	// 	}else{
478
-	// 		queryType = 'addData'
479
-	// 		delete data.id
480
-	// 	}
481
-	// 	this.btnSpLoading = true;
482
-	// 	this.mainService
483
-	// 	  .simplePost(queryType, "pathologySpecimen", data)
484
-	// 	  .subscribe((res) => {
485
-	// 	    this.btnSpLoading = false;
486
-	// 	    if (res.status == 200) {
487
-	// 	      this.showSpecimenModal("操作", true, "");
488
-	// 	    } else {
489
-	// 	      this.showSpecimenModal("操作", false, res.msg);
490
-	// 	    }
491
-	// 	  });
492
-	// }
493
-	
494 176
 	// 获取标本列表
495 177
 	getSampleData(){
496 178
 		let data={
@@ -507,152 +189,25 @@ export class PathologyDetailComponent implements OnInit {
507 189
 		  });
508 190
 	}
509 191
 	
510
-	hideSpecimenModal(){
511
-		this.specimenModal = false
512
-	}
513
-	
514 192
 	hideNotModal(){
515 193
 		this.notModal = false
516 194
 	}
517 195
 	
518
-	// 日期选择
519
-	// startDate: string; //时间开始
520
-	// formChangeDate(result?): void {
521
-	//   this.startDate = format(result[0], 'yyyy-MM-dd HH:mm:ss');
522
-		
523
-	// }
524
-	
525
-	//未打印提交
526
-	// submitPrintForm(): void{
527
-	// 	for (const i in this.validatePrintForm.controls) {
528
-	// 	  this.validatePrintForm.controls[i].markAsDirty();
529
-	// 	  this.validatePrintForm.controls[i].updateValueAndValidity();
530
-	// 	}
531
-	// 	if (this.validatePrintForm.invalid) return;
532
-		
533
-	// 	let data: any = {
534
-	// 		pathologyForm:{
535
-	// 			...this.validateForm.value,
536
-	// 			...this.detailsData,
537
-	// 			inVitroTime:this.validatePrintForm.value.inVitroTime,
538
-	// 			surgeryId: this.surgeryId || "",
539
-	// 			patientId: this.patientId || "",
540
-	// 			hosId: this.hosId || "" ,
541
-	// 			handoverUserId:this.handoverUserId,
542
-	// 			specimenType:{
543
-	// 				id:this.validateForm.value.specimenGenre
544
-	// 			}
545
-	// 		}
546
-	// 	};
547
-	// 	delete data.pathologyForm.patientDTO
548
-	// 	delete data.pathologyForm.surgeryDeptDTO
549
-	// 	delete data.pathologyForm.surgeryDoctorDTO
550
-	// 	delete data.pathologyForm.specimenGenre
551
-	// 	this.printLoading = true;
552
-	// 	this.mainService
553
-	// 	  .pathologyPrint(data)
554
-	// 	  .subscribe((res:any) => {
555
-	// 			console.log(5555,res)
556
-	// 			this.hideModal()
557
-	// 	    this.printData = res.data;
558
-	// 			this.printLoading = false;
559
-	// 	    setTimeout(() => {
560
-	// 	      const printContent = document.getElementById("report");
561
-	// 	      const WindowPrt = window.open("", "", "width=100,height=1000");
562
-	// 	      WindowPrt.document.write(printContent.innerHTML);
563
-	// 	      WindowPrt.document.close();
564
-	// 	      WindowPrt.focus();
565
-	// 	      WindowPrt.print();
566
-	// 	      WindowPrt.close();
567
-	// 	    }, 500);
568
-	// 	  });
569
-	// }
570
-	
571
-	// // 监听工号数据
572
-	// handoverUserId:any = null;
573
-	// numberChange(e){
574
-	// 	if(e.length < 3) {
575
-	// 		this.validatePrintForm.controls.name.setValue('');
576
-	// 		return
577
-	// 	}
578
-	// 	let data = {
579
-	// 	  idx: 0,
580
-	// 	  sum: 9999,
581
-	// 	  user: {
582
-	// 	    account: e || "",
583
-	// 	    hospital: { id: this.hosId || "" }
584
-	// 	  },
585
-	// 	};
586
-	// 	this.mainService
587
-	// 	  .getFetchDataList("data", "user", data)
588
-	// 	  .subscribe((data) => {
589
-	// 			if(data.list.length>0){
590
-	// 				this.validatePrintForm.controls.name.setValue(data.list[0].name);
591
-	// 				this.handoverUserId = data.list[0].id
592
-	// 			}else{
593
-	// 				this.validatePrintForm.controls.name.setValue('');
594
-	// 				this.handoverUserId =null
595
-	// 			}
596
-	// 	  });
597
-	// }
196
+	// 关闭查看标本
197
+	hideSpecimenModal(){
198
+		this.specimenViewDialog = false
199
+	}
598 200
 	
599
-	// printData:any;
600
-	// submitForm(): void{
601
-	// 	var that = this;
602
-	// 	for (const i in that.validateForm.controls) {
603
-	// 	  that.validateForm.controls[i].markAsDirty();
604
-	// 	  that.validateForm.controls[i].updateValueAndValidity();
605
-	// 	}
606
-	// 	if (that.validateForm.invalid) return;
607
-	// 	if(this.detailsData.status.name=='未打印'){
608
-	// 		this.notModal = true
609
-	// 		this.validatePrintForm = this.fb.group({
610
-	// 		  inVitroTime: [null, [Validators.required]],
611
-	// 			jobNumber: [null, [Validators.required]],
612
-	// 			name:[null, [Validators.required]],
613
-	// 		});
614
-	// 		let date = new Date();
615
-	// 		this.startDate = format(date, "yyyy-MM-dd HH:mm:ss")
616
-	// 		this.validatePrintForm.controls.inVitroTime.setValue(this.startDate);
617
-	// 		return
618
-	// 	}
619
-
620
-	// 	let data: any = {
621
-	// 		pathologyForm:{
622
-	// 			...this.validateForm.value,
623
-	// 			...this.detailsData,
624
-	// 			surgeryId: this.surgeryId || "",
625
-	// 			patientId: this.patientId || "",
626
-	// 			hosId: this.hosId || "" ,
627
-	// 			specimenType:{
628
-	// 				id:this.validateForm.value.specimenGenre
629
-	// 			}
630
-	// 		}
631
-	// 	};
632
-	// 	delete data.pathologyForm.patientDTO
633
-	// 	delete data.pathologyForm.surgeryDeptDTO
634
-	// 	delete data.pathologyForm.surgeryDoctorDTO 
635
-	// 	delete data.pathologyForm.specimenGenre 
636
-	// 	that.btnLoading = true;
637
-	// 	that.mainService
638
-	// 	  .pathologyPrint(data)
639
-	// 	  .subscribe((res:any) => {
640
-	// 			this.hideModal()
641
-	// 			let arr = res.data;
642
-	// 	    that.printData = arr;
643
-	// 			that.btnLoading = false;
644
-	// 	    setTimeout(() => {
645
-	// 	      const printContent = document.getElementById("report");
646
-	// 	      const WindowPrt = window.open("", "", "width=100,height=1000");
647
-	// 	      WindowPrt.document.write(printContent.innerHTML);
648
-	// 	      WindowPrt.document.close();
649
-	// 	      WindowPrt.focus();
650
-	// 	      WindowPrt.print();
651
-	// 	      WindowPrt.close();
652
-					
653
-	// 	    }, 500);
654
-	// 	  });
655
-	// }
201
+	// 查看标本
202
+	specimenViewDialog:any = false;
203
+	viewData:any = [];
204
+	specimenItem:any;
205
+	specimenView(item){
206
+		this.viewData = []
207
+		this.specimenViewDialog = true
208
+		this.specimenItem = item;
209
+		this.viewData.push(item)
210
+	}
656 211
 	
657 212
 	// 关闭标本
658 213
 	closeSpecimenModel(){

+ 1 - 1
src/app/views/dispensing-batch/dispensing-batch.component.html

@@ -138,7 +138,7 @@
138 138
 	    <overlay-scrollbars #osComponentRef1 class="content">
139 139
 	      <div class="list-template__bottom">
140 140
 	        <nz-table class="list-template__nzTable" [nzData]="viewData" nzSize="middle" [nzShowPagination]="false"
141
-	          [nzLoading]="grossLoading">
141
+	          [nzLoading]="loading">
142 142
 	          <thead>
143 143
 	            <tr class="thead">
144 144
 	              <th>药品名称</th>

+ 50 - 2
src/app/views/hushijiandan/hushijiandan.component.html

@@ -3772,7 +3772,55 @@
3772 3772
 <button ngxPrint printSectionId="print-section" #printBtn hidden [printStyle]="{ '@page': { margin: '0 !important' }, 'body': { margin: '0 !important' } }">打印</button>
3773 3773
 
3774 3774
 <!-- 病理申请单 -->
3775
-<app-pathology-add *ngIf="pathologyModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" (pathologyCancel)="pathologyCancel($event)"></app-pathology-add>
3775
+<app-pathology-add *ngIf="pathologyModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" [patientId]="patientDataId" [detailId]="detailId" (pathologyCancel)="pathologyCancel($event)"></app-pathology-add>
3776 3776
 
3777 3777
 <!-- 病理详情 -->
3778
-<app-pathology-detail *ngIf="pathologyDetailModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" (pathologyCancel)="pathologyDetailCancel($event)"></app-pathology-detail>
3778
+<app-pathology-detail *ngIf="pathologyDetailModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" [detailId]="detailId" (pathologyCancel)="pathologyDetailCancel($event)"></app-pathology-detail>
3779
+
3780
+<!-- 多个申请单 -->
3781
+<div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="multiDialog">
3782
+	<div class="modalBody modalBody-ga">
3783
+		<div class="title">多条申请单提示<i class="icon_transport transport-guanbi" (click)="hideModal()"></i>
3784
+		</div>
3785
+		<div class="content">
3786
+			<div class="weight">
3787
+				提示:查询到{{viewData[0].patientDTO.patientName}}({{viewData[0].patientDTO.patientCode}})患者有多条申请单,请选择对应申请单
3788
+			</div>
3789
+			<div class="list-template__bottom">
3790
+				<nz-table class="list-template__nzTable" [nzData]="viewData" nzSize="middle" [nzShowPagination]="false"
3791
+					[nzLoading]="grossLoading">
3792
+					<thead>
3793
+						<tr class="thead">
3794
+							<th>申请单类型</th>
3795
+							<th>申请单号</th>
3796
+							<th nzWidth="15%">检验项目</th>
3797
+							<th>标本类型</th>
3798
+							<th>申请时间</th>
3799
+							<th>申请科室</th>
3800
+							<th>状态</th>
3801
+						</tr>
3802
+					</thead>
3803
+					<tbody>
3804
+						<tr *ngFor="let data of viewData">
3805
+							<td *ngIf="data.pathologyFormType==1">术中快速病理检查申请单</td>
3806
+							<td *ngIf="data.pathologyFormType==0">病理检查申请单</td>
3807
+							<td *ngIf="data.pathologyFormType==null">无</td>
3808
+							<td style="text-decoration: underline;cursor: pointer;" (click)="itemClick(data)">{{ data.applyCode}}</td>
3809
+							<td>{{ data.arr ? data.arr.join('、') : '无' }}</td>
3810
+							<td>{{ data.specimenType?data.specimenType.name:'无'}}</td>
3811
+							<td>{{ data.createTime | date:'yyyy-MM-dd HH:mm'}}</td>
3812
+							<td>{{ data.patientDTO.department? data.patientDTO.department.dept:'-'}}</td>
3813
+							<td>{{ data.status?data.status.name:'-'}}</td>
3814
+						</tr>
3815
+					</tbody>
3816
+				</nz-table>
3817
+			</div>
3818
+		</div>
3819
+		<div class="display_flex justify-content_flex-center mar-20 btns">
3820
+			<button class="btn" nz-button nzType="primary" (click)="hideModal()">知道了</button>
3821
+		</div>
3822
+	</div>
3823
+</div>
3824
+<div class="mask-style" *ngIf="isSpinning">
3825
+	<nz-spin nzSimple class="spin-style"></nz-spin>
3826
+</div>

+ 243 - 2
src/app/views/hushijiandan/hushijiandan.component.less

@@ -216,6 +216,234 @@
216 216
   // }
217 217
 }
218 218
 
219
+
220
+.save {
221
+  position: fixed;
222
+  left: 0;
223
+  top: 0;
224
+  width: 100%;
225
+  height: 100%;
226
+  background: rgba(0, 0, 0, 0.4);
227
+  z-index: 99;
228
+	.modalBody-ga{
229
+		width: 80% !important;
230
+		.list-template__searchBox{
231
+			margin-top: 10px;
232
+		}
233
+		.ant-select{
234
+			width: 20%;
235
+		}
236
+	}
237
+  .modalBody {
238
+    width: 350px;
239
+    background: #fff;
240
+    border-radius: 5px;
241
+    padding: 10px 20px;
242
+    color: #333;
243
+
244
+    .title {
245
+      width: 100%;
246
+      text-align: center;
247
+      font-size: 18px;
248
+      position: relative;
249
+
250
+      i {
251
+        position: absolute;
252
+        right: 0;
253
+        top: 0;
254
+        font-size: 20px;
255
+        color: #666;
256
+        cursor: pointer;
257
+        padding: 0 5px;
258
+      }
259
+    }
260
+
261
+    .content {
262
+      width: 100%;
263
+      height: 117px;
264
+      background: #f9fafb;
265
+      border: 1px solid #e5e9ed;
266
+      border-radius: 5px;
267
+      overflow: hidden;
268
+      margin-top: 12px;
269
+			
270
+			.weight{
271
+				font-weight: 600;
272
+				position: relative;
273
+				top: -9px;
274
+			}
275
+			
276
+      div {
277
+        text-align: center;
278
+        margin: 0;
279
+
280
+        &.icon {
281
+          margin-top: 17px;
282
+
283
+          i {
284
+            color: #34b349;
285
+            font-size: 30px !important;
286
+
287
+            &.transport-wenhao {
288
+              color: #f5a523;
289
+            }
290
+
291
+            &.transport-shibai {
292
+              color: #ff3a52;
293
+            }
294
+          }
295
+        }
296
+
297
+        &.defeat {
298
+          color: #333;
299
+          font-size: 18px;
300
+        }
301
+
302
+        &:nth-child(3) {
303
+          font-size: 14px;
304
+          color: #666;
305
+        }
306
+      }
307
+    }
308
+
309
+    button {
310
+      margin-top: 10px;
311
+
312
+      &.btn {
313
+        margin-left: 8px;
314
+      }
315
+    }
316
+  }
317
+
318
+  // 新增
319
+  &.add {
320
+    .modalBody {
321
+      width: 420px;
322
+      height: auto;
323
+
324
+      .content {
325
+        width: 100%;
326
+        height: auto;
327
+        padding: 19px 14px 0 14px;
328
+        max-height: 500px;
329
+        overflow-y: auto;
330
+				
331
+				.ant-select{
332
+					width: 100%;
333
+				}
334
+				.ant-calendar-picker{
335
+					width: 100% !important;
336
+				}
337
+				.list-template__bottom {
338
+				  background: #f9fafb;
339
+				  border: 1px solid #e5e9ed;
340
+				  border-radius: 8px;
341
+				  padding-bottom: 56px;
342
+				  position: relative;
343
+				  .list-template__nzTable {
344
+				    padding: 16px 16px 0;
345
+				
346
+				    .thead {
347
+				      background-image: linear-gradient(to right, @bg-start, @bg-end);
348
+				
349
+				      th {
350
+				        background: transparent;
351
+				        color: #fff;
352
+				        text-align: center;
353
+				      }
354
+				    }
355
+				
356
+				    .ant-table-body {
357
+				      border-bottom: 1px solid #e5e9ed;
358
+				    }
359
+				
360
+				    .ant-table-tbody {
361
+				      tr {
362
+				        text-align: center;
363
+				        color: #333;
364
+				
365
+				        td {
366
+				          border: none;
367
+				
368
+				          &.tab_hover:hover{
369
+				            text-decoration: underline;
370
+				            cursor: pointer;
371
+				          }
372
+				
373
+				          .coop {
374
+				            button{
375
+				              color: #333;
376
+				            }
377
+				            span,button {
378
+				              display: inline-block;
379
+				              padding: 0 8px;
380
+				              cursor: pointer;
381
+				              position: relative;
382
+				
383
+				              &::after {
384
+				                content: "|";
385
+				                position: absolute;
386
+				                top: 0;
387
+				                right: 0;
388
+				              }
389
+				
390
+				              &:hover,
391
+				              &:active {
392
+				                color: @primary-color;
393
+				              }
394
+				
395
+				              &:nth-last-child(1) {
396
+				                &::after {
397
+				                  content: "";
398
+				                }
399
+				              }
400
+				            }
401
+				          }
402
+				        }
403
+				      }
404
+				    }
405
+				  }
406
+				  .list-template__pagination {
407
+				    height: 56px;
408
+				    display: flex;
409
+				    align-items: center;
410
+				    position: absolute;
411
+				    right: 8px;
412
+				  }
413
+				}
414
+				
415
+        .addForm {
416
+          .ant-form-item {
417
+            margin-bottom: 14px;
418
+
419
+            .ant-form-item-label {
420
+              line-height: 14px;
421
+              text-align: left;
422
+            }
423
+          }
424
+        }
425
+
426
+        .editForm {
427
+          .ant-form-item {
428
+            margin-bottom: 14px;
429
+
430
+            .ant-form-item-label {
431
+              line-height: 0;
432
+              text-align: left;
433
+            }
434
+          }
435
+        }
436
+      }
437
+
438
+      button {
439
+        &:nth-child(1) {
440
+          margin-right: 20px;
441
+        }
442
+      }
443
+    }
444
+  }
445
+}
446
+
219 447
 // 查看标本详情 start
220 448
 .noData33 {
221 449
   height: 100%;
@@ -1687,7 +1915,6 @@
1687 1915
   height: 100%;
1688 1916
   background: rgba(0, 0, 0, 0.4);
1689 1917
   z-index: 99;
1690
-
1691 1918
   .modalBody {
1692 1919
     width: 480px;
1693 1920
     min-height: 220px;
@@ -1990,7 +2217,6 @@
1990 2217
         font-size: 12px;
1991 2218
       }
1992 2219
     }
1993
-
1994 2220
     button {
1995 2221
       margin-top: 10px;
1996 2222
 
@@ -2184,3 +2410,18 @@
2184 2410
   }
2185 2411
 }
2186 2412
 
2413
+.mask-style{
2414
+	width: 100%;
2415
+	height: 100%;
2416
+	position: fixed;
2417
+	top: 0;
2418
+	left: 0;
2419
+	z-index: 999;
2420
+	display: flex;
2421
+	background: rgba(0,0,0,0.2);
2422
+	align-items: center;
2423
+	justify-content: center;
2424
+}
2425
+.spin-style{
2426
+	z-index:9999;
2427
+}

+ 84 - 8
src/app/views/hushijiandan/hushijiandan.component.ts

@@ -267,7 +267,7 @@ export class HushijiandanComponent implements OnInit {
267 267
   specimenWorkOrderMsg: any = {}; //急标普标数量&信息
268 268
   jpDrugsWKOMsg: any = {}; //药品静配提示信息
269 269
   surgeryWKOMsg: any = {}; //手术提示信息
270
-
270
+	detailId:any = null; //病理申请单详情id
271 271
 
272 272
   getCoopBtns(){
273 273
     let menu: any = JSON.parse(localStorage.getItem("menu")) || []; //菜单
@@ -314,20 +314,47 @@ export class HushijiandanComponent implements OnInit {
314 314
 				surgeryId: item.id || "",
315 315
 				patientId: item.patientDTO.id || "",
316 316
 				hosId: this.currentHospital.id || "" ,
317
+				operationType: 'pathologyForm',
318
+				order:'createTime desc',
317 319
 			},
318 320
 		};
321
+		this.isSpinning = true
319 322
 		this.mainService
320 323
 			.getFetchDataList("data", "pathologyForm", data)
321 324
 			.subscribe((data) => {
322
-				if(data.list[0].status.value==1){
323
-					this.pathologyModal = true
324
-				}else{
325
-					this.pathologyDetailModal = true
325
+				this.isSpinning = false
326
+				if(data.list.length==1){
327
+					this.detailId = data.list[0].id
328
+					if(!data.list[0].status){
329
+						this.pathologyModal = true
330
+						return
331
+					}
332
+					if(data.list[0].status && 
333
+					(data.list[0].status.value==1 || data.list[0].status.value==2 || 
334
+					data.list[0].status.value==3 || data.list[0].status.value==4)){
335
+						this.pathologyModal = true
336
+					}else{
337
+						this.pathologyDetailModal = true
338
+					}
339
+				}else if(data.list.length>1){
340
+					this.viewData = data.list
341
+					if(this.viewData.pathologyInspectDTOS){
342
+						for(let i of this.viewData.pathologyInspectDTOS){
343
+							i.arr = []
344
+							i.arr.push(i.inspectProject.name)
345
+						}
346
+					}
347
+					this.multiDialog = true
348
+				}else if(data.list.length==0){
349
+					this.message.error('无申请单')
326 350
 				}
327 351
 			});
328 352
 	}
329 353
 
330 354
 	// 病理申请单
355
+	multiDialog:any = false;
356
+	isSpinning:any = false;
357
+	viewData:any = [];
331 358
 	pathologyAdd(e){
332 359
 		this.surgeryDataId = this.surgeryWKOMsg.id
333 360
 		this.patientDataId = this.surgeryWKOMsg.patientDTO.id
@@ -338,19 +365,68 @@ export class HushijiandanComponent implements OnInit {
338 365
 				surgeryId: this.surgeryWKOMsg.id || "",
339 366
 				patientId: this.surgeryWKOMsg.patientDTO.id || "",
340 367
 				hosId: this.currentHospital.id || "" ,
368
+				operationType: 'pathologyForm',
369
+				order:'createTime desc'
341 370
 			},
342 371
 		};
372
+		this.isSpinning = true
343 373
 		this.mainService
344 374
 		.getFetchDataList("data", "pathologyForm", data)
345 375
 		.subscribe((data) => {
346
-			if(data.list[0].status.value==1){
376
+			this.isSpinning = false
377
+			if(data.list.length==1){
378
+				this.detailId = data.list[0].id
379
+				if(!data.list[0].status){
380
+					this.pathologyModal = true
381
+					return
382
+				}
383
+				if(data.list[0].status && 
384
+				(data.list[0].status.value==1 || data.list[0].status.value==2 || 
385
+					data.list[0].status.value==3 || data.list[0].status.value==4)){
386
+					this.pathologyModal = true
387
+				}else{
388
+					this.pathologyDetailModal = true
389
+				}
390
+			}else if(data.list.length>1){
391
+				this.viewData = data.list
392
+				for(let i of this.viewData){
393
+					if(i.pathologyInspectDTOS){
394
+						i.arr = []
395
+						for(let x of i.pathologyInspectDTOS){
396
+							i.arr.push(x.inspectProject.name)
397
+						}
398
+					}
399
+				}
400
+				console.log(777,this.viewData)
401
+				this.multiDialog = true
402
+			}else if(data.list.length==0){
403
+				this.message.error('无申请单')
404
+			}
405
+		});
406
+	}
407
+	
408
+	// 申请单号点击
409
+	itemClick(item){
410
+		this.detailId = item.id
411
+		this.multiDialog = false
412
+		setTimeout(_=>{
413
+			if(!item.status){
414
+				this.pathologyModal = true
415
+				return
416
+			}
417
+			if(item.status && (item.status.value==1 || item.status.value==2 || 
418
+				item.status.value==3 || item.status.value==4)){
347 419
 				this.pathologyModal = true
348 420
 			}else{
349 421
 				this.pathologyDetailModal = true
350 422
 			}
351
-		});
423
+		},200)
352 424
 	}
353
-
425
+	
426
+	hideModal(){
427
+		this.multiDialog = false
428
+	}
429
+	
354 430
 	pathologyDetailCancel(){
355 431
 		this.pathologyDetailModal = false
356 432
 	}

+ 19 - 1
src/app/views/incident-management/incident-management.component.html

@@ -5,6 +5,24 @@
5 5
     </div>
6 6
     <div class="list-template__top" nz-row>
7 7
       <div nz-col nzXl='18' class="list-template__searchBox">
8
+				<div class="list-template__searchItem" *ngIf="coopBtns.strideLook && queryTask!='todo' && queryTask!='doing' && queryTask!='storage'">
9
+				  <span class="label">维修科室</span>:
10
+				  <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch
11
+				     nzAllowClear nzPlaceHolder="请选择维修科室" [(ngModel)]="searchDTO.maintainDepartment">
12
+				    <ng-container *ngFor="let option of maintainDept">
13
+				      <nz-option [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
14
+				    </ng-container>
15
+				  </nz-select>
16
+				</div>
17
+				<div class="list-template__searchItem" *ngIf="queryTask!='todo' && queryTask!='owns' && queryTask!='storage'">
18
+				  <span class="label">维修组</span>:
19
+				  <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch
20
+				     nzAllowClear nzPlaceHolder="请选择维修组" [(ngModel)]="searchDTO.maintainGroup">
21
+				    <ng-container *ngFor="let option of maintainGroup">
22
+				      <nz-option [nzLabel]="option.groupName" [nzValue]="option.id"></nz-option>
23
+				    </ng-container>
24
+				  </nz-select>
25
+				</div>
8 26
         <div class="list-template__searchItem">
9 27
           <span class="label">登记时间</span>:
10 28
           <nz-range-picker style="width: 373px;" nzShowTime [(ngModel)]="searchDTO.dateRange" (nzOnCalendarChange)="onCalendarChangeDate($event)"></nz-range-picker>
@@ -68,7 +86,7 @@
68 86
           </tr>
69 87
         </thead>
70 88
         <tbody>
71
-          <tr *ngFor="let data of listOfData;let index=index;">
89
+          <tr *ngFor="let data of listOfData;let index=index;" (click)="detail($event,data)">
72 90
             <td>{{index+(pageIndex-1) * pageSize + 1}}</td>
73 91
             <td class="text_align_left">
74 92
               <span [ngClass]="priorityColor(data.priorityId)">{{ data.priorityDTO?.name }}</span>

+ 46 - 4
src/app/views/incident-management/incident-management.component.ts

@@ -63,19 +63,31 @@ export class IncidentManagementComponent implements OnInit {
63 63
 
64 64
   searchTimerSubject = new Subject();
65 65
   debounceSubject = new Subject(); //防抖
66
-
66
+	maintainDept:any = []; //维修科室
67
+	maintainGroup:any = []; //维修组
68
+	hosIds:any; //当前院区
67 69
   // 初始化增删改按钮
68 70
   coopBtns: any = {};
69
-
70 71
   // 选择tab
71 72
   queryTask:string = 'todo';//默认待我接单
72 73
   changeTab(key){
73 74
     this.queryTask = key;
75
+		let itemDept = this.maintainDept.find(i=>i.id == this.hosIds)
76
+		if(itemDept){
77
+			this.searchDTO.maintainDepartment = itemDept.id
78
+		}
74 79
     this.loading1 = true;
75 80
     this.debounceSubject.next(true);
76 81
   }
77 82
 
78 83
   ngOnInit() {
84
+		this.maintainDept = this.tool.getUserInfoPermission().dutyList
85
+		this.maintainGroup = this.tool.getUserInfoPermission().dutyGroupList
86
+		this.hosIds = this.tool.getCurrentHospital().id
87
+		let itemDept = this.maintainDept.find(i=>i.id == this.hosIds)
88
+		if(itemDept){
89
+			this.searchDTO.maintainDepartment = itemDept.id
90
+		}
79 91
     this.initSearchForm();
80 92
     this.searchTimerSubject.pipe(debounceTime(500)).subscribe((v) => {
81 93
       let fun = v[0];
@@ -292,6 +304,7 @@ export class IncidentManagementComponent implements OnInit {
292 304
         acceptUser: this.validateSearchForm.value.acceptUser ? { id: this.validateSearchForm.value.acceptUser } : undefined,
293 305
         selectType: this.validateSearchForm.value.selectType || undefined,
294 306
         deleteFlag: this.validateSearchForm.value.deleteFlag,
307
+				candidateGroupId: null,
295 308
       },
296 309
     };
297 310
 
@@ -308,7 +321,21 @@ export class IncidentManagementComponent implements OnInit {
308 321
         delete postData.incident.duty;
309 322
         delete postData.incident.hosId;
310 323
     }
311
-
324
+		
325
+		if(this.queryTask!='todo' && this.queryTask!='doing' && this.queryTask!='storage'){
326
+			if(this.searchDTO.maintainDepartment){
327
+				let itemDept = this.maintainDept.find(i=>i.id == this.searchDTO.maintainDepartment)
328
+				postData.incident.duty = itemDept;
329
+				delete postData.incident.hosId;
330
+			}
331
+		}
332
+		
333
+		if(this.queryTask!='todo' && this.queryTask!='owns' && this.queryTask!='storage'){
334
+			postData.incident.candidateGroupId = this.searchDTO.maintainGroup
335
+		}else{
336
+			delete postData.incident.candidateGroupId;
337
+		}
338
+		
312 339
     postData.incident.queryTask = this.queryTask;
313 340
 
314 341
     if(this.queryTask === 'todo' || this.queryTask === 'owns'){
@@ -595,6 +622,7 @@ export class IncidentManagementComponent implements OnInit {
595 622
         acceptUser: this.validateSearchForm.value.acceptUser ? { id: this.validateSearchForm.value.acceptUser } : undefined,
596 623
         selectType: this.validateSearchForm.value.selectType || undefined,
597 624
         deleteFlag: this.validateSearchForm.value.deleteFlag,
625
+				candidateGroupId: null
598 626
       },
599 627
     };
600 628
 
@@ -611,7 +639,21 @@ export class IncidentManagementComponent implements OnInit {
611 639
         delete postData.incident.duty;
612 640
         delete postData.incident.hosId;
613 641
     }
614
-
642
+		
643
+		if(this.queryTask!='todo' && this.queryTask!='doing' && this.queryTask!='storage'){
644
+			if(this.searchDTO.maintainDepartment){
645
+				let itemDept = this.maintainDept.find(i=>i.id == this.searchDTO.maintainDepartment)
646
+				postData.incident.duty = itemDept;
647
+				delete postData.incident.hosId;
648
+			}
649
+		}
650
+		
651
+		if(this.queryTask!='todo' && this.queryTask!='owns' && this.queryTask!='storage'){
652
+			postData.incident.candidateGroupId = this.searchDTO.maintainGroup
653
+		}else{
654
+			delete postData.incident.candidateGroupId;
655
+		}
656
+		
615 657
     postData.incident.queryTask = this.queryTask;
616 658
 
617 659
     if(this.queryTask === 'todo' || this.queryTask === 'owns'){

+ 1 - 1
src/app/views/office-management/office-management.component.ts

@@ -315,7 +315,7 @@ export class OfficeManagementComponent implements OnInit {
315 315
       hid = this.hospital - 0;
316 316
     }
317 317
     let data = {
318
-      hosId: this.add ? this.tool.getCurrentHospital().id : hid,
318
+      cascadeHosId: this.add ? this.tool.getCurrentHospital().id : hid,
319 319
     };
320 320
     this.maskFlag = this.message.loading("正在加载中..", {
321 321
       nzDuration: 0,

+ 1 - 1
src/app/views/repository-manage-add/repository-manage-add.component.html

@@ -64,7 +64,7 @@
64 64
 				
65 65
 				<nz-form-item class="form-item" *ngIf="classItem==1">
66 66
 				  <nz-form-label nzRequired nzFor="malfunction" [nzSm]="6" [nzXs]="24">关联故障现象</nz-form-label>
67
-				  <nz-form-control nzErrorTip="请选择关联故障现象!" [nzSm]="16" [nzXs]="24">
67
+				  <nz-form-control nzErrorTip="请选择关联故障现象!" [nzSm]="16" [nzXs]="16">
68 68
 					<!-- 	<nz-cascader [nzOptions]="malfunctionData" 
69 69
 							formControlName="malfunction" 
70 70
 							nzPlaceHolder="请选择关联故障现象">

+ 3 - 2
src/app/views/repository-manage-add/repository-manage-add.component.less

@@ -59,6 +59,7 @@ h3{
59 59
 	position: relative;
60 60
 	overflow-x: hidden;
61 61
 	.modalBody{
62
+		width: 100%;
62 63
 		height: 100%;
63 64
 		position: relative;
64 65
 	}
@@ -76,8 +77,8 @@ h3{
76 77
 	.addForm {
77 78
 		display: flex;
78 79
 		.left-form-box{
79
-			flex: 1.5;
80
-			margin-right: 30px;
80
+			flex: 1;
81
+			// margin-right: 30px;
81 82
 		}
82 83
 		.right-form-box{
83 84
 			flex: 1;

+ 10 - 0
src/app/views/repository-manage/repository-manage.component.html

@@ -2,6 +2,16 @@
2 2
   <div class="list-template__content">
3 3
     <div class="list-template__top" nz-row>
4 4
       <div nz-col nzLg='18' class="list-template__searchBox">
5
+				<div class="list-template__searchItem" *ngIf="coopBtns.strideLook">
6
+				  <span class="label">维修科室</span>:
7
+				  <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch
8
+				     nzAllowClear nzPlaceHolder="请选择维修科室" [(ngModel)]="maintainDepartment">
9
+				    <ng-container *ngFor="let option of maintainDept">
10
+				      <nz-option [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
11
+				    </ng-container>
12
+				  </nz-select>
13
+				</div>
14
+				
5 15
         <div class="list-template__searchItem">
6 16
           <span class="label">标题:</span>
7 17
           <input nz-input class="formItem" [(ngModel)]="title" placeholder="请输入标题" nzSize="default" />

+ 12 - 2
src/app/views/repository-manage/repository-manage.component.ts

@@ -40,6 +40,11 @@ export class RepositoryManageComponent implements OnInit {
40 40
 		private sanitizer: DomSanitizer
41 41
   ) {}
42 42
   ngOnInit() {
43
+		this.maintainDept = this.tool.getUserInfoPermission().dutyList
44
+		let itemDept = this.maintainDept.find(i=>i.id == this.hosId)
45
+		if(itemDept){
46
+			this.maintainDepartment = itemDept.id
47
+		}
43 48
     this.searchParentDeptSubject.pipe(debounceTime(500)).subscribe((e) => {
44 49
 
45 50
     });
@@ -47,6 +52,9 @@ export class RepositoryManageComponent implements OnInit {
47 52
     this.coopBtns = this.tool.initCoopBtns(this.route);
48 53
 		this.getList();
49 54
   }
55
+	maintainDept:any = []; //维修科室
56
+	maintainDepartment:any;
57
+	hosIds:any; //当前院区
50 58
 	richText:any;
51 59
   listOfData: any[] = []; //表格数据
52 60
   promptContent: string; //操作提示框提示信息
@@ -167,10 +175,12 @@ export class RepositoryManageComponent implements OnInit {
167 175
       solution: {
168 176
     		title:this.title,
169 177
 				solutionNumber:this.solutionNumber,
170
-    		hosId: this.hosId
178
+    		hosId: this.hosId,
171 179
       },
172 180
     };
173
-
181
+		if(this.maintainDepartment){
182
+			data.solution.hosId = this.maintainDepartment;
183
+		}
174 184
     this.loading1 = true;
175 185
     that.mainService
176 186
       .getFetchDataList("data", "solution", data)

+ 89 - 43
src/app/views/specimen-room-view/specimen-room-view.component.html

@@ -456,26 +456,29 @@
456 456
 
457 457
 <!-- 标本接收 -->
458 458
 <div class="pathology-box display_flex align-items_center justify-content_flex-center" *ngIf="fixationModal">
459
-	<div class="pathology-content">
459
+	<div class="pathology-content width-80">
460 460
 		<div class="title">标本接收固定
461 461
 		<i class="icon_transport transport-guanbi" (click)="hideSpecimenModal()"></i></div>
462 462
 		<div class="content">
463 463
 			<div class="content-item boder-right">
464
-				<div class="form-title-box">
465
-					<div class="form-title"><span class="font-weight-500">是否术中快速:</span>{{codeData.intraoperativeRapidity==1?'是':'否'}}</div>
466
-				</div>
467
-				<div class="form-title-box">
468
-					<div class="form-title"><span class="font-weight-500">申请单编号:</span>{{codeData.applyCode}}</div>
469
-					<div class="form-title"><span class="font-weight-500">状态:</span>{{codeData.status.name}}</div>
470
-				</div>
471
-				<div class="form-title-box">
472
-					<div class="form-title"><span class="font-weight-500">科室名称:</span>{{codeData.patientDTO.department.dept}}</div>
473
-					<div class="form-title"><span class="font-weight-500">住院号:</span>{{codeData.patientDTO.patientCode}}</div>
474
-				</div>
475
-				<div class="form-title-box">
476
-					<div class="form-title"><span class="font-weight-500">患者信息:</span>{{codeData.patientDTO.patientName}} ({{codeData.patientDTO.bedNum}}床)</div>
477
-					<div class="form-title"><span class="font-weight-500">年龄:</span>{{codeData.patientDTO.age||'-'}}岁</div>
478
-				</div>
464
+				<nz-form-item class="form-title-box">
465
+					<div class="form-title">申请单类型:{{codeData.pathologyFormType==1?'术中快速病理检查申请单':'病理检查申请单'}}</div>
466
+					<div class="form-title"><span class="font-weight-500">状态:</span>{{codeData.status?codeData.status.name:'-'}}</div>
467
+				</nz-form-item>
468
+				<nz-form-item class="form-title-box">
469
+					<div class="form-title"><span class="font-weight-500">申请单号:</span>{{codeData.applyCode}}</div>
470
+					<div class="form-title over-class"><span class="font-weight-500">申请科室:</span>{{codeData.patientDTO.department.dept}}</div>
471
+				</nz-form-item>
472
+				<nz-form-item class="form-title-box">
473
+					<div class="form-title">手术间:{{codeData.surgeryDeptDTO.dept}}</div>
474
+					<div class="form-title">取材医生:{{codeData.surgeryDoctorDTO?codeData.surgeryDoctorDTO.name : '-'}}</div>
475
+				</nz-form-item>
476
+				<nz-form-item class="form-title-box">
477
+					<div class="form-title mar-ri-20"><span class="font-weight-500">患者信息:</span>{{codeData.patientDTO.patientName}} ({{codeData.patientDTO.bedNum}}床)</div>
478
+					<div class="form-title mar-ri-20"><span class="font-weight-500">年龄:</span>{{codeData.patientDTO.age||'-'}}</div>
479
+					<div class="form-title mar-ri-20"><span class="font-weight-500">性别:</span>{{codeData.patientDTO.gender?codeData.patientDTO.gender.name:'-'}}</div>
480
+					<div class="form-title mar-ri-20"><span class="font-weight-500">住院号:</span>{{codeData.patientDTO.patientCode}}</div>
481
+				</nz-form-item>
479 482
 				<div class="form-title-box">
480 483
 					<div class="form-title"><span class="font-weight-500">检验项目:</span>{{project||'无'}}</div>
481 484
 				</div>
@@ -494,24 +497,17 @@
494 497
 					<div class="form-title font-weight-500">手术方案:</div>
495 498
 					<div class="indent">{{codeData.surgicalPlan||'无'}}</div>
496 499
 				</div>
497
-	<!-- 			<div class="form-list">
500
+				<div class="form-list">
498 501
 					<div class="form-title font-weight-500">术中所见:</div>
499 502
 					<div class="indent">{{codeData.intraoperativeFindings||'无'}}</div>
500
-				</div> -->
503
+				</div>
501 504
 				<div class="form-title-box">
502 505
 					<div class="form-title"><span class="font-weight-500">标本类型:</span>{{codeData.specimenType?codeData.specimenType.name:'无'}}</div>
503 506
 					<div class="form-title"><span class="font-weight-500">标本数量:</span>{{codeData.specimenNum?codeData.specimenNum:'无'}}</div>
504 507
 				</div>
505 508
 				<div class="form-title-box">
506 509
 					<div class="form-title"><span class="font-weight-500">部位:</span>{{codeData.takePart||'无'}}</div>
507
-					<div class="form-title"><span class="font-weight-500">取标本位置:</span>{{codeData.surgeryDeptDTO?codeData.surgeryDeptDTO.dept:''}}</div>
508
-					<div class="form-title"><span class="font-weight-500">取材医生:</span>{{codeData.surgeryDoctorDTO?codeData.surgeryDoctorDTO.name : '-'}}</div>
509 510
 				</div>
510
-	<!-- 			<div class="form-list">
511
-					<div class="form-title font-weight-500">标本:</div>
512
-					<div>标本1</div>
513
-					<div>标本2</div>
514
-				</div> -->
515 511
 			</div>
516 512
 			
517 513
 			<div class="content-item">
@@ -549,7 +545,8 @@
549 545
 			</div>
550 546
 		</div>
551 547
 		<div class="display_flex justify-content_flex-center bottom-btn">
552
-			<button class="btn btn-right" [disabled]="codeData.specimenNum != codeData.pathologySpecimenDTOList.length" nz-button nzType="primary" (click)="submitFixationForm()" [nzLoading]="btnLoading">确定</button>
548
+			<!-- <button class="btn btn-right" [disabled]="codeData.specimenNum != codeData.pathologySpecimenDTOList.length" nz-button nzType="primary" (click)="submitFixationForm()" [nzLoading]="btnLoading">确定</button> -->
549
+			<button class="btn btn-right" nz-button nzType="primary" (click)="submitFixationForm()" [nzLoading]="btnLoading">确定</button>
553 550
 			<button class="btn cancel" nz-button nzType="default" (click)="hideSpecimenModal()">取消</button>
554 551
 		</div>
555 552
 	</div>
@@ -616,17 +613,24 @@
616 613
 		<i class="icon_transport transport-guanbi" (click)="closeDetailMoadl()"></i></div>
617 614
 		<div class="content">
618 615
 			<div class="content-item boder-right">
619
-				<div class="form-title-box">
620
-					<div class="form-title"><span class="font-weight-500">是否术中快速:</span>{{detailsData.intraoperativeRapidity==1?'是':'否'}}</div>
621
-					<div class="form-title"><span class="font-weight-500">申请单编号:</span>{{detailsData.applyCode}}</div>
622
-					<div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status.name}}</div>
623
-					<div class="form-title"><span class="font-weight-500">科室名称:</span>{{detailsData.patientDTO.department.dept}}</div>
624
-				</div>
625
-				<div class="form-title-box">
626
-					<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
616
+				<nz-form-item class="form-title-box">
617
+					<div class="form-title">申请单类型:{{detailsData.pathologyFormType==1?'术中快速病理检查申请单':'病理检查申请单'}}</div>
618
+					<div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status?detailsData.status.name:'-'}}</div>
619
+				</nz-form-item>
620
+				<nz-form-item class="form-title-box">
621
+					<div class="form-title"><span class="font-weight-500">申请单号:</span>{{detailsData.applyCode}}</div>
622
+					<div class="form-title over-class"><span class="font-weight-500">申请科室:</span>{{detailsData.patientDTO.department.dept}}</div>
623
+				</nz-form-item>
624
+				<nz-form-item class="form-title-box">
625
+					<div class="form-title">手术间:{{detailsData.surgeryDeptDTO.dept}}</div>
626
+					<div class="form-title">取材医生:{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
627
+				</nz-form-item>
628
+				<nz-form-item class="form-title-box">
627 629
 					<div class="form-title"><span class="font-weight-500">患者信息:</span>{{detailsData.patientDTO.patientName}} ({{detailsData.patientDTO.bedNum}}床)</div>
628
-					<div class="form-title"><span class="font-weight-500">年龄:</span>{{detailsData.patientDTO.age||'-'}}岁</div>
629
-				</div>
630
+					<div class="form-title"><span class="font-weight-500">年龄:</span>{{detailsData.patientDTO.age||'-'}}</div>
631
+					<div class="form-title"><span class="font-weight-500">性别:</span>{{detailsData.patientDTO.gender?detailsData.patientDTO.gender.name:'-'}}</div>
632
+					<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
633
+				</nz-form-item>
630 634
 				
631 635
 				<div class="form-title-box">
632 636
 					<div class="form-title"><span class="font-weight-500">检验项目:</span>{{project||'无'}}</div>
@@ -647,28 +651,28 @@
647 651
 					<div class="form-title font-weight-500">手术方案:</div>
648 652
 					<div class="indent">{{detailsData.surgicalPlan||'无'}}</div>
649 653
 				</div>
650
-	<!-- 			<div class="form-list">
654
+				<div class="form-list">
651 655
 					<div class="form-title font-weight-500">术中所见:</div>
652 656
 					<div class="indent">{{detailsData.intraoperativeFindings||'无'}}</div>
653
-				</div> -->
657
+				</div>
654 658
 
655 659
 				<div class="form-title-box">
656 660
 					<div class="form-title"><span class="font-weight-500">标本类型:</span>{{detailsData.specimenType.name||'无'}}</div>
657 661
 					<div class="form-title"><span class="font-weight-500">标本数量:</span>{{detailsData.specimenNum||'无'}}</div>
658
-					<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
659 662
 				</div>
660 663
 				
661 664
 				<div class="form-title-box">
662
-					<div class="form-title"><span class="font-weight-500">送检医生:</span>{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
663
-					<div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
664
-					<div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
665
+					<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
666
+					<!-- <div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
667
+					<!-- <div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
665 668
 				</div>
666 669
 				
667 670
 				<div class="form-list">
668 671
 					<div class="form-title font-weight-500">标本:</div>
669 672
 					<div class="form-title specimen-list">
670
-						<div *ngFor="let item of specimenList" class="specimen-item-class">
673
+						<div *ngFor="let item of specimenList" class="specimen-item-class" (click)="specimenView(item)">
671 674
 							{{item.partSource?item.partSource.name:''}}{{item.organ?item.organ.name:''}}{{item.specimenName}}
675
+							({{item.specimenCode}})
672 676
 						</div>
673 677
 					</div>
674 678
 				</div>
@@ -704,6 +708,48 @@
704 708
 	</div>
705 709
 </div>
706 710
 
711
+<!-- 查看标本 -->
712
+<div class="look">
713
+	<div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="specimenViewDialog">
714
+		<div class="modalBody modalBody-ga">
715
+			<div class="title">查看标本<i class="icon_transport transport-guanbi" (click)="closeSpecimenModal()"></i>
716
+			</div>
717
+			<overlay-scrollbars #osComponentRef1 class="content">
718
+				<div class="list-template__bottom">
719
+					<nz-table class="list-template__nzTable" [nzData]="viewData" nzSize="middle" [nzShowPagination]="false"
720
+						[nzLoading]="loading1">
721
+						<thead>
722
+							<tr class="thead">
723
+								<th>标本名称</th>
724
+								<th>编码</th>
725
+								<th>备注</th>
726
+								<th>离体时间</th>
727
+								<th>离体操作人</th>
728
+								<th>固定时间</th>
729
+								<th>固定操作人</th>
730
+							</tr>
731
+						</thead>
732
+						<tbody>
733
+							<tr *ngFor="let data of viewData">
734
+								<td>{{ data.specimenName }}</td>
735
+								<td>{{ data.specimenCode }}</td>
736
+								<td>{{ data.remark ? data.remark : '无' }}</td>
737
+								<td>{{ data.inVitroTime ? (data.inVitroTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
738
+								<td>{{ data.inVitroOperator ? data.inVitroOperator.name : '-' }}</td>
739
+								<td>{{ data.fixationTime ? (data.fixationTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
740
+								<td>{{ data.fixationOperator ? data.fixationOperator.name : '-' }}</td>
741
+							</tr>
742
+						</tbody>
743
+					</nz-table>
744
+				</div>
745
+			</overlay-scrollbars>
746
+			<div class="display_flex justify-content_flex-center">
747
+				<button class="btn" nz-button nzType="primary" (click)="closeSpecimenModal()">知道了</button>
748
+			</div>
749
+		</div>
750
+	</div>
751
+</div>
752
+
707 753
 <div class="mask-style" *ngIf="isSpinning">
708 754
 	<nz-spin nzSimple class="spin-style"></nz-spin>
709 755
 </div>

+ 232 - 1
src/app/views/specimen-room-view/specimen-room-view.component.less

@@ -657,6 +657,9 @@
657 657
 	height: 100%;
658 658
 	background: rgba(0, 0, 0, 0.4);
659 659
 	z-index: 99;
660
+	.width-80{
661
+		width: 80% !important;
662
+	}
660 663
 	.pathology-content{
661 664
 		width: 80%;
662 665
 		background: #fff;
@@ -708,6 +711,9 @@
708 711
 							color: #333;
709 712
 							margin-right: 40px;
710 713
 						}
714
+						.mar-ri-20{
715
+							margin-right: 20px !important;
716
+						}
711 717
 						.width-150{
712 718
 							width: 150px;
713 719
 						}
@@ -740,6 +746,8 @@
740 746
 							display: flex;
741 747
 							flex-wrap: wrap;
742 748
 							.specimen-item-class{
749
+								text-decoration: underline;
750
+								cursor: pointer;
743 751
 								margin-right: 40px;
744 752
 								color:#333;
745 753
 							}
@@ -831,4 +839,227 @@
831 839
 }
832 840
 .spin-style{
833 841
 	z-index:9999;
834
-}
842
+}
843
+
844
+.look{
845
+	.save {
846
+	  position: fixed;
847
+	  left: 0;
848
+	  top: 0;
849
+	  width: 100%;
850
+	  height: 100%;
851
+	  background: rgba(0, 0, 0, 0.4);
852
+	  z-index: 999;
853
+		.modalBody-ga{
854
+			width: 80% !important;
855
+			.list-template__searchBox{
856
+				margin-top: 10px;
857
+			}
858
+			.ant-select{
859
+				width: 20%;
860
+			}
861
+		}
862
+	  .modalBody {
863
+	    width: 350px;
864
+	    background: #fff;
865
+	    border-radius: 5px;
866
+	    padding: 10px 20px;
867
+	    color: #333;
868
+	
869
+	    .title {
870
+	      width: 100%;
871
+	      text-align: center;
872
+	      font-size: 18px;
873
+	      position: relative;
874
+	
875
+	      i {
876
+	        position: absolute;
877
+	        right: 0;
878
+	        top: 0;
879
+	        font-size: 20px;
880
+	        color: #666;
881
+	        cursor: pointer;
882
+	        padding: 0 5px;
883
+	      }
884
+	    }
885
+	
886
+	    .content {
887
+	      width: 100%;
888
+	      height: 117px;
889
+	      background: #f9fafb;
890
+	      border: 1px solid #e5e9ed;
891
+	      border-radius: 5px;
892
+	      overflow: hidden;
893
+	      margin-top: 12px;
894
+	
895
+	      div {
896
+	        text-align: center;
897
+	        margin: 0;
898
+	
899
+	        &.icon {
900
+	          margin-top: 17px;
901
+	
902
+	          i {
903
+	            color: #34b349;
904
+	            font-size: 30px !important;
905
+	
906
+	            &.transport-wenhao {
907
+	              color: #f5a523;
908
+	            }
909
+	
910
+	            &.transport-shibai {
911
+	              color: #ff3a52;
912
+	            }
913
+	          }
914
+	        }
915
+	
916
+	        &.defeat {
917
+	          color: #333;
918
+	          font-size: 18px;
919
+	        }
920
+	
921
+	        &:nth-child(3) {
922
+	          font-size: 14px;
923
+	          color: #666;
924
+	        }
925
+	      }
926
+	    }
927
+	
928
+	    button {
929
+	      margin-top: 10px;
930
+	
931
+	      &.btn {
932
+	        margin-left: 8px;
933
+	      }
934
+	    }
935
+	  }
936
+	
937
+	  // 新增
938
+	  &.add {
939
+	    .modalBody {
940
+	      width: 420px;
941
+	      height: auto;
942
+	
943
+	      .content {
944
+	        width: 100%;
945
+	        height: auto;
946
+	        padding: 19px 14px 0 14px;
947
+	        max-height: 500px;
948
+	        overflow-y: auto;
949
+					
950
+					.ant-select{
951
+						width: 100%;
952
+					}
953
+					.ant-calendar-picker{
954
+						width: 100% !important;
955
+					}
956
+					.list-template__bottom {
957
+					  background: #f9fafb;
958
+					  border: 1px solid #e5e9ed;
959
+					  border-radius: 8px;
960
+					  padding-bottom: 56px;
961
+					  position: relative;
962
+					  .list-template__nzTable {
963
+					    padding: 16px 16px 0;
964
+					
965
+					    .thead {
966
+					      background-image: linear-gradient(to right, @bg-start, @bg-end);
967
+					
968
+					      th {
969
+					        background: transparent;
970
+					        color: #fff;
971
+					        text-align: center;
972
+					      }
973
+					    }
974
+					
975
+					    .ant-table-body {
976
+					      border-bottom: 1px solid #e5e9ed;
977
+					    }
978
+					
979
+					    .ant-table-tbody {
980
+					      tr {
981
+					        text-align: center;
982
+					        color: #333;
983
+					
984
+					        td {
985
+					          border: none;
986
+					
987
+					          &.tab_hover:hover{
988
+					            text-decoration: underline;
989
+					            cursor: pointer;
990
+					          }
991
+					
992
+					          .coop {
993
+					            button{
994
+					              color: #333;
995
+					            }
996
+					            span,button {
997
+					              display: inline-block;
998
+					              padding: 0 8px;
999
+					              cursor: pointer;
1000
+					              position: relative;
1001
+					
1002
+					              &::after {
1003
+					                content: "|";
1004
+					                position: absolute;
1005
+					                top: 0;
1006
+					                right: 0;
1007
+					              }
1008
+					
1009
+					              &:hover,
1010
+					              &:active {
1011
+					                color: @primary-color;
1012
+					              }
1013
+					
1014
+					              &:nth-last-child(1) {
1015
+					                &::after {
1016
+					                  content: "";
1017
+					                }
1018
+					              }
1019
+					            }
1020
+					          }
1021
+					        }
1022
+					      }
1023
+					    }
1024
+					  }
1025
+					  .list-template__pagination {
1026
+					    height: 56px;
1027
+					    display: flex;
1028
+					    align-items: center;
1029
+					    position: absolute;
1030
+					    right: 8px;
1031
+					  }
1032
+					}
1033
+					
1034
+	        .addForm {
1035
+	          .ant-form-item {
1036
+	            margin-bottom: 14px;
1037
+	
1038
+	            .ant-form-item-label {
1039
+	              line-height: 14px;
1040
+	              text-align: left;
1041
+	            }
1042
+	          }
1043
+	        }
1044
+	
1045
+	        .editForm {
1046
+	          .ant-form-item {
1047
+	            margin-bottom: 14px;
1048
+	
1049
+	            .ant-form-item-label {
1050
+	              line-height: 0;
1051
+	              text-align: left;
1052
+	            }
1053
+	          }
1054
+	        }
1055
+	      }
1056
+	
1057
+	      button {
1058
+	        &:nth-child(1) {
1059
+	          margin-right: 20px;
1060
+	        }
1061
+	      }
1062
+	    }
1063
+	  }
1064
+	}
1065
+}

+ 74 - 89
src/app/views/specimen-room-view/specimen-room-view.component.ts

@@ -180,22 +180,40 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
180 180
 			this.isSpinning = false
181 181
 			if(res.status==200){
182 182
 				this.codeData = res.data[0]
183
-				if(this.codeData.pathologyInspectDTOS){
184
-					this.project = this.codeData.pathologyInspectDTOS.map(i=>{
185
-						return i.inspectProject.name
186
-					})
187
-					this.project = this.project.join('、')
183
+				let item = this.codeData.pathologySpecimenDTOList.find(i=>i.specimenCode == e)
184
+				console.log(7,item)
185
+				if(!item.fixationTime && this.codeData.pathologyFormType==0){
186
+					if(this.codeData.status.value==2 || this.codeData.status.value==3 ||
187
+						this.codeData.status.value==4){
188
+							if(this.codeData.pathologyInspectDTOS){
189
+								this.project = this.codeData.pathologyInspectDTOS.map(i=>{
190
+									return i.inspectProject.name
191
+								})
192
+								this.project = this.project.join('、')
193
+							}
194
+							this.fixationModal = true
195
+							setTimeout(_=>{
196
+								document.getElementById('specimen').focus();
197
+							},200)
198
+						}else{
199
+							this.viewDetail(this.codeData,'4')
200
+						}
201
+					this.fixationError = null
202
+					this.searchMsg = null
203
+				}else if(item.fixationTime && this.codeData.pathologyFormType==0){
204
+					this.viewDetail(this.codeData,'4')
205
+					this.barCode = null
206
+					this.fixationError = null
207
+					this.searchMsg = null
208
+				}else{
209
+					this.barCode = null
210
+					this.fixationError = null
211
+					this.searchMsg = '该申请单类型不是病理检查申请单'
188 212
 				}
189
-				this.fixationError = null
190
-				this.fixationModal = true
191
-				setTimeout(_=>{
192
-					document.getElementById('specimen').focus();
193
-				},200)
194
-				this.searchMsg = null
213
+				
195 214
 			}else{
196 215
 				this.barCode = null
197 216
 				this.searchMsg = res.msg
198
-				// this.message.error(res.msg)
199 217
 			}
200 218
 		})
201 219
 	}
@@ -228,6 +246,7 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
228 246
 	// 关闭接受固定标本
229 247
 	hideSpecimenModal(){
230 248
 		this.autoUpdate()
249
+		this.cancelSpecimenModal()
231 250
 		this.barCode = null;
232 251
 		this.specimenCode = null;
233 252
 		this.fixationError = null
@@ -236,7 +255,20 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
236 255
 			document.getElementById('Binput').focus();
237 256
 		},200)
238 257
 	}
239
-
258
+	
259
+	cancelSpecimenModal(){
260
+		let ids = []
261
+		for(let i of this.codeData.pathologySpecimenDTOList){
262
+			ids.push(i.id)
263
+		}
264
+		let data = {
265
+			pathologySpecimenIds:ids.join(',')
266
+		}
267
+		this.mainService.pathologyOperation(data,'cancel').subscribe((res) =>{
268
+			
269
+		})
270
+	}
271
+	
240 272
 	// 获取标本详情
241 273
 	project:any = [];
242 274
 	getSampleData(item){
@@ -256,7 +288,23 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
256 288
 		  this.detailMoadl = true
257 289
 		});
258 290
 	}
259
-
291
+	
292
+	// 关闭查看标本
293
+	closeSpecimenModal(){
294
+		this.specimenViewDialog = false
295
+	}
296
+	
297
+	// 查看标本
298
+	specimenViewDialog:any = false;
299
+	viewData:any = [];
300
+	specimenItem:any;
301
+	specimenView(item){
302
+		this.viewData = []
303
+		this.specimenViewDialog = true
304
+		this.specimenItem = item;
305
+		this.viewData.push(item)
306
+	}
307
+	
260 308
 	// 获取科室
261 309
 	getDept(){
262 310
 		this.setSpecimen()
@@ -443,13 +491,16 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
443 491
 		  this.validateVerificationForm.controls[i].updateValueAndValidity();
444 492
 		}
445 493
 		if (this.validateVerificationForm.invalid) return;
446
-
494
+		let str = this.codeData.pathologySpecimenDTOList.map(i=>{
495
+			return i.specimenCode
496
+		})
447 497
 		let data: any = {
448 498
 			id:this.codeData.id,
449 499
 			specimenDeptId:this.validateForm.value.specimen,
450 500
 			specimenFixingLiquid:{
451 501
 				id:this.validateVerificationForm.value.fixative
452 502
 			},
503
+			specimenCodes:str.join(','),
453 504
 			fixationTime:this.startDate,
454 505
 			hosId: this.hosId || "" ,
455 506
 			handoverUserId:this.handoverUserId
@@ -521,8 +572,14 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
521 572
 			this.tableLoading = false
522 573
 			this.specimenCode = null
523 574
 			if(res.status==200){
524
-				this.codeData = res.data[0]
525
-				this.fixationError = null
575
+				let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
576
+				console.log(8,item)
577
+				if(item.fixationTime){
578
+					this.fixationError = '该标本已经固定过'
579
+				}else{
580
+					this.codeData = res.data[0]
581
+					this.fixationError = null
582
+				}
526 583
 			}else{
527 584
 				this.fixationError = res.msg
528 585
 			}
@@ -538,13 +595,6 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
538 595
 		this.isSpinning = true
539 596
 		this.getSampleData(item)
540 597
 		clearInterval(this.logTimer);
541
-		if(type==1){
542
-
543
-		}else if(type==2){
544
-
545
-		}else{
546
-
547
-		}
548 598
 	}
549 599
 
550 600
 	closeDetailMoadl(){
@@ -555,71 +605,6 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
555 605
 		this.autoUpdate(false);
556 606
 	}
557 607
 
558
-  // 统计
559
-  // total() {
560
-  //   let launch = JSON.parse(localStorage.getItem("user")).user.dept.id;
561
-  //   let startTime = format(startOfDay(new Date()), "yyyy-MM-dd HH:mm:ss");
562
-  //   let endTime = format(endOfDay(new Date()), "yyyy-MM-dd HH:mm:ss");
563
-  //   let postData = {
564
-  //     startTime,
565
-  //     endTime,
566
-  //     launch,
567
-  //   };
568
-
569
-  //   this.mainService.getDrugsBagStateCount(postData).subscribe((res: any) => {
570
-  //     if (res.status == 200) {
571
-  //       this.todayTotal = res.countMap.todayTotal;
572
-  //       this.todayComplete = res.countMap.todayComplete;
573
-  //     }
574
-  //   });
575
-  // }
576
-  // // 查看工单详情
577
-  // goToOrderDetail(item){
578
-  //   console.log(item);
579
-  //   this.router.navigateByUrl(`specimenView2/detailSample/${item.id}`);
580
-  // }
581
-
582
-  // // 查看流程信息弹窗
583
-  // logPromptModalShow = false; //弹窗开关
584
-  // scode = ""; //查看记录携带
585
-  // showLogs(data) {
586
-  //   clearInterval(this.logTimer);
587
-  //   this.scode = data.scode;
588
-  //   this.logPromptModalShow = true;
589
-  // }
590
-  // // 关闭流程信息弹窗
591
-  // closeModelLog(e) {
592
-  //   this.logPromptModalShow = JSON.parse(e).show;
593
-  //   this.autoUpdate(false);
594
-  // }
595
-  // // 查看标本列表弹窗
596
-  // spePromptModalShow = false; //弹窗开关
597
-  // checkDeptId = ""; //检查科室id
598
-  // printDate = ""; //采集日期
599
-  // showSpeList(data) {
600
-  //   clearInterval(this.logTimer);
601
-  //   this.checkDeptId = data.check_dept_id;
602
-  //   this.printDate = data.startTime;
603
-  //   this.spePromptModalShow = true;
604
-  // }
605
-  // 关闭标本列表弹窗
606
-  // closeModelSpe(e) {
607
-  //   this.spePromptModalShow = JSON.parse(e).show;
608
-  //   this.autoUpdate(false);
609
-  // }
610
-  //  // 查看工单列表弹窗
611
-  //  orderPromptModalShow = false; //弹窗开关
612
-  //  workId = ""; //配送人员ID
613
-  //  showOrderList(data) {
614
-  //    clearInterval(this.logTimer);
615
-  //    this.workId = data.workerid;
616
-  //    this.orderPromptModalShow = true;
617
-  //  }
618
-  //  // 关闭工单列表弹窗
619
-  //  closeModelOrder(e) {
620
-  //    this.orderPromptModalShow = JSON.parse(e).show;
621
-  //    this.autoUpdate(false);
622
-  //  }
623 608
   // 自动刷新倒计时
624 609
   autoUpdate(flag = true) {
625 610
     if (flag) {

+ 10 - 6
src/app/views/users-management/users-management.component.ts

@@ -249,7 +249,8 @@ export class UsersManagementComponent implements OnInit {
249 249
     let hid = this.hosId - 0;
250 250
     let data = {
251 251
       department: {
252
-        hospital: { id: hid },
252
+        // hospital: { id: hid },
253
+				cascadeHosId: hid
253 254
       },
254 255
       idx: 0,
255 256
       sum: 20,
@@ -295,7 +296,8 @@ export class UsersManagementComponent implements OnInit {
295 296
     this.userGroup1 = null;
296 297
     let departmentData = {
297 298
       department: {
298
-        hospital: { id },
299
+        // hospital: { id },
300
+				cascadeHosId: id
299 301
       },
300 302
       idx: 0,
301 303
       sum: 20,
@@ -462,7 +464,8 @@ export class UsersManagementComponent implements OnInit {
462 464
     var hid = data.hospital.id;
463 465
     let departmentData = {
464 466
       department: {
465
-        hospital: { id: hid },
467
+        // hospital: { id: hid },
468
+				cascadeHosId: hid
466 469
       },
467 470
       idx: 0,
468 471
       sum: 20,
@@ -696,9 +699,10 @@ export class UsersManagementComponent implements OnInit {
696 699
     let data = {
697 700
       department: {
698 701
         dept,
699
-        hospital: {
700
-          id: hosId,
701
-        },
702
+        // hospital: {
703
+        //   id: hosId,
704
+        // },
705
+				cascadeHosId: hosId
702 706
       },
703 707
       idx: 0,
704 708
       sum: 20,