Skip to content

Commit 12573b1

Browse files
authored
Merge pull request #1006 from Project-MONAI/nds-addAccessionId
Nds add accession
2 parents 1eab5bf + 119f136 commit 12573b1

17 files changed

+45
-17
lines changed

src/WorkflowManager/Common/Interfaces/IPayloadService.cs

100644100755
File mode changed.

src/WorkflowManager/Common/Services/PayloadService.cs

100644100755
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ public PayloadService(
9797
PatientDetails = patientDetails,
9898
PayloadDeleted = PayloadDeleted.No,
9999
Expires = await GetExpiry(DateTime.UtcNow, eventPayload.WorkflowInstanceId),
100-
SeriesInstanceUid = _dicomService.GetSeriesInstanceUID(dict)
100+
SeriesInstanceUid = _dicomService.GetSeriesInstanceUID(dict),
101+
AccessionId = _dicomService.GetAccessionID(dict) ?? string.Empty
101102
};
102103

103104
if (await _payloadRepository.CreateAsync(payload))

src/WorkflowManager/Contracts/Migrations/M001_Payload_addVerion.cs

100644100755
File mode changed.

src/WorkflowManager/Contracts/Migrations/M002_Payload_addPayloadDeleted.cs

100644100755
File mode changed.

src/WorkflowManager/Contracts/Migrations/M002_WorkflowRevision_addVerion.cs

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations
2121
{
2222
public class M002_WorkflowRevision_addVerion : DocumentMigration<WorkflowRevision>
2323
{
24-
public M002_WorkflowRevision_addVerion() : base("1.0.0") { }
24+
public M002_WorkflowRevision_addVerion() : base("1.0.2") { }
2525

2626
public override void Up(BsonDocument document)
2727
{

src/WorkflowManager/Contracts/Migrations/M003_Payload_addDataTrigger.cs

100644100755
File mode changed.

src/WorkflowManager/Contracts/Migrations/M003_WorkflowRevision_addDataRetension.cs

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations
2222
{
2323
public class M003_WorkflowRevision_addDataRetension : DocumentMigration<WorkflowRevision>
2424
{
25-
public M003_WorkflowRevision_addDataRetension() : base("1.0.1") { }
25+
public M003_WorkflowRevision_addDataRetension() : base("1.0.3") { }
2626

2727
public override void Up(BsonDocument document)
2828
{

src/WorkflowManager/Contracts/Migrations/M004_Payload_expires.cs

100644100755
File mode changed.

src/WorkflowManager/Contracts/Migrations/M004_WorkflowRevision_addConditions.cs

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations
2222
{
2323
public class M004_WorkflowRevision_addConditions : DocumentMigration<WorkflowRevision>
2424
{
25-
public M004_WorkflowRevision_addConditions() : base("1.0.2") { }
25+
public M004_WorkflowRevision_addConditions() : base("1.0.4") { }
2626

2727
public override void Up(BsonDocument document)
2828
{

src/WorkflowManager/Contracts/Migrations/M005_Payload_seriesUid.cs

100644100755
File mode changed.

src/WorkflowManager/Contracts/Migrations/M006_Payload_triggeredWorkflows.cs

100644100755
File mode changed.

src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs renamed to src/WorkflowManager/Contracts/Migrations/M007_Payload_addAccessionId.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,20 @@
1919

2020
namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations
2121
{
22-
public class M001_WorkflowRevision_addVerion : DocumentMigration<WorkflowRevision>
22+
public class M007_Payload_addAccessionId : DocumentMigration<Payload>
2323
{
24-
public M001_WorkflowRevision_addVerion() : base("1.0.0") { }
24+
public M007_Payload_addAccessionId() : base("1.0.7") { }
2525

2626
public override void Up(BsonDocument document)
2727
{
28-
// empty, but this will make all objects re-saved with a version
28+
document.Add("AccessionId", new BsonString(""), true);
2929
}
30+
3031
public override void Down(BsonDocument document)
3132
{
3233
try
3334
{
34-
document.Remove("Version");
35+
document.Remove("AccessionId");
3536
}
3637
catch
3738
{ // can ignore we dont want failures stopping startup !

src/WorkflowManager/Contracts/Models/Payload.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,21 @@
2727

2828
namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models
2929
{
30-
[CollectionLocation("Payloads"), RuntimeVersion("1.0.6")]
30+
[CollectionLocation("Payloads"), RuntimeVersion("1.0.7")]
3131
public class Payload : IDocument
3232
{
3333
[JsonConverter(typeof(DocumentVersionConvert)), BsonSerializer(typeof(DocumentVersionConverBson))]
34-
public DocumentVersion Version { get; set; } = new DocumentVersion(1, 0, 5);
34+
public DocumentVersion Version { get; set; } = new DocumentVersion(1, 0, 7);
3535

3636
[JsonProperty(PropertyName = "id")]
3737
public string Id { get; set; } = string.Empty;
3838

3939
[JsonProperty(PropertyName = "payload_id")]
4040
public string PayloadId { get; set; } = string.Empty;
4141

42+
[JsonProperty(PropertyName = "accession_id")]
43+
public string AccessionId { get; set; } = string.Empty;
44+
4245
[JsonProperty(PropertyName = "workflows")]
4346
public IEnumerable<string> Workflows { get; set; } = [];
4447

src/WorkflowManager/Contracts/Models/WorkflowRevision.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models
2525
{
26-
[CollectionLocation("Workflows"), RuntimeVersion("1.0.2")]
26+
[CollectionLocation("Workflows"), RuntimeVersion("1.0.4")]
2727
public class WorkflowRevision : ISoftDeleteable, IDocument
2828
{
2929
[BsonId]

src/WorkflowManager/Storage/Constants/DicomTagConstants.cs

100644100755
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,7 @@ public static class DicomTagConstants
3131
public const string PatientHospitalIdTag = "00100021";
3232

3333
public const string SeriesInstanceUIDTag = "0020000E";
34+
35+
public const string AccessionNumberTag = "00080050";
3436
}
3537
}

src/WorkflowManager/Storage/Services/DicomService.cs

100644100755
Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ public DicomService(IStorageService storageService, ILogger<DicomService> logger
6565

6666
public async Task<PatientDetails> GetPayloadPatientDetailsAsync(string payloadId, string bucketName)
6767
{
68-
ArgumentNullException.ThrowIfNullOrWhiteSpace(bucketName, nameof(bucketName));
69-
ArgumentNullException.ThrowIfNullOrWhiteSpace(payloadId, nameof(payloadId));
68+
ArgumentNullException.ThrowIfNullOrWhiteSpace(bucketName);
69+
ArgumentNullException.ThrowIfNullOrWhiteSpace(payloadId);
7070

7171
var dict = await GetMetaData(payloadId, bucketName);
7272

@@ -91,7 +91,7 @@ public async Task<PatientDetails> GetPayloadPatientDetailsAsync(string payloadId
9191

9292
private string? GetFirstValueAsync(Dictionary<string, DicomValue>? dict, string keyId)
9393
{
94-
ArgumentNullException.ThrowIfNullOrWhiteSpace(keyId, nameof(keyId));
94+
ArgumentNullException.ThrowIfNullOrWhiteSpace(keyId);
9595
if (dict is null)
9696
{
9797
return null;
@@ -117,8 +117,8 @@ public async Task<PatientDetails> GetPayloadPatientDetailsAsync(string payloadId
117117

118118
public async Task<Dictionary<string, DicomValue>?> GetMetaData(string payloadId, string bucketId)
119119
{
120-
ArgumentNullException.ThrowIfNullOrWhiteSpace(bucketId, nameof(bucketId));
121-
ArgumentNullException.ThrowIfNullOrWhiteSpace(payloadId, nameof(payloadId));
120+
ArgumentNullException.ThrowIfNullOrWhiteSpace(bucketId);
121+
ArgumentNullException.ThrowIfNullOrWhiteSpace(payloadId);
122122
var items = await _storageService.ListObjectsAsync(bucketId, $"{payloadId}/dcm", true);
123123
var dict = new Dictionary<string, DicomValue>(StringComparer.OrdinalIgnoreCase);
124124
try
@@ -296,6 +296,20 @@ public string GetValue(Dictionary<string, DicomValue> dict, string keyId)
296296
return null;
297297
}
298298

299+
public string? GetAccessionID(Dictionary<string, DicomValue>? dict)
300+
{
301+
if (dict is null)
302+
{
303+
return null;
304+
}
305+
306+
if (dict.TryGetValue(DicomTagConstants.AccessionNumberTag, out var value))
307+
{
308+
return JsonConvert.SerializeObject(value.Value);
309+
}
310+
return null;
311+
}
312+
299313
private string TryGetValueAndLogSupported(string vrFullString, DicomValue value, string jsonString)
300314
{
301315
var result = TryGetValue(value);

src/WorkflowManager/Storage/Services/IDicomService.cs

100644100755
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,14 @@ public interface IDicomService
7676
/// Get the seriers instance UID from the metadata.
7777
/// </summary>
7878
/// <param name="dict"></param>
79-
/// <returns>a string containing the seriers instanceUid</returns>
79+
/// <returns>a string containing the series instanceUid</returns>
8080
string? GetSeriesInstanceUID(Dictionary<string, DicomValue>? dict);
81+
82+
/// <summary>
83+
/// Gets the Accession number from the metadata.
84+
/// </summary>
85+
/// <param name="dict">the metadata from the file</param>
86+
/// <returns>a string containing the accession number</returns>
87+
string? GetAccessionID(Dictionary<string, DicomValue>? dict);
8188
}
8289
}

0 commit comments

Comments
 (0)