extensions/xnat/src/components/XNATNavigation/XNATSession.js
/**
   * _fetchROICollectionInfo - Fetches the list of ROICollections, and counts up
   * the number of contour and mask based segmentations.
   *
   * @returns {null}
   */
Fetches the list of ROICollections, and counts up
the number of contour and mask based segmentations.

@returns {null}
Fetches the list of ROICollections and counts up the number of contour and mask based segmentations . @returns { null }
_fetchROICollectionInfo() {
    const cancelablePromise = fetchJSON(
      `data/archive/projects/${this.props.projectId}/subjects/${this.props.subjectId}/experiments/${this.props.ID}/assessors?format=json`
    );
    this._cancelablePromises.push(cancelablePromise);
    cancelablePromise.promise
      .then(result => {
        if (!result) {
          return;
        }
        const assessors = result.ResultSet.Result;
        if (
          assessors.some(
            assessor => assessor.xsiType === 'icr:roiCollectionData'
          )
        ) {
          this.setState({ hasRois: true });
        }
        this._getRoiCollectionCounts(result.ResultSet.Result);
      })
      .catch(err => console.log(err));
  }
_fetchROICollectionInfo ( ) { const cancelablePromise = fetchJSON ( ` ${ this . props . projectId } ${ this . props . subjectId } ${ this . props . ID } ` ) ; this . _cancelablePromises . push ( cancelablePromise ) ; cancelablePromise . promise . then ( result => { if ( ! result ) { return ; } const assessors = result . ResultSet . Result ; if ( assessors . some ( assessor => assessor . xsiType === 'icr:roiCollectionData' ) ) { this . setState ( { hasRois : true } ) ; } this . _getRoiCollectionCounts ( result . ResultSet . Result ) ; } ) . catch ( err => console . log ( err ) ) ; }
_fetchROICollectionInfo - Fetches the list of ROICollections, and counts up
 the number of contour and mask based segmentations.
_fetchROICollectionInfo - Fetches the list of ROICollections and counts up the number of contour and mask based segmentations .