Bläddra i källkod

病理标本优化

maotao 5 månader sedan
förälder
incheckning
49569451e9
20 ändrade filer med 279 tillägg och 58 borttagningar
  1. 12 1
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.html
  2. 4 0
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.less
  3. 30 1
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts
  4. 1 1
      src/app/components/configurationCenter/configuration-key/configuration-key.component.html
  5. 7 0
      src/app/services/tool.service.ts
  6. 48 3
      src/app/share/pathology-add/pathology-add.component.html
  7. 11 9
      src/app/share/pathology-add/pathology-add.component.ts
  8. 3 4
      src/app/share/pathology-detail/pathology-detail.component.html
  9. 1 0
      src/app/share/pathology-detail/pathology-detail.component.less
  10. 4 2
      src/app/views/hushijiandan/hushijiandan.component.html
  11. 19 6
      src/app/views/hushijiandan/hushijiandan.component.ts
  12. 19 1
      src/app/views/incident-management/incident-management.component.html
  13. 46 4
      src/app/views/incident-management/incident-management.component.ts
  14. 1 1
      src/app/views/office-management/office-management.component.ts
  15. 10 0
      src/app/views/repository-manage/repository-manage.component.html
  16. 12 2
      src/app/views/repository-manage/repository-manage.component.ts
  17. 5 8
      src/app/views/specimen-room-view/specimen-room-view.component.html
  18. 6 1
      src/app/views/specimen-room-view/specimen-room-view.component.less
  19. 30 8
      src/app/views/specimen-room-view/specimen-room-view.component.ts
  20. 10 6
      src/app/views/users-management/users-management.component.ts

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

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

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

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

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

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

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

@@ -5,7 +5,7 @@
5 5
         <div class="TaskTypeManagement">
6 6
           <div class="taskTypeInfo">
7 7
            <div class="top">
8
-              <div class="item" (click)="tabModal('characteristics')" [ngClass]="{'items':tabModalName=='characteristics'}">
8
+              <div class="item" [ngClass]="{'items':tabModalName=='characteristics'}">
9 9
                 {{hosName}}
10 10
               </div>
11 11
           <!--    <div class="item" (click)="tabModal('automaticOrderCreation')" [ngClass]="{'items':tabModalName=='automaticOrderCreation'}">

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

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

+ 48 - 3
src/app/share/pathology-add/pathology-add.component.html

@@ -51,9 +51,9 @@
51 51
 				</div>
52 52
 				
53 53
 				<div class="content-item">
54
-					<nz-form-item class="form-item" *ngIf="statusValue==1">
54
+					<nz-form-item class="form-item" *ngIf="detailsData.pathologyFormType==null">
55 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 57
 							<nz-radio-group formControlName="pathologyFormType">
58 58
 								<label nz-radio [nzValue]="1">术中快速病理检查申请单</label>
59 59
 								<label nz-radio [nzValue]="0">病理检查申请单</label>
@@ -280,7 +280,7 @@
280 280
   <!-- 打印 -->
281 281
   <div id="report" style="display: none;">
282 282
 		<div class="monad">
283
-			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1" style="border: 1px solid #AAAAAA;
283
+			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && operation != 'addPrint'" style="border: 1px solid #AAAAAA;
284 284
 				border-radius: 5px;font-size: 12px;">
285 285
 				 <div style="display: flex;">
286 286
 					 <img style="width: 50%;height: 70px;border-radius: 5px;" [src]="printData.applyBarCode" alt="">
@@ -323,8 +323,53 @@
323 323
 					<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;padding:1px;">日期</div>
324 324
 					<div style="width:80%;box-sizing: border-box;padding:1px;border-right: 1px solid #fff;">{{printData.specimenList[0].inVitroTime|date:'yyyy-MM-dd'}}</div>
325 325
 				</div>
326
+			</div>
327
+			
328
+			<div *ngIf="printData && printData.specimenList && printData.specimenList.length>0 && operation == 'addPrint'" style="border: 1px solid #AAAAAA;
329
+				border-radius: 5px;font-size: 12px;">
330
+				 <div style="display: flex;">
331
+					 <img style="width: 50%;height: 70px;border-radius: 5px;" [src]="printData.applyBarCode" alt="">
332
+					 <div style="width: 50%;">
333
+						 
334
+						 <img style="width: 100%; border-radius: 5px;
335
+						 	position: relative;top: 15px;right: 7px;" [src]="tool.logoUrl" alt="">
336
+					 	<!-- <img style="width: 100%; border-radius: 5px;
337
+					 		position: relative;top: 15px;right: 7px;" src="../../../assets/images/yc_logo.png" alt=""> -->
338
+					 </div>
339
+				 </div>
326 340
 				
