Skip to content

RTFM · Medical healthchecks

lb.saphira.dicom.wado: retrieve an object over HTTP (WADO-RS)

QIDO asks: WADO delivers. This check retrieves an actual object and demands the one thing a healthy WADO-RS service must return: HTTP 200 with application/dicom. A different verb, a different capability, a different check.

Saphira Linux dragon mascot

What it proves

The WADO-RS retrieve path: a configured instance/study URL returns 200 with content type application/dicom. This exercises the archive's object store: the part of the system a query check never touches. Continuous-safe, read-only.

How it works

curl issues a GET with Accept: application/dicom to the configured full instance URL; the status line and Content-Type header are both verified. TLS verification follows the same opt-in knob as the rest of the DICOMweb family.

Configuration

Knobs
Variable / positionalDefaultMeaning
$6 or LB_SAPHIRA_DICOM_WADO_URL(required)Full WADO instance URL
LB_SAPHIRA_DICOMWEB_TLS_VERIFY01 = enforce certificate verification
LB_SAPHIRA_TIMEOUT3Transaction deadline

Point it at a permanent, synthetic test object the archive keeps (stored once by the health-check SCP): retrieval then proves the object store without ever touching patient data.

Wiring it up

ldirectord
# ldirectord.cf - DICOMweb pool
virtual = 203.0.113.10:8081
    protocol = tcp
    scheduler = wlc
    real = 192.168.20.23:8081 gate 1
    checktype = external
    checkcommand = "/var/lib/lb/saphira/lb.saphira.dicom.wado"

Run it by hand

Manual run
LB_SAPHIRA_DICOM_WADO_URL='https://pacs/dicomweb/aets/ACPACS/studies/…/series/…/instances/…' \
  /var/lib/lb/saphira/lb.saphira.dicom.wado pacs 8081 192.168.20.23 8081
echo $?
# 0 = 200 + application/dicom
# 1 = non-200, wrong content type, or connection failure
# 2 = no URL configured

Failure modes

  • 404 on a permanent object: the object store lost the test object: exactly the storage-layer regression this check watches for
  • Wrong content type: an HTML login page or error handler answered: a proxy is in the way

Did we miss something?

If this page left something unanswered, found an error, or there is another subject you would like documented, tell us. Saphira’s documentation grows from real problems people need to solve.

Send feedback or request a new section →

Prefer not to do it yourself?

Everything needed to do the work yourself is documented here and remains free; we charge for human time, not for withholding knowledge. Sometimes the missing resource is simply time. The same people who build Saphira can provide paid professional help with implementation, migration, troubleshooting and administration.

Ask about professional support →