in import/src/main/java/com/google/cloud/healthcare/imaging/dicomadapter/ImportAdapter.java [257:287]
private static DicomRedactor configureRedactor(Flags flags) throws IOException{
DicomRedactor redactor = null;
int tagEditFlags = (flags.tagsToRemove.isEmpty() ? 0 : 1) +
(flags.tagsToKeep.isEmpty() ? 0 : 1) +
(flags.tagsProfile.isEmpty() ? 0 : 1);
if (tagEditFlags > 1) {
throw new IllegalArgumentException("Only one of 'redact' flags may be present");
}
if (tagEditFlags > 0) {
DicomConfigProtos.DicomConfig.Builder configBuilder = DicomConfig.newBuilder();
if (!flags.tagsToRemove.isEmpty()) {
List<String> removeList = Arrays.asList(flags.tagsToRemove.split(","));
configBuilder.setRemoveList(
DicomConfig.TagFilterList.newBuilder().addAllTags(removeList));
} else if (!flags.tagsToKeep.isEmpty()) {
List<String> keepList = Arrays.asList(flags.tagsToKeep.split(","));
configBuilder.setKeepList(
DicomConfig.TagFilterList.newBuilder().addAllTags(keepList));
} else if (!flags.tagsProfile.isEmpty()){
configBuilder.setFilterProfile(TagFilterProfile.valueOf(flags.tagsProfile));
}
try {
redactor = new DicomRedactor(configBuilder.build());
} catch (Exception e) {
throw new IOException("Failure creating DICOM redactor", e);
}
}
return redactor;
}