diff --git a/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java b/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java index 236379e3a87f060a03d53f7e6fed6754044ec497..624e22c10383124b0d4126547e8bc15f5d998ad6 100644 --- a/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java +++ b/src/main/java/org/nrg/xnat/archive/GradualDicomImporter.java @@ -42,9 +42,12 @@ import org.nrg.xft.security.UserI; import org.nrg.xnat.DicomObjectIdentifier; import org.nrg.xnat.Files; import org.nrg.xnat.Labels; +import org.nrg.xnat.helpers.editscript.DicomEdit; import org.nrg.xnat.helpers.merge.AnonUtils; -import org.nrg.xnat.helpers.prearchive.*; +import org.nrg.xnat.helpers.prearchive.DatabaseSession; +import org.nrg.xnat.helpers.prearchive.PrearcDatabase; import org.nrg.xnat.helpers.prearchive.PrearcDatabase.Either; +import org.nrg.xnat.helpers.prearchive.PrearcUtils; import org.nrg.xnat.helpers.prearchive.PrearcUtils.SessionFileLockException; import org.nrg.xnat.helpers.prearchive.SessionData; import org.nrg.xnat.helpers.uri.URIManager; @@ -443,7 +446,7 @@ public class GradualDicomImporter extends ImporterHandlerA { } try { // check to see of this session came in through the upload applet - if (!session.getPreventAnon()) { + if (!session.getPreventAnon() && AnonUtils.getService().isEnabled(DicomEdit.buildScriptPath(DicomEdit.ResourceScope.SITE_WIDE, null),null)) { Configuration c = AnonUtils.getCachedSitewideAnon(); if (c != null && c.getStatus().equals(Configuration.ENABLED_STRING)) { //noinspection deprecation @@ -457,7 +460,7 @@ public class GradualDicomImporter extends ImporterHandlerA { } else { logger.debug("Anonymization is not enabled, allowing session {} {} {} to proceed without anonymization.", session.getProject(), session.getSubject(), session.getName()); } - } else { + } else if(session.getPreventAnon()){ logger.debug("The session {} {} {} has already been anonymized by the uploader, proceeding without further anonymization.", session.getProject(), session.getSubject(), session.getName()); } } catch (Throwable e) { diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/AnonymizationHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/AnonymizationHandlerMethod.java index 780b39c6ea8d30deb8cb92d35f30e8744ea9691a..1729ff32f4adac7c199c6dc53f534d9263765ef6 100644 --- a/src/main/java/org/nrg/xnat/event/listeners/methods/AnonymizationHandlerMethod.java +++ b/src/main/java/org/nrg/xnat/event/listeners/methods/AnonymizationHandlerMethod.java @@ -39,6 +39,12 @@ public class AnonymizationHandlerMethod extends AbstractSiteConfigPreferenceHand } private void updateAnon(){ + try { + AnonUtils.getService().setSiteWideScript(getAdminUser().getLogin(), DicomEdit.buildScriptPath(DicomEdit.ResourceScope.SITE_WIDE, null), XDAT.getSiteConfigPreferences().getSitewideAnonymizationScript()); + } + catch(Exception e){ + _log.error("Failed to set sitewide anon script.",e); + } try { if (XDAT.getSiteConfigPreferences().getEnableSitewideAnonymizationScript()) { AnonUtils.getService().enableSiteWide(getAdminUser().getLogin(), DicomEdit.buildScriptPath(DicomEdit.ResourceScope.SITE_WIDE, null)); @@ -49,12 +55,6 @@ public class AnonymizationHandlerMethod extends AbstractSiteConfigPreferenceHand catch(Exception e){ _log.error("Failed to enable/disable sitewide anon script.",e); } - try { - AnonUtils.getService().setSiteWideScript(getAdminUser().getLogin(), DicomEdit.buildScriptPath(DicomEdit.ResourceScope.SITE_WIDE, null), XDAT.getSiteConfigPreferences().getSitewideAnonymizationScript()); - } - catch(Exception e){ - _log.error("Failed to set sitewide anon script.",e); - } } private static final Logger _log = LoggerFactory.getLogger(AnonymizationHandlerMethod.class);