DICOMweb QIDO-RS Extractor
Pricing
from $0.35 / 1,000 record extracteds
DICOMweb QIDO-RS Extractor
Point at ANY DICOMweb QIDO-RS server (Orthanc, dcm4chee, Google Healthcare, DICOMcloud) and query medical-imaging metadata at study, series or instance level. Decodes DICOM-tag JSON to clean fields, keeps the raw tags. Metadata only, no pixels.
Pricing
from $0.35 / 1,000 record extracteds
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Point at ANY DICOMweb server and pull medical-imaging metadata into clean, structured rows — study, series or instance level — with one Actor.
QIDO-RS (Query based on ID for DICOM Objects, RESTful Services) is the DICOM PS3.18 web standard for querying imaging metadata. Every conformant PACS / VNA / cloud imaging store — Orthanc, dcm4chee, Google Cloud Healthcare API, DICOMcloud, and many more — exposes the same uniform /studies, /series, /instances wire grammar. This Actor speaks that grammar generically: give it a base URL, a query level, and optional QIDO filters, and it returns normalized rows from any of them. No pixel data is ever fetched — metadata only.
What it does
- Three query levels (
mode):studies— one row per matching study.series— one row per series (across all studies, or scoped under aStudyInstanceUID).instances— one row per SOP instance (all, under a study, or under a specific series).
- Standard QIDO filters:
PatientID,PatientName,StudyDate(single or range),ModalitiesInStudy,AccessionNumber, plusincludefield,fuzzymatching, and any extra query params the server supports. - Decodes DICOM+JSON for you. Results come back tag-keyed (
00100010= PatientName) with{vr, Value[]}structures. This Actor maps the common tags to readable field names, normalizes Person-Name values (Last^First→First Last), coerces numeric attributes — and keeps the complete raw tag object in_rawplus a name-keyedtagsprojection, so nothing is ever lost. - Multi-server: pass several base URLs to harvest a whole fleet in one run.
- Paginated & de-duplicated via
limit/offsetwith per-level UID dedup.
Example input
{"dicomWebUrls": ["https://demo.orthanc-server.com/dicom-web"],"mode": "studies","ModalitiesInStudy": "CT","StudyDate": "20060101-20061231","maxRecords": 500}
Example output (one study row, abridged)
{"_source": "https://demo.orthanc-server.com/dicom-web","_level": "studies","StudyInstanceUID": "2.16.840.1.113669.632.20.1211.10000315526","PatientName": "VIX","PatientID": "vAD7q3","StudyDate": "20061005","ModalitiesInStudy": "CT","AccessionNumber": "0","NumberOfStudyRelatedSeries": 1,"NumberOfStudyRelatedInstances": 250,"tags": { "PatientName": "VIX", "Modality": "CT", "...": "..." },"_raw": { "00100010": { "vr": "PN", "Value": [ { "Alphabetic": "VIX" } ] }, "...": "..." }}
Input reference
| Field | Type | Notes |
|---|---|---|
dicomWebUrls | array (required) | One or more DICOMweb roots (the part before /studies). |
mode | select | studies | series | instances. Default studies. |
studyInstanceUID | string | Scope series/instances under one study. |
seriesInstanceUID | string | With a study + instances, scope under one series. |
PatientID, PatientName, StudyDate, ModalitiesInStudy, AccessionNumber | string | Standard QIDO match filters. |
includefield | array | Extra attributes to return, or all. |
fuzzymatching | boolean | Approximate name matching (server-dependent). |
extraQueryParams | object | Any additional QIDO match keys. |
pageLimit | integer | Page size (limit). Default 100. |
maxRecords | integer | Row cap across all sources. Default 1000. |
bearerToken | string (secret) | Optional OAuth2 bearer for protected servers (e.g. Google Cloud Healthcare). |
extraHeaders | object | Optional extra request headers. |
Notes
- Sends
Accept: application/dicom+jsonon every request, so servers that default to multipart XML still return JSON. - Authentication is optional and never required or logged for public servers.
- A study/series with zero children, or a query matching nothing, is a real empty answer. A run where no source returns anything fails fast so you never get a silently-empty result.
- Metadata only. This Actor does not retrieve pixel data (that is WADO-RS, a different service).
Pricing
Pay-per-event: you are charged per record emitted. Subscription-tier discounts apply automatically.