diff --git a/src/atlasComponents/parcellationRegion/region.base.ts b/src/atlasComponents/parcellationRegion/region.base.ts index 0628440aa0943ec8d385b30f25f2547dd888c093..10f757d63e6e4138ebbe22191b48a66eb66a2b53 100644 --- a/src/atlasComponents/parcellationRegion/region.base.ts +++ b/src/atlasComponents/parcellationRegion/region.base.ts @@ -4,7 +4,7 @@ import { uiStateOpenSidePanel, uiStateExpandSidePanel, uiActionShowSidePanelConn import { distinctUntilChanged, switchMap, filter, map, withLatestFrom } from "rxjs/operators"; import { Observable, BehaviorSubject, combineLatest } from "rxjs"; import { ARIA_LABELS } from 'common/constants' -import { flattenRegions, getIdFromFullId, getIdFromKgIdObj, rgbToHsl } from 'common/util' +import { flattenRegions, getIdFromKgIdObj, rgbToHsl } from 'common/util' import { viewerStateSetConnectivityRegion, viewerStateNavigateToRegion, viewerStateToggleRegionSelect, viewerStateNewViewer, isNewerThan } from "src/services/state/viewerState.store.helper"; import { viewerStateFetchedTemplatesSelector, viewerStateGetSelectedAtlas, viewerStateSelectedTemplateFullInfoSelector, viewerStateSelectedTemplateSelector } from "src/services/state/viewerState/selectors"; import { strToRgb, verifyPositionArg, getRegionHemisphere } from 'common/util' @@ -18,6 +18,7 @@ export class RegionBase { private _position: [number, number, number] set position(val){ + console.log('position', val) if (verifyPositionArg(val)) { this._position = val } else { @@ -33,7 +34,9 @@ export class RegionBase { set region(val) { this._region = val this.region$.next(this._region) - this.position = val && val.position + + // bug the centroid returned is currently nonsense + // this.position = val?.props?.centroid_mm if (!this._region) return const rgb = this._region.rgb diff --git a/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html b/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html index 039b2cdb7c1a3176ef6568df459b635b6e77fa7f..2ce44030ff3a719e2d13fe3986e3a36598d754d9 100644 --- a/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html +++ b/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html @@ -41,11 +41,23 @@ <!-- position --> <button mat-icon-button *ngIf="position" (click)="navigateToRegion()" - [matTooltip]="GO_TO_REGION_CENTROID + ': ' + (position | nmToMm | addUnitAndJoin : 'mm')"> + [matTooltip]="GO_TO_REGION_CENTROID + ': ' + (position | addUnitAndJoin : 'mm')"> <mat-icon fontSet="fas" fontIcon="fa-map-marked-alt"> </mat-icon> </button> + <!-- explore doi --> + <ng-template let-infos [ngIf]="region?.originDatainfos"> + <ng-container *ngFor="let info of infos"> + <a *ngFor="let url of info.urls" + [href]="url.doi | doiParserPipe" + target="_blank" + mat-icon-button> + <i class="fas fa-external-link-alt"></i> + </a> + </ng-container> + </ng-template> + </mat-card-subtitle> </div> diff --git a/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.style.css b/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.style.css index 5fd6a8800177b238208eac44a9cfb79dce2b23d0..f3a3b5acb3092a376a8030a1334573b5efdc0785 100644 --- a/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.style.css +++ b/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.style.css @@ -6,4 +6,8 @@ cdk-virtual-scroll-viewport modality-picker { font-size: 90%; +} +.virtual-scroll-element +{ + height:50px; } \ No newline at end of file diff --git a/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.template.html b/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.template.html index d8d99fe6ec4af5047b75192e98515ac582d3b843..1dd9791e0de3cbf35194f9f357cb5c2610dc33a6 100644 --- a/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.template.html +++ b/src/atlasComponents/regionalFeatures/bsFeatures/kgRegionalFeature/kgRegList/kgRegList.template.html @@ -1,50 +1,3 @@ -<mat-expansion-panel hideToggle> - <mat-expansion-panel-header class="align-items-center" - [attr.aria-label]="ARIA_LABELS.MODALITY_FILTER"> - <div class="flex-grow-1 flex-shrink-1 d-flex flex-column"> - <span> - Filter features - </span> - <small *ngIf="kgRegionalFeatures.length > 0" class="text-muted"> - <ng-template [ngIf]="kgRegionalFeatures.length !== visibleRegionalFeatures.length" - [ngIfElse]="noFilterTmpl"> - {{ visibleRegionalFeatures.length }} / {{ kgRegionalFeatures.length }} - </ng-template> - - <ng-template #noFilterTmpl> - {{ kgRegionalFeatures.length }} features - </ng-template> - </small> - </div> - - <!-- filter icon --> - <ng-template [ngIf]="kgRegionalFeatures.length !== visibleRegionalFeatures.length" - [ngIfElse]="defaultFilterIconTmpl"> - - <button mat-icon-button - matTooltip="Reset filters" - color="primary" - iav-stop="click" - iav-delay-event="click" - (iav-delay-event-emit)="clearFilters()"> - <i class="fas fa-filter"></i> - </button> - </ng-template> - - <ng-template #defaultFilterIconTmpl> - <button mat-icon-button color="basic"> - <i class="fas fa-filter"></i> - </button> - </ng-template> - </mat-expansion-panel-header> - - <modality-picker class="max-h-10em overflow-y-auto overflow-x-hidden" - [countedDataM]="dataModalities" - (modalityFilterEmitter)="handleModalityVisbilityChange($event)"> - </modality-picker> -</mat-expansion-panel> - - <ng-container *ngTemplateOutlet="virtualScrollTmpl"> </ng-container> diff --git a/src/state/effects/viewerState.useEffect.ts b/src/state/effects/viewerState.useEffect.ts index c3912a996beacbf8c46da9ff36c6d154134be3f1..0c96a3b9a43af9690294170bbd3950462aa2745d 100644 --- a/src/state/effects/viewerState.useEffect.ts +++ b/src/state/effects/viewerState.useEffect.ts @@ -400,7 +400,7 @@ export class ViewerStateControllerUseEffect implements OnDestroy { }) } - const { position } = region + const position = region.position || (region?.props?.centroid_mm || []).map((v: number) => v*1e6) if (!position) { return generalActionError({ message: `${region.name} - does not have a position defined` diff --git a/src/viewerModule/viewerCmp/viewerCmp.component.ts b/src/viewerModule/viewerCmp/viewerCmp.component.ts index ff22be0f407c5d114e0956686febae7d0e5c92c1..9c684f753b226855c80fd0592f8dd234359595fe 100644 --- a/src/viewerModule/viewerCmp/viewerCmp.component.ts +++ b/src/viewerModule/viewerCmp/viewerCmp.component.ts @@ -74,6 +74,10 @@ import { ContextMenuService, TContextMenuReg } from "src/contextMenuModule"; of(null), svc.getRegionDetail(atlas['@id'], parcellation['@id'], template['@id'], r[0]).pipe( map(det => { + console.log('region detail', { + id: r[0], + det + }) return { ...det, context