in pathology/viewer/src/components/image-viewer-side-nav/image-viewer-side-nav.component.ts [285:368]
private setupannotationInstances() {
combineLatest([
this.imageViewerPageStore.selectedSplitViewSlideDescriptor$,
this.imageViewerPageStore.annotationInstancesBySlideDescriptorId$,
this.imageViewerPageStore.selectedInstanceIdsBySlideDescriptorId$,
])
.pipe(
takeUntil(this.destroyed$),
tap(([
selectedSplitViewSlideDescriptor,
annotationInstancesBySlideDescriptorId,
]) => {
if (!selectedSplitViewSlideDescriptor) return;
const selectedSplitViewSlideDescriptorId =
selectedSplitViewSlideDescriptor.id as string;
if (!selectedSplitViewSlideDescriptorId) return;
const annotationInstances =
annotationInstancesBySlideDescriptorId.get(
selectedSplitViewSlideDescriptorId);
this.annotationInstances = annotationInstances ?? [];
}),
)
.subscribe();
combineLatest([
this.imageViewerPageStore.selectedSplitViewSlideDescriptor$,
this.imageViewerPageStore.selectedInstanceIdsBySlideDescriptorId$
])
.pipe(
takeUntil(this.destroyed$),
tap(([
selectedSplitViewSlideDescriptor,
selectedInstanceIdsBySlideDescriptorId,
]) => {
const selectedInstanceIds =
selectedInstanceIdsBySlideDescriptorId.get(
selectedSplitViewSlideDescriptor?.id as string) ??
new Set<string>();
this.selectedInstanceIds = selectedInstanceIds;
}),
)
.subscribe();
combineLatest([
this.imageViewerPageStore.selectedSplitViewSlideDescriptor$,
this.imageViewerPageStore.sideNavLayersBySlideDescriptorId$,
])
.pipe(
takeUntil(this.destroyed$),
tap(([
selectedSplitViewSlideDescriptor,
sideNavLayersBySlideDescriptorId
]) => {
this.sideNavDrawLayers =
sideNavLayersBySlideDescriptorId.get(
selectedSplitViewSlideDescriptor?.id as string) ??
[];
}),
)
.subscribe();
combineLatest([
this.imageViewerPageStore.selectedSplitViewSlideDescriptor$,
this.imageViewerPageStore.olMapBySlideDescriptorId$,
])
.pipe(
takeUntil(this.destroyed$),
tap(([
selectedSplitViewSlideDescriptor,
olMapBySlideDescriptorId,
]) => {
const olMap = olMapBySlideDescriptorId.get(
selectedSplitViewSlideDescriptor?.id as string);
this.olMap = olMap;
if (!olMap) return;
this.handleOlMapChanged(olMap);
}),
)
.subscribe();
}