From 4ae0ba483e350e60915b0a6315217629bca869db Mon Sep 17 00:00:00 2001 From: Ruairidh MacLeod Date: Thu, 1 Apr 2021 10:11:50 +0100 Subject: [PATCH 1/6] Remove block on SeriesInstanceUID+Modality in CohortPackager --- .../Execution/ExtractJobStorage/ExtractJobStore.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/microservices/Microservices.CohortPackager/Execution/ExtractJobStorage/ExtractJobStore.cs b/src/microservices/Microservices.CohortPackager/Execution/ExtractJobStorage/ExtractJobStore.cs index 9b227a9e0..28cd14635 100644 --- a/src/microservices/Microservices.CohortPackager/Execution/ExtractJobStorage/ExtractJobStore.cs +++ b/src/microservices/Microservices.CohortPackager/Execution/ExtractJobStorage/ExtractJobStore.cs @@ -26,9 +26,9 @@ public void PersistMessageToStore( { Logger.Info($"Received new job info {message}"); - // If KeyTag is StudyInstanceUID then ExtractionModality must be specified, otherwise must be null - if (message.KeyTag == "StudyInstanceUID" ^ !string.IsNullOrWhiteSpace(message.ExtractionModality)) - throw new ApplicationException($"Invalid combination of KeyTag and ExtractionModality (KeyTag={message.KeyTag}, ExtractionModality={message.ExtractionModality}"); + // If KeyTag is StudyInstanceUID then ExtractionModality must be specified + if (message.KeyTag == "StudyInstanceUID" && string.IsNullOrWhiteSpace(message.ExtractionModality)) + throw new ApplicationException($"ExtractionModality must be specified when the extraction key is StudyInstanceUID"); PersistMessageToStoreImpl(message, header); } From 7f649d723eb08a7effb517f685f6e532bc7d9ade Mon Sep 17 00:00:00 2001 From: Ruairidh MacLeod Date: Thu, 1 Apr 2021 10:17:58 +0100 Subject: [PATCH 2/6] Remove block on SeriesInstanceUID+Modality in ExtractorCLI --- .../src/main/java/org/smi/extractorcl/Program.java | 2 +- .../extractorcl/fileUtils/ExtractMessagesCsvHandler.java | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/Program.java b/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/Program.java index 91fe057ca..2f9a10d49 100644 --- a/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/Program.java +++ b/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/Program.java @@ -84,7 +84,7 @@ private static CommandLine ParseOptions(String[] args) throws ParseException { Option .builder("m") .argName("modality") - .desc("Extraction modality. Should only be specified if extracting at the Study level") + .desc("Extraction modality") .hasArg() .longOpt("modality") .build()); diff --git a/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java b/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java index 4f8510dc6..aa8efdb22 100644 --- a/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java +++ b/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java @@ -64,11 +64,6 @@ public ExtractMessagesCsvHandler(UUID extractionJobID, String projectID, String _extractionModality = extractionModality; _isIdentifiableExtraction = isIdentifiableExtraction; _isNoFilterExtraction = isNoFilterExtraction; - - // TODO(rkm 2020-01-30) Properly handle parsing of the supported modalities - if (_extractionModality != null && (!_extractionModality.equals("CT") && !_extractionModality.equals("MR"))) { - throw new IllegalArgumentException("Invalid value " + _extractionModality + " for extractionModality. Supported values are: CT, MR"); - } } @Override @@ -92,8 +87,6 @@ public void processHeader(String[] header) throws LineProcessingException, Illeg if (_extractionKey == ExtractionKey.StudyInstanceUID && _extractionModality == null) throw new IllegalArgumentException("Extracting by StudyInstanceUID, but extraction modality not set"); - if (_extractionKey != ExtractionKey.StudyInstanceUID && _extractionModality != null) - throw new IllegalArgumentException("Extraction modality set, but extraction identifier is " + _extractionKey); _logger.debug("extractionKey: " + _extractionKey); } From 5723b2207428d9d510bea9a5fe1ef9bbf55fd248 Mon Sep 17 00:00:00 2001 From: Ruairidh MacLeod Date: Thu, 1 Apr 2021 10:24:16 +0100 Subject: [PATCH 3/6] Remove case from test --- .../Execution/ExtractJobStorage/ExtractJobStoreTest.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/microservices/Microservices.CohortPackager.Tests/Execution/ExtractJobStorage/ExtractJobStoreTest.cs b/tests/microservices/Microservices.CohortPackager.Tests/Execution/ExtractJobStorage/ExtractJobStoreTest.cs index dc945b7c7..f7c201cfd 100644 --- a/tests/microservices/Microservices.CohortPackager.Tests/Execution/ExtractJobStorage/ExtractJobStoreTest.cs +++ b/tests/microservices/Microservices.CohortPackager.Tests/Execution/ExtractJobStorage/ExtractJobStoreTest.cs @@ -68,10 +68,6 @@ public void TestPersistMessageToStore_ExtractionRequestInfoMessage() message.KeyTag = "StudyInstanceUID"; message.ExtractionModality = null; Assert.Throws(() => testExtractJobStore.PersistMessageToStore(message, mockHeader)); - - message.KeyTag = "SeriesInstanceUID"; - message.ExtractionModality = "MR"; - Assert.Throws(() => testExtractJobStore.PersistMessageToStore(message, mockHeader)); } [Test] From d8a8bf72fda9d7859e64e89064cbdd78bfe24e9f Mon Sep 17 00:00:00 2001 From: Ruairidh MacLeod Date: Thu, 1 Apr 2021 09:32:30 +0000 Subject: [PATCH 4/6] remove Java test case --- .../test/fileUtils/ExtractImagesCsvHandlerTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/applications/com.smi.applications.extractorcli/src/test/java/org/smi/extractorcl/test/fileUtils/ExtractImagesCsvHandlerTest.java b/src/applications/com.smi.applications.extractorcli/src/test/java/org/smi/extractorcl/test/fileUtils/ExtractImagesCsvHandlerTest.java index fa199c7db..57626dfe4 100644 --- a/src/applications/com.smi.applications.extractorcli/src/test/java/org/smi/extractorcl/test/fileUtils/ExtractImagesCsvHandlerTest.java +++ b/src/applications/com.smi.applications.extractorcli/src/test/java/org/smi/extractorcl/test/fileUtils/ExtractImagesCsvHandlerTest.java @@ -250,14 +250,6 @@ public void testModalityRequirement() throws LineProcessingException { // Yes, I know there's probably some way to do this with JUnit boolean thrown = false; - try { - handler = new ExtractMessagesCsvHandler(uuid, "MyProjectID", "MyProjectFolder", "aaaaa",false,false, - extractRequestMessageProducerModel, extractRequestInfoMessageProducerModel); - } catch (IllegalArgumentException e) { - thrown = true; - } - assertTrue(thrown); - handler = new ExtractMessagesCsvHandler(uuid, "MyProjectID", "MyProjectFolder", null,false,false, extractRequestMessageProducerModel, extractRequestInfoMessageProducerModel); From 93c18354d6f66ab62bf32df743bbadb121732a7b Mon Sep 17 00:00:00 2001 From: Ruairidh MacLeod Date: Thu, 1 Apr 2021 10:42:50 +0100 Subject: [PATCH 5/6] Enable modality case in log statement --- .../smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java b/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java index aa8efdb22..865402b3a 100644 --- a/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java +++ b/src/applications/com.smi.applications.extractorcli/src/main/java/org/smi/extractorcl/fileUtils/ExtractMessagesCsvHandler.java @@ -170,8 +170,7 @@ public void sendMessages(boolean autoRun, int maxIdentifiersPerMessage) throws I sb.append(" ExtractionKey: " + _extractionKey + System.lineSeparator()); sb.append(" IsIdentifiableExtraction: " + _isIdentifiableExtraction + System.lineSeparator()); sb.append(" IsNoFilterExtraction: " + _isNoFilterExtraction + System.lineSeparator()); - if (_extractionKey == ExtractionKey.StudyInstanceUID) - sb.append(" ExtractionModality: " + _extractionModality + System.lineSeparator()); + sb.append(" ExtractionModality: " + _extractionModality + System.lineSeparator()); sb.append(" KeyValueCount: " + _identifierSet.size() + System.lineSeparator()); sb.append(" Number of ExtractionRequestMessage(s): " + split.size() + System.lineSeparator()); System.out.println(sb); From e9c8c8a8e585232be67465e97b0150312a0201d6 Mon Sep 17 00:00:00 2001 From: Ruairidh MacLeod Date: Thu, 1 Apr 2021 10:06:10 +0000 Subject: [PATCH 6/6] add news file --- news/695-bugfix.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 news/695-bugfix.md diff --git a/news/695-bugfix.md b/news/695-bugfix.md new file mode 100644 index 000000000..238df3d32 --- /dev/null +++ b/news/695-bugfix.md @@ -0,0 +1 @@ +Fixes #695. Removes the checks preventing modality being specified with other extraction keys