Overview

Once you have created an account and logged in, you can create an image store. Each image store has a unique label across all image stores, not just the ones owned by you.


All images stores share a common dicomweb root at https://litevna.app/dicomweb.

API Keys & Tokens

Creating API Keys

Log in to your account at https://litevna.app, navigate to your image store, and create an API key. When creating an API key, you can configure:


Creating Scoped Tokens (Optional)

You can derive short-lived, scoped tokens from your API keys using the POST /image-stores/{label}/tokens/create endpoint:

POST /image-stores/{label}/tokens/create
Content-Type: application/json

{
  // API key from which to derive the token
  "api_key_value": "eyJhbGc...",
  "ttl": 3600,
  // optional   "scopes": {
    "study_ids": ["1.2.3.4.5"],
    "patient_ids": ["P12345"]
  }
}

Tokens:

Authentication Methods

All requests must include valid authentication. The [token] in the examples below can be either:

Five authentication methods are supported:


1. Authorization Header (Bearer)

Authorization: Bearer [token]

Standard OAuth 2.0 Bearer token format.


2. Authorization Header (Basic)

Use username "litevna" with the token as password:

Authorization: Basic [base64(litevna:token)]

Useful for tools that support Basic auth but not custom headers.


3. URL Path Prefix

Embed the token in the URL path before /dicomweb:

https://litevna.app/key_[token]/dicomweb/studies

Useful for direct links without header support (e.g., image tags, embedding in viewers).


4. Cookie

Set a cookie named litevna-token with the token value.

Automatically set when creating tokens via the web UI.


5. Query Parameter

Add the token as a query parameter:

https://litevna.app/dicomweb/studies?_auth_token=[token]

Enables "simple" cross-origin requests without CORS preflight. Query param excluded from cache key.

QIDO

To issue a QIDO request, use a path such as: https://litevna.app/dicomweb/studies?limit=100

WADO

To issue a WADO request, use a path with the pattern:

https://litevna.app/dicomweb/studies/[studyUID]/series/[seriesUID]/metadata

or

https://litevna.app/dicomweb/studies/[StudyInstanceUID]/series/[SeriesInstanceUID]/instances/[SOPInstanceUID]/frame/1
DICOM Part 10

To download dicom part 10 file, set the Accept header to "application/dicom" on an instance level request, like:

GET https://litevna.app/dicomweb/studies/[StudyInstanceUID]/series/[SeriesInstanceUID]/instances/[SOPInstanceUID]
Accept: application/dicom

STOW

To store a dicom file (STOW), send a POST request to:

https://litevna.app/dicomweb/studies

DELETE

To delete a study, series, or instance and all child objects, send a DELETE request to the corresponding url, such as:

DELETE https://litevna.app/dicomweb/studies/[StudyInstanceUID]

or

DELETE https://litevna.app/dicomweb/studies/[StudyInstanceUID]/series/[SeriesInstanceUID]/instances/[SOPInstanceUID]
Made by Jason Hostetter