public boolean matches(String aeTitle, ImageDescriptor imageDescriptor) { return pmis.contains(imageDescriptor.getPhotometricInterpretation()) && matchBitStored(imageDescriptor.getBitsStored()) && matchPixelRepresentation(imageDescriptor.getPixelRepresentation()) && isEmptyOrContains(this.aeTitles, aeTitle) && isEmptyOrContains(this.sopClasses, imageDescriptor.getSopClassUID()) && isEmptyOrContains(this.bodyPartExamined, imageDescriptor.getBodyPartExamined()); }
Condition(String[] pmis, int[] bitsStored, int pixelRepresentation, String[] aeTitles, String[] sopClasses, String[] bodyPartExamined) { this.pmis = EnumSet.noneOf(PhotometricInterpretation.class); for (String pmi : pmis) this.pmis.add(PhotometricInterpretation.fromString(pmi)); this.bitsStoredMask = toBitsStoredMask(bitsStored); this.aeTitles = aeTitles; this.sopClasses = sopClasses; this.bodyPartExamined = bodyPartExamined; this.weight = (aeTitles.length != 0 ? 4 : 0) + (sopClasses.length != 0 ? 2 : 0) + (bodyPartExamined.length != 0 ? 1 : 0); }
public int[] getBitsStored() { return condition.getBitsStored(); }
public PhotometricInterpretation[] getPhotometricInterpretations() { return condition.getPhotometricInterpretations(); }
public boolean matchesCondition(String aeTitle, ImageDescriptor imageDescriptor) { return condition.matches(aeTitle, imageDescriptor); }
int[] getBitsStored() { int n = 0; for (int i = 8; i <= 16; i++) if (matchBitStored(i)) n++; int[] bitsStored = new int[n]; for (int i = 8, j = 0; i <= 16; i++) if (matchBitStored(i)) bitsStored[j++] = i; return bitsStored; }
@Override public int compareTo(CompressionRule o) { return condition.compareTo(o.condition); }
public CompressionRule(String commonName, String[] pmis, int[] bitsStored, int pixelRepresentation, String[] aeTitles, String[] sopClasses, String[] bodyPartExamined, String tsuid, String... params) { this.commonName = commonName; this.condition = new Condition(pmis, bitsStored, pixelRepresentation, StringUtils.maskNull(aeTitles), StringUtils.maskNull(sopClasses), StringUtils.maskNull(bodyPartExamined)); this.tsuid = tsuid; this.imageWriteParams = Property.valueOf(params); }