Skip to content
Snippets Groups Projects
Commit 94cdc788 authored by Xiao Gui's avatar Xiao Gui
Browse files

chore: update to latest brainscape api sig

parent 955e35f8
No related branches found
No related tags found
No related merge requests found
import { InjectionToken } from "@angular/core";
import { Observable } from "rxjs";
import { IHasId } from "src/util/interfaces";
export const BS_ENDPOINT = new InjectionToken<string>('BS_ENDPOINT')
......@@ -8,6 +9,11 @@ export type TFeature = 'ReceptorDistribution'
export type TRegion = {
name: string
status?: string
context: {
atlas: IHasId
template: IHasId
parcellation: IHasId
}
}
export const BS_DARKTHEME = new InjectionToken<Observable<boolean>>('BS_DARKTHEME')
\ No newline at end of file
......@@ -15,7 +15,11 @@ export class BsFeatureService{
}
public getFeature<T>(featureName: TFeature, region: TRegion) {
return this.http.get<T>(`${this.bsEndpoint}/features/${featureName}?region=${encodeURIComponent(this.processRegion(region))}`)
const { context } = region
const { atlas, parcellation } = context
return this.http.get<T>(
`${this.bsEndpoint}/atlases/${encodeURIComponent(atlas["@id"])}/parcellations/${encodeURIComponent(parcellation['@id'])}/regions/${encodeURIComponent(this.processRegion(region))}/features/${encodeURIComponent(featureName)}`
)
}
constructor(
......
......@@ -207,3 +207,20 @@ export const viewerStateSelectedTemplateFullInfoSelector = createSelector(
})
}
)
export const viewerStateContextedSelectedRegionsSelector = createSelector(
viewerStateSelectedRegionsSelector,
viewerStateGetSelectedAtlas,
viewerStateSelectedTemplatePureSelector,
viewerStateSelectedParcellationSelector,
(regions, atlas, template, parcellation) => regions.map(r => {
return {
...r,
context: {
atlas,
template,
parcellation
}
}
})
)
......@@ -3,7 +3,7 @@ import { select, Store } from "@ngrx/store";
import { combineLatest, Observable, Subject, Subscription } from "rxjs";
import { distinctUntilChanged, filter, map, startWith } from "rxjs/operators";
import { viewerStateHelperSelectParcellationWithId, viewerStateRemoveAdditionalLayer, viewerStateSetSelectedRegions } from "src/services/state/viewerState/actions";
import { viewerStateGetOverlayingAdditionalParcellations, viewerStateParcVersionSelector, viewerStateSelectedParcellationSelector, viewerStateSelectedRegionsSelector, viewerStateSelectedTemplateSelector, viewerStateStandAloneVolumes } from "src/services/state/viewerState/selectors"
import { viewerStateContextedSelectedRegionsSelector, viewerStateGetOverlayingAdditionalParcellations, viewerStateParcVersionSelector, viewerStateSelectedParcellationSelector, viewerStateSelectedTemplateSelector, viewerStateStandAloneVolumes } from "src/services/state/viewerState/selectors"
import { NehubaGlueCmp } from "../nehuba";
import { IViewer } from "../viewer.interface";
import { CONST, ARIA_LABELS } from 'common/constants'
......@@ -57,7 +57,7 @@ import { SwitchDirective } from "src/util/directives/switch.directive";
{
provide: REGION_OF_INTEREST,
useFactory: (store: Store<any>) => store.pipe(
select(viewerStateSelectedRegionsSelector),
select(viewerStateContextedSelectedRegionsSelector),
map(rs => rs[0] || null)
),
deps: [
......@@ -94,7 +94,7 @@ export class ViewerCmp implements OnDestroy, AfterViewInit{
)
public selectedRegions$ = this.store$.pipe(
select(viewerStateSelectedRegionsSelector),
select(viewerStateContextedSelectedRegionsSelector),
distinctUntilChanged(),
)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment