private setupannotationInstances()

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();
  }