DICOMweb QIDO-RS Extractor avatar

DICOMweb QIDO-RS Extractor

Pricing

from $0.35 / 1,000 record extracteds

Go to Apify Store
DICOMweb QIDO-RS Extractor

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

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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 a StudyInstanceUID).
    • 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, plus includefield, 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^FirstFirst Last), coerces numeric attributes — and keeps the complete raw tag object in _raw plus a name-keyed tags projection, so nothing is ever lost.
  • Multi-server: pass several base URLs to harvest a whole fleet in one run.
  • Paginated & de-duplicated via limit/offset with 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

FieldTypeNotes
dicomWebUrlsarray (required)One or more DICOMweb roots (the part before /studies).
modeselectstudies | series | instances. Default studies.
studyInstanceUIDstringScope series/instances under one study.
seriesInstanceUIDstringWith a study + instances, scope under one series.
PatientID, PatientName, StudyDate, ModalitiesInStudy, AccessionNumberstringStandard QIDO match filters.
includefieldarrayExtra attributes to return, or all.
fuzzymatchingbooleanApproximate name matching (server-dependent).
extraQueryParamsobjectAny additional QIDO match keys.
pageLimitintegerPage size (limit). Default 100.
maxRecordsintegerRow cap across all sources. Default 1000.
bearerTokenstring (secret)Optional OAuth2 bearer for protected servers (e.g. Google Cloud Healthcare).
extraHeadersobjectOptional extra request headers.

Notes

  • Sends Accept: application/dicom+json on 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.