diff --git a/src/WorkflowManager/Common/Interfaces/IPayloadService.cs b/src/WorkflowManager/Common/Interfaces/IPayloadService.cs old mode 100644 new mode 100755 diff --git a/src/WorkflowManager/Common/Services/PayloadService.cs b/src/WorkflowManager/Common/Services/PayloadService.cs old mode 100644 new mode 100755 index ddb2cc2c8..e2755a013 --- a/src/WorkflowManager/Common/Services/PayloadService.cs +++ b/src/WorkflowManager/Common/Services/PayloadService.cs @@ -97,7 +97,8 @@ public PayloadService( PatientDetails = patientDetails, PayloadDeleted = PayloadDeleted.No, Expires = await GetExpiry(DateTime.UtcNow, eventPayload.WorkflowInstanceId), - SeriesInstanceUid = _dicomService.GetSeriesInstanceUID(dict) + SeriesInstanceUid = _dicomService.GetSeriesInstanceUID(dict), + AccessionId = _dicomService.GetAccessionID(dict) ?? string.Empty }; if (await _payloadRepository.CreateAsync(payload)) diff --git a/src/WorkflowManager/Contracts/Migrations/M001_Payload_addVerion.cs b/src/WorkflowManager/Contracts/Migrations/M001_Payload_addVerion.cs old mode 100644 new mode 100755 diff --git a/src/WorkflowManager/Contracts/Migrations/M002_Payload_addPayloadDeleted.cs b/src/WorkflowManager/Contracts/Migrations/M002_Payload_addPayloadDeleted.cs old mode 100644 new mode 100755 diff --git a/src/WorkflowManager/Contracts/Migrations/M002_WorkflowRevision_addVerion.cs b/src/WorkflowManager/Contracts/Migrations/M002_WorkflowRevision_addVerion.cs old mode 100644 new mode 100755 index c621d60d2..558442bf4 --- a/src/WorkflowManager/Contracts/Migrations/M002_WorkflowRevision_addVerion.cs +++ b/src/WorkflowManager/Contracts/Migrations/M002_WorkflowRevision_addVerion.cs @@ -21,7 +21,7 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M002_WorkflowRevision_addVerion : DocumentMigration { - public M002_WorkflowRevision_addVerion() : base("1.0.0") { } + public M002_WorkflowRevision_addVerion() : base("1.0.2") { } public override void Up(BsonDocument document) { diff --git a/src/WorkflowManager/Contracts/Migrations/M003_Payload_addDataTrigger.cs b/src/WorkflowManager/Contracts/Migrations/M003_Payload_addDataTrigger.cs old mode 100644 new mode 100755 diff --git a/src/WorkflowManager/Contracts/Migrations/M003_WorkflowRevision_addDataRetension.cs b/src/WorkflowManager/Contracts/Migrations/M003_WorkflowRevision_addDataRetension.cs old mode 100644 new mode 100755 index d652ba096..b409c0f13 --- a/src/WorkflowManager/Contracts/Migrations/M003_WorkflowRevision_addDataRetension.cs +++ b/src/WorkflowManager/Contracts/Migrations/M003_WorkflowRevision_addDataRetension.cs @@ -22,7 +22,7 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M003_WorkflowRevision_addDataRetension : DocumentMigration { - public M003_WorkflowRevision_addDataRetension() : base("1.0.1") { } + public M003_WorkflowRevision_addDataRetension() : base("1.0.3") { } public override void Up(BsonDocument document) { diff --git a/src/WorkflowManager/Contracts/Migrations/M004_Payload_expires.cs b/src/WorkflowManager/Contracts/Migrations/M004_Payload_expires.cs old mode 100644 new mode 100755 diff --git a/src/WorkflowManager/Contracts/Migrations/M004_WorkflowRevision_addConditions.cs b/src/WorkflowManager/Contracts/Migrations/M004_WorkflowRevision_addConditions.cs old mode 100644 new mode 100755 index 03de8644e..37c3bf158 --- a/src/WorkflowManager/Contracts/Migrations/M004_WorkflowRevision_addConditions.cs +++ b/src/WorkflowManager/Contracts/Migrations/M004_WorkflowRevision_addConditions.cs @@ -22,7 +22,7 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M004_WorkflowRevision_addConditions : DocumentMigration { - public M004_WorkflowRevision_addConditions() : base("1.0.2") { } + public M004_WorkflowRevision_addConditions() : base("1.0.4") { } public override void Up(BsonDocument document) { diff --git a/src/WorkflowManager/Contracts/Migrations/M005_Payload_seriesUid.cs b/src/WorkflowManager/Contracts/Migrations/M005_Payload_seriesUid.cs old mode 100644 new mode 100755 diff --git a/src/WorkflowManager/Contracts/Migrations/M006_Payload_triggeredWorkflows.cs b/src/WorkflowManager/Contracts/Migrations/M006_Payload_triggeredWorkflows.cs old mode 100644 new mode 100755 diff --git a/src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs b/src/WorkflowManager/Contracts/Migrations/M007_Payload_addAccessionId.cs old mode 100644 new mode 100755 similarity index 80% rename from src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs rename to src/WorkflowManager/Contracts/Migrations/M007_Payload_addAccessionId.cs index 45c1a7449..87615b82c --- a/src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs +++ b/src/WorkflowManager/Contracts/Migrations/M007_Payload_addAccessionId.cs @@ -19,19 +19,20 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { - public class M001_WorkflowRevision_addVerion : DocumentMigration + public class M007_Payload_addAccessionId : DocumentMigration { - public M001_WorkflowRevision_addVerion() : base("1.0.0") { } + public M007_Payload_addAccessionId() : base("1.0.7") { } public override void Up(BsonDocument document) { - // empty, but this will make all objects re-saved with a version + document.Add("AccessionId", new BsonString(""), true); } + public override void Down(BsonDocument document) { try { - document.Remove("Version"); + document.Remove("AccessionId"); } catch { // can ignore we dont want failures stopping startup ! diff --git a/src/WorkflowManager/Contracts/Models/Payload.cs b/src/WorkflowManager/Contracts/Models/Payload.cs index fb78bdcd9..564d90396 100755 --- a/src/WorkflowManager/Contracts/Models/Payload.cs +++ b/src/WorkflowManager/Contracts/Models/Payload.cs @@ -27,11 +27,11 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { - [CollectionLocation("Payloads"), RuntimeVersion("1.0.6")] + [CollectionLocation("Payloads"), RuntimeVersion("1.0.7")] public class Payload : IDocument { [JsonConverter(typeof(DocumentVersionConvert)), BsonSerializer(typeof(DocumentVersionConverBson))] - public DocumentVersion Version { get; set; } = new DocumentVersion(1, 0, 5); + public DocumentVersion Version { get; set; } = new DocumentVersion(1, 0, 7); [JsonProperty(PropertyName = "id")] public string Id { get; set; } = string.Empty; @@ -39,6 +39,9 @@ public class Payload : IDocument [JsonProperty(PropertyName = "payload_id")] public string PayloadId { get; set; } = string.Empty; + [JsonProperty(PropertyName = "accession_id")] + public string AccessionId { get; set; } = string.Empty; + [JsonProperty(PropertyName = "workflows")] public IEnumerable Workflows { get; set; } = []; diff --git a/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs b/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs index cd43c9c7d..8cd2076e8 100755 --- a/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs +++ b/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs @@ -23,7 +23,7 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { - [CollectionLocation("Workflows"), RuntimeVersion("1.0.2")] + [CollectionLocation("Workflows"), RuntimeVersion("1.0.4")] public class WorkflowRevision : ISoftDeleteable, IDocument { [BsonId] diff --git a/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs b/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs old mode 100644 new mode 100755 index 2caee5c6a..4c1140830 --- a/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs +++ b/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs @@ -31,5 +31,7 @@ public static class DicomTagConstants public const string PatientHospitalIdTag = "00100021"; public const string SeriesInstanceUIDTag = "0020000E"; + + public const string AccessionNumberTag = "00080050"; } } diff --git a/src/WorkflowManager/Storage/Services/DicomService.cs b/src/WorkflowManager/Storage/Services/DicomService.cs old mode 100644 new mode 100755 index eeb8ce8ba..aa9c068dd --- a/src/WorkflowManager/Storage/Services/DicomService.cs +++ b/src/WorkflowManager/Storage/Services/DicomService.cs @@ -296,6 +296,20 @@ public string GetValue(Dictionary dict, string keyId) return null; } + public string? GetAccessionID(Dictionary? dict) + { + if (dict is null) + { + return null; + } + + if (dict.TryGetValue(DicomTagConstants.AccessionNumberTag, out var value)) + { + return JsonConvert.SerializeObject(value.Value); + } + return null; + } + private string TryGetValueAndLogSupported(string vrFullString, DicomValue value, string jsonString) { var result = TryGetValue(value); diff --git a/src/WorkflowManager/Storage/Services/IDicomService.cs b/src/WorkflowManager/Storage/Services/IDicomService.cs old mode 100644 new mode 100755 index 914c96ee5..0ce1de9be --- a/src/WorkflowManager/Storage/Services/IDicomService.cs +++ b/src/WorkflowManager/Storage/Services/IDicomService.cs @@ -76,7 +76,14 @@ public interface IDicomService /// Get the seriers instance UID from the metadata. /// /// - /// a string containing the seriers instanceUid + /// a string containing the series instanceUid string? GetSeriesInstanceUID(Dictionary? dict); + + /// + /// Gets the Accession number from the metadata. + /// + /// the metadata from the file + /// a string containing the accession number + string? GetAccessionID(Dictionary? dict); } }