From 1250dbd7a855a994285a5e5f3f38054a7d87f6f5 Mon Sep 17 00:00:00 2001 From: shefki Date: Mon, 11 Mar 2019 11:50:51 +0100 Subject: [PATCH] fixing dynamic pipe field, UI: Renewing Study page #1802 --- dcm4chee-arc-ui2/src/app/app.module.ts | 1 + .../src/app/constants/globalvar.ts | 3 +- .../dicom-studies-table.component.html | 8 +-- .../dicom-studies-table.interfaces.ts | 8 +-- .../src/app/pipes/dynamic-pipe.pipe.spec.ts | 72 +++++++++++++++++++ .../src/app/pipes/dynamic-pipe.pipe.ts | 11 +-- 6 files changed, 90 insertions(+), 13 deletions(-) diff --git a/dcm4chee-arc-ui2/src/app/app.module.ts b/dcm4chee-arc-ui2/src/app/app.module.ts index 2eafe6a25..85c5ff9f5 100644 --- a/dcm4chee-arc-ui2/src/app/app.module.ts +++ b/dcm4chee-arc-ui2/src/app/app.module.ts @@ -250,6 +250,7 @@ import { DynamicPipePipe } from './pipes/dynamic-pipe.pipe'; RangePickerService, StorageVerificationService, StudyService, + ContentDescriptionPipe, {provide: LOCALE_ID, useValue: 'en-US' } ], bootstrap: [AppComponent] diff --git a/dcm4chee-arc-ui2/src/app/constants/globalvar.ts b/dcm4chee-arc-ui2/src/app/constants/globalvar.ts index 2e6433db5..2868c3cb7 100644 --- a/dcm4chee-arc-ui2/src/app/constants/globalvar.ts +++ b/dcm4chee-arc-ui2/src/app/constants/globalvar.ts @@ -1,5 +1,6 @@ import {FilterSchema, SelectDropdown} from "../interfaces"; import {DicomTableSchema, DynamicPipe} from "../helpers/dicom-studies-table/dicom-studies-table.interfaces"; +import {ContentDescriptionPipe} from "../pipes/content-description.pipe"; export class Globalvar { public static get MODALITIES(): any { @@ -1419,7 +1420,7 @@ export class Globalvar { headerDescription:"Content Description", widthWeight:1.5, calculatedWidth:"20%", - pipe:new DynamicPipe("contentDescription",undefined) + pipe:new DynamicPipe(ContentDescriptionPipe,undefined) },{ type:"value", header:"#F", diff --git a/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.component.html b/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.component.html index 7039dd8d2..bbc7b0f13 100644 --- a/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.component.html +++ b/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.component.html @@ -20,7 +20,7 @@

{{title}}

{{action.icon.text||''}} - {{patient_table.pipe | dynamicPipe}} + {{patient.attrs | dynamicPipe:patient_table.pipe}} {{_.get(patient.attrs,patient_table.pathToValue) || ' '}} @@ -38,7 +38,7 @@

{{title}}

{{action.icon.text||''}} - {{studies_table.pipe | dynamicPipe}} + {{study.attrs | dynamicPipe:studies_table.pipe}} {{_.get(study.attrs,studies_table.pathToValue) || ' '}} @@ -55,7 +55,7 @@

{{title}}

{{action.icon.text||''}} - {{serie_table.pipe | dynamicPipe}} + {{serie.attrs | dynamicPipe:serie_table.pipe}} {{_.get(serie.attrs,serie_table.pathToValue) || ' '}} @@ -73,7 +73,7 @@

{{title}}

