瀏覽代碼

Merge branch 'master' into develop

seimin 6 月之前
父節點
當前提交
e7664115a9

+ 4 - 2
src/app/components/configurationCenter/configuration-deptUser/configuration-deptUser.component.ts

@@ -194,9 +194,11 @@ export class ConfigurationDeptUserComponent implements OnInit {
194
 			deptArr.push(i.id)
194
 			deptArr.push(i.id)
195
 		}
195
 		}
196
     this.validatePriorityForm.controls.department.setValue(deptArr);
196
     this.validatePriorityForm.controls.department.setValue(deptArr);
197
-    this.validatePriorityForm.controls.handleGroup.setValue(data.handleGroupDTO.id);
197
+		if(data.handleGroupDTO){
198
+			this.validatePriorityForm.controls.handleGroup.setValue(data.handleGroupDTO.id);
199
+			this.getUser(data.handleGroupDTO.id)
200
+		}
198
 		this.validatePriorityForm.controls.binding.setValue(data.handleUserDTO?'1':'0')
201
 		this.validatePriorityForm.controls.binding.setValue(data.handleUserDTO?'1':'0')
199
-		this.getUser(data.handleGroupDTO.id)
200
 		if(data.handleUserDTO){
202
 		if(data.handleUserDTO){
201
 			this.validatePriorityForm.controls.handleUser.setValue(data.handleUserDTO.id);
203
 			this.validatePriorityForm.controls.handleUser.setValue(data.handleUserDTO.id);
202
 		}
204
 		}

+ 32 - 18
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.html

@@ -2,30 +2,44 @@
2
   <div class="contentInner">
2
   <div class="contentInner">
3
 		<div class="hos-title">{{currentHospital.hosName}}</div>
3
 		<div class="hos-title">{{currentHospital.hosName}}</div>
4
     <div class="addressAssign">
4
     <div class="addressAssign">
5
-      <overlay-scrollbars #osComponentRef2 class="contentBody2">
5
+      <div class="contentBody2">
6
         <div class="contentBody">
6
         <div class="contentBody">
7
           <div class="classList" *ngFor="let item of hospitalList">
7
           <div class="classList" *ngFor="let item of hospitalList">
