All files / platform/core/src/services/HangingProtocolService/custom-attribute isDisplaySetFromUrl.ts

52.38% Statements 11/21
44.44% Branches 4/9
33.33% Functions 2/6
55% Lines 11/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49                34x 524x 524x 524x 524x 524x                                   66x 66x     66x 66x 66x                      
import { getSplitParam } from '../../../utils';
 
/** Indicates if the given display set is the one specified in the
 * displaySet parameter in the URL
 * The parameters are:
 *    initialSeriesInstanceUID
 *    initialSOPInstanceUID
 */
const isDisplaySetFromUrl = (displaySet): boolean => {
  const params = new URLSearchParams(window.location.search);
  const initialSeriesInstanceUID = getSplitParam('initialseriesinstanceuid', params);
  const initialSOPInstanceUID = getSplitParam('initialsopinstanceuid', params);
  if (!initialSeriesInstanceUID && !initialSOPInstanceUID) {
    return false;
  }
 
  const isSeriesMatch = initialSeriesInstanceUID?.some(
    seriesUID => displaySet.SeriesInstanceUID === seriesUID
  );
 
  const isSopMatch = initialSOPInstanceUID?.some(sopUID =>
    displaySet.instances?.some(instance => sopUID === instance.SOPInstanceUID)
  );
 
  return isSeriesMatch || isSopMatch;
};
 
/** Returns the index location of the requested image, or the defaultValue in this.
 * Returns undefined to fallback to the defaultValue
 */
function sopInstanceLocation(displaySets) {
  const displaySet = displaySets?.[0];
  Iif (!displaySet) {
    return;
  }
  const initialSOPInstanceUID = getSplitParam('initialsopinstanceuid');
  if (!initialSOPInstanceUID) {
    return;
  }
 
  const index = displaySet.instances.findIndex(instance =>
    initialSOPInstanceUID.includes(instance.SOPInstanceUID)
  );
  // Need to return in the initial position specified format.
  return index === -1 ? undefined : { index };
}
 
export { isDisplaySetFromUrl, sopInstanceLocation };