341
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
342
+					<div style="width:20%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">患者姓名</div>
343
+					<div style="width:50%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">{{printData.patientName}}</div>
344
+					<div style="width:14%;border-right: 1px solid #AAAAAA;border-top: 1px solid #aaa;padding:1px;">性别</div>
345
+					<div style="width:16%;padding:1px;border-top: 1px solid #aaa;">{{printData.specimenList[0].patientGender}}</div>
346
+				</div>
347
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
348
+					<div style="width:20%;border-right: 1px solid #AAAAAA;padding:1px;">住院号</div>
349
+					<div style="width:50%;border-right: 1px solid #AAAAAA;padding:1px;">{{printData.residenceNo}}</div>
350
+					<div style="width:14%;border-right: 1px solid #AAAAAA;padding:1px;">年龄</div>
351
+					<div style="width:16%;padding:1px;"> {{printData.patientAge}}岁</div>
352
+				</div>
353
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
354
+					<div style="width:20%;border-right: 1px solid #AAAAAA;padding:1px;">科室 </div>
355
+					<div style="width:50%;border-right: 1px solid #AAAAAA;
356
+					padding:1px;overflow: hidden;white-space: nowrap">{{printData.patientDept}}</div>
357
+					<div style="width:14%;border-right: 1px solid #AAAAAA;padding:1px;">床号</div>
358
+					<div style="width:16%;padding:1px;">{{printData.patientBedNum}}床</div>
359
+				</div>
360
+				<div style="display: flex;border-bottom: 1px solid #AAAAAA;">
361
+					<div style="width:20%;border-right: 1px solid #AAAAAA;padding:1px;">部位 </div>
362
+					<div style="width:50%;border-right: 1px solid #AAAAAA;
363
+					padding:1px;overflow: hidden;white-space: nowrap">{{printData.takePart}}</div>
364
+					<div style="width:14%;border-right: 1px solid #AAAAAA;padding:1px;">标本数</div>
365
+					<div style="width:16%;padding:1px;">{{printData.specimenNum}}</div>
366
+				</div>
367
+				<div style="display: flex;">
368
+					<div style="width:20%;box-sizing: border-box;border-right: 1px solid #AAAAAA;padding:1px;">日期</div>
369
+					<div style="width:80%;box-sizing: border-box;padding:1px;border-right: 1px solid #fff;">{{printData.specimenList[0].inVitroTime|date:'yyyy-MM-dd'}}</div>
370
+				</div>
327 371
 			</div>
372
+			
328 373
 			<div style="height: 20px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1"></div>
329 374
 			<div style="font-size: 12px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>0">
330 375
 				<div *ngFor="let data of printData.specimenList; let index=index;">

+ 11 - 9
src/app/share/pathology-add/pathology-add.component.ts