8
-            <span>{{ item.desc }}:</span>
9
-            <nz-radio-group [(ngModel)]="item.value" (ngModelChange)="radioChange(item)" *ngIf="item.type==null">
10
-              <label nz-radio nzValue="1">是</label>
11
-              <label nz-radio nzValue="0">否</label>
12
-            </nz-radio-group>
8
+						<div class="mar-10" *ngIf="item.key!='itsmWorkHourQuoteDept' && item.key!='itsmConsumableQuoteDept' && !item.show">
9
+							<span>{{ item.desc }}:</span>
10
+							<nz-radio-group [(ngModel)]="item.value" (ngModelChange)="radioChange(item)">
11
+							  <label nz-radio nzValue="1">是</label>
12
+							  <label nz-radio nzValue="0">否</label>
13
+							</nz-radio-group>
14
+						</div>
15
+            
16
+						<div class="mar-10" *ngIf="item.key=='itsmWorkHourQuoteDept' && itsmQuoteOtherDeptWorkHourType">
17
+							<span class="w100px">{{ item.desc }}:</span>
18
+							<nz-select class="w220px" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzAllowClear
19
+								[nzPlaceHolder]="'请选择'+item.desc" [(ngModel)]="item.value">
20
+							  <ng-container *ngFor="let option of maintainDept">
21
+							    <nz-option [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
22
+							  </ng-container>
23
+							</nz-select>
24
+						</div>
25
+						
26
+						<div class="mar-10" *ngIf="item.key=='itsmConsumableQuoteDept' && itsmQuoteOtherDeptConsumableType">
27
+							<span class="w100px">{{ item.desc }}:</span>
28
+							<nz-select class="w220px" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzAllowClear
29
+								[nzPlaceHolder]="'请选择'+item.desc" [(ngModel)]="item.value">
30
+							  <ng-container *ngFor="let option of maintainDept">
31
+							    <nz-option [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
32
+							  </ng-container>
33
+							</nz-select>
34
+						</div>
13
 						
35
 						
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> -->
23
           </div>
36
           </div>
24
         </div>
37
         </div>
25
-      </overlay-scrollbars>
26
-      <div class="contentBtns">
27
-        <button nz-button nzType="primary" (click)="submitMessageForm()">确定</button>
38
+				<div class="contentBtns">
39
+				  <button nz-button nzType="primary" [nzLoading]="btnLoading" (click)="submitMessageForm()">确定</button>
40
+				</div>
28
       </div>
41
       </div>
42
+      
29
     </div>
43
     </div>
30
   </div>
44
   </div>
31
 </div>
45
 </div>

+ 18 - 10
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.less

@@ -5,6 +5,12 @@
5
   flex-direction: column;
5
   flex-direction: column;
6
   justify-content: space-between;
6
   justify-content: space-between;
7
   background-color: #F0F2F5;
7
   background-color: #F0F2F5;
8
+	.w220px{
9
+		width: 220px;
10
+	}
11
+	.w100px{
12
+			width: 100px !important;
13
+		}
8
   .list-template__nzTable,
14
   .list-template__nzTable,
9
   .list-template__bottom{
15
   .list-template__bottom{
10
     padding: 0!important;
16
     padding: 0!important;
@@ -23,11 +29,11 @@
23
     justify-content: space-between;
29
     justify-content: space-between;
24
     border: 1px solid #EEF3F9;
30
     border: 1px solid #EEF3F9;
25
     &.priority{
31
     &.priority{
26
-      margin: 24px 275px 0;
32
+      margin: 24px 275px;
27
       background-color: #fff;
33
       background-color: #fff;
28
       .contentInner{
34
       .contentInner{
29
-        padding: 90px 158px 72px;
30
-        border: 1px solid #E8EBEF;
35
+        // padding: 90px 158px 72px;
36
+        // border: 1px solid #E8EBEF;
31
 				.hos-title{
37
 				.hos-title{
32
 					font-weight: 600;
38
 					font-weight: 600;
33
 					font-size: 16px;
39
 					font-size: 16px;
@@ -40,15 +46,19 @@
40
           flex: 1;
46
           flex: 1;
41
           display: flex;
47
           display: flex;
42
           flex-direction: column;
48
           flex-direction: column;
43
-          align-items: center;
49
+          // align-items: center;
44
           padding: 0 16px;
50
           padding: 0 16px;
45
-          gap: 32px;
51
+          // gap: 32px;
46
         }
52
         }
47
         .hospital{
53
         .hospital{
48
           width: 100%;
54
           width: 100%;
49
           text-align: left;
55
           text-align: left;
50
         }
56
         }
51
         .classList{
57
         .classList{
58
+					// padding: 5px 0;
59
+					.mar-10{
60
+						margin: 8px 0;
61
+					}
52
           .select{
62
           .select{
53
             width: 313px;
63
             width: 313px;
54
           }
64
           }
@@ -118,7 +128,7 @@
118
       .addressAssign{
128
       .addressAssign{
119
         flex: 3;
129
         flex: 3;
120
         height: 100%;
130
         height: 100%;
121
-        background: #FFFFFF;
131
+        // background: #FFFFFF;
122
         border: 1px solid #E8EBEF;
132
         border: 1px solid #E8EBEF;
123
         display: flex;
133
         display: flex;
124
         flex-direction: column;
134
         flex-direction: column;
@@ -142,10 +152,8 @@
142
       }
152
       }
143
     }
153
     }
144
     .contentBtns{
154
     .contentBtns{
145
-      margin-bottom: 16px;
146
-      display: flex;
147
-      justify-content: center;
148
-      align-items: center;
155
+      margin-top: 20px;
156
+      text-align: center;
149
     }
157
     }
150
   }
158
   }
151
 }
159
 }

+ 66 - 21
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts

@@ -19,34 +19,45 @@ export class ConfigurationHospitalComponent implements OnInit {
19
 
19
 
20
   coopData: any = {}; //当前操作列
20
   coopData: any = {}; //当前操作列
21
   currentHospital; //当前院区
21
   currentHospital; //当前院区
22
-
22
+	maintainDept:any=[];
23
+	
23
   ngOnInit() {
24
   ngOnInit() {
25
+		this.maintainDept = this.tool.getUserInfoPermission().dutyList
24
     this.currentHospital = this.tool.getCurrentHospital();
26
     this.currentHospital = this.tool.getCurrentHospital();
25
     this.getList();
27
     this.getList();
26
   }
28
   }
27
 	
29
 	
30
+	itsmQuoteOtherDeptWorkHourType:any;
31
+	itsmQuoteOtherDeptConsumableType:any;
28
 	radioChange(data){
32
 	radioChange(data){
29
 		console.log(123,data)
33
 		console.log(123,data)
30
-		return
31
-		let index = this.hospitalList.findIndex(i=>i.id == data.id)
34
+		if(data.key=='itsmParentConsumable' && data.value==1){
35
+			let item = this.hospitalList.find(i=>i.key == 'itsmQuoteOtherDeptConsumable')
36
+			item.show = true
37
+			item.value = '0'
38
+			this.itsmQuoteOtherDeptConsumableType = false
39
+			let item2 = this.hospitalList.find(i=>i.key == 'itsmConsumableQuoteDept')
40
+			item2.value = null
41
+			
42
+		}else if(data.key=='itsmParentConsumable' && data.value==0){
43
+			let item = this.hospitalList.find(i=>i.key == 'itsmQuoteOtherDeptConsumable')
44
+			item.show = false
45
+		}
46
+		
32
 		if(data.key=='itsmQuoteOtherDeptWorkHour' && data.value==1){
47
 		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)
48
+			this.itsmQuoteOtherDeptWorkHourType = true
49
+		}else if(data.key=='itsmQuoteOtherDeptWorkHour' && data.value==0){
50
+			this.itsmQuoteOtherDeptWorkHourType = false
51
+			let item = this.hospitalList.find(i=>i.key == 'itsmWorkHourQuoteDept')
52
+			item.value = null
53
+		}
54
+		
55
+		if(data.key=='itsmQuoteOtherDeptConsumable' && data.value==1){
56
+			this.itsmQuoteOtherDeptConsumableType = true
57
+		}else if(data.key=='itsmQuoteOtherDeptConsumable' && data.value==0){
58
+			this.itsmQuoteOtherDeptConsumableType = false
59
+			let item = this.hospitalList.find(i=>i.key == 'itsmConsumableQuoteDept')
60
+			item.value = null
50
 		}
61
 		}
51
 	}
62
 	}
52
 	
63
 	
@@ -89,7 +100,41 @@ export class ConfigurationHospitalComponent implements OnInit {
89
       .subscribe((data) => {
100
       .subscribe((data) => {
90
         this.loading1 = false;
101
         this.loading1 = false;
91
         if (data.status == 200) {
102
         if (data.status == 200) {
92
-          this.hospitalList = data.list || [];
103
+					data.list.forEach(i =>{
104
+					  i.show = false
105
+					})
106
+					let newData = data.list
107
+					for(let i of newData){
108
+						if(i.key=='itsmParentConsumable' && i.value==1){
109
+							let item = newData.find(i=>i.key == 'itsmQuoteOtherDeptConsumable')
110
+							item.show = true
111
+							item.value = '0'
112
+							this.itsmQuoteOtherDeptConsumableType = false
113
+							let item2 = newData.find(i=>i.key == 'itsmConsumableQuoteDept')
114
+							item2.value = null
115
+						}else if(i.key=='itsmParentConsumable' && i.value==0){
116
+							let item = newData.find(i=>i.key == 'itsmQuoteOtherDeptConsumable')
117
+							item.show = false
118
+						}
119
+						
120
+						if(i.key=='itsmQuoteOtherDeptWorkHour' && i.value==1){
121
+							this.itsmQuoteOtherDeptWorkHourType = true
122
+							let item = newData.find(i=>i.key == 'itsmWorkHourQuoteDept')
123
+							item.value = Number(item.value)
124
+						}else if(i.key=='itsmQuoteOtherDeptWorkHour' && i.value==0){
125
+							this.itsmQuoteOtherDeptWorkHourType = false
126
+						}
127
+						
128
+						if(i.key=='itsmQuoteOtherDeptConsumable' && i.value==1){
129
+							this.itsmQuoteOtherDeptConsumableType = true
130
+							let item = newData.find(i=>i.key == 'itsmConsumableQuoteDept')
131
+							item.value = Number(item.value)
132
+						}else if(i.key=='itsmQuoteOtherDeptConsumable' && i.value==0){
133
+							this.itsmQuoteOtherDeptConsumableType = false
134
+						}
135
+					}
136
+
137
+          this.hospitalList = newData || [];
93
         }else{
138
         }else{
94
           this.message.error(data.msg || "请求数据失败");
139
           this.message.error(data.msg || "请求数据失败");
95
         }
140
         }

+ 2 - 2
src/app/services/main.service.ts

@@ -931,8 +931,8 @@ export class MainService {
931
 	 }
931
 	 }
932
 	
932
 	
933
 	//病理申请单追加打印/全量打印
933
 	//病理申请单追加打印/全量打印
934
-	 pathologyCheckPrint(type,businessId) {
935
-	   return this.http.post(host.host + `/pathology/check/${type}/${businessId}`, {}, {
934
+	 pathologyCheckPrint(type,businessId,data) {
935
+	   return this.http.post(host.host + `/pathology/check/${type}/${businessId}`, data, {
936
 	     headers: this.headers,
936
 	     headers: this.headers,
937
 	   });
937
 	   });
938
 	 }
938
 	 }

+ 26 - 27
src/app/share/pathology-add/pathology-add.component.html

@@ -54,7 +54,7 @@
54
 					<nz-form-item class="form-item" *ngIf="detailsData.pathologyFormType==null">
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>
55
 						<nz-form-label nzRequired nzFor="pathologyFormType" [nzSm]="6" [nzXs]="24">申请单类型</nz-form-label>
56
 						<nz-form-control nzErrorTip="请选择申请单类型!" [nzSm]="18" [nzXs]="24">
56
 						<nz-form-control nzErrorTip="请选择申请单类型!" [nzSm]="18" [nzXs]="24">
57
-							<nz-radio-group formControlName="pathologyFormType">
57
+							<nz-radio-group formControlName="pathologyFormType" (ngModelChange)="radioChange($event)">
58
 								<label nz-radio [nzValue]="1">术中快速病理检查申请单</label>
58
 								<label nz-radio [nzValue]="1">术中快速病理检查申请单</label>
59
 								<label nz-radio [nzValue]="0">病理检查申请单</label>
59
 								<label nz-radio [nzValue]="0">病理检查申请单</label>
60
 							</nz-radio-group>
60
 							</nz-radio-group>
@@ -244,6 +244,7 @@
244
 		<div class="title">未打印<i class="icon_transport transport-guanbi" (click)="hideNotModal()"></i>
244
 		<div class="title">未打印<i class="icon_transport transport-guanbi" (click)="hideNotModal()"></i>
245
 		</div>
245
 		</div>
246
 		<div class="content">
246
 		<div class="content">
247
+			<div class="content-title">本次需要记录离体标本<span class="reds">{{specimenNum}}</span>份,本申请单共<span class="reds">{{totalNum}}</span>份标本</div>
247
 			<form nz-form [formGroup]="validatePrintForm" class="addForm" (ngSubmit)="submitPrintForm()">
248
 			<form nz-form [formGroup]="validatePrintForm" class="addForm" (ngSubmit)="submitPrintForm()">
248
 				<nz-form-item>
249
 				<nz-form-item>
249
 				  <nz-form-label nzRequired [nzSpan]="8" nzFor="inVitroTime">标本离体时间</nz-form-label>
250
 				  <nz-form-label nzRequired [nzSpan]="8" nzFor="inVitroTime">标本离体时间</nz-form-label>
@@ -282,14 +283,13 @@
282
 		<div class="monad">
283
 		<div class="monad">
283
 			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && operation != 'addPrint'" style="border: 1px solid #AAAAAA;
284
 			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && operation != 'addPrint'" style="border: 1px solid #AAAAAA;
284
 				border-radius: 5px;font-size: 12px;">
285
 				border-radius: 5px;font-size: 12px;">
285
-				 <div style="display: flex;">
286
-					 <img style="width: 50%;height: 70px;border-radius: 5px;" [src]="printData.applyBarCode" alt="">
287
-					 <div style="width: 50%;">
288
-						 
289
-						 <img style="width: 100%; border-radius: 5px;
290
-						 	position: relative;top: 15px;right: 7px;" [src]="tool.logoUrl" alt="">
291
-					 	<!-- <img style="width: 100%; border-radius: 5px;
292
-					 		position: relative;top: 15px;right: 7px;" src="../../../assets/images/yc_logo.png" alt=""> -->
286
+				 <div style="display: flex;align-items: center;flex-wrap: nowrap;height: 80px;padding: 0 1px;">
287
+					 <div style="width: 60%;height: 70px;text-align: center;">
288
+						 <img style="max-width: 90%;height: 80%;" [src]="printData.applyBarCode" alt="">
289
+						 <div>{{printData.applyCode}}</div>
290
+					 </div>
291
+					 <div style="width: 40%;height: 100%;text-align: center;display: flex;align-items: center;">
292
+						 <img style="max-width: 100%;max-height: 100%;" [src]="tool.logoUrl" alt="">
293
 					 </div>
293
 					 </div>
294
 				 </div>
294
 				 </div>
295
 				
295
 				
@@ -327,17 +327,15 @@
327
 			
327
 			
328
 			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>0 && operation == 'addPrint'" style="border: 1px solid #AAAAAA;
328
 			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>0 && operation == 'addPrint'" style="border: 1px solid #AAAAAA;
329
 				border-radius: 5px;font-size: 12px;">
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=""> -->
330
+				 <div style="display: flex;align-items: center;flex-wrap: nowrap;height: 80px;padding: 0 1px;">
331
+					 <div style="width: 60%;height: 70px;text-align: center;">
332
+						 <img style="max-width: 90%;height: 80%;" [src]="printData.applyBarCode" alt="">
333
+						 <div>{{printData.applyCode}}</div>
334
+					 </div>
335
+					 <div style="width: 40%;height: 100%;text-align: center;display: flex;align-items: center;">
336
+						 <img style="max-width: 100%;max-height: 100%;" [src]="tool.logoUrl" alt="">
338
 					 </div>
337
 					 </div>
339
 				 </div>
338
 				 </div>
340
-				
341
 				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
339
 				<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>
340
 					<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>
341
 					<div style="width:50%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">{{printData.patientName}}</div>
@@ -370,19 +368,20 @@
370
 				</div>
368
 				</div>
371
 			</div>
369
 			</div>
372
 			
370
 			
373
-			<div style="height: 20px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1"></div>
371
+			<div style="height: 70px;" *ngIf="printData && printData.specimenList && printData.specimenList.length==1 && operation == 'addPrint'"></div>
372
+			<div style="height: 20px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && operation != 'addPrint'"></div>
374
 			<div style="font-size: 12px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>0">
373
 			<div style="font-size: 12px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>0">
375
 				<div *ngFor="let data of printData.specimenList; let index=index;">
374
 				<div *ngFor="let data of printData.specimenList; let index=index;">
376
 				 <div style="height: 50px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1"></div>
375
 				 <div style="height: 50px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1"></div>
377
 				 <div style="border: 1px solid #AAAAAA;border-radius: 5px;">
376
 				 <div style="border: 1px solid #AAAAAA;border-radius: 5px;">
378
-					 <div style="display: flex;">
379
-					 	<img style="width: 50%;height: 70px;border-radius: 5px;" [src]="data.barCode" alt="">
380
-						<div style="width: 50%;">
381
-							<img style="width: 100%; border-radius: 5px;
382
-								position: relative;top: 15px;right: 7px;" [src]="tool.logoUrl" alt="">
383
-							<!-- <img style="width: 100%;border-radius: 5px;
384
-								position: relative;top: 15px;right: 7px;" src="../../../assets/images/yc_logo.png" alt=""> -->
385
-						</div>
377
+					 <div style="display: flex;align-items: center;flex-wrap: nowrap;height: 80px;padding: 0 1px;">
378
+						 <div style="width: 60%;height: 70px;text-align: center;">
379
+							 <img style="max-width: 90%;height: 80%;" [src]="data.barCode" alt="">
380
+							 <div>{{data.specimenCode}}</div>
381
+						 </div>
382
+						 <div style="width: 40%;height: 100%;text-align: center;display: flex;align-items: center;">
383
+							 <img style="max-width: 100%;max-height: 100%;" [src]="tool.logoUrl" alt="">
384
+						 </div>
386
 					 </div>
385
 					 </div>
387
 					 <div style="display: flex;border-bottom: 1px solid #AAAAAA;">
386
 					 <div style="display: flex;border-bottom: 1px solid #AAAAAA;">
388
 					 	<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>
387
 					 	<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>

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

@@ -228,6 +228,14 @@
228
 	      padding: 19px 14px 0 14px;
228
 	      padding: 19px 14px 0 14px;
229
 	      max-height: 500px;
229
 	      max-height: 500px;
230
 	      overflow-y: auto;
230
 	      overflow-y: auto;
231
+				.content-title{
232
+					text-align: center;
233
+					margin-bottom: 10px;
234
+					font-weight: 600;
235
+					.reds{
236
+						color: red;
237
+					}
238
+				}
231
 				.ant-form-item {
239
 				.ant-form-item {
232
 				  margin-bottom: 14px;
240
 				  margin-bottom: 14px;
233
 					display: flex;
241
 					display: flex;

+ 47 - 12
src/app/share/pathology-add/pathology-add.component.ts

@@ -24,6 +24,7 @@ export class PathologyAddComponent implements OnInit {
24
 	@Input() surgeryId: string;
24
 	@Input() surgeryId: string;
25
 	@Input() patientId: string;
25
 	@Input() patientId: string;
26
 	@Input() detailId: string;
26
 	@Input() detailId: string;
27
+	@Input() applicationType: string;
27
 	
28
 	
28
 	constructor(
29
 	constructor(
29
 		private http: HttpClient,
30
 		private http: HttpClient,
@@ -69,6 +70,21 @@ export class PathologyAddComponent implements OnInit {
69
 		this.fetchDataList()
70
 		this.fetchDataList()
70
   }
71
   }
71
 	
72
 	
73
+	radioChange(data){
74
+		let arr = [];
75
+		let item = null
76
+		// if(!this.validateForm.value.project){
77
+			if(data==1){
78
+				item = this.projectData.find(i=>i.value=='2241') //冰冻切片检查
79
+			}else{
80
+				item = this.projectData.find(i=>i.value=='1810') //病理小标本
81
+			}
82
+			console.log(5555,item)
83
+			arr.push(item.id)
84
+			this.validateForm.controls.project.setValue(arr);
85
+		// }
86
+	}
87
+	
72
 	// 初始化新增form表单
88
 	// 初始化新增form表单
73
 	initForm() {
89
 	initForm() {
74
 		this.validateForm = this.fb.group({
90
 		this.validateForm = this.fb.group({
@@ -88,7 +104,7 @@ export class PathologyAddComponent implements OnInit {
88
 		  idx: 0,
104
 		  idx: 0,
89
 		  sum: 9999,
105
 		  sum: 9999,
90
 		  pathologyForm: {
106
 		  pathologyForm: {
91
-				surgeryId: this.surgeryId || "",
107
+				surgeryId: "",
92
 		    patientId: this.patientId || "",
108
 		    patientId: this.patientId || "",
93
 		    hosId: this.hosId || "" ,
109
 		    hosId: this.hosId || "" ,
94
 		  },
110
 		  },
@@ -106,6 +122,7 @@ export class PathologyAddComponent implements OnInit {
106
 				if(this.detailsData.pathologyFormType!=null){
122
 				if(this.detailsData.pathologyFormType!=null){
107
 					this.validateForm.controls.pathologyFormType.setValue(this.detailsData.pathologyFormType);
123
 					this.validateForm.controls.pathologyFormType.setValue(this.detailsData.pathologyFormType);
108
 				}
124
 				}
125
+
109
 				if(this.detailsData.intraoperativeFindings){
126
 				if(this.detailsData.intraoperativeFindings){
110
 					this.validateForm.controls.intraoperativeFindings.setValue(this.detailsData.intraoperativeFindings);
127
 					this.validateForm.controls.intraoperativeFindings.setValue(this.detailsData.intraoperativeFindings);
111
 				}
128
 				}
@@ -123,6 +140,9 @@ export class PathologyAddComponent implements OnInit {
123
 			this.specimenData = res.filter(i=>i.extra1 == 'pathologySpecimen')
140
 			this.specimenData = res.filter(i=>i.extra1 == 'pathologySpecimen')
124
 			if(this.detailsData.specimenType){
141
 			if(this.detailsData.specimenType){
125
 				this.validateForm.controls.specimenGenre.setValue(this.detailsData.specimenType.id);
142
 				this.validateForm.controls.specimenGenre.setValue(this.detailsData.specimenType.id);
143
+			}else{
144
+				let item = this.specimenData.find(i=>i.value==10)
145
+				this.validateForm.controls.specimenGenre.setValue(item.id);
126
 			}
146
 			}
127
 			if(this.detailsData.specimenNum){
147
 			if(this.detailsData.specimenNum){
128
 				this.validateForm.controls.specimenNum.setValue(this.detailsData.specimenNum);
148
 				this.validateForm.controls.specimenNum.setValue(this.detailsData.specimenNum);
@@ -766,6 +786,8 @@ export class PathologyAddComponent implements OnInit {
766
 	zjLoading:any = false;
786
 	zjLoading:any = false;
767
 	operation:any;
787
 	operation:any;
768
 	pathologySpecimenIds:any;
788
 	pathologySpecimenIds:any;
789
+	totalNum:any;
790
+	specimenNum:any;
769
 	superaddition(): void{
791
 	superaddition(): void{
770
 		var that = this;
792
 		var that = this;
771
 		this.operation = 'addPrint'
793
 		this.operation = 'addPrint'
@@ -778,9 +800,12 @@ export class PathologyAddComponent implements OnInit {
778
 			this.message.error('标本不能为空')
800
 			this.message.error('标本不能为空')
779
 			return
801
 			return
780
 		}
802
 		}
781
-		that.mainService.pathologyCheckPrint('pathologyForm',this.detailsData.id).subscribe((res:any)=>{
803
+		that.mainService.pathologyCheckPrint('pathologyForm',this.detailsData.id,{}).subscribe((res:any)=>{
804
+			this.separationMsg = res.msg
782
 			if(res.ids){
805
 			if(res.ids){
783
 				this.notModal = true
806
 				this.notModal = true
807
+				this.totalNum = res.totalNum
808
+				this.specimenNum = res.specimenNum
784
 				this.pathologySpecimenIds = res.ids
809
 				this.pathologySpecimenIds = res.ids
785
 				this.validatePrintForm = this.fb.group({
810
 				this.validatePrintForm = this.fb.group({
786
 				  inVitroTime: [null, [Validators.required]],
811
 				  inVitroTime: [null, [Validators.required]],
@@ -798,6 +823,7 @@ export class PathologyAddComponent implements OnInit {
798
 	
823
 	
799
 	// 打印标本/全量
824
 	// 打印标本/全量
800
 	printData:any;
825
 	printData:any;
826
+	separationMsg:any = '本次需要记录离体标本6份,本申请单共6份标本';
801
 	submitForm(type): void{
827
 	submitForm(type): void{
802
 		var that = this;
828
 		var that = this;
803
 		this.operation = 'wholePrint'
829
 		this.operation = 'wholePrint'
@@ -811,9 +837,12 @@ export class PathologyAddComponent implements OnInit {
811
 			return
837
 			return
812
 		}
838
 		}
813
 		if(type=='all'){
839
 		if(type=='all'){
814
-			that.mainService.pathologyCheckPrint('pathologyForm',this.detailsData.id).subscribe((res:any)=>{
840
+			that.mainService.pathologyCheckPrint('pathologyForm',this.detailsData.id,{}).subscribe((res:any)=>{
841
+				this.separationMsg = res.msg
815
 				if(res.ids){
842
 				if(res.ids){
816
 					this.notModal = true
843
 					this.notModal = true
844
+					this.totalNum = res.totalNum
845
+					this.specimenNum = res.specimenNum
817
 					this.pathologySpecimenIds = res.ids
846
 					this.pathologySpecimenIds = res.ids
818
 					this.validatePrintForm = this.fb.group({
847
 					this.validatePrintForm = this.fb.group({
819
 					  inVitroTime: [null, [Validators.required]],
848
 					  inVitroTime: [null, [Validators.required]],
@@ -858,15 +887,20 @@ export class PathologyAddComponent implements OnInit {
858
 		}else{
887
 		}else{
859
 			this.operation = 'null'
888
 			this.operation = 'null'
860
 			if(this.statusValue==1){
889
 			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);
890
+				this.mainService.pathologyCheckPrint('pathologyForm',this.detailsData.id,{}).subscribe((res:any)=>{
891
+					this.separationMsg = res.msg
892
+					this.notModal = true
893
+					this.totalNum = res.totalNum
894
+					this.specimenNum = res.specimenNum
895
+					this.validatePrintForm = this.fb.group({
896
+						inVitroTime: [null, [Validators.required]],
897
+						jobNumber: [null, [Validators.required]],
898
+						name:[null, [Validators.required]],
899
+					});
900
+					let date = new Date();
901
+					this.startDate = format(date, "yyyy-MM-dd HH:mm:ss")
902
+					this.validatePrintForm.controls.inVitroTime.setValue(this.startDate);
903
+				})
870
 				return
904
 				return
871
 			}
905
 			}
872
 			let data: any = {
906
 			let data: any = {
@@ -876,6 +910,7 @@ export class PathologyAddComponent implements OnInit {
876
 					surgeryId: this.surgeryId || "",
910
 					surgeryId: this.surgeryId || "",
877
 					patientId: this.patientId || "",
911
 					patientId: this.patientId || "",
878
 					hosId: this.hosId || "" ,
912
 					hosId: this.hosId || "" ,
913
+					pathologyInspectIds:this.validateForm.value.project.join(','),
879
 					specimenType:{
914
 					specimenType:{
880
 						id:this.validateForm.value.specimenGenre
915
 						id:this.validateForm.value.specimenGenre
881
 					}
916
 					}

+ 16 - 17
src/app/share/pathology-detail/pathology-detail.component.html

@@ -19,7 +19,7 @@
19
 					<nz-form-item class="form-title-box">
19
 					<nz-form-item class="form-title-box">
20
 						<div class="form-title"><span class="font-weight-500">患者信息:</span>{{detailsData.patientDTO.patientName}} ({{detailsData.patientDTO.bedNum}}床)</div>
20
 						<div class="form-title"><span class="font-weight-500">患者信息:</span>{{detailsData.patientDTO.patientName}} ({{detailsData.patientDTO.bedNum}}床)</div>
21
 						<div class="form-title"><span class="font-weight-500">年龄:</span>{{detailsData.patientDTO.age||'-'}}</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>
22
+						<div class="form-title"><span class="font-weight-500">性别:</span>{{detailsData.patientDTO.gender ? detailsData.patientDTO.gender.name : '-'}}</div>
23
 						<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
23
 						<div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
24
 					</nz-form-item>
24
 					</nz-form-item>
25
 					
25
 					
@@ -115,16 +115,15 @@
115
 		<div class="monad">
115
 		<div class="monad">
116
 			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1" style="border: 1px solid #AAAAAA;
116
 			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1" style="border: 1px solid #AAAAAA;
117
 				border-radius: 5px;font-size: 12px;">
117
 				border-radius: 5px;font-size: 12px;">
118
-				 <div style="display: flex;">
119
-					 <img style="width: 50%;height: 70px;border-radius: 5px;" [src]="printData.applyBarCode" alt="">
120
-					 <div style="width: 50%;">
121
-						 <img style="width: 100%; border-radius: 5px;
122
-						 	position: relative;top: 15px;right: 7px;" [src]="tool.logoUrl" alt="">
123
-<!-- 					 	<img style="width: 100%; border-radius: 5px;
124
-					 		position: relative;top: 15px;right: 7px;" src="../../../assets/images/yc_logo.png" alt=""> -->
118
+				 <div style="display: flex;align-items: center;flex-wrap: nowrap;height: 80px;padding: 0 1px;">
119
+					 <div style="width: 60%;height: 70px;text-align: center;">
120
+						 <img style="max-width: 90%;height: 80%;" [src]="printData.applyBarCode" alt="">
121
+						 <div>{{printData.applyCode}}</div>
122
+					 </div>
123
+					 <div style="width: 40%;height: 100%;text-align: center;display: flex;align-items: center;">
124
+						 <img style="max-width: 100%;max-height: 100%;" [src]="tool.logoUrl" alt="">
125
 					 </div>
125
 					 </div>
126
 				 </div>
126
 				 </div>
127
-				
128
 				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
127
 				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
129
 					<div style="width:20%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>
128
 					<div style="width:20%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>
130
 					<div style="width:50%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">{{printData.patientName}}</div>
129
 					<div style="width:50%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">{{printData.patientName}}</div>
@@ -162,14 +161,14 @@
162
 				<div *ngFor="let data of printData.specimenList; let index=index;">
161
 				<div *ngFor="let data of printData.specimenList; let index=index;">
163
 				 <div style="height: 50px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1"></div>
162
 				 <div style="height: 50px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1"></div>
164
 				 <div style="border: 1px solid #AAAAAA;border-radius: 5px;">
163
 				 <div style="border: 1px solid #AAAAAA;border-radius: 5px;">
165
-					 <div style="display: flex;">
166
-					 	<img style="width: 50%;height: 70px;border-radius: 5px;" [src]="data.barCode" alt="">
167
-						<div style="width: 50%;">
168
-							<img style="width: 100%; border-radius: 5px;
169
-								position: relative;top: 15px;right: 7px;" [src]="tool.logoUrl" alt="">
170
-							<!-- <img style="width: 100%;border-radius: 5px;
171
-								position: relative;top: 15px;right: 7px;" src="../../../assets/images/yc_logo.png" alt=""> -->
172
-						</div>
164
+					 <div style="display: flex;align-items: center;flex-wrap: nowrap;height: 80px;padding: 0 1px;">
165
+						 <div style="width: 60%;height: 70px;text-align: center;">
166
+							 <img style="max-width: 90%;height: 80%;" [src]="data.barCode" alt="">
167
+							 <div>{{data.specimenCode}}</div>
168
+						 </div>
169
+						 <div style="width: 40%;height: 100%;text-align: center;display: flex;align-items: center;">
170
+							 <img style="max-width: 100%;max-height: 100%;" [src]="tool.logoUrl" alt="">
171
+						 </div>
173
 					 </div>
172
 					 </div>
174
 					 <div style="display: flex;border-bottom: 1px solid #AAAAAA;">
173
 					 <div style="display: flex;border-bottom: 1px solid #AAAAAA;">
175
 					 	<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>
174
 					 	<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>

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

@@ -2977,7 +2977,7 @@
2977
 <button ngxPrint printSectionId="print-section" #printBtn hidden [printStyle]="{ '@page': { margin: '0 !important' }, 'body': { margin: '0 !important' } }">打印</button>
2977
 <button ngxPrint printSectionId="print-section" #printBtn hidden [printStyle]="{ '@page': { margin: '0 !important' }, 'body': { margin: '0 !important' } }">打印</button>
2978
 
2978
 
2979
 <!-- 病理申请单 -->
2979
 <!-- 病理申请单 -->
2980
-<app-pathology-add *ngIf="pathologyModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" [patientId]="patientDataId" [detailId]="detailId" (pathologyCancel)="pathologyCancel($event)"></app-pathology-add>
2980
+<app-pathology-add *ngIf="pathologyModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" [patientId]="patientDataId" [detailId]="detailId" [applicationType]="applicationType" (pathologyCancel)="pathologyCancel($event)"></app-pathology-add>
2981
 
2981
 
2982
 <!-- 病理详情 -->
2982
 <!-- 病理详情 -->
2983
 <app-pathology-detail *ngIf="pathologyDetailModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" [detailId]="detailId" (pathologyCancel)="pathologyDetailCancel($event)"></app-pathology-detail>
2983
 <app-pathology-detail *ngIf="pathologyDetailModal" [surgeryId]="surgeryDataId" [patientId]="patientDataId" [detailId]="detailId" (pathologyCancel)="pathologyDetailCancel($event)"></app-pathology-detail>
@@ -3022,7 +3022,9 @@
3022
 			</div>
3022
 			</div>
3023
 		</div>
3023
 		</div>
3024
 		<div class="display_flex justify-content_flex-center mar-20 btns">
3024
 		<div class="display_flex justify-content_flex-center mar-20 btns">
3025
-			<button class="btn" nz-button nzType="primary" (click)="hideModal()">知道了</button>
3025
+			<button class="btn" style="margin-right: 0;" *ngIf="autoCreate==1" nz-button nzType="primary" (click)="addPathologyType(0)">新增普通病理</button>
3026
+			<button class="btn" *ngIf="autoCreate==1" nz-button nzType="primary" (click)="addPathologyType(1)">新增术中快速病理</button>
3027
+			<button class="btn cancel" nz-button nzType="default" (click)="hideModal()">知道了</button>
3026
 		</div>
3028
 		</div>
3027
 	</div>
3029
 	</div>
3028
 </div>
3030
 </div>

+ 79 - 4
src/app/views/hushijiandan/hushijiandan.component.ts

@@ -212,7 +212,7 @@ export class HushijiandanComponent implements OnInit {
212
     this.refreshSpecimenWorkOrderMsg();
212
     this.refreshSpecimenWorkOrderMsg();
213
     this.initRole();
213
     this.initRole();
214
     this.getWebsocket();
214
     this.getWebsocket();
215
-
215
+		this.getTaskTypesId();
216
     // 综合日志倒计时 start
216
     // 综合日志倒计时 start
217
     this.logTime = this.logTimeConst;
217
     this.logTime = this.logTimeConst;
218
     clearInterval(this.logTimer);
218
     clearInterval(this.logTimer);
@@ -305,7 +305,61 @@ export class HushijiandanComponent implements OnInit {
305
     this.coopBtns = coopBtns;
305
     this.coopBtns = coopBtns;
306
     console.log(this.coopBtns);
306
     console.log(this.coopBtns);
307
   }
307
   }
308
-
308
+	
309
+	// 获取任务类型(病理标本)
310
+	taskTypeData:any;
311
+	getTaskTypesId() {
312
+		this.mainService.getDictionary("list", "ordinary_field").subscribe((data) => {
313
+			this.taskTypeData = data.find(i=>i.value=='pathology')
314
+			this.getPathologySys();
315
+		});
316
+	}
317
+	
318
+	// 获取标本配置
319
+	autoCreate:any;
320
+	getPathologySys(){
321
+		let postData = {
322
+			  idx: 0,
323
+			  sum: 10,
324
+			  taskTypeConfig: {
325
+					hosId:this.currentHospital.id,
326
+					taskType:this.taskTypeData.id
327
+			  }
328
+		}
329
+		
330
+		this.mainService
331
+		  .getFetchDataList("simple/data", "taskTypeConfig", postData)
332
+		  .subscribe((result) => {
333
+		    if (result.status == 200) {
334
+					this.autoCreate = result.list[0].autoCreate;
335
+		    }
336
+		  });
337
+	}
338
+	
339
+	// 新增申请单自选类型
340
+	applicationType:any;
341
+	addPathologyType(type){
342
+		this.surgeryDataId = this.surgeryWKOMsg.id
343
+		this.patientDataId = this.surgeryWKOMsg.patientDTO.id
344
+		this.applicationType = type
345
+		let data = {
346
+			idx: 0,
347
+			sum: 9999,
348
+			surgeryId: this.surgeryWKOMsg.id || "",
349
+			patientId: this.surgeryWKOMsg.patientDTO.id || "",
350
+			hosId: this.currentHospital.id || "" ,
351
+			operationType: 'pathologyForm',
352
+			pathologyFormType: type
353
+		};
354
+		this.mainService
355
+		.simplePost("addData", "pathologyForm", data)
356
+		.subscribe((data) => {
357
+			this.detailId = data.data.id
358
+			this.multiDialog = false
359
+			this.pathologyModal = true
360
+		});
361
+	}
362
+	
309
 	// 手术排程-病理申请单
363
 	// 手术排程-病理申请单
310
 	pathologyAddItem(e,item){
364
 	pathologyAddItem(e,item){
311
 		this.surgeryDataId = item.id
365
 		this.surgeryDataId = item.id
@@ -314,7 +368,7 @@ export class HushijiandanComponent implements OnInit {
314
 			idx: 0,
368
 			idx: 0,
315
 			sum: 9999,
369
 			sum: 9999,
316
 			pathologyForm: {
370
 			pathologyForm: {
317
-				surgeryId: item.id || "",
371
+				// surgeryId: item.id || "",
318
 				patientId: item.patientDTO.id || "",
372
 				patientId: item.patientDTO.id || "",
319
 				hosId: this.currentHospital.id || "" ,
373
 				hosId: this.currentHospital.id || "" ,
320
 				operationType: 'pathologyForm',
374
 				operationType: 'pathologyForm',
@@ -326,6 +380,15 @@ export class HushijiandanComponent implements OnInit {
326
 			.getFetchDataList("data", "pathologyForm", data)
380
 			.getFetchDataList("data", "pathologyForm", data)
327
 			.subscribe((data) => {
381
 			.subscribe((data) => {
328
 				this.isSpinning = false
382
 				this.isSpinning = false
383
+				this.viewData = data.list
384
+				if(this.viewData.pathologyInspectDTOS){
385
+					for(let i of this.viewData.pathologyInspectDTOS){
386
+						i.arr = []
387
+						i.arr.push(i.inspectProject.name)
388
+					}
389
+				}
390
+				this.multiDialog = true
391
+				return
329
 				if(data.list.length==1){
392
 				if(data.list.length==1){
330
 					this.detailId = data.list[0].id
393
 					this.detailId = data.list[0].id
331
 					if(!data.list[0].status){
394
 					if(!data.list[0].status){
@@ -365,7 +428,7 @@ export class HushijiandanComponent implements OnInit {
365
 			idx: 0,
428
 			idx: 0,
366
 			sum: 9999,
429
 			sum: 9999,
367
 			pathologyForm: {
430
 			pathologyForm: {
368
-				surgeryId: this.surgeryWKOMsg.id || "",
431
+				// surgeryId: this.surgeryWKOMsg.id || "",
369
 				patientId: this.surgeryWKOMsg.patientDTO.id || "",
432
 				patientId: this.surgeryWKOMsg.patientDTO.id || "",
370
 				hosId: this.currentHospital.id || "" ,
433
 				hosId: this.currentHospital.id || "" ,
371
 				operationType: 'pathologyForm',
434
 				operationType: 'pathologyForm',
@@ -377,6 +440,18 @@ export class HushijiandanComponent implements OnInit {
377
 		.getFetchDataList("data", "pathologyForm", data)
440
 		.getFetchDataList("data", "pathologyForm", data)
378
 		.subscribe((data) => {
441
 		.subscribe((data) => {
379
 			this.isSpinning = false
442
 			this.isSpinning = false
443
+			this.viewData = data.list
444
+			for(let i of this.viewData){
445
+				if(i.pathologyInspectDTOS){
446
+					i.arr = []
447
+					for(let x of i.pathologyInspectDTOS){
448
+						i.arr.push(x.inspectProject.name)
449
+					}
450
+				}
451
+			}
452
+			console.log(777,this.viewData)
453
+			this.multiDialog = true
454
+			return
380
 			if(data.list.length==1){
455
 			if(data.list.length==1){
381
 				this.detailId = data.list[0].id
456
 				this.detailId = data.list[0].id
382
 				if(!data.list[0].status){
457
 				if(!data.list[0].status){

+ 2 - 2
src/app/views/incident-management/incident-management.component.html

@@ -8,13 +8,13 @@
8
 				<div class="list-template__searchItem" *ngIf="coopBtns.strideLook && queryTask!='todo' && queryTask!='doing' && queryTask!='storage'">
8
 				<div class="list-template__searchItem" *ngIf="coopBtns.strideLook && queryTask!='todo' && queryTask!='doing' && queryTask!='storage'">
9
 				  <span class="label">维修科室</span>:
9
 				  <span class="label">维修科室</span>:
10
 				  <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch
10
 				  <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch
11
-				     nzAllowClear nzPlaceHolder="请选择维修科室" [(ngModel)]="searchDTO.maintainDepartment">
11
+				     (ngModelChange)="deptChange($event)" nzAllowClear nzPlaceHolder="请选择维修科室" [(ngModel)]="searchDTO.maintainDepartment">
12
 				    <ng-container *ngFor="let option of maintainDept">
12
 				    <ng-container *ngFor="let option of maintainDept">
13
 				      <nz-option [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
13
 				      <nz-option [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
14
 				    </ng-container>
14
 				    </ng-container>
15
 				  </nz-select>
15
 				  </nz-select>
16
 				</div>
16
 				</div>
17
-				<div class="list-template__searchItem" *ngIf="queryTask!='todo' && queryTask!='owns' && queryTask!='storage'">
17
+				<div class="list-template__searchItem" *ngIf="queryTask!='todo' && queryTask!='owns' && queryTask!='storage' && queryTask!='doing' && queryTask!='reassign'">
18
 				  <span class="label">维修组</span>:
18
 				  <span class="label">维修组</span>:
19
 				  <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch
19
 				  <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch
20
 				     nzAllowClear nzPlaceHolder="请选择维修组" [(ngModel)]="searchDTO.maintainGroup">
20
 				     nzAllowClear nzPlaceHolder="请选择维修组" [(ngModel)]="searchDTO.maintainGroup">

+ 60 - 13
src/app/views/incident-management/incident-management.component.ts

@@ -75,18 +75,29 @@ export class IncidentManagementComponent implements OnInit {
75
 		let itemDept = this.maintainDept.find(i=>i.id == this.hosIds)
75
 		let itemDept = this.maintainDept.find(i=>i.id == this.hosIds)
76
 		if(itemDept){
76
 		if(itemDept){
77
 			this.searchDTO.maintainDepartment = itemDept.id
77
 			this.searchDTO.maintainDepartment = itemDept.id
78
+			if(this.queryTask!='todo' && this.queryTask!='doing' && this.queryTask!='storage'){
79
+				let arr = this.tool.getUserInfoPermission().dutyGroupList.filter(i=>i.hospital.id == itemDept.id)
80
+				if(arr){
81
+					this.maintainGroup = arr
82
+				}else{
83
+					this.maintainGroup = this.tool.getUserInfoPermission().dutyGroupList
84
+				}
85
+			}else{
86
+				this.maintainGroup = this.tool.getUserInfoPermission().dutyGroupList
87
+			}
88
+			
78
 		}
89
 		}
90
+		this.getDeparts();
91
+		this.getUsers('', 'handle');
79
     this.loading1 = true;
92
     this.loading1 = true;
80
     this.debounceSubject.next(true);
93
     this.debounceSubject.next(true);
81
   }
94
   }
82
 
95
 
83
   ngOnInit() {
96
   ngOnInit() {
84
 		this.maintainDept = this.tool.getUserInfoPermission().dutyList
97
 		this.maintainDept = this.tool.getUserInfoPermission().dutyList
85
-		this.maintainGroup = this.tool.getUserInfoPermission().dutyGroupList
86
 		this.hosIds = this.tool.getCurrentHospital().id
98
 		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
99
+		if(this.coopBtns.strideLook){
100
+			this.defaDept()
90
 		}
101
 		}
91
     this.initSearchForm();
102
     this.initSearchForm();
92
     this.searchTimerSubject.pipe(debounceTime(500)).subscribe((v) => {
103
     this.searchTimerSubject.pipe(debounceTime(500)).subscribe((v) => {
@@ -98,9 +109,6 @@ export class IncidentManagementComponent implements OnInit {
98
     });
109
     });
99
     this.coopBtns = this.tool.initCoopBtns(this.route);
110
     this.coopBtns = this.tool.initCoopBtns(this.route);
100
     this.initTabs();
111
     this.initTabs();
101
-    this.getDeparts();
102
-    this.getUsers('', 'handle');
103
-    this.getUsers('', 'acceptUser');
104
     this.getGdStates();
112
     this.getGdStates();
105
     this.getOverdueStates();
113
     this.getOverdueStates();
106
     this.getIncidentCategoryList();
114
     this.getIncidentCategoryList();
@@ -125,7 +133,31 @@ export class IncidentManagementComponent implements OnInit {
125
     //     this.tabs.push({key: 'badEvaluate', value: '异常评价', num: 0, isRed: false});
133
     //     this.tabs.push({key: 'badEvaluate', value: '异常评价', num: 0, isRed: false});
126
     // }
134
     // }
127
   }
135
   }
128
-
136
+	
137
+	defaDept(){
138
+		let itemDept = this.maintainDept.find(i=>i.id == this.hosIds)
139
+		if(itemDept){
140
+			this.searchDTO.maintainDepartment = itemDept.id
141
+		}
142
+		this.getDeparts();
143
+		this.getUsers('', 'handle');
144
+		this.getUsers('', 'acceptUser');
145
+	}
146
+	
147
+	// 选择维修科室
148
+	deptChange(e){
149
+		this.searchDTO.maintainGroup = null
150
+		let arr  = this.tool.getUserInfoPermission().dutyGroupList.filter(i=>i.hospital.id == e)
151
+		if(arr){
152
+			this.maintainGroup = arr
153
+		}else{
154
+			this.maintainGroup = this.tool.getUserInfoPermission().dutyGroupList
155
+		}
156
+		this.searchDTO.maintainDepartment = e
157
+		this.getDeparts();
158
+		this.getUsers('', 'handle');
159
+	}
160
+	
129
   // 搜索
161
   // 搜索
130
   search() {
162
   search() {
131
     this.loading1 = true;
163
     this.loading1 = true;
@@ -134,6 +166,9 @@ export class IncidentManagementComponent implements OnInit {
134
   // 重置
166
   // 重置
135
   reset() {
167
   reset() {
136
     this.searchDTO = {};
168
     this.searchDTO = {};
169
+		if(this.coopBtns.strideLook){
170
+			this.defaDept()
171
+		}
137
     this.initSearchForm();
172
     this.initSearchForm();
138
     this.loading1 = true;
173
     this.loading1 = true;
139
     this.debounceSubject.next(true);
174
     this.debounceSubject.next(true);
@@ -167,7 +202,7 @@ export class IncidentManagementComponent implements OnInit {
167
     let postData = {
202
     let postData = {
168
       user: {
203
       user: {
169
         name: e || "",
204
         name: e || "",
170
-        hospital: { id: that.tool.getCurrentHospital().id },
205
+        hospital: { id: this.searchDTO.maintainDepartment?this.searchDTO.maintainDepartment:that.tool.getCurrentHospital().id },
171
         engineer: 1,
206
         engineer: 1,
172
         simpleQuery: true,
207
         simpleQuery: true,
173
       },
208
       },
@@ -329,8 +364,7 @@ export class IncidentManagementComponent implements OnInit {
329
 				delete postData.incident.hosId;
364
 				delete postData.incident.hosId;
330
 			}
365
 			}
331
 		}
366
 		}
332
-		
333
-		if(this.queryTask!='todo' && this.queryTask!='owns' && this.queryTask!='storage'){
367
+		if(this.queryTask!='todo' && this.queryTask!='owns' && this.queryTask!='storage' && this.queryTask!='doing' && this.queryTask!='reassign'){
334
 			postData.incident.candidateGroupId = this.searchDTO.maintainGroup
368
 			postData.incident.candidateGroupId = this.searchDTO.maintainGroup
335
 		}else{
369
 		}else{
336
 			delete postData.incident.candidateGroupId;
370
 			delete postData.incident.candidateGroupId;
@@ -394,7 +428,15 @@ export class IncidentManagementComponent implements OnInit {
394
             delete incident.duty;
428
             delete incident.duty;
395
             delete incident.hosId;
429
             delete incident.hosId;
396
         }
430
         }
397
-
431
+				
432
+				if(incident.queryTask!='todo' && incident.queryTask!='doing' && incident.queryTask!='storage'){
433
+					if(this.searchDTO.maintainDepartment){
434
+						let itemDept = this.maintainDept.find(i=>i.id == this.searchDTO.maintainDepartment)
435
+						incident.duty = itemDept;
436
+						delete incident.hosId;
437
+					}
438
+				}
439
+				
398
         incident.assignee = this.tool.getCurrentUserId();
440
         incident.assignee = this.tool.getCurrentUserId();
399
 
441
 
400
         if(incident.queryTask === 'todo' || incident.queryTask === 'owns'){
442
         if(incident.queryTask === 'todo' || incident.queryTask === 'owns'){
@@ -402,6 +444,11 @@ export class IncidentManagementComponent implements OnInit {
402
         }else{
444
         }else{
403
           delete incident.candidateGroups;
445
           delete incident.candidateGroups;
404
         }
446
         }
447
+				if(incident.queryTask!='todo' && incident.queryTask!='owns' && incident.queryTask!='storage' && incident.queryTask!='doing' && incident.queryTask!='reassign'){
448
+					incident.candidateGroupId = this.searchDTO.maintainGroup
449
+				}else{
450
+					delete incident.candidateGroupId;
451
+				}
405
     })
452
     })
406
     this.mainService
453
     this.mainService
407
       .getCount(postData)
454
       .getCount(postData)
@@ -418,7 +465,7 @@ export class IncidentManagementComponent implements OnInit {
418
     let data = {
465
     let data = {
419
       department: {
466
       department: {
420
         searchType: 1,// 简单查询
467
         searchType: 1,// 简单查询
421
-        cascadeHosId: this.tool.getCurrentHospital().id,
468
+        cascadeHosId: this.searchDTO.maintainDepartment?this.searchDTO.maintainDepartment:this.tool.getCurrentHospital().id,
422
         dept: dept,
469
         dept: dept,
423
       },
470
       },
424
       idx: 0,
471
       idx: 0,

+ 16 - 6
src/app/views/repository-manage/repository-manage.component.ts

@@ -40,16 +40,15 @@ export class RepositoryManageComponent implements OnInit {
40
 		private sanitizer: DomSanitizer
40
 		private sanitizer: DomSanitizer
41
   ) {}
41
   ) {}
42
   ngOnInit() {
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
-		}
48
     this.searchParentDeptSubject.pipe(debounceTime(500)).subscribe((e) => {
43
     this.searchParentDeptSubject.pipe(debounceTime(500)).subscribe((e) => {
49
 
44
 
50
     });
45
     });
51
 		this.hosId = this.tool.getCurrentHospital().id;
46
 		this.hosId = this.tool.getCurrentHospital().id;
52
     this.coopBtns = this.tool.initCoopBtns(this.route);
47
     this.coopBtns = this.tool.initCoopBtns(this.route);
48
+		this.maintainDept = this.tool.getUserInfoPermission().dutyList
49
+		if(this.coopBtns.strideLook){
50
+			this.defaDept()
51
+		}
53
 		this.getList();
52
 		this.getList();
54
   }
53
   }
55
 	maintainDept:any = []; //维修科室
54
 	maintainDept:any = []; //维修科室
@@ -116,7 +115,15 @@ export class RepositoryManageComponent implements OnInit {
116
     this.coopData = data;
115
     this.coopData = data;
117
     this.showDelModal1();
116
     this.showDelModal1();
118
   }
117
   }
119
-
118
+	
119
+	// 默认科室
120
+	defaDept(){
121
+		let itemDept = this.maintainDept.find(i=>i.id == this.hosId)
122
+		if(itemDept){
123
+			this.maintainDepartment = itemDept.id
124
+		}
125
+	}
126
+	
120
   showDelModal1() {
127
   showDelModal1() {
121
     this.editModal = true;
128
     this.editModal = true;
122
   }
129
   }
@@ -163,6 +170,9 @@ export class RepositoryManageComponent implements OnInit {
163
     this.pageIndex = 1;
170
     this.pageIndex = 1;
164
 		this.solutionNumber = null;
171
 		this.solutionNumber = null;
165
 		this.title = null;
172
 		this.title = null;
173
+		if(this.coopBtns.strideLook){
174
+			this.defaDept()
175
+		}
166
     this.getList();
176
     this.getList();
167
   }
177
   }
168
   // 表格数据
178
   // 表格数据

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

@@ -511,7 +511,7 @@
511
 			</div>
511
 			</div>
512
 			
512
 			
513
 			<div class="content-item">
513
 			<div class="content-item">
514
-				<div class="center">提示:申请单含<span class="red">{{codeData.specimenNum}}</span>只标本,已扫<span class="red">{{codeData.pathologySpecimenDTOList.length}}</span>只<span *ngIf="codeData.pathologySpecimenDTOList.length < codeData.specimenNum">,请继续扫描标本。</span></div>
514
+				<div class="center">提示:本申请单内共有<span class="red">{{totalNum}}</span>只标本固定,已固定<span class="red">{{fixationNum}}</span>份还需固定<span class="red">{{specimenNum}}</span>份</div>
515
 				<div class="disp-fl">
515
 				<div class="disp-fl">
516
 					<div class="width-120">标本条码:</div>
516
 					<div class="width-120">标本条码:</div>
517
 					<input nz-input id="specimen" [(ngModel)]="specimenCode" (ngModelChange)="codeChange($event)"/>
517
 					<input nz-input id="specimen" [(ngModel)]="specimenCode" (ngModelChange)="codeChange($event)"/>

+ 22 - 7
src/app/views/specimen-room-view/specimen-room-view.component.ts

@@ -191,10 +191,7 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
191
 								})
191
 								})
192
 								this.project = this.project.join('、')
192
 								this.project = this.project.join('、')
193
 							}
193
 							}
194
-							this.fixationModal = true
195
-							setTimeout(_=>{
196
-								document.getElementById('specimen').focus();
197
-							},200)
194
+							this.getFixationNum(this.codeData.id)
198
 						}else{
195
 						}else{
199
 							this.viewDetail(this.codeData,'4')
196
 							this.viewDetail(this.codeData,'4')
200
 						}
197
 						}
@@ -217,7 +214,25 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
217
 			}
214
 			}
218
 		})
215
 		})
219
 	}
216
 	}
220
-
217
+	
218
+	// 获取申请单扫标本信息
219
+	fixationNum:any;
220
+	specimenNum:any;
221
+	totalNum:any
222
+	getFixationNum(id){
223
+		this.mainService.pathologyCheckPrint('pathologyForm',id,{
224
+			operationType:'fixation'
225
+		}).subscribe((res:any)=>{
226
+			this.fixationModal = true
227
+			this.fixationNum = res.fixationNum
228
+			this.specimenNum = res.specimenNum
229
+			this.totalNum = res.totalNum
230
+			setTimeout(_=>{
231
+				document.getElementById('specimen').focus();
232
+			},200)
233
+		})
234
+	}
235
+	
221
 	// 选择固定时间
236
 	// 选择固定时间
222
 	formChangeDate(result){
237
 	formChangeDate(result){
223
 	  this.startDate = format(result, 'yyyy-MM-dd HH:mm:ss');
238
 	  this.startDate = format(result, 'yyyy-MM-dd HH:mm:ss');
@@ -553,7 +568,7 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
553
 	codeChange(e){
568
 	codeChange(e){
554
 		this.changeInpSubject.next([e]);
569
 		this.changeInpSubject.next([e]);
555
 	}
570
 	}
556
-
571
+	
557
 	fixationError:any;
572
 	fixationError:any;
558
 	searchSpecimenData(e){
573
 	searchSpecimenData(e){
559
 		if(!e){
574
 		if(!e){
@@ -573,10 +588,10 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
573
 			this.specimenCode = null
588
 			this.specimenCode = null
574
 			if(res.status==200){
589
 			if(res.status==200){
575
 				let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
590
 				let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
576
-				console.log(8,item)
577
 				if(item.fixationTime){
591
 				if(item.fixationTime){
578
 					this.fixationError = '该标本已经固定过'
592
 					this.fixationError = '该标本已经固定过'
579
 				}else{
593
 				}else{
594
+					this.getFixationNum(res.data[0].id)
580
 					this.codeData = res.data[0]
595
 					this.codeData = res.data[0]
581
 					this.fixationError = null
596
 					this.fixationError = null
582
 				}
597
 				}

+ 6 - 0
src/app/views/sys-config/sys-config.component.html

@@ -208,6 +208,12 @@
208
 						</nz-radio-group>
208
 						</nz-radio-group>
209
 				  </nz-form-control>
209
 				  </nz-form-control>
210
 				</nz-form-item>
210
 				</nz-form-item>
211
+				<nz-form-item class="formItem">
212
+				  <nz-form-label [nzSpan]="24" nzFor="supportAppVersion" class="label">支助APP版本号</nz-form-label>
213
+				  <nz-form-control [nzSpan]="24" nzErrorTip="请输入支助APP版本号!">
214
+				    <input nz-input formControlName="supportAppVersion" id="supportAppVersion" placeholder="请输入支助APP版本号">
215
+				  </nz-form-control>
216
+				</nz-form-item>
211
       </div>
217
       </div>
212
     </form>
218
     </form>
213
   </overlay-scrollbars>
219
   </overlay-scrollbars>

+ 8 - 1
src/app/views/sys-config/sys-config.component.ts

@@ -74,6 +74,7 @@ export class SysConfigComponent implements OnInit {
74
       busiViewDeptId: [null, [Validators.required]],
74
       busiViewDeptId: [null, [Validators.required]],
75
 			repairs: [null, [Validators.required]],
75
 			repairs: [null, [Validators.required]],
76
 			cmdbRepair: [null, [Validators.required]],
76
 			cmdbRepair: [null, [Validators.required]],
77
+			supportAppVersion: [null, [Validators.required]],
77
     });
78
     });
78
     this.getDeptType();
79
     this.getDeptType();
79
     this.coopBtns = this.tool.initCoopBtns(this.route);
80
     this.coopBtns = this.tool.initCoopBtns(this.route);
@@ -152,7 +153,8 @@ export class SysConfigComponent implements OnInit {
152
         item.keyconfig === "busiViewDeptId" ||
153
         item.keyconfig === "busiViewDeptId" ||
153
 				item.keyconfig === "deptRepair" ||
154
 				item.keyconfig === "deptRepair" ||
154
 				item.keyconfig === "publicRepair" ||
155
 				item.keyconfig === "publicRepair" ||
155
-				item.keyconfig === "cmdbRepair" 
156
+				item.keyconfig === "cmdbRepair" ||
157
+				item.keyconfig === "supportAppVersion"
156
     );
158
     );
157
 		console.log(7777,this.validateForm.controls.repairs.value)
159
 		console.log(7777,this.validateForm.controls.repairs.value)
158
     filterData.forEach((item) => {
160
     filterData.forEach((item) => {
@@ -206,6 +208,8 @@ export class SysConfigComponent implements OnInit {
206
 			  item.valueconfig = value;
208
 			  item.valueconfig = value;
207
 			}else if (item.keyconfig === "cmdbRepair") {
209
 			}else if (item.keyconfig === "cmdbRepair") {
208
         item.valueconfig = this.validateForm.controls.cmdbRepair.value;
210
         item.valueconfig = this.validateForm.controls.cmdbRepair.value;
211
+      }else if (item.keyconfig === "supportAppVersion") {
212
+        item.valueconfig = this.validateForm.controls.supportAppVersion.value;
209
       }
213
       }
210
     });
214
     });
211
     const postData = filterData;
215
     const postData = filterData;
@@ -334,6 +338,9 @@ export class SysConfigComponent implements OnInit {
334
 								case "cmdbRepair":
338
 								case "cmdbRepair":
335
 								  this.validateForm.controls.cmdbRepair.setValue(c[1] + "");
339
 								  this.validateForm.controls.cmdbRepair.setValue(c[1] + "");
336
 								  break;
340
 								  break;
341
+								case "supportAppVersion":
342
+								  this.validateForm.controls.supportAppVersion.setValue(c[1]);
343
+								  break;
337
               }
344
               }
338
             });
345
             });
339
           } else {
346
           } else {