maotao 4 months ago
parent
commit
2631c39062

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

@@ -113,9 +113,9 @@
113 113
 									<nz-form-label class="label">是否支持根据手术新建申请单</nz-form-label>
114 114
 									<nz-checkbox-group [(ngModel)]="autoCreate"></nz-checkbox-group>
115 115
 								</div>
116
-								<!--门诊支持离体并固定 -->
116
+								<!--支持离体并固定 -->
117 117
 								<div class="display_flex align-items_center mb8">
118
-									<nz-form-label class="label">门诊支持离体并固定</nz-form-label>
118
+									<nz-form-label class="label">支持离体并固定</nz-form-label>
119 119
 									<nz-checkbox-group [(ngModel)]="outpatientInVitroFixation"></nz-checkbox-group>
120 120
 								</div>
121 121
 								<!--申请单条码设置 -->

+ 41 - 5
src/app/share/pathology-add/pathology-add.component.html

@@ -122,7 +122,7 @@
122 122
 					<div class="specimen-list">
123 123
 						<div *ngFor="let item of specimenList;let index=index;" class="specimen-item">
124 124
 							<div class="specimen-name" (click)="specimenEdit($event,item,index)">
125
-								<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}({{item.specimenCode}})
125
+								<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
126 126
 							</div>
127 127
 							<span class="icon_transport transport-lajitong specimen-icon" (click)="specimenDel($event,item,index)"></span>
128 128
 						</div>
@@ -196,11 +196,22 @@
196 196
 				</nz-form-item>
197 197
 				
198 198
 				<nz-form-item class="form-item">
199
+					<nz-form-label [nzSm]="4" [nzXs]="24">快捷键入</nz-form-label>
200
+					<div class="specimen-list">
201
+						<div *ngFor="let item of fastList;let index=index;" class="select-item"
202
+							[ngClass]="{'activeClass': index == fastIndex}" (click)="fastClick($event,item,index)">
203
+							{{item.name}}
204
+						</div>
205
+					</div>
206
+				</nz-form-item>
207
+				
208
+				<nz-form-item class="form-item">
199 209
 					<nz-form-label nzRequired nzFor="specimenName" [nzSm]="3" [nzXs]="24">标本名称</nz-form-label>
200
-					<nz-form-control nzErrorTip="请输入标本名称" [nzSm]="21" [nzXs]="24">
210
+					<div class="specimen-tip" [ngClass]="{'isSpecumen':placeName}">{{placeName?placeName:''}}</div>
211
+					<nz-form-control nzErrorTip="请输入标本名称" [(nzSm)]="nzSmNum" [nzXs]="24">
201 212
 						<input nz-input maxlength="15" (ngModelChange)="specimenInput($event)" formControlName="specimenName" placeholder="请输入标本名称"/>
202 213
 					</nz-form-control>
203
-					<div class="empty-box">
214
+					<div class="empty-box" [ngClass]="{'beSpecumenEmpty':placeName, 'noSpecumenEmpty':placeName==''}">
204 215
 						<span class="name">{{specimenNameLength}}/15</span>
205 216
 						<span class="empty" (click)="emptData($event)">清空</span>
206 217
 					</div>
@@ -262,6 +273,31 @@
262 273
 						</nz-input-group>
263 274
 					</nz-form-control>
264 275
 				</nz-form-item>
276
+				<nz-form-item *ngIf="ifImmobilization">
277
+				  <nz-form-label nzRequired [nzSpan]="6" nzFor="fixationTime">固定时间</nz-form-label>
278
+				  <nz-form-control style="display: flex;align-items: center;" [nzSpan]="18" nzErrorTip="请选择固定时间!">
279
+				    <nz-input-group style="display: flex;gap: 10px">
280
+							<!-- <nz-date-picker formControlName="fixationTime" 
281
+							[nzShowTime]="{ nzFormat: 'yyyy-MM-dd HH:mm:ss' }" nzFormat="yyyy-MM-dd HH:mm:ss"
282
+							(ngModelChange)="formChangeDate($event)"></nz-date-picker> -->
283
+							<nz-date-picker formControlName="fixationDate" (ngModelChange)="fixationDateChange($event)"></nz-date-picker>
284
+							
285
+							<nz-time-picker formControlName="fixationTimes" nzFormat="HH:mm" (ngModelChange)="fixationTimeChange($event)"></nz-time-picker>
286
+						</nz-input-group>
287
+				  </nz-form-control>
288
+				</nz-form-item>
289
+				<nz-form-item *ngIf="ifImmobilization">
290
+				  <nz-form-label nzRequired [nzSpan]="8" nzFor="fixative">固定液类型</nz-form-label>
291
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择固定液类型!">
292
+				    <nz-input-group>
293
+							<nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzPlaceHolder="请选择固定液类型" formControlName="fixative">
294
+							  <ng-container *ngFor="let option of fixativeData">
295
+							    <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
296
+							  </ng-container>
297
+							</nz-select>
298
+						</nz-input-group>
299
+				  </nz-form-control>
300
+				</nz-form-item>
265 301
 				<nz-form-item>
266 302
 				  <nz-form-label nzRequired [nzSpan]="5" nzFor="jobNumber">工号</nz-form-label>
267 303
 					<nz-form-control [nzSpan]="19" nzErrorTip="请输入工号!">
@@ -419,7 +455,7 @@
419 455
 								<div>日期: {{data.inVitroTime|date:'yyyy-MM-dd'}}</div>
420 456
 							</div>
421 457
 							<div style="margin-top:10px;">
422
-								<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.organ}}{{data.specimenName}}</div>
458
+								<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
423 459
 							</div>
424 460
 						 </div>
425 461
 						 <div style="width: 30%;">
@@ -462,7 +498,7 @@
462 498
 					 </div>
463 499
 					</div>
464 500
 					<div style="margin-top:10px;padding-left: 7px;">
465
-						<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.organ}}{{data.specimenName}}</div>
501
+						<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
466 502
 					</div>
467 503
 				 <div style="height: 11px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && index+1 < printData.specimenList.length"></div>
468 504
 				</div>

+ 17 - 3
src/app/share/pathology-add/pathology-add.component.less

@@ -225,7 +225,7 @@
225 225
 	    .content {
226 226
 	      width: 100%;
227 227
 	      height: auto;
228
-	      padding: 19px 14px 0 14px;
228
+	      padding: 15px 0px 0 0px;
229 229
 	      max-height: 500px;
230 230
 	      overflow-y: auto;
231 231
 				.content-title{
@@ -241,6 +241,14 @@
241 241
 					display: flex;
242 242
 					// flex-wrap: wrap;
243 243
 					position: relative;
244
+					.specimen-tip{
245
+						display: flex;
246
+						align-items: center;
247
+						font-weight: 600;
248
+					}
249
+					.isSpecumen{
250
+						margin-right: 15px;
251
+					}
244 252
 				  .ant-form-item-label {
245 253
 				    text-align: left;
246 254
 						font-weight: 500;
@@ -252,8 +260,6 @@
252 260
 					}
253 261
 					.empty-box{
254 262
 						position: absolute;
255
-						right: 6px;
256
-						top: 8px;
257 263
 						.name{
258 264
 							color: #ccc;
259 265
 						}
@@ -262,6 +268,14 @@
262 268
 							cursor: pointer;
263 269
 						}
264 270
 					}
271
+					.beSpecumenEmpty{
272
+						right: 6px;
273
+						top: 8px;
274
+					}
275
+					.noSpecumenEmpty{
276
+						right: 6px;
277
+						top: 8px;
278
+					}
265 279
 				}
266 280
 				.specimen-list{
267 281
 					flex: 1;

+ 156 - 18
src/app/share/pathology-add/pathology-add.component.ts

@@ -69,6 +69,7 @@ export class PathologyAddComponent implements OnInit {
69 69
 		this.initForm()
70 70
 		this.getTaskTypesId()
71 71
 		this.fetchDataList()
72
+		this.getStationaryLiquid()
72 73
   }
73 74
 	
74 75
 	// 获取任务类型(病理标本)
@@ -82,6 +83,7 @@ export class PathologyAddComponent implements OnInit {
82 83
 	
83 84
 	// 获取标本配置
84 85
 	pathologyBarCode:any = 1;
86
+	ifImmobilization:any = false;
85 87
 	outpatientPathologyLabelSizeType:any = 1;
86 88
 	getPathologySys(){
87 89
 		let postData = {
@@ -101,6 +103,11 @@ export class PathologyAddComponent implements OnInit {
101 103
 					if(result.list[0].outpatientPathologyLabelSize){
102 104
 						this.outpatientPathologyLabelSizeType = result.list[0].outpatientPathologyLabelSize.value;
103 105
 					}
106
+					if(result.list[0].outpatientInVitroFixation && result.list[0].outpatientInVitroFixation==1){
107
+						this.ifImmobilization = true
108
+					}else{
109
+						this.ifImmobilization = false
110
+					}
104 111
 				}
105 112
 		  });
106 113
 	}
@@ -171,6 +178,14 @@ export class PathologyAddComponent implements OnInit {
171 178
 		  });
172 179
 	}
173 180
 	
