WEB-02DICOMweb server endpoints

What this test proves

MapDicomWeb serves search, retrieve and store (Enterprise).

How it is tested

  1. Host MapDicomWeb("/dicomweb") with the in-memory store on Kestrel at 127.0.0.1
  2. STOW-RS the three uncompressed test files
  3. QIDO-RS studies by PatientID (expect 1) and instances in the study (expect 3)
  4. Pass if WADO-RS returns the CT instance with identical pixels and the study retrieve has 3 parts; HTTP 402 is reported as refused

Expected result for each license type

  • No key: Asks for key: stops and asks for a license key
  • Developer: Works
  • Pro: Refused: refused, naming the required tier (basics keep working)
  • Enterprise: Works
  • Expired: Refused: refused, naming the required tier (basics keep working)
  • Revoked: Refused: refused, naming the required tier (basics keep working)

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 Refused Pass
Refused
Pass
Refused
Pass
Refused
Pass
Enterprise Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Expired Refused Pass
Refused
Pass
Refused
Pass
Refused
Pass
Revoked Refused Pass
Refused
Pass
Refused
Pass
Refused
Pass

Recorded evidence

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

License.NETCapturedTime
No key .NET 8.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=KeyRequired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [none] [net8.0] DICOMweb server endpoints(caseId: "WEB-02", license: "none")"
36 ms
No key .NET 9.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=KeyRequired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [none] [net9.0] DICOMweb server endpoints(caseId: "WEB-02", license: "none")"
27 ms
No key .NET 10.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=KeyRequired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [none] [net10.0] DICOMweb server endpoints(caseId: "WEB-02", license: "none")"
37 ms
Developer .NET 8.0
MapDicomWeb("/dicomweb") on Kestrel 127.0.0.1:60043 with the in-memory store
STOW-RS 3 files: HTTP 200, 3 stored; QIDO studies 1, instances 3
WADO-RS instance (transfer-syntax *): pixel SHA-256 4ad0fbbe19feee2f = reference; study retrieve: 3 parts
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [developer] [net8.0] DICOMweb server endpoints(caseId: "WEB-02", license: "developer")"
62 ms
Developer .NET 9.0
MapDicomWeb("/dicomweb") on Kestrel 127.0.0.1:62741 with the in-memory store
STOW-RS 3 files: HTTP 200, 3 stored; QIDO studies 1, instances 3
WADO-RS instance (transfer-syntax *): pixel SHA-256 4ad0fbbe19feee2f = reference; study retrieve: 3 parts
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [developer] [net9.0] DICOMweb server endpoints(caseId: "WEB-02", license: "developer")"
83 ms
Developer .NET 10.0
MapDicomWeb("/dicomweb") on Kestrel 127.0.0.1:62687 with the in-memory store
STOW-RS 3 files: HTTP 200, 3 stored; QIDO studies 1, instances 3
WADO-RS instance (transfer-syntax *): pixel SHA-256 4ad0fbbe19feee2f = reference; study retrieve: 3 parts
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [developer] [net10.0] DICOMweb server endpoints(caseId: "WEB-02", license: "developer")"
81 ms
Pro .NET 8.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=ActivePro, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [pro] [net8.0] DICOMweb server endpoints(caseId: "WEB-02", license: "pro")"
24 ms
Pro .NET 9.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=ActivePro, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [pro] [net9.0] DICOMweb server endpoints(caseId: "WEB-02", license: "pro")"
28 ms
Pro .NET 10.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=ActivePro, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [pro] [net10.0] DICOMweb server endpoints(caseId: "WEB-02", license: "pro")"
28 ms
Enterprise .NET 8.0
MapDicomWeb("/dicomweb") on Kestrel 127.0.0.1:57146 with the in-memory store
STOW-RS 3 files: HTTP 200, 3 stored; QIDO studies 1, instances 3
WADO-RS instance (transfer-syntax *): pixel SHA-256 4ad0fbbe19feee2f = reference; study retrieve: 3 parts
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [enterprise] [net8.0] DICOMweb server endpoints(caseId: "WEB-02", license: "enterprise")"
68 ms
Enterprise .NET 9.0
MapDicomWeb("/dicomweb") on Kestrel 127.0.0.1:55240 with the in-memory store
STOW-RS 3 files: HTTP 200, 3 stored; QIDO studies 1, instances 3
WADO-RS instance (transfer-syntax *): pixel SHA-256 4ad0fbbe19feee2f = reference; study retrieve: 3 parts
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [enterprise] [net9.0] DICOMweb server endpoints(caseId: "WEB-02", license: "enterprise")"
92 ms
Enterprise .NET 10.0
MapDicomWeb("/dicomweb") on Kestrel 127.0.0.1:49338 with the in-memory store
STOW-RS 3 files: HTTP 200, 3 stored; QIDO studies 1, instances 3
WADO-RS instance (transfer-syntax *): pixel SHA-256 4ad0fbbe19feee2f = reference; study retrieve: 3 parts
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [enterprise] [net10.0] DICOMweb server endpoints(caseId: "WEB-02", license: "enterprise")"
73 ms
Expired .NET 8.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=Expired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [expired] [net8.0] DICOMweb server endpoints(caseId: "WEB-02", license: "expired")"
20 ms
Expired .NET 9.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=Expired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [expired] [net9.0] DICOMweb server endpoints(caseId: "WEB-02", license: "expired")"
20 ms
Expired .NET 10.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=Expired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [expired] [net10.0] DICOMweb server endpoints(caseId: "WEB-02", license: "expired")"
26 ms
Revoked .NET 8.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=Expired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [revoked] [net8.0] DICOMweb server endpoints(caseId: "WEB-02", license: "revoked")"
25 ms
Revoked .NET 9.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=Expired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [revoked] [net9.0] DICOMweb server endpoints(caseId: "WEB-02", license: "revoked")"
21 ms
Revoked .NET 10.0
HTTP 402 problem+json: detail "The DICOMweb server requires an Enterprise license (feature dicomweb.server). See https://dicomkit.plogic.dev/pricing"
licenseState=Expired, feature=dicomweb.server
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "WEB-02 [revoked] [net10.0] DICOMweb server endpoints(caseId: "WEB-02", license: "revoked")"
26 ms

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