/** * This function extracts an attribute from the already matched display sets, and * compares it to the attribute in the current display set, and indicates if they match. * From 'this', it uses: * `sameAttribute` as the attribute name to look for * `sameDisplaySetId` as the display set id to look for * From `options`, it looks for */ export default function(displaySet, options) { const { sameAttribute, sameDisplaySetId } = this; if (!sameAttribute) { console.log('sameAttribute not defined in', this); return `sameAttribute not defined in ${this.id}`; } if (!sameDisplaySetId) { console.log('sameDisplaySetId not defined in', this); return `sameDisplaySetId not defined in ${this.id}`; } const { displaySetMatchDetails, displaySets } = options; const match = displaySetMatchDetails.get(sameDisplaySetId); if (!match) { console.log('No match for display set', sameDisplaySetId); return false; } const { displaySetInstanceUID } = match; const altDisplaySet = displaySets.find( it => it.displaySetInstanceUID == displaySetInstanceUID ); if (!altDisplaySet) { console.log( 'No display set found with', displaySetInstanceUID, 'in', displaySets ); return false; } const testValue = altDisplaySet[sameAttribute]; return testValue === displaySet[sameAttribute]; }