コード例 #1
0
        /// <summary>
        /// Returns the output path for the anonymised file, relative to the ExtractionDirectory
        /// </summary>
        /// <param name="result"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public string GetOutputPath(QueryToExecuteResult result, ExtractionRequestMessage message)
        {
            string extToUse = message.IsIdentifiableExtraction ? IdentExt : AnonExt;

            // The extension of the input DICOM file can be anything (or nothing), but here we try to standardise the output file name to have the required extension
            string fileName = Path.GetFileName(result.FilePathValue);

            if (string.IsNullOrWhiteSpace(fileName))
            {
                throw new ArgumentNullException(nameof(fileName));
            }

            var replaced = false;

            foreach (string ext in _replaceableExtensions)
            {
                if (fileName.EndsWith(ext))
                {
                    fileName = fileName.Replace(ext, extToUse);
                    replaced = true;
                    break;
                }
            }

            if (!replaced)
            {
                fileName += extToUse;
            }

            return(Path.Combine(
                       result.StudyTagValue ?? "unknown",
                       result.SeriesTagValue ?? "unknown",
                       fileName));
        }
コード例 #2
0
 public void Test_QueryToExecuteResult_RejectReasonNullOrEmpty_ThrowsException()
 {
     Assert.Throws <ArgumentException>(() =>
     {
         var _ = new QueryToExecuteResult("foo", "bar", "baz", "whee", rejection: true, rejectionReason: null);
     });
     Assert.Throws <ArgumentException>(() =>
     {
         var _ = new QueryToExecuteResult("foo", "bar", "baz", "whee", rejection: true, rejectionReason: "  ");
     });
 }
コード例 #3
0
        public void TestDefaultProjectPathResolver_Both()
        {
            var result = new QueryToExecuteResult(
                Path.Combine("foo", "file"),
                "study",
                null,
                "sop",
                false,
                null);

            Assert.AreEqual(
                Path.Combine(
                    "study",
                    "unknown",
                    "file.dcm"),
                new NoSuffixProjectPathResolver().GetOutputPath(result, new ExtractionRequestMessage()));
        }
コード例 #4
0
        public void TestDefaultProjectPathResolver_Extensions(string expectedOutput, string inputFile)
        {
            var result = new QueryToExecuteResult(
                Path.Combine("foo", inputFile),
                "study",
                "series",
                "sop",
                false,
                null);

            Assert.AreEqual(
                Path.Combine(
                    "study",
                    "series",
                    expectedOutput),
                new NoSuffixProjectPathResolver().GetOutputPath(result, new ExtractionRequestMessage()));
        }
コード例 #5
0
        public void TestDefaultProjectPathResolver_IdParts(string study, string series)
        {
            var result = new QueryToExecuteResult(
                "foo.dcm",
                study,
                series,
                "sop",
                false,
                null);

            Assert.AreEqual(
                Path.Combine(
                    study ?? "unknown",
                    series ?? "unknown",
                    "foo.dcm"),
                new NoSuffixProjectPathResolver().GetOutputPath(result, new ExtractionRequestMessage()));
        }
コード例 #6
0
        public void Test_DefaultProjectPathResolver_IdentExtraction()
        {
            var requestMessage = new ExtractionRequestMessage
            {
                IsIdentifiableExtraction = true,
            };

            var result = new QueryToExecuteResult(
                Path.Combine("foo", "file"),
                "study",
                null,
                "sop",
                false,
                null);

            Assert.AreEqual(
                Path.Combine(
                    "study",
                    "unknown",
                    "file.dcm"),
                new DefaultProjectPathResolver().GetOutputPath(result, requestMessage));
        }