181
+	// 固定液类型
182
+	fixativeData:any = [];
183
+	getStationaryLiquid(){
184
+		this.mainService.getDictionary("list", "fixing_liquid_type").subscribe((res) => {
185
+			this.fixativeData = res
186
+		});
187
+	}
188
+	
174 189
 	// 获取标本类型
175 190
 	getDicData(){
176 191
 		this.mainService.getDictionary("list", "specimen_type").subscribe((res) => {
@@ -287,12 +302,14 @@ export class PathologyAddComponent implements OnInit {
287 302
 					  remark: [null, []],
288 303
 						specimenName: [null, [Validators.required]]
289 304
 					});
305
+					this.fastIndex = null
290 306
 					if(item.sample){
291 307
 						setTimeout(_=>{
292 308
 							let index4 = this.specimenNameList.findIndex(i=>i.id==item.sample.id)
293 309
 							this.specimenNameIndex = index4
294 310
 							this.specimenNameName = item.sample.name
295 311
 							this.specimenNameId = Number(item.sample.id);
312
+							this.specimenNameLength = item.specimenName.length;
296 313
 							this.validateSpecimenForm.controls.specimenName.setValue(item.specimenName);
297 314
 							this.validateSpecimenForm.controls.remark.setValue(item.remark);
298 315
 							this.specimenModal = true
@@ -302,6 +319,7 @@ export class PathologyAddComponent implements OnInit {
302 319
 							this.specimenNameIndex = null
303 320
 							this.specimenNameName = ''
304 321
 							this.specimenNameId = null
322
+							this.specimenNameLength = item.specimenName.length;
305 323
 							this.validateSpecimenForm.controls.specimenName.setValue(item.specimenName);
306 324
 							this.validateSpecimenForm.controls.remark.setValue(item.remark);
307 325
 							this.specimenModal = true
@@ -328,6 +346,7 @@ export class PathologyAddComponent implements OnInit {
328 346
 								this.specimenNameIndex = index4
329 347
 								this.specimenNameName = item.sample.name
330 348
 								this.specimenNameId = Number(item.sample.id);
349
+								this.specimenNameLength = item.specimenName.length;
331 350
 								this.validateSpecimenForm.controls.specimenName.setValue(item.specimenName);
332 351
 								this.validateSpecimenForm.controls.remark.setValue(item.remark);
333 352
 								this.specimenModal = true
@@ -337,6 +356,7 @@ export class PathologyAddComponent implements OnInit {
337 356
 								this.specimenNameIndex = null
338 357
 								this.specimenNameName = ''
339 358
 								this.specimenNameId = null
359
+								this.specimenNameLength = item.specimenName.length;
340 360
 								this.validateSpecimenForm.controls.specimenName.setValue(item.specimenName);
341 361
 								this.validateSpecimenForm.controls.remark.setValue(item.remark);
342 362
 								this.specimenModal = true
@@ -383,11 +403,14 @@ export class PathologyAddComponent implements OnInit {
383 403
 	specimenDetailId:any = null;
384 404
 	specimenEdit(e,item,index){
385 405
 		this.specimenDetailId = item.id
406
+		this.fastIndex = null
386 407
 		if(item.system && item.organ){
387 408
 			this.selectType = false
388 409
 			let index1 = this.placeList.findIndex(i=>i.id==item.partSource.id)
389 410
 			this.placeIndex = index1
390 411
 			this.placeId = Number(item.partSource.id)
412
+			this.placeName = item.partSource.value==1?'':item.partSource.name
413
+			this.nzSmNum = item.partSource.value==1 ? 21 : 20
391 414
 			let index2 = this.systemList.findIndex(i=>i.id==item.system.id)
392 415
 			this.systemIndex = index2
393 416
 			this.systemId = Number(item.system.id)
@@ -409,6 +432,7 @@ export class PathologyAddComponent implements OnInit {
409 432
 		  remark: [null, []],
410 433
 			specimenName:[null, [Validators.required]],
411 434
 		});
435
+		this.fastIndex = null
412 436
 		this.specimenDetailId = null;
413 437
 		this.placeIndex = null;
414 438
 		this.systemIndex = null;
@@ -439,8 +463,12 @@ export class PathologyAddComponent implements OnInit {
439 463
 	
440 464
 	// 选择位置来源
441 465
 	placeId:any = null;
466
+	placeName:any = null;
467
+	nzSmNum:any = 21;
442 468
 	placeClick(e,item,index){
443 469
 		this.placeId = item.id
470
+		this.placeName = item.value==1?'':item.name
471
+		this.nzSmNum = item.value==1 ? 21 : 20
444 472
 		this.placeIndex = index
445 473
 	}
446 474
 	
@@ -457,6 +485,7 @@ export class PathologyAddComponent implements OnInit {
457 485
 		this.specimenNameId = null;
458 486
 		this.specimenNameIndex = null;
459 487
 		this.specimenNameName = null;
488
+		this.fastIndex = null;
460 489
 		if(this.validateSpecimenForm.value.specimenName){
461 490
 			this.validateSpecimenForm.controls.specimenName.setValue('')
462 491
 		}
@@ -472,6 +501,7 @@ export class PathologyAddComponent implements OnInit {
472 501
 		this.specimenNameId = null;
473 502
 		this.specimenNameIndex = null;
474 503
 		this.specimenNameName = null;
504
+		this.fastIndex = null;
475 505
 		if(this.validateSpecimenForm.value.specimenName){
476 506
 			this.validateSpecimenForm.controls.specimenName.setValue('')
477 507
 		}
@@ -502,6 +532,31 @@ export class PathologyAddComponent implements OnInit {
502 532
 			this.validateSpecimenForm.controls.specimenName.setValue(namn);
503 533
 	}
504 534
 	
535
+	// 选择标本名称
536
+	fastList:any = [
537
+		{name:'活检'},
538
+		{name:'切除'},
539
+		{name:'穿刺'}
540
+	];
541
+	fastIndex:any = null;
542
+	fastClick(e,item,index){
543
+		this.fastIndex = index
544
+			if(this.validateSpecimenForm.value.specimenName && this.validateSpecimenForm.value.specimenName.length){
545
+				if(item.name.length+this.validateSpecimenForm.value.specimenName.length>14){
546
+					this.message.error('字符长度不能超过15个')
547
+					return
548
+				}
549
+			}
550
+			
551
+			let namn = null
552
+			if(this.validateSpecimenForm.value.specimenName){
553
+				namn = this.validateSpecimenForm.value.specimenName + item.name
554
+			}else{
555
+				namn = item.name
556
+			}
557
+			this.validateSpecimenForm.controls.specimenName.setValue(namn);
558
+	}
559
+	
505 560
 	// 保存标本
506 561
 	btnSpLoading:boolean = false;
507 562
 	addSpLoading:boolean = false;
@@ -704,6 +759,19 @@ export class PathologyAddComponent implements OnInit {
704 759
 		this.notModal = false
705 760
 	}
706 761
 	
762
+	// 选择固定时间
763
+	fixationTime:any;
764
+	fixationData:any;
765
+	fixationDateChange(result){
766
+		this.fixationData = format(result, 'yyyy-MM-dd');
767
+		console.log(this.fixationData)
768
+	}
769
+	fixationTimeSelect:any;
770
+	fixationTimeChange(result){
771
+		this.fixationTimeSelect = format(result, 'HH:mm');
772
+		console.log(this.fixationData + ' ' + this.fixationTimeSelect)
773
+	}
774
+	
707 775
 	// 选择离体时间
708 776
 	inVitroTime:any;
709 777
 	inVitroData:any;
@@ -732,6 +800,10 @@ export class PathologyAddComponent implements OnInit {
732 800
 				...this.detailsData,
733 801
 				...this.validateForm.value,
734 802
 				inVitroTime:this.inVitroData + ' ' + this.inVitroTimeSelect+':00',
803
+				fixationTime:this.fixationData + ' ' + this.fixationTimeSelect+':00',
804
+				specimenFixingLiquid:{
805
+					id:this.validatePrintForm.value.fixative
806
+				},
735 807
 				surgeryId: this.surgeryId || "",
736 808
 				patientId: this.patientId || "",
737 809
 				hosId: this.hosId || "" ,
@@ -756,6 +828,13 @@ export class PathologyAddComponent implements OnInit {
756 828
 			delete data.operation
757 829
 			delete data.pathologySpecimenIds
758 830
 		}
831
+		if(this.ifImmobilization){
832
+			data.pathologyForm.fixationTime = this.fixationData + ' ' + this.fixationTimeSelect +':00'
833
+			data.pathologyForm.specimenFixingLiquid.id = this.validatePrintForm.value.fixative
834
+		}else{
835
+			delete data.pathologyForm.fixationTime
836
+			delete data.pathologyForm.specimenFixingLiquid
837
+		}
759 838
 		this.printLoading = true;
760 839
 		this.mainService
761 840
 		  .pathologyPrint(data)
@@ -886,14 +965,35 @@ export class PathologyAddComponent implements OnInit {
886 965
 				this.totalNum = res.totalNum
887 966
 				this.specimenNum = res.specimenNum
888 967
 				this.pathologySpecimenIds = res.ids
889
-				this.validatePrintForm = this.fb.group({
890
-				  inVitroTimes: [null, [Validators.required]],
891
-				  inVitroDate: [null, [Validators.required]],
892
-					jobNumber: [null, [Validators.required]],
893
-					name:[null, [Validators.required]],
894
-				});
968
+				
895 969
 				let date = new Date();
970
+				
896 971
 				let inVitroDate = format(date, "yyyy-MM-dd")
972
+				if(this.ifImmobilization){
973
+					this.validatePrintForm = this.fb.group({
974
+						inVitroTimes: [null, [Validators.required]],
975
+						inVitroDate: [null, [Validators.required]],
976
+						fixationTimes: [null, [Validators.required]],
977
+						fixationDate: [null, [Validators.required]],
978
+						fixative:[null, [Validators.required]],
979
+						jobNumber: [null, [Validators.required]],
980
+						name:[null, [Validators.required]],
981
+						
982
+					});
983
+					let item = this.fixativeData.find(i=>i.value==1)
984
+					this.validatePrintForm.controls.fixative.setValue(item.id);
985
+					this.validatePrintForm.controls.fixationDate.setValue(inVitroDate);
986
+					// this.validatePrintForm.controls.fixationTimes.setValue(date);
987
+					this.fixationData = inVitroDate;
988
+					this.fixationTimeSelect = format(date, 'HH:mm');
989
+				}else{
990
+					this.validatePrintForm = this.fb.group({
991
+						inVitroTimes: [null, [Validators.required]],
992
+						inVitroDate: [null, [Validators.required]],
993
+						jobNumber: [null, [Validators.required]],
994
+						name:[null, [Validators.required]],
995
+					});
996
+				}
897 997
 				this.validatePrintForm.controls.inVitroDate.setValue(inVitroDate);
898 998
 				this.validatePrintForm.controls.inVitroTimes.setValue(date);
899 999
 				this.inVitroData = inVitroDate;
@@ -927,14 +1027,33 @@ export class PathologyAddComponent implements OnInit {
927 1027
 					this.totalNum = res.totalNum
928 1028
 					this.specimenNum = res.specimenNum
929 1029
 					this.pathologySpecimenIds = res.ids
930
-					this.validatePrintForm = this.fb.group({
931
-					  inVitroTimes: [null, [Validators.required]],
932
-					  inVitroDate: [null, [Validators.required]],
933
-						jobNumber: [null, [Validators.required]],
934
-						name:[null, [Validators.required]],
935
-					});
936 1030
 					let date = new Date();
1031
+					
937 1032
 					let inVitroDate = format(date, "yyyy-MM-dd")
1033
+					if(this.ifImmobilization){
1034
+						this.validatePrintForm = this.fb.group({
1035
+							inVitroTimes: [null, [Validators.required]],
1036
+							inVitroDate: [null, [Validators.required]],
1037
+							fixationTimes: [null, [Validators.required]],
1038
+							fixationDate: [null, [Validators.required]],
1039
+							fixative:[null, [Validators.required]],
1040
+							jobNumber: [null, [Validators.required]],
1041
+							name:[null, [Validators.required]],
1042
+						});
1043
+						let item = this.fixativeData.find(i=>i.value==1)
1044
+						this.validatePrintForm.controls.fixative.setValue(item.id);
1045
+						this.validatePrintForm.controls.fixationDate.setValue(inVitroDate);
1046
+						// this.validatePrintForm.controls.fixationTimes.setValue(date);
1047
+						this.fixationData = inVitroDate;
1048
+						this.fixationTimeSelect = format(date, 'HH:mm');
1049
+					}else{
1050
+						this.validatePrintForm = this.fb.group({
1051
+							inVitroTimes: [null, [Validators.required]],
1052
+							inVitroDate: [null, [Validators.required]],
1053
+							jobNumber: [null, [Validators.required]],
1054
+							name:[null, [Validators.required]],
1055
+						});
1056
+					}
938 1057
 					this.validatePrintForm.controls.inVitroDate.setValue(inVitroDate);
939 1058
 					this.validatePrintForm.controls.inVitroTimes.setValue(date);
940 1059
 					this.inVitroData = inVitroDate;
@@ -979,14 +1098,33 @@ export class PathologyAddComponent implements OnInit {
979 1098
 					this.notModal = true
980 1099
 					this.totalNum = res.totalNum
981 1100
 					this.specimenNum = res.specimenNum
982
-					this.validatePrintForm = this.fb.group({
983
-					  inVitroTimes: [null, [Validators.required]],
984
-					  inVitroDate: [null, [Validators.required]],
985
-						jobNumber: [null, [Validators.required]],
986
-						name:[null, [Validators.required]],
987
-					});
988 1101
 					let date = new Date();
1102
+					
989 1103
 					let inVitroDate = format(date, "yyyy-MM-dd")
1104
+					if(this.ifImmobilization){
1105
+						this.validatePrintForm = this.fb.group({
1106
+							inVitroTimes: [null, [Validators.required]],
1107
+							inVitroDate: [null, [Validators.required]],
1108
+							fixationTimes: [null, [Validators.required]],
1109
+							fixationDate: [null, [Validators.required]],
1110
+							fixative:[null, [Validators.required]],
1111
+							jobNumber: [null, [Validators.required]],
1112
+							name:[null, [Validators.required]],
1113
+						});
1114
+						let item = this.fixativeData.find(i=>i.value==1)
1115
+						this.validatePrintForm.controls.fixative.setValue(item.id);
1116
+						this.validatePrintForm.controls.fixationDate.setValue(inVitroDate);
1117
+						// this.validatePrintForm.controls.fixationTimes.setValue(date);
1118
+						this.fixationData = inVitroDate;
1119
+						this.fixationTimeSelect = format(date, 'HH:mm');
1120
+					}else{
1121
+						this.validatePrintForm = this.fb.group({
1122
+							inVitroTimes: [null, [Validators.required]],
1123
+							inVitroDate: [null, [Validators.required]],
1124
+							jobNumber: [null, [Validators.required]],
1125
+							name:[null, [Validators.required]],
1126
+						});
1127
+					}
990 1128
 					this.validatePrintForm.controls.inVitroDate.setValue(inVitroDate);
991 1129
 					this.validatePrintForm.controls.inVitroTimes.setValue(date);
992 1130
 					this.inVitroData = inVitroDate;

+ 3 - 3
src/app/share/pathology-detail/pathology-detail.component.html

@@ -62,7 +62,7 @@
62 62
 						<div class="form-title font-weight-500">标本:</div>
63 63
 						<div class="form-title-box">
64 64
 							<div class="form-title cursor" *ngFor="let item of specimenList" (click)="specimenView(item)">
65
-								<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}({{item.specimenCode}})
65
+								<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
66 66
 							</div>
67 67
 						</div>
68 68
 					</div>
@@ -243,7 +243,7 @@
243 243
 								<div>日期: {{data.inVitroTime|date:'yyyy-MM-dd'}}</div>
244 244
 							</div>
245 245
 							<div style="margin-top:10px;">
246
-								<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.organ}}{{data.specimenName}}</div>
246
+								<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
247 247
 							</div>
248 248
 						 </div>
249 249
 						 <div style="width: 30%;">
@@ -286,7 +286,7 @@
286 286
 					 </div>
287 287
 					</div>
288 288
 					<div style="margin-top:10px;padding-left: 7px;">
289
-						<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.organ}}{{data.specimenName}}</div>
289
+						<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
290 290
 					</div>
291 291
 				 <div style="height: 11px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && index+1 < printData.specimenList.length"></div>
292 292
 				</div>

+ 62 - 1
src/app/views/login/login.component.ts

@@ -223,17 +223,34 @@ export class LoginComponent implements OnInit {
223 223
     let successLoginMsg = true; //登录成功提示,true是提示,false不提示
224 224
     let fwt = false;
225 225
     let ddt = false;
226
+		let bbj = false;
227
+		let mzbl = false;
228
+		let bljjb = false;
229
+		let blk = false;
226 230
     let yfang = false;
227 231
     roleMenus.forEach((e) => {
228 232
       if (e.link == "pharmacy") {
229 233
         yfang = true;
230 234
         console.log("药房端");
231 235
       } else if (e.link == "nurse") {
236
+				console.log(44,e.link)
232 237
         fwt = true;
233 238
         console.log("护士端");
234 239
       } else if (e.link == "dispatchingDesk") {
235 240
         ddt = true;
236 241
         console.log("调度台");
242
+      } else if (e.link == "specimenRoomView") {
243
+        bbj = true;
244
+        console.log("标本间端");
245
+      } else if (e.link == "pathologySample") {
246
+        mzbl = true;
247
+        console.log("门诊病理采样端");
248
+      } else if (e.link == "pathologyCommunicationBook") {
249
+        bljjb = true;
250
+        console.log("病理交接本");
251
+      } else if (e.link == "pathology") {
252
+        blk = true;
253
+        console.log("病理科端");
237 254
       }
238 255
       canLogin = true;
239 256
     });
@@ -271,7 +288,51 @@ export class LoginComponent implements OnInit {
271 288
       localStorage.setItem("user", JSON.stringify(data.user));
272 289
       this.router.navigateByUrl("/dispatchingDesk");
273 290
       return;
274
-    } else if (yfang) {
291
+    } else if (bbj) {
292
+      // 标本间端
293
+      if (successLoginMsg) {
294
+        this.msg.success("登录成功!", {
295
+          nzDuration: 1000,
296
+        });
297
+      }
298
+      successLoginMsg = false;
299
+      localStorage.setItem("user", JSON.stringify(data.user));
300
+      this.router.navigateByUrl("/specimenRoomView");
301
+      return;
302
+    }else if (mzbl) {
303
+      // 门诊病理采样端
304
+      if (successLoginMsg) {
305
+        this.msg.success("登录成功!", {
306
+          nzDuration: 1000,
307
+        });
308
+      }
309
+      successLoginMsg = false;
310
+      localStorage.setItem("user", JSON.stringify(data.user));
311
+      this.router.navigateByUrl("/pathologySample");
312
+      return;
313
+    }else if (bljjb) {
314
+      // 病理交接本
315
+      if (successLoginMsg) {
316
+        this.msg.success("登录成功!", {
317
+          nzDuration: 1000,
318
+        });
319
+      }
320
+      successLoginMsg = false;
321
+      localStorage.setItem("user", JSON.stringify(data.user));
322
+      this.router.navigateByUrl("/pathologyCommunicationBook");
323
+      return;
324
+    }else if (blk) {
325
+      // 病理科端
326
+      if (successLoginMsg) {
327
+        this.msg.success("登录成功!", {
328
+          nzDuration: 1000,
329
+        });
330
+      }
331
+      successLoginMsg = false;
332
+      localStorage.setItem("user", JSON.stringify(data.user));
333
+      this.router.navigateByUrl("/pathology");
334
+      return;
335
+    }else if (yfang) {
275 336
       // 药房端2
276 337
       if (successLoginMsg) {
277 338
         this.msg.success("登录成功!", {

+ 1 - 1
src/app/views/pathology-check/pathology-check.component.html

@@ -115,7 +115,7 @@
115 115
 										<td>{{index+1}}</td>
116 116
 										<td>{{ data.specimenCode}}</td>
117 117
 										<td>
118
-											<span *ngIf="data.partSource && data.partSource.value!=1">{{data.partSource?data.partSource.name:''}}</span>{{data.organ?data.organ.name:''}}{{data.specimenName}}
118
+											<span *ngIf="data.partSource && data.partSource.value!=1">{{data.partSource?data.partSource.name:''}}</span>{{data.specimenName}}
119 119
 										</td>
120 120
 										<td>
121 121
 											<div *ngIf="data.isScan==1">已扫描</div>

+ 1 - 1
src/app/views/pathology-communication-book/pathology-communication-book.component.html

@@ -369,7 +369,7 @@
369 369
 					<div class="form-title font-weight-500">标本:</div>
370 370
 					<div class="form-title specimen-list">
371 371
 						<div *ngFor="let item of specimenList" class="specimen-item-class form-title cursors" (click)="specimenView(item)">
372
-							<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}({{item.specimenCode}})
372
+							<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
373 373
 						</div>
374 374
 					</div>
375 375
 				</div>

+ 18 - 7
src/app/views/pathology-sample/pathology-sample.component.html

@@ -140,7 +140,7 @@
140 140
 								<nz-form-item class="form-item-right">
141 141
 									<nz-form-label nzRequired nzFor="specimenNum">标本数量</nz-form-label>
142 142
 									<nz-form-control nzErrorTip="请输入标本数量!">
143
-										<input nz-input formControlName="specimenNum" disabled placeholder="请输入标本数量" nzSize="default" />
143
+										<input nz-input formControlName="specimenNum" placeholder="请输入标本数量" nzSize="default" />
144 144
 									</nz-form-control>
145 145
 								</nz-form-item>
146 146
 							</div>
@@ -163,7 +163,7 @@
163 163
 							<div class="specimen-list">
164 164
 								<div *ngFor="let item of specimenList;let index=index;" class="specimen-item">
165 165
 									<div class="specimen-name" (click)="specimenEdit($event,item,index)">
166
-										<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}({{item.specimenCode}})
166
+										<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
167 167
 									</div>
168 168
 									<span class="icon_transport transport-lajitong specimen-icon" (click)="specimenDel($event,item,index)"></span>
169 169
 								</div>
@@ -233,7 +233,7 @@
233 233
 									<div class="form-title font-weight-500">标本:</div>
234 234
 									<div class="form-title-box-detail">
235 235
 										<div class="form-title cursors" *ngFor="let item of specimenList" (click)="specimenView(item)">
236
-											<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}({{item.specimenCode}})
236
+											<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
237 237
 										</div>
238 238
 									</div>
239 239
 								</div>
@@ -381,11 +381,22 @@
381 381
 				</nz-form-item>
382 382
 				
383 383
 				<nz-form-item class="form-item">
384
+					<nz-form-label [nzSm]="4" [nzXs]="24">快捷键入</nz-form-label>
385
+					<div class="specimen-list">
386
+						<div *ngFor="let item of fastList;let index=index;" class="select-item"
387
+							[ngClass]="{'activeClass': index == fastIndex}" (click)="fastClick($event,item,index)">
388
+							{{item.name}}
389
+						</div>
390
+					</div>
391
+				</nz-form-item>
392
+				
393
+				<nz-form-item class="form-item">
384 394
 					<nz-form-label nzRequired nzFor="specimenName" [nzSm]="3" [nzXs]="24">标本名称</nz-form-label>
385
-					<nz-form-control nzErrorTip="请输入标本名称" [nzSm]="21" [nzXs]="24">
395
+					<div class="specimen-tip" [ngClass]="{'isSpecumen':placeName}">{{placeName?placeName:''}}</div>
396
+					<nz-form-control nzErrorTip="请输入标本名称" [(nzSm)]="nzSmNum" [nzXs]="24">
386 397
 						<input nz-input maxlength="15" (ngModelChange)="specimenInput($event)" formControlName="specimenName" placeholder="请输入标本名称"/>
387 398
 					</nz-form-control>
388
-					<div class="empty-box">
399
+					<div class="empty-box" [ngClass]="{'beSpecumenEmpty':placeName, 'noSpecumenEmpty':placeName==''}">
389 400
 						<span class="name">{{specimenNameLength}}/15</span>
390 401
 						<span class="empty" (click)="emptData($event)">清空</span>
391 402
 					</div>
@@ -564,7 +575,7 @@
564 575
 							<div>日期: {{data.inVitroTime|date:'yyyy-MM-dd'}}</div>
565 576
 						</div>
566 577
 						<div style="margin-top:10px;">
567
-							<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.organ}}{{data.specimenName}}</div>
578
+							<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
568 579
 						</div>
569 580
 					 </div>
570 581
 					 <div style="width: 30%;">
@@ -607,7 +618,7 @@
607 618
 				 </div>
608 619
 				</div>
609 620
 				<div style="margin-top:10px;padding-left: 7px;">
610
-					<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.organ}}{{data.specimenName}}</div>
621
+					<div style="width: 100%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
611 622
 				</div>
612 623
 			 <div style="height: 11px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && index+1 < printData.specimenList.length"></div>
613 624
 			</div>

+ 17 - 3
src/app/views/pathology-sample/pathology-sample.component.less

@@ -885,8 +885,16 @@
885 885
 				.ant-form-item {
886 886
 				  margin-bottom: 14px;
887 887
 					display: flex;
888
-					flex-wrap: wrap;
888
+					// flex-wrap: wrap;
889 889
 					position: relative;
890
+					.specimen-tip{
891
+						display: flex;
892
+						align-items: center;
893
+						font-weight: 600;
894
+					}
895
+					.isSpecumen{
896
+						margin-right: 15px;
897
+					}
890 898
 				  .ant-form-item-label {
891 899
 				    text-align: left;
892 900
 						font-weight: 500;
@@ -898,8 +906,6 @@
898 906
 					}
899 907
 					.empty-box{
900 908
 						position: absolute;
901
-						right: 6px;
902
-						top: 8px;
903 909
 						.name{
904 910
 							color: #ccc;
905 911
 						}
@@ -908,6 +914,14 @@
908 914
 							cursor: pointer;
909 915
 						}
910 916
 					}
917
+					.beSpecumenEmpty{
918
+						right: 6px;
919
+						top: 8px;
920
+					}
921
+					.noSpecumenEmpty{
922
+						right: 6px;
923
+						top: 8px;
924
+					}
911 925
 				}
912 926
 				.specimen-list{
913 927
 					flex: 1;

+ 152 - 84
src/app/views/pathology-sample/pathology-sample.component.ts

@@ -92,13 +92,20 @@ export class PathologySampleComponent implements OnInit {
92 92
 		});
93 93
 		this.hosId = this.tool.getCurrentHospital().id;
94 94
 		this.userId = this.tool.getCurrentUserId()
95
-		this.initForm();
96 95
 		this.getProDicData()
97 96
 		this.getDicData()
98 97
 		this.getSourceData()
99 98
 		this.getSysData()
100 99
 		this.getTaskTypesId();
101 100
 		this.getStationaryLiquid();
101
+		this.validateForm = this.fb.group({
102
+			specimenGenre: [null, [Validators.required]],
103
+			intraoperativeFindings: [null, []],
104
+			project: [null, [Validators.required]],
105
+			surgicalPlan: [null, []],
106
+			specimenNum: [{value: null, disabled: true},[Validators.required]],
107
+			takePart: [null, [Validators.required]]
108
+		});
102 109
 		if(this.route.snapshot.params && this.route.snapshot.params.param){
103 110
 			this.barCode = this.route.snapshot.params.param
104 111
 			this.searchSpecimen(this.barCode,'search')
@@ -109,15 +116,89 @@ export class PathologySampleComponent implements OnInit {
109 116
   }
110 117
 	
111 118
 	// 初始化新增form表单
112
-	initForm() {
113
-		this.validateForm = this.fb.group({
114
-			specimenGenre: [null, [Validators.required]],
115
-			intraoperativeFindings: [null, []],
116
-			project: [null, [Validators.required]],
117
-			surgicalPlan: [null, []],
118
-			specimenNum: [null,[Validators.required]],
119
-			takePart: [null, [Validators.required]]
120
-		});
119
+	initForm(data) {
120
+		this.syncFlag = data.syncFlag;
121
+		if(data.syncFlag==1){
122
+			this.validateForm.removeControl('project')
123
+		}else{
124
+			this.validateForm.addControl(
125
+				'project',
126
+				new FormControl(null, Validators.required)
127
+			);
128
+		}
129
+		setTimeout(_=>{
130
+			this.detailsData = data
131
+			this.surgeryId = data.surgeryId;
132
+			if(this.detailsData.status && this.detailsData.status.value>=5){
133
+				this.viewType = 'view'
134
+			}else{
135
+				this.viewType = 'edit'
136
+			}
137
+			this.statusValue = this.detailsData.status.value
138
+			this.pathologyLogs = data.formLogDTOS
139
+			this.stepLength = this.pathologyLogs.length
140
+			
141
+			if(this.detailsData.medicalRecords){
142
+				this.medicalRecordsLength = this.detailsData.medicalRecords.length
143
+			}else{
144
+				this.medicalRecordsLength = 0
145
+			}
146
+			
147
+			if(this.detailsData.intraoperativeFindings){
148
+				this.validateForm.controls.intraoperativeFindings.setValue(this.detailsData.intraoperativeFindings);
149
+			}else{
150
+				this.validateForm.controls.intraoperativeFindings.setValue('');
151
+			}
152
+			
153
+			if(this.detailsData.surgicalPlan){
154
+				this.validateForm.controls.surgicalPlan.setValue(this.detailsData.surgicalPlan);
155
+			}else{
156
+				this.validateForm.controls.surgicalPlan.setValue('');
157
+			}
158
+			
159
+			// 检验项目
160
+			if(this.detailsData.status && this.detailsData.status.value==5){
161
+				if(this.detailsData.pathologyInspectDTOS&&this.detailsData.pathologyInspectDTOS.length>0){
162
+					this.project = this.detailsData.pathologyInspectDTOS[0].inspectProject.name
163
+				}
164
+			}else{
165
+				let str = null
166
+				if(this.detailsData.pathologyInspectDTOS){
167
+					if(data.syncFlag==1){
168
+						str = this.detailsData.pathologyInspectDTOS[0].inspectProject.name
169
+						this.project = str
170
+					}else{
171
+						str = this.detailsData.pathologyInspectDTOS[0].inspectProject.id
172
+						this.validateForm.controls.project.setValue(str);
173
+					}
174
+				}else{
175
+					if(data.syncFlag==1){
176
+						this.project = ''
177
+					}else{
178
+						this.validateForm.controls.project.setValue(str);
179
+					}
180
+				}
181
+			}
182
+			
183
+			// 标本类型
184
+			if(this.detailsData.specimenType){
185
+				this.validateForm.controls.specimenGenre.setValue(this.detailsData.specimenType.id);
186
+			}else{
187
+				let item = this.specimenData.find(i=>i.value==10)
188
+				this.validateForm.controls.specimenGenre.setValue(item.id);
189
+			}
190
+			if(this.detailsData.specimenNum){
191
+				this.validateForm.controls.specimenNum.setValue(this.detailsData.specimenNum);
192
+			}else{
193
+				this.validateForm.controls.specimenNum.setValue('');
194
+			}
195
+			if(this.detailsData.takePart){
196
+				this.validateForm.controls.takePart.setValue(this.detailsData.takePart);
197
+			}else{
198
+				this.validateForm.controls.takePart.setValue('');
199
+			}
200
+			this.getSampleData('load')
201
+		},0)
121 202
 	}
122 203
 	
123 204
 	// 新增申请单
@@ -335,7 +416,11 @@ export class PathologySampleComponent implements OnInit {
335 416
 	}
336 417
 	fixationTimeSelect:any;
337 418
 	fixationTimeChange(result){
338
-		this.fixationTimeSelect = format(result, 'HH:mm');
419
+		if(result){
420
+			this.fixationTimeSelect = format(result, 'HH:mm');
421
+		}else{
422
+			this.fixationTimeSelect = null;
423
+		}
339 424
 		console.log(this.fixationData + ' ' + this.fixationTimeSelect)
340 425
 	}
341 426
 	
@@ -358,6 +443,10 @@ export class PathologySampleComponent implements OnInit {
358 443
 	printLoading:any = false;
359 444
 	submitVerificationForm(){
360 445
 		let that = this
446
+		if(!this.fixationTimeSelect && this.fixationTimeSelect == null){
447
+			this.message.error('请选择固定时间')
448
+			return
449
+		}
361 450
 		for (const i in this.validatePrintForm.controls) {
362 451
 		  this.validatePrintForm.controls[i].markAsDirty();
363 452
 		  this.validatePrintForm.controls[i].updateValueAndValidity();
@@ -459,78 +548,8 @@ export class PathologySampleComponent implements OnInit {
459 548
 		this.mainService.getFetchData("data", "pathologyForm", id)
460 549
 		.subscribe((data) => {
461 550
 			this.isSpinning = false;
462
-			this.detailsData = data.data;
463
-			this.syncFlag = data.data.syncFlag;
464
-			this.surgeryId = data.data.surgeryId;
465
-			if(this.detailsData.status && this.detailsData.status.value==5){
466
-				this.viewType = 'view'
467
-			}else{
468
-				this.viewType = 'edit'
469
-			}
470
-			this.statusValue = this.detailsData.status.value
471
-			this.pathologyLogs = data.data.formLogDTOS
472
-			this.stepLength = this.pathologyLogs.length
473
-			
474
-			if(this.detailsData.medicalRecords){
475
-				this.medicalRecordsLength = this.detailsData.medicalRecords.length
476
-			}else{
477
-				this.medicalRecordsLength = 0
478
-			}
479
-
480
-			if(this.detailsData.intraoperativeFindings){
481
-				this.validateForm.controls.intraoperativeFindings.setValue(this.detailsData.intraoperativeFindings);
482
-			}else{
483
-				this.validateForm.controls.intraoperativeFindings.setValue('');
484
-			}
485
-			
486
-			if(this.detailsData.surgicalPlan){
487
-				this.validateForm.controls.surgicalPlan.setValue(this.detailsData.surgicalPlan);
488
-			}else{
489
-				this.validateForm.controls.surgicalPlan.setValue('');
490
-			}
491
-			
492
-			// 检验项目
493
-			if(this.detailsData.status && this.detailsData.status.value==5){
494
-				if(this.detailsData.pathologyInspectDTOS&&this.detailsData.pathologyInspectDTOS.length>0){
495
-					this.project = this.detailsData.pathologyInspectDTOS[0].inspectProject.name
496
-				}
497
-			}else{
498
-				let str = null
499
-				if(this.detailsData.pathologyInspectDTOS){
500
-					if(this.syncFlag==1){
501
-						str = this.detailsData.pathologyInspectDTOS[0].inspectProject.name
502
-						this.project = str
503
-					}else{
504
-						str = this.detailsData.pathologyInspectDTOS[0].inspectProject.id
505
-						this.validateForm.controls.project.setValue(str);
506
-					}
507
-				}else{
508
-					if(this.syncFlag==1){
509
-						this.project = ''
510
-					}else{
511
-						this.validateForm.controls.project.setValue(str);
512
-					}
513
-				}
514
-			}
515
-
516
-			// 标本类型
517
-			if(this.detailsData.specimenType){
518
-				this.validateForm.controls.specimenGenre.setValue(this.detailsData.specimenType.id);
519
-			}else{
520
-				let item = this.specimenData.find(i=>i.value==10)
521
-				this.validateForm.controls.specimenGenre.setValue(item.id);
522
-			}
523
-			if(this.detailsData.specimenNum){
524
-				this.validateForm.controls.specimenNum.setValue(this.detailsData.specimenNum);
525
-			}else{
526
-				this.validateForm.controls.specimenNum.setValue('');
527
-			}
528
-			if(this.detailsData.takePart){
529
-				this.validateForm.controls.takePart.setValue(this.detailsData.takePart);
530
-			}else{
531
-				this.validateForm.controls.takePart.setValue('');
532
-			}
533
-			this.getSampleData('load')
551
+			this.initForm(data.data);
552
+			// this.detailsData = data.data;
534 553
 		});
535 554
 	}
536 555
 	
@@ -637,6 +656,7 @@ export class PathologySampleComponent implements OnInit {
637 656
 							this.specimenNameIndex = index4
638 657
 							this.specimenNameName = item.sample.name
639 658
 							this.specimenNameId = Number(item.sample.id);
659
+							this.specimenNameLength = item.specimenName.length;
640 660
 							this.validateSpecimenForm.controls.specimenName.setValue(item.specimenName);
641 661
 						},100)
642 662
 					}
@@ -665,6 +685,7 @@ export class PathologySampleComponent implements OnInit {
665 685
 								this.specimenNameIndex = index4
666 686
 								this.specimenNameName = item.sample.name
667 687
 								this.specimenNameId = Number(item.sample.id);
688
+								this.specimenNameLength = item.specimenName.length;
668 689
 								this.validateSpecimenForm.controls.specimenName.setValue(item.specimenName);
669 690
 							},100)
670 691
 						}
@@ -714,12 +735,15 @@ export class PathologySampleComponent implements OnInit {
714 735
 	// 编辑标本
715 736
 	specimenDetailId:any = null;
716 737
 	specimenEdit(e,item,index){
738
+		this.fastIndex = null
717 739
 		this.specimenDetailId = item.id
718 740
 		if(item.system && item.organ){
719 741
 			this.selectType = false
720 742
 			let index1 = this.placeList.findIndex(i=>i.id==item.partSource.id)
721 743
 			this.placeIndex = index1
722 744
 			this.placeId = Number(item.partSource.id)
745
+			this.placeName = item.partSource.value==1?'':item.partSource.name
746
+			this.nzSmNum = item.partSource.value==1 ? 21 : 20
723 747
 			let index2 = this.systemList.findIndex(i=>i.id==item.system.id)
724 748
 			this.systemIndex = index2
725 749
 			this.systemId = Number(item.system.id)
@@ -741,6 +765,7 @@ export class PathologySampleComponent implements OnInit {
741 765
 		  remark: [null, []],
742 766
 			specimenName:[null, [Validators.required]],
743 767
 		});
768
+		this.fastIndex = null;
744 769
 		this.specimenDetailId = null;
745 770
 		this.placeIndex = null;
746 771
 		this.systemIndex = null;
@@ -771,8 +796,12 @@ export class PathologySampleComponent implements OnInit {
771 796
 	
772 797
 	// 选择位置来源
773 798
 	placeId:any = null;
799
+	placeName:any = null;
800
+	nzSmNum:any = 21;
774 801
 	placeClick(e,item,index){
775 802
 		this.placeId = item.id
803
+		this.placeName = item.value==1?'':item.name
804
+		this.nzSmNum = item.value==1 ? 21 : 20
776 805
 		this.placeIndex = index
777 806
 	}
778 807
 	
@@ -789,6 +818,7 @@ export class PathologySampleComponent implements OnInit {
789 818
 		this.specimenNameId = null;
790 819
 		this.specimenNameIndex = null;
791 820
 		this.specimenNameName = null;
821
+		this.fastIndex = null;
792 822
 		if(this.validateSpecimenForm.value.specimenName){
793 823
 			this.validateSpecimenForm.controls.specimenName.setValue('')
794 824
 		}
@@ -804,6 +834,7 @@ export class PathologySampleComponent implements OnInit {
804 834
 		this.specimenNameId = null;
805 835
 		this.specimenNameIndex = null;
806 836
 		this.specimenNameName = null;
837
+		this.fastIndex = null;
807 838
 		if(this.validateSpecimenForm.value.specimenName){
808 839
 			this.validateSpecimenForm.controls.specimenName.setValue('')
809 840
 		}
@@ -834,6 +865,31 @@ export class PathologySampleComponent implements OnInit {
834 865
 			this.validateSpecimenForm.controls.specimenName.setValue(namn);
835 866
 	}
836 867
 	
868
+	// 选择标本名称
869
+	fastList:any = [
870
+		{name:'活检'},
871
+		{name:'切除'},
872
+		{name:'穿刺'}
873
+	];
874
+	fastIndex:any = null;
875
+	fastClick(e,item,index){
876
+		this.fastIndex = index
877
+			if(this.validateSpecimenForm.value.specimenName && this.validateSpecimenForm.value.specimenName.length){
878
+				if(item.name.length+this.validateSpecimenForm.value.specimenName.length>14){
879
+					this.message.error('字符长度不能超过15个')
880
+					return
881
+				}
882
+			}
883
+			
884
+			let namn = null
885
+			if(this.validateSpecimenForm.value.specimenName){
886
+				namn = this.validateSpecimenForm.value.specimenName + item.name
887
+			}else{
888
+				namn = item.name
889
+			}
890
+			this.validateSpecimenForm.controls.specimenName.setValue(namn);
891
+	}
892
+	
837 893
 	// 保存标本
838 894
 	btnSpLoading:boolean = false;
839 895
 	addSpLoading:boolean = false;
@@ -1117,6 +1173,10 @@ export class PathologySampleComponent implements OnInit {
1117 1173
 			that.validateForm.controls[i].updateValueAndValidity();
1118 1174
 		}
1119 1175
 		if (that.validateForm.invalid) return;
1176
+		// if(this.validateForm.controls.takePart.value==''){
1177
+		// 	this.message.error('请输入采取部位')
1178
+		// 	return
1179
+		// }
1120 1180
 		if(this.specimenList.length==0){
1121 1181
 			this.message.error('标本不能为空')
1122 1182
 			return
@@ -1434,7 +1494,15 @@ export class PathologySampleComponent implements OnInit {
1434 1494
 			this.tableLoading = false
1435 1495
 			this.specimenCode = null
1436 1496
 			if(res.status==200){
1437
-				let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
1497
+				let item = null
1498
+				let str = null
1499
+				if(e.indexOf(':')!=-1){
1500
+					str = e.split(':')
1501
+					item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == str[1])
1502
+				}else{
1503
+					item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
1504
+				}
1505
+				// let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
1438 1506
 				if(item.fixationTime){
1439 1507
 					this.fixationError = '该标本已经固定过'
1440 1508
 				}else{

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

@@ -371,7 +371,7 @@
371 371
 					<div class="form-title font-weight-500">标本:</div>
372 372
 					<div class="form-title specimen-list">
373 373
 						<div *ngFor="let item of specimenList" class="specimen-item-class form-title cursors" (click)="specimenView(item)">
374
-							<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}({{item.specimenCode}})
374
+							<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
375 375
 						</div>
376 376
 					</div>
377 377
 				</div>

+ 2 - 2
src/app/views/pathologyScan/pathologyScan.component.html

@@ -53,7 +53,7 @@
53 53
 										<td>{{ data.takePart}}</td>
54 54
 										<td>
55 55
 											<div *ngFor="let item of data.pathologySpecimenDTOList">
56
-												<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}
56
+												<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}
57 57
 											</div>
58 58
 										</td>
59 59
 									</tr>
@@ -114,7 +114,7 @@
114 114
 										<td>{{index+1}}</td>
115 115
 										<td>{{ data.specimenCode}}</td>
116 116
 										<td>
117
-											<span *ngIf="data.partSource && data.partSource.value!=1">{{data.partSource?data.partSource.name:''}}</span>{{data.organ?data.organ.name:''}}{{data.specimenName}}
117
+											<span *ngIf="data.partSource && data.partSource.value!=1">{{data.partSource?data.partSource.name:''}}</span>{{data.specimenName}}
118 118
 										</td>
119 119
 										<td *ngIf="dataType=='receive'">
120 120
 											<div *ngIf="data.isScan==1">已接收</div>

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

@@ -471,7 +471,7 @@
471 471
 <!-- 标本接收 -->
472 472
 <div class="pathology-box display_flex align-items_center justify-content_flex-center" *ngIf="fixationModal">
473 473
 	<div class="pathology-content width-80">
474
-		<div class="title">标本接收固定
474
+		<div class="title">标本接收固定
475 475
 		<i class="icon_transport transport-guanbi" (click)="hideSpecimenModal()"></i></div>
476 476
 		<div class="content">
477 477
 			<div class="content-item boder-right">
@@ -525,7 +525,8 @@
525 525
 			</div>
526 526
 			
527 527
 			<div class="content-item">
528
-				<div class="center">提示:本申请单内共有<span class="red">{{totalNum}}</span>只标本固定,已固定<span class="red">{{fixationNum}}</span>份还需固定<span class="red">{{specimenNum}}</span>份</div>
528
+				<!-- <div class="center">提示:本申请单内共有<span class="red">{{totalNum}}</span>只标本固定,已固定<span class="red">{{fixationNum}}</span>份还需固定<span class="red">{{specimenNum}}</span>份</div> -->
529
+				<div class="center">提示:本申请单内共有<span class="red">{{codeData.specimenNum}}</span>只标本</div>
529 530
 				<div class="disp-fl">
530 531
 					<div class="width-120">标本条码:</div>
531 532
 					<input nz-input id="specimen" [(ngModel)]="specimenCode" (ngModelChange)="codeChange($event)"/>
@@ -548,7 +549,7 @@
548 549
 										<td>{{index+1}}</td>
549 550
 										<td>{{ data.specimenCode}}</td>
550 551
 										<td>
551
-											<span *ngIf="data.partSource && data.partSource.value!=1">{{data.partSource?data.partSource.name:''}}</span>{{data.organ?data.organ.name:''}}{{data.specimenName}}
552
+											<span *ngIf="data.partSource && data.partSource.value!=1">{{data.partSource?data.partSource.name:''}}</span>{{data.specimenName}}
552 553
 										</td>
553 554
 									</tr>
554 555
 								</tbody>
@@ -573,11 +574,11 @@
573 574
 <!-- 标本固定信息 -->
574 575
 <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="verificationMoadl">
575 576
 	<div class="modalBody no-width">
576
-		<div class="title">标本固定信息<i class="icon_transport transport-guanbi" (click)="hideVerificationModal()"></i>
577
+		<div class="title">{{!ifFixType?'标本固定信息':'标本接受收信息'}}<i class="icon_transport transport-guanbi" (click)="hideVerificationModal()"></i>
577 578
 		</div>
578 579
 		<div class="content">
579 580
 			<form nz-form [formGroup]="validateVerificationForm" class="addForm" (ngSubmit)="submitVerificationForm()">
580
-				<nz-form-item>
581
+				<nz-form-item *ngIf="!ifFixType">
581 582
 				  <nz-form-label nzRequired [nzSpan]="6" nzFor="fixationTime">固定时间</nz-form-label>
582 583
 				<!--  <nz-form-control [nzSpan]="18" nzErrorTip="请选择固定时间!">
583 584
 				    <nz-input-group>
@@ -595,18 +596,18 @@
595 596
 					</nz-form-control>
596 597
 				</nz-form-item>
597 598
 				<nz-form-item>
598
-				  <nz-form-label nzRequired [nzSpan]="6" nzFor="jobNumber">工号</nz-form-label>
599
-					<nz-form-control [nzSpan]="18" nzErrorTip="请输入工号!">
600
-						<input nz-input (ngModelChange)="numberChange($event,1)" formControlName="jobNumber" placeholder="请输入工号" nzSize="default" />
599
+				  <nz-form-label nzRequired [nzSpan]="6" nzFor="jobNumber">医生工号</nz-form-label>
600
+					<nz-form-control [nzSpan]="18" nzErrorTip="请输入医生工号!">
601
+						<input nz-input (ngModelChange)="numberChange($event,1)" formControlName="jobNumber" placeholder="请输入医生工号" nzSize="default" />
601 602
 					</nz-form-control>
602 603
 				</nz-form-item>
603 604
 				<nz-form-item>
604
-				  <nz-form-label nzRequired [nzSpan]="6" nzFor="name">姓名</nz-form-label>
605
-					<nz-form-control [nzSpan]="18" nzErrorTip="请输入姓名!">
606
-						<input nz-input disabled formControlName="name" placeholder="请输入姓名" nzSize="default" />
605
+				  <nz-form-label nzRequired [nzSpan]="6" nzFor="name">医生姓名</nz-form-label>
606
+					<nz-form-control [nzSpan]="18" nzErrorTip="请输入医生姓名!">
607
+						<input nz-input disabled formControlName="name" placeholder="请输入医生姓名" nzSize="default" />
607 608
 					</nz-form-control>
608 609
 				</nz-form-item>
609
-<!-- 				<nz-form-item>
610
+				<nz-form-item>
610 611
 				  <nz-form-label nzRequired [nzSpan]="6" nzFor="nurseJobNumber">护士工号</nz-form-label>
611 612
 					<nz-form-control [nzSpan]="18" nzErrorTip="请输入护士工号!">
612 613
 						<input nz-input (ngModelChange)="numberChange($event,2)" formControlName="nurseJobNumber" placeholder="请输入护士工号" nzSize="default" />
@@ -617,8 +618,8 @@
617 618
 					<nz-form-control [nzSpan]="18" nzErrorTip="请输入护士姓名!">
618 619
 						<input nz-input disabled formControlName="nurseName" placeholder="请输入护士姓名" nzSize="default" />
619 620
 					</nz-form-control>
620
-				</nz-form-item> -->
621
-				<nz-form-item>
621
+				</nz-form-item>
622
+				<nz-form-item *ngIf="!ifFixType">
622 623
 				  <nz-form-label nzRequired [nzSpan]="8" nzFor="fixative">固定液类型</nz-form-label>
623 624
 				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择固定液类型!">
624 625
 				    <nz-input-group>
@@ -704,7 +705,7 @@
704 705
 					<div class="form-title font-weight-500">标本:</div>
705 706
 					<div class="form-title specimen-list">
706 707
 						<div *ngFor="let item of specimenList" class="specimen-item-class" (click)="specimenView(item)">
707
-							<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.organ?item.organ.name:''}}{{item.specimenName}}({{item.specimenCode}})
708
+							<span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
708 709
 						</div>
709 710
 					</div>
710 711
 				</div>
@@ -721,11 +722,13 @@
721 722
 							</nz-step>
722 723
 							<ng-template #tpl>
723 724
 								<div *ngIf="index==pathologyLogs.length-1" class="step-size">
724
-									<div style="color: #49B856;">{{item.operationType?item.operationType.name:''}}  {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
725
+									<div style="color: #49B856;" *ngIf="item.doctorDTO"> {{item.operationType?item.operationType.name:''}} {{item.doctorDTO?item.doctorDTO.name:''}} {{item.nurseDTO?item.nurseDTO.name:''}} </div>
726
+									<div style="color: #49B856;" *ngIf="!item.doctorDTO">{{item.operationType?item.operationType.name:''}}  {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
725 727
 									<div style="color:#333;">{{item.createTime|date:'yyyy-MM-dd HH:mm:ss'}} {{item.operationUserDto?item.operationUserDto.name:''}}</div>
726 728
 								</div>
727 729
 								<div *ngIf="index!=pathologyLogs.length-1" class="step-size">
728
-									<div>{{item.operationType?item.operationType.name:''}}  {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
730
+									<div *ngIf="item.doctorDTO">{{item.operationType?item.operationType.name:''}}  {{item.doctorDTO?item.doctorDTO.name:''}} {{item.nurseDTO?item.nurseDTO.name:''}}</div>
731
+									<div *ngIf="!item.doctorDTO">{{item.operationType?item.operationType.name:''}}  {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
729 732
 									<div>{{item.createTime|date:'yyyy-MM-dd HH:mm:ss'}} {{item.operationUserDto?item.operationUserDto.name:''}}</div>
730 733
 								</div>
731 734
 							</ng-template>

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

@@ -603,7 +603,7 @@
603 603
 	    .content {
604 604
 	      width: 100%;
605 605
 	      // height: auto;
606
-	      padding: 19px 14px 0 14px;
606
+	      padding: 15px 0px 0 0px;
607 607
 	      // max-height: 500px;
608 608
 	      // overflow-y: auto;
609 609
 				.ant-select{

+ 113 - 32
src/app/views/specimen-room-view/specimen-room-view.component.ts

@@ -181,6 +181,7 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
181 181
 	
182 182
 	// 标本条码搜索
183 183
 	codeDataSpecimenList:any = null;
184
+	fixType:any = false
184 185
 	searchSpecimen(e){
185 186
 		if(!this.barCode){
186 187
 			return
@@ -198,11 +199,20 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
198 199
 			this.isSpinning = false
199 200
 			if(res.status==200){
200 201
 				this.codeData = res.data[0]
201
-				let item = this.codeData.pathologySpecimenDTOList.find(i=>i.specimenCode == e)
202
+				this.codeDataSpecimenList = this.codeData.pathologySpecimenDTOList
203
+				// this.codeDataSpecimenList = this.codeData.pathologySpecimenDTOList.filter(i=>!i.fixationTime)
204
+				let item = null
205
+				let str = null
206
+				if(e.indexOf(':')!=-1){
207
+					str = e.split(':')
208
+					item = this.codeData.pathologySpecimenDTOList.find(i=>i.specimenCode == str[1])
209
+				}else{
210
+					item = this.codeData.pathologySpecimenDTOList.find(i=>i.specimenCode == e)
211
+				}
202 212
 				if(!item.fixationTime && this.codeData.pathologyFormType==0){
203 213
 					if(this.codeData.status.value==2 || this.codeData.status.value==3 ||
204 214
 						this.codeData.status.value==4){
205
-							this.codeDataSpecimenList = this.codeData.pathologySpecimenDTOList.filter(i=>!i.fixationTime)
215
+							// this.fixType = false
206 216
 							if(this.codeData.pathologyInspectDTOS){
207 217
 								this.project = this.codeData.pathologyInspectDTOS.map(i=>{
208 218
 									return i.inspectProject.name
@@ -216,7 +226,28 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
216 226
 					this.fixationError = null
217 227
 					this.searchMsg = null
218 228
 				}else if(item.fixationTime && this.codeData.pathologyFormType==0){
219
-					this.viewDetail(this.codeData,'4')
229
+					if(item.storageTime){
230
+						this.viewDetail(this.codeData,'4')
231
+					}else{
232
+						if(this.codeData.pathologyInspectDTOS){
233
+							this.project = this.codeData.pathologyInspectDTOS.map(i=>{
234
+								return i.inspectProject.name
235
+							})
236
+							this.project = this.project.join('、')
237
+						}
238
+						this.getFixationNum(this.codeData.id)
239
+					}
240
+					// if(this.codeData.status.value==2 || this.codeData.status.value==3 || this.codeData.status.value==4){
241
+					// 	if(this.codeData.pathologyInspectDTOS){
242
+					// 		this.project = this.codeData.pathologyInspectDTOS.map(i=>{
243
+					// 			return i.inspectProject.name
244
+					// 		})
245
+					// 		this.project = this.project.join('、')
246
+					// 	}
247
+					// 	this.getFixationNum(this.codeData.id)
248
+					// }else{
249
+					// 	this.viewDetail(this.codeData,'4')
250
+					// }
220 251
 					this.barCode = null
221 252
 					this.fixationError = null
222 253
 					this.searchMsg = null
@@ -260,33 +291,63 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
260 291
 	}
261 292
 	fixationTimeSelect:any;
262 293
 	fixationTimeChange(result){
263
-		this.fixationTimeSelect = format(result, 'HH:mm');
294
+		if(result){
295
+			this.fixationTimeSelect = format(result, 'HH:mm');
296
+		}else{
297
+			this.fixationTimeSelect = null
298
+		}
264 299
 		console.log(this.fixationData + ' ' + this.fixationTimeSelect)
265 300
 	}
266 301
 
267 302
 	// 确定接受固定标本
268 303
 	startDate:any;
304
+	ifFixType:any = false;
269 305
 	submitFixationForm(){
306
+		let item = this.codeDataSpecimenList.filter(i=>!i.fixationTime)
307
+		console.log(1111,item)
270 308
 		this.validateVerificationForm = this.fb.group({
271 309
 		  fixationTimes: [null, [Validators.required]],
272 310
 		  fixationDate: [null, [Validators.required]],
273 311
 			jobNumber: [null, [Validators.required]],
274 312
 			name:[null, [Validators.required]],
275
-			// nurseJobNumber: [null, [Validators.required]],
276
-			// nurseName:[null, [Validators.required]],
313
+			nurseJobNumber: [null, [Validators.required]],
314
+			nurseName:[null, [Validators.required]],
277 315
 			fixative:[null, [Validators.required]],
278 316
 		});
279 317
 		let date = new Date();
280 318
 		let inVitroDate = format(date, "yyyy-MM-dd")
281
-		this.validateVerificationForm.controls.fixationDate.setValue(inVitroDate);
282
-		this.validateVerificationForm.controls.fixationTimes.setValue(date);
283
-		this.fixationData = inVitroDate;
284
-		this.fixationTimeSelect = format(date, 'HH:mm');
319
+		if(item.length==0){
320
+			this.ifFixType = true
321
+			this.validateVerificationForm.removeControl('fixationTimes')
322
+			this.validateVerificationForm.removeControl('fixationDate')
323
+			this.validateVerificationForm.removeControl('fixative')
324
+		}else{
325
+			this.ifFixType = false
326
+			this.validateVerificationForm.addControl(
327
+				'fixationTimes',
328
+				new FormControl(null, Validators.required)
329
+			);
330
+			this.validateVerificationForm.addControl(
331
+				'fixationDate',
332
+				new FormControl(null, Validators.required)
333
+			);
334
+			this.validateVerificationForm.addControl(
335
+				'fixative',
336
+				new FormControl(null, Validators.required)
337
+			);
338
+			this.validateVerificationForm.controls.fixationDate.setValue(inVitroDate);
339
+			// this.validateVerificationForm.controls.fixationTimes.setValue(date);
340
+			this.fixationData = inVitroDate;
341
+			// this.fixationTimeSelect = format(date, 'HH:mm');
342
+		}
343
+
285 344
 		this.btnLoading = true
286 345
 		this.mainService.getDictionary("list", "fixing_liquid_type").subscribe((res) => {
287 346
 			this.fixativeData = res
288
-			let item = this.fixativeData.find(i=>i.value==1)
289
-			this.validateVerificationForm.controls.fixative.setValue(item.id);
347
+			if(!this.ifFixType){
348
+				let item = this.fixativeData.find(i=>i.value==1)
349
+				this.validateVerificationForm.controls.fixative.setValue(item.id);
350
+			}
290 351
 			this.btnLoading = false
291 352
 			this.verificationMoadl = true
292 353
 		});
@@ -515,12 +576,12 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
515 576
 
516 577
 	// 输入工号查询姓名
517 578
 	handoverUserId:any = null; //医生工号
518
-	handoverNurseUserId:any = null; //护士工号
579
+	nurseId:any = null; //护士工号
519 580
 	numberChange(e,type){
520
-		if(e.length < 3) {
521
-			this.validateVerificationForm.controls.name.setValue('');
522
-			return
523
-		}
581
+		// if(e.length < 3) {
582
+		// 	this.validateVerificationForm.controls.name.setValue('');
583
+		// 	return
584
+		// }
524 585
 		let query = {
525 586
 		  account: e
526 587
 		};
@@ -533,15 +594,7 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
533 594
 						this.handoverUserId = data.userId
534 595
 					}else{
535 596
 						this.validateVerificationForm.controls.nurseName.setValue(data.userName);
536
-						this.handoverNurseUserId = data.userId
537
-					}
538
-				}else{
539
-					if(type==1){
540
-						this.validateVerificationForm.controls.name.setValue('');
541
-						this.handoverUserId = null
542
-					}else{
543
-						this.validateVerificationForm.controls.nurseName.setValue('');
544
-						this.handoverNurseUserId = null
597
+						this.nurseId = data.userId
545 598
 					}
546 599
 				}
547 600
 		  });
@@ -549,11 +602,21 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
549 602
 
550 603
 	// 提交固定标本接收
551 604
 	submitVerificationForm(){
605
+		if(!this.ifFixType && !this.fixationTimeSelect && this.fixationTimeSelect == null){
606
+			this.message.error('请选择固定时间')
607
+			return
608
+		}
552 609
 		for (const i in this.validateVerificationForm.controls) {
553 610
 		  this.validateVerificationForm.controls[i].markAsDirty();
554 611
 		  this.validateVerificationForm.controls[i].updateValueAndValidity();
555 612
 		}
556 613
 		if (this.validateVerificationForm.invalid) return;
614
+		let arr = []
615
+		// if(!this.ifFixType){
616
+		// 	arr = this.codeDataSpecimenList.filter(i=>!i.fixationTime)
617
+		// }else{
618
+		// 	arr = this.codeDataSpecimenList.filter(i=>i.fixationTime)
619
+		// }
557 620
 		let str = this.codeDataSpecimenList.map(i=>{
558 621
 			return i.specimenCode
559 622
 		})
@@ -561,13 +624,21 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
561 624
 			id:this.codeData.id,
562 625
 			specimenDeptId:this.validateForm.value.specimen,
563 626
 			specimenFixingLiquid:{
564
-				id:this.validateVerificationForm.value.fixative
627
+				id:''
565 628
 			},
566 629
 			specimenCodes:str.join(','),
567
-			fixationTime:this.fixationData + ' ' + this.fixationTimeSelect+':00',
630
+			fixationTime:'',
568 631
 			hosId: this.hosId || "" ,
569
-			handoverUserId:this.handoverUserId
632
+			doctor:this.handoverUserId,
633
+			nurse:this.nurseId
570 634
 		};
635
+		if(!this.ifFixType){
636
+			data.specimenFixingLiquid.id = this.validateVerificationForm.value.fixative
637
+			data.fixationTime = this.fixationData + ' ' + this.fixationTimeSelect+':00'
638
+		}else{
639
+			delete data.specimenFixingLiquid.id
640
+			delete data.fixationTime
641
+		}
571 642
 		this.btnInfoLoading = true;
572 643
 		this.mainService
573 644
 		.simplePost("addData", "pathologyForm", data)
@@ -635,12 +706,22 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
635 706
 			this.tableLoading = false
636 707
 			this.specimenCode = null
637 708
 			if(res.status==200){
638
-				let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
639
-				if(item.fixationTime){
640
-					this.fixationError = '该标本已经固定过'
709
+				let item = null
710
+				let str = null
711
+				if(e.indexOf(':')!=-1){
712
+					str = e.split(':')
713
+					item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == str[1])
714
+				}else{
715
+					item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
716
+				}
717
+				// let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
718
+				if(item.fixationTime && item.storageTime){
719
+					this.fixationError = '该标本已存放标本间'
641 720
 				}else{
642 721
 					this.getFixationNum(res.data[0].id)
643 722
 					this.codeData = res.data[0]
723
+					// this.codeDataSpecimenList = this.codeData.pathologySpecimenDTOList.filter(i=>!i.fixationTime)
724
+					this.codeDataSpecimenList = this.codeData.pathologySpecimenDTOList
644 725
 					this.fixationError = null
645 726
 				}
646 727
 			}else{