@@ -630,8 +630,8 @@ export class PathologyAddComponent implements OnInit {
630 630
 		let ids = this.validateForm.value.project.join(',')
631 631
 		let data: any = {
632 632
 			pathologyForm:{
633
-				...this.validateForm.value,
634 633
 				...this.detailsData,
634
+				...this.validateForm.value,
635 635
 				inVitroTime:this.startDate,
636 636
 				surgeryId: this.surgeryId || "",
637 637
 				patientId: this.patientId || "",
@@ -752,13 +752,14 @@ export class PathologyAddComponent implements OnInit {
752 752
 		delete data.pathologyForm.specimenGenre 
753 753
 		that.zcLoading = true;
754 754
 		this.mainService.pathologyOperation(data,'storage').subscribe((res:any) => {
755
-				that.zcLoading = false;
756
-				if(res.status==200){
757
-					this.message.success('操作成功')
758
-				}else{
759
-					this.message.error(res.msg)
760
-				}
761
-		  });
755
+			that.zcLoading = false;
756
+			if(res.status==200){
757
+				this.message.success('操作成功')
758
+				this.hideModal()
759
+			}else{
760
+				this.message.error(res.msg)
761
+			}
762
+		});
762 763
 	}
763 764
 	
764 765
 	// 追加打印
@@ -830,6 +831,7 @@ export class PathologyAddComponent implements OnInit {
830 831
 							surgeryId: this.surgeryId || "",
831 832
 							patientId: this.patientId || "",
832 833
 							hosId: this.hosId || "" ,
834
+							pathologyInspectIds: this.validateForm.value.project.join(','),
833 835
 							specimenType:{
834 836
 								id:this.validateForm.value.specimenGenre
835 837
 							}
@@ -869,8 +871,8 @@ export class PathologyAddComponent implements OnInit {
869 871
 			}
870 872
 			let data: any = {
871 873
 				pathologyForm:{
872
-					...this.validateForm.value,
873 874
 					...this.detailsData,
875
+					...this.validateForm.value,
874 876
 					surgeryId: this.surgeryId || "",
875 877
 					patientId: this.patientId || "",
876 878
 					hosId: this.hosId || "" ,

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

@@ -50,13 +50,12 @@
50 50
 					<div class="form-title-box">
51 51
 						<div class="form-title"><span class="font-weight-500">标本类型:</span>{{detailsData.specimenType.name||'无'}}</div>
52 52
 						<div class="form-title"><span class="font-weight-500">标本数量:</span>{{detailsData.specimenNum||'无'}}</div>
53
-						<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
54 53
 					</div>
55 54
 					
56 55
 					<div class="form-title-box">
57
-						<div class="form-title"><span class="font-weight-500">送检医生:</span>{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
58
-						<div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
59
-						<div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
56
+						<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
57
+						<!-- <div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
58
+						<!-- <div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
60 59
 					</div>
61 60
 					
62 61
 					<div class="form-list">

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

@@ -104,6 +104,7 @@
104 104
 					.form-list{
105 105
 						margin-bottom: 10px;
106 106
 						.cursor{
107
+							text-decoration: underline;
107 108
 							cursor: pointer;
108 109
 						}
109 110
 						.indent{

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

@@ -3793,7 +3793,7 @@
3793 3793
 						<tr class="thead">
3794 3794
 							<th>申请单类型</th>
3795 3795
 							<th>申请单号</th>
3796
-							<th>检验项目</th>
3796
+							<th nzWidth="15%">检验项目</th>
3797 3797
 							<th>标本类型</th>
3798 3798
 							<th>申请时间</th>
3799 3799
 							<th>申请科室</th>
@@ -3802,7 +3802,9 @@
3802 3802
 					</thead>
3803 3803
 					<tbody>
3804 3804
 						<tr *ngFor="let data of viewData">
3805
-							<td>{{ data.pathologyFormType && data.pathologyFormType==1?'术中快速病理检查申请单':'病理检查申请单'}}</td>
3805
+							<td *ngIf="data.pathologyFormType==1">术中快速病理检查申请单</td>
3806
+							<td *ngIf="data.pathologyFormType==0">病理检查申请单</td>
3807
+							<td *ngIf="data.pathologyFormType==null">无</td>
3806 3808
 							<td style="text-decoration: underline;cursor: pointer;" (click)="itemClick(data)">{{ data.applyCode}}</td>
3807 3809
 							<td>{{ data.arr ? data.arr.join('、') : '无' }}</td>
3808 3810
 							<td>{{ data.specimenType?data.specimenType.name:'无'}}</td>

+ 19 - 6
src/app/views/hushijiandan/hushijiandan.component.ts

@@ -324,6 +324,7 @@ export class HushijiandanComponent implements OnInit {
324 324
 			.subscribe((data) => {
325 325
 				this.isSpinning = false
326 326
 				if(data.list.length==1){
327
+					this.detailId = data.list[0].id
327 328
 					if(!data.list[0].status){
328 329
 						this.pathologyModal = true
329 330
 						return
@@ -335,9 +336,17 @@ export class HushijiandanComponent implements OnInit {
335 336
 					}else{
336 337
 						this.pathologyDetailModal = true
337 338
 					}
338
-				}else{
339
+				}else if(data.list.length>1){
339 340
 					this.viewData = data.list
341
+					if(this.viewData.pathologyInspectDTOS){
342
+						for(let i of this.viewData.pathologyInspectDTOS){
343
+							i.arr = []
344
+							i.arr.push(i.inspectProject.name)
345
+						}
346
+					}
340 347
 					this.multiDialog = true
348
+				}else if(data.list.length==0){
349
+					this.message.error('无申请单')
341 350
 				}
342 351
 			});
343 352
 	}
@@ -378,16 +387,20 @@ export class HushijiandanComponent implements OnInit {
378 387
 				}else{
379 388
 					this.pathologyDetailModal = true
380 389
 				}
381
-			}else{
390
+			}else if(data.list.length>1){
382 391
 				this.viewData = data.list
383
-				// let arr = []
384
-				if(this.viewData.pathologyInspectDTOS){
385
-					for(let i of this.viewData.pathologyInspectDTOS){
392
+				for(let i of this.viewData){
393
+					if(i.pathologyInspectDTOS){
386 394
 						i.arr = []
387
-						i.arr.push(i.inspectProject.name)
395
+						for(let x of i.pathologyInspectDTOS){
396
+							i.arr.push(x.inspectProject.name)
397
+						}
388 398
 					}
389 399
 				}
400
+				console.log(777,this.viewData)
390 401
 				this.multiDialog = true
402
+			}else if(data.list.length==0){
403
+				this.message.error('无申请单')
391 404
 			}
392 405
 		});
393 406
 	}

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

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

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

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

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

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

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

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

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

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

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

@@ -456,7 +456,7 @@
456 456
 
457 457
 <!-- 标本接收 -->
458 458
 <div class="pathology-box display_flex align-items_center justify-content_flex-center" *ngIf="fixationModal">
459
-	<div class="pathology-content">
459
+	<div class="pathology-content width-80">
460 460
 		<div class="title">标本接收固定
461 461
 		<i class="icon_transport transport-guanbi" (click)="hideSpecimenModal()"></i></div>
462 462
 		<div class="content">
@@ -476,7 +476,7 @@
476 476
 				<nz-form-item class="form-title-box">
477 477
 					<div class="form-title mar-ri-20"><span class="font-weight-500">患者信息:</span>{{codeData.patientDTO.patientName}} ({{codeData.patientDTO.bedNum}}床)</div>
478 478
 					<div class="form-title mar-ri-20"><span class="font-weight-500">年龄:</span>{{codeData.patientDTO.age||'-'}}</div>
479
-					<div class="form-title mar-ri-20"><span class="font-weight-500">性别:</span>{{codeData.patientDTO.gender.name||'-'}}</div>
479
+					<div class="form-title mar-ri-20"><span class="font-weight-500">性别:</span>{{codeData.patientDTO.gender?codeData.patientDTO.gender.name:'-'}}</div>
480 480
 					<div class="form-title mar-ri-20"><span class="font-weight-500">住院号:</span>{{codeData.patientDTO.patientCode}}</div>
481 481
 				</nz-form-item>
482 482
 				<div class="form-title-box">
@@ -507,8 +507,6 @@
507 507
 				</div>
508 508
 				<div class="form-title-box">
509 509
 					<div class="form-title"><span class="font-weight-500">部位:</span>{{codeData.takePart||'无'}}</div>
510
-					<div class="form-title"><span class="font-weight-500">取标本位置:</span>{{codeData.surgeryDeptDTO?codeData.surgeryDeptDTO.dept:''}}</div>
511
-					<div class="form-title"><span class="font-weight-500">取材医生:</span>{{codeData.surgeryDoctorDTO?codeData.surgeryDoctorDTO.name : '-'}}</div>
512 510
 				</div>
513 511
 			</div>
514 512
 			
@@ -661,13 +659,12 @@
661 659
 				<div class="form-title-box">
662 660
 					<div class="form-title"><span class="font-weight-500">标本类型:</span>{{detailsData.specimenType.name||'无'}}</div>
663 661
 					<div class="form-title"><span class="font-weight-500">标本数量:</span>{{detailsData.specimenNum||'无'}}</div>
664
-					<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
665 662
 				</div>
666 663
 				
667 664
 				<div class="form-title-box">
668
-					<div class="form-title"><span class="font-weight-500">送检医生:</span>{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
669
-					<div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
670
-					<div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div>
665
+					<div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
666
+					<!-- <div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
667
+					<!-- <div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
671 668
 				</div>
672 669
 				
673 670
 				<div class="form-list">

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

@@ -657,8 +657,11 @@
657 657
 	height: 100%;
658 658
 	background: rgba(0, 0, 0, 0.4);
659 659
 	z-index: 99;
660
+	.width-80{
661
+		width: 80% !important;
662
+	}
660 663
 	.pathology-content{
661
-		width: 90%;
664
+		width: 80%;
662 665
 		background: #fff;
663 666
 		border-radius: 5px;
664 667
 		padding: 10px 20px;
@@ -743,6 +746,8 @@
743 746
 							display: flex;
744 747
 							flex-wrap: wrap;
745 748
 							.specimen-item-class{
749
+								text-decoration: underline;
750
+								cursor: pointer;
746 751
 								margin-right: 40px;
747 752
 								color:#333;
748 753
 							}

+ 30 - 8
src/app/views/specimen-room-view/specimen-room-view.component.ts

@@ -180,7 +180,9 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
180 180
 			this.isSpinning = false
181 181
 			if(res.status==200){
182 182
 				this.codeData = res.data[0]
183
-				if(!this.codeData.pathologySpecimenDTOList[0].fixationTime && this.codeData.pathologyFormType==0){
183
+				let item = this.codeData.pathologySpecimenDTOList.find(i=>i.specimenCode == e)
184
+				console.log(7,item)
185
+				if(!item.fixationTime && this.codeData.pathologyFormType==0){
184 186
 					if(this.codeData.status.value==2 || this.codeData.status.value==3 ||
185 187
 						this.codeData.status.value==4){
186 188
 							if(this.codeData.pathologyInspectDTOS){
@@ -198,20 +200,20 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
198 200
 						}
199 201
 					this.fixationError = null
200 202
 					this.searchMsg = null
201
-				}else if(this.codeData.pathologySpecimenDTOList[0].fixationTime && this.codeData.pathologyFormType==0){
203
+				}else if(item.fixationTime && this.codeData.pathologyFormType==0){
202 204
 					this.viewDetail(this.codeData,'4')
205
+					this.barCode = null
203 206
 					this.fixationError = null
204 207
 					this.searchMsg = null
205 208
 				}else{
206
-					this.message.error('该申请单类型不是病理检查申请单')
209
+					this.barCode = null
207 210
 					this.fixationError = null
208
-					this.searchMsg = null
211
+					this.searchMsg = '该申请单类型不是病理检查申请单'
209 212
 				}
210 213
 				
211 214
 			}else{
212 215
 				this.barCode = null
213 216
 				this.searchMsg = res.msg
214
-				// this.message.error(res.msg)
215 217
 			}
216 218
 		})
217 219
 	}
@@ -244,6 +246,7 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
244 246
 	// 关闭接受固定标本
245 247
 	hideSpecimenModal(){
246 248
 		this.autoUpdate()
249
+		this.cancelSpecimenModal()
247 250
 		this.barCode = null;
248 251
 		this.specimenCode = null;
249 252
 		this.fixationError = null
@@ -252,7 +255,20 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
252 255
 			document.getElementById('Binput').focus();
253 256
 		},200)
254 257
 	}
255
-
258
+	
259
+	cancelSpecimenModal(){
260
+		let ids = []
261
+		for(let i of this.codeData.pathologySpecimenDTOList){
262
+			ids.push(i.id)
263
+		}
264
+		let data = {
265
+			pathologySpecimenIds:ids.join(',')
266
+		}
267
+		this.mainService.pathologyOperation(data,'cancel').subscribe((res) =>{
268
+			
269
+		})
270
+	}
271
+	
256 272
 	// 获取标本详情
257 273
 	project:any = [];
258 274
 	getSampleData(item){
@@ -556,8 +572,14 @@ export class SpecimenRoomViewComponent implements OnInit, OnDestroy {
556 572
 			this.tableLoading = false
557 573
 			this.specimenCode = null
558 574
 			if(res.status==200){
559
-				this.codeData = res.data[0]
560
-				this.fixationError = null
575
+				let item = res.data[0].pathologySpecimenDTOList.find(i=>i.specimenCode == e)
576
+				console.log(8,item)
577
+				if(item.fixationTime){
578
+					this.fixationError = '该标本已经固定过'
579
+				}else{
580
+					this.codeData = res.data[0]
581
+					this.fixationError = null
582
+				}
561 583
 			}else{
562 584
 				this.fixationError = res.msg
563 585
 			}

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

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