-
[quote]
-
@Gerard_Guasch: Hello!
-
I have been trying to see why when we do a 3D or MPR of a series, it tends to pick up either the first or smallest? series of the available ones with no avail.
-
For example, if I have a CT with 58, 118 and 200 frame series, I select the 200 series and click on 3D main, it seems it uses the 58 frames one instead of the 200 one, so it has less resolution.
-
Where could I find the code that decides that? Or what is the reason it happens like that? Thank you!
-
@Enas_Mostafa: Hello,
-
The display set selector is named
activeDisplaySet
, which means the MPR-3d will open for the active viewport. -
displaySetSelectors: {
-
activeDisplaySet: {
-
seriesMatchingRules: [
-
{
-
weight: 1,
-
attribute: 'isReconstructable',
-
constraint: {
-
equals: {
-
value: true,
-
},
-
},
-
required: true,
-
},
-
],
-
},
-
@Gerard_Guasch: Thanks for the response!
-
That’s what I expected to happen as well from the set up, but in testing we found that that is not the case, and still cannot find out why By default it always shows the first series available (guessing it just uses activeDisplaySet = DisplaySets[0]; as the variable), but if I have an 3D active already, double clicking on the series left bar on a different series does create the other 3D instead of the first, which is what confuses me, that then it works.
-
Alright, was able to found it after I got an idea from last comment, the “issue” is in the HangingProtocolService.ts file, in line 1594:
-
-
const bestMatch = matchingScores[0];
-
-
So when the protocol is activated, it looks for which display sets fit the criteria (usually isReconstructable for 3D and MPR), and then puts them in the matchingScores array. If several are reconstructable, without other rules, they are all put together in that array (since they have the same score).
-
Then, I had asumed that the one the protocol would choose to activate would be the series I have active in the viewport (blue border), but it chooses the first one on the array, which may be different.
-
Was a difference in expectations from the behaviour of the app, will bring it up on the next meet to see if it is worth checking out.
-
@Robbie_Barton: Could a displaySetSelectorMap be provided to hangingProtocolService.setProtocol() indicating the desired DisplaySet? I’m not quite sure of the exact format, but found this in the source:
-
-
- Note the keys are not simple display set selector values, but are:
-
${activeStudyUID}:${displaySetSelectorId}:${matchingDisplaySetIndex || 0}
-
- This is normally transparent to the user of this, but in order to specify
-
- specific instances, they can be added like that.
-
-
[/quote]