private static QueryRetrieveLevel2 validateIdentifier( Attributes keys, EnumSet<QueryRetrieveLevel2> levels, boolean relational, boolean query) throws DicomServiceException { String value = keys.getString(Tag.QueryRetrieveLevel); if (value == null) throw missingAttribute(Tag.QueryRetrieveLevel); QueryRetrieveLevel2 level; try { level = QueryRetrieveLevel2.valueOf(value); } catch (IllegalArgumentException e) { throw invalidAttributeValue(Tag.QueryRetrieveLevel, value); } if (!levels.contains(level)) throw invalidAttributeValue(Tag.QueryRetrieveLevel, value); if (level == QueryRetrieveLevel2.PATIENT) { level.checkUniqueKey(keys, query, false); return level; } for (QueryRetrieveLevel2 level2 : levels) { if (level2 == level) { if (!query) level.checkUniqueKey(keys, false, true); break; } level2.checkUniqueKey(keys, relational, false); } return level; }
private static QueryRetrieveLevel2 validateIdentifier( Attributes keys, EnumSet<QueryRetrieveLevel2> levels, boolean relational, boolean query) throws DicomServiceException { String value = keys.getString(Tag.QueryRetrieveLevel); if (value == null) throw missingAttribute(Tag.QueryRetrieveLevel); QueryRetrieveLevel2 level; try { level = QueryRetrieveLevel2.valueOf(value); } catch (IllegalArgumentException e) { throw invalidAttributeValue(Tag.QueryRetrieveLevel, value); } if (!levels.contains(level)) throw invalidAttributeValue(Tag.QueryRetrieveLevel, value); if (level == QueryRetrieveLevel2.PATIENT) { level.checkUniqueKey(keys, query, false); return level; } for (QueryRetrieveLevel2 level2 : levels) { if (level2 == level) { if (!query) level.checkUniqueKey(keys, false, true); break; } level2.checkUniqueKey(keys, relational, false); } return level; }