{{action.icon.text||''}} - {{instance_table.pipe | dynamicPipe}} + {{instance.attrs | dynamicPipe:instance_table.pipe}} {{_.get(instance.attrs,instance_table.pathToValue) || ' '}} diff --git a/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.interfaces.ts b/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.interfaces.ts index 50146629b..71081a711 100644 --- a/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.interfaces.ts +++ b/dcm4chee-arc-ui2/src/app/helpers/dicom-studies-table/dicom-studies-table.interfaces.ts @@ -43,20 +43,20 @@ export interface TableSchemaConfig { export class DynamicPipe{ - private _pipeToken:string; + private _pipeToken:any; private _pipeArgs:any[]; - constructor(pipeToken:string, pipeArgs:any[]){ + constructor(pipeToken:any, pipeArgs:any[]){ this._pipeToken = pipeToken; this._pipeArgs = pipeArgs; } - get pipeToken(): string { + get pipeToken(): any { return this._pipeToken; } - set pipeToken(value: string) { + set pipeToken(value: any) { this._pipeToken = value; } diff --git a/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.spec.ts b/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.spec.ts index 95494a780..4526afb8b 100644 --- a/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.spec.ts +++ b/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.spec.ts @@ -1,10 +1,82 @@ import { DynamicPipePipe } from './dynamic-pipe.pipe'; import {Injector} from "@angular/core"; +import {DynamicPipe} from "../helpers/dicom-studies-table/dicom-studies-table.interfaces"; + +const attr = { + "00080016": { + "vr": "UI", + "Value": [ + "1.2.840.10008.5.1.4.1.1.2" + ] + }, + "00080018": { + "vr": "UI", + "Value": [ + "1.2.840.113704.7.7.1.1762134868.1376.807379226.78" + ] + }, + "00080054": { + "vr": "AE", + "Value": [ + "DCM4CHEE" + ] + }, + "00080056": { + "vr": "CS", + "Value": [ + "ONLINE" + ] + }, + "00081190": { + "vr": "UR", + "Value": [ + "http://shefki-lifebook:8080/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.16.376.1.1.511752826.1.2.21313.5230164/series/2.16.376.1.1.511752826.1.2.21459.3526228/instances/1.2.840.113704.7.7.1.1762134868.1376.807379226.78" + ] + }, + "0020000D": { + "vr": "UI", + "Value": [ + "2.16.376.1.1.511752826.1.2.21313.5230164" + ] + }, + "0020000E": { + "vr": "UI", + "Value": [ + "2.16.376.1.1.511752826.1.2.21459.3526228" + ] + }, + "00200013": { + "vr": "IS", + "Value": [ + 0 + ] + }, + "00280010": { + "vr": "US", + "Value": [ + 340 + ] + }, + "00280011": { + "vr": "US", + "Value": [ + 340 + ] + }, + "00280100": { + "vr": "US", + "Value": [ + 16 + ] + } +}; describe('DynamicPipePipe', () => { it('create an instance', () => { let injector:Injector; const pipe = new DynamicPipePipe(injector); expect(pipe).toBeTruthy(); + + expect(pipe.transform(attr, new DynamicPipe("ContentDescriptionPipe",undefined))).toBe(""); }); }); diff --git a/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.ts b/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.ts index ff310aac7..29a34856d 100644 --- a/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.ts +++ b/dcm4chee-arc-ui2/src/app/pipes/dynamic-pipe.pipe.ts @@ -1,4 +1,6 @@ import {Injector, Pipe, PipeTransform} from '@angular/core'; +import * as _ from 'lodash'; +import {DynamicPipe} from "../helpers/dicom-studies-table/dicom-studies-table.interfaces"; @Pipe({ name: 'dynamicPipe' @@ -8,13 +10,14 @@ export class DynamicPipePipe implements PipeTransform { public constructor(private injector: Injector) { } - transform(value: any, pipeToken: any, pipeArgs: any[]): any { - if (!pipeToken) { + transform(value: any, dynamicPipe:DynamicPipe): any { + console.log("value",value); + if (!value) { return value; } else { - let pipe = this.injector.get(pipeToken); - return pipe.transform(value, ...pipeArgs); + let pipe = this.injector.get(dynamicPipe.pipeToken); + return pipe.transform(value, ...value.pipeArgs); } } }