DICOMweb¶
pydcm.dicomweb is a QIDO / WADO / STOW / DELETE client over the native HTTP
stack — query, retrieve (streaming), store and delete against a remote server.
Query (QIDO-RS)¶
from pydcm import dicomweb
studies = dicomweb.search_studies("https://pacs.example.com",
matches={"PatientID": "42"})
series = dicomweb.search_series("https://pacs.example.com", study_uid)
instances = dicomweb.search_instances("https://pacs.example.com", study_uid, series_uid)
Pass includefields=[...] to widen the returned attributes and auth=... for a
bearer/basic credential.
Retrieve (WADO-RS)¶
# whole objects
parts = dicomweb.retrieve_study("https://pacs.example.com", study_uid) # list[bytes] Part-10
inst = dicomweb.retrieve_instance("https://pacs.example.com", study_uid, series_uid, sop_uid)
# streaming — bounded memory over a large study
for part10 in dicomweb.iter_study("https://pacs.example.com", study_uid):
ds = pydcm.dcmread(io.BytesIO(part10))
Other retrieve shapes: retrieve_series, retrieve_frames,
retrieve_*_metadata, retrieve_rendered, retrieve_bulkdata. Pass
transfer_syntax=... to negotiate the wire encoding.