NET-07C-MOVE and C-GET SCU

What this test proves

A workstation can retrieve a study with C-MOVE and C-GET and see progress.

How it is tested

  1. Start a query/retrieve SCP holding the 3-instance test study, and a C-STORE SCP DKRT_DEST on 127.0.0.1 as the move destination
  2. C-FIND the study, then C-MOVE it to DKRT_DEST with a progress callback
  3. C-GET the same study into a local store handler
  4. Pass if both end with 0x0000 and 3 completed sub-operations, progress was reported, and both delivered the same 3 instances and pixel hashes

Expected result for each license type

  • No key: Asks for key: stops and asks for a license key
  • Developer: Works
  • Pro: Works
  • Enterprise: Works
  • Expired: Works
  • Revoked: Works

Results

License Expected .NET 8.0 .NET 9.0 .NET 10.0 Result
No key Asks for key Pass
Asked for key
Pass
Asked for key
Pass
Asked for key
Pass
Developer Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Pro Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Enterprise Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Expired Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Revoked Works Pass
Worked
Pass
Worked
Pass
Worked
Pass

Recorded evidence

Captured by the automated test during the run, per license and .NET version.

License.NETCapturedTime
No key .NET 8.0
DicomKitLicenseException: DicomKit needs a license key. Get a free Developer key at https://dicomkit.plogic.dev/DeveloperKey (paid plans for production: https://dicomkit.plogic.dev/Pricing;
license state KeyRequired (NoKey)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [none] [net8.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "none")"
1 ms
No key .NET 9.0
DicomKitLicenseException: DicomKit needs a license key. Get a free Developer key at https://dicomkit.plogic.dev/DeveloperKey (paid plans for production: https://dicomkit.plogic.dev/Pricing;
license state KeyRequired (NoKey)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [none] [net9.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "none")"
1 ms
No key .NET 10.0
DicomKitLicenseException: DicomKit needs a license key. Get a free Developer key at https://dicomkit.plogic.dev/DeveloperKey (paid plans for production: https://dicomkit.plogic.dev/Pricing;
license state KeyRequired (NoKey)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [none] [net10.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "none")"
1 ms
Developer .NET 8.0
SCP: DicomServer in this process, 127.0.0.1:60030; move destination DKRT_DEST on 127.0.0.1:60029
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [developer] [net8.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "developer")"
27 ms
Developer .NET 9.0
SCP: DicomServer in this process, 127.0.0.1:62727; move destination DKRT_DEST on 127.0.0.1:62726
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [developer] [net9.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "developer")"
20 ms
Developer .NET 10.0
SCP: DicomServer in this process, 127.0.0.1:62670; move destination DKRT_DEST on 127.0.0.1:62669
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [developer] [net10.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "developer")"
23 ms
Pro .NET 8.0
SCP: DicomServer in this process, 127.0.0.1:63119; move destination DKRT_DEST on 127.0.0.1:63118
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [pro] [net8.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "pro")"
31 ms
Pro .NET 9.0
SCP: DicomServer in this process, 127.0.0.1:57711; move destination DKRT_DEST on 127.0.0.1:57710
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [pro] [net9.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "pro")"
20 ms
Pro .NET 10.0
SCP: DicomServer in this process, 127.0.0.1:55558; move destination DKRT_DEST on 127.0.0.1:55557
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [pro] [net10.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "pro")"
34 ms
Enterprise .NET 8.0
SCP: DicomServer in this process, 127.0.0.1:57133; move destination DKRT_DEST on 127.0.0.1:57132
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [enterprise] [net8.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "enterprise")"
30 ms
Enterprise .NET 9.0
SCP: DicomServer in this process, 127.0.0.1:55224; move destination DKRT_DEST on 127.0.0.1:55223
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [enterprise] [net9.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "enterprise")"
20 ms
Enterprise .NET 10.0
SCP: DicomServer in this process, 127.0.0.1:55385; move destination DKRT_DEST on 127.0.0.1:55384
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [enterprise] [net10.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "enterprise")"
22 ms
Expired .NET 8.0
SCP: peer SCP process licensed with the Enterprise QA key, 127.0.0.1:56416; move destination DKRT_DEST on 127.0.0.1:59479
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [expired] [net8.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "expired")"
1.4 s
Expired .NET 9.0
SCP: peer SCP process licensed with the Enterprise QA key, 127.0.0.1:62922; move destination DKRT_DEST on 127.0.0.1:58163
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [expired] [net9.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "expired")"
1.4 s
Expired .NET 10.0
SCP: peer SCP process licensed with the Enterprise QA key, 127.0.0.1:51445; move destination DKRT_DEST on 127.0.0.1:51443
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [expired] [net10.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "expired")"
1.5 s
Revoked .NET 8.0
SCP: peer SCP process licensed with the Enterprise QA key, 127.0.0.1:58176; move destination DKRT_DEST on 127.0.0.1:50666
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [revoked] [net8.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "revoked")"
1.4 s
Revoked .NET 9.0
SCP: peer SCP process licensed with the Enterprise QA key, 127.0.0.1:63257; move destination DKRT_DEST on 127.0.0.1:63172
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [revoked] [net9.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "revoked")"
4.0 s
Revoked .NET 10.0
SCP: peer SCP process licensed with the Enterprise QA key, 127.0.0.1:62383; move destination DKRT_DEST on 127.0.0.1:63843
MoveAsync: 0x0000, completed 3, failed 0; 4 progress reports in total
GetAsync: 0x0000, completed 3; same 3 SOP Instance UIDs and pixel hashes as the C-MOVE
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "NET-07 [revoked] [net10.0] C-MOVE and C-GET SCU(caseId: "NET-07", license: "revoked")"
27.9 s

Test run

Run
2ce13edc-f525-4ffb-ae07-648e5221cef9
Started (UTC)
2026-10-26 21:15:23, finished 21:21:01
Source commit
b804fb7
Environment
Microsoft Windows 11 Pro 10.0.26200 build 26200; Microsoft.AspNetCore.App 8.0.29, Microsoft.AspNetCore.App 9.0.18, Microsoft.AspNetCore.App 10.0.12, Microsoft.NETCore.App 3.1.32, Microsoft.NETCore.App 8.0.3, Microsoft.NETCore.App 8.0.29, Microsoft.NETCore.App 9.0.18, Microsoft.NETCore.App 10.0.12, Microsoft.WindowsDesktop.App 8.0.3, Microsoft.WindowsDesktop.App 8.0.29, Microsoft.WindowsDesktop.App 9.0.18, Microsoft.WindowsDesktop.App 10.0.12; Visual Studio Community 2026 18.10.3 (18.10.12224.181)
DicomKit
1.0.0 SHA-256 96ada39062c07bca37511abfb6baac0a44d914fb705bac01d77cb02146fdac0e
DicomKit.Cli
1.0.0 SHA-256 f8ffe70dc375cfe0d60881027e7cedb2502bc78ec5f5037f1d41b6c2481e1c84
DicomKit.Imaging
1.0.0 SHA-256 015b51ea833039d934ba153cae50d393fb77846430ca3fc3d65b4fb8cf4346ed
DicomKit.Web
1.0.0 SHA-256 2a2f4f7f02e1849929294062bee7dd8f3a24449428469c1fddb6982e77218a7b
DicomKit.Web.AspNetCore
1.0.0 SHA-256 daa1105881f1c0b60ca9c788d52d41445bd653a9d190c8862a2b2b1386d5e37c