This API enables upload and retrieval of complete JMIX envelopes, with strict conformance to the JMIX structure and semantics.
All responses and uploads must support the following content types via HTTP content negotiation:
application/zip
Endpoint:
GET /api/jmix/{id}
You may also specify the studyInstanceUid query parameter to retrieve a specific study.
GET /api/jmix?studyInstanceUid=xxx
Other query parameters may be supported by the endpoint, but are not part of the specification.
Description:
Retrieve a full JMIX envelope by its envelope UUID.
Path Parameter:
id: Theidof the JMIX envelope as specified inmanifest.json.
Responses:
200 OK:
Returns a packaged JMIX envelope in the requested format (zip).
The archive contains a JMIX envelope as defined in the JMIX specification
406 Not Acceptable:
Returned if theAcceptheader requests an unsupported media type.404 Not Found:
Returned if the envelope or associated study is not found.
GET /api/jmix/{id}/manifest
Retrieve a JMIX manifest by its envelope UUID. This allows retrieving the transport information without requiring the entire data package.
Path Parameter
id: Themanifest.json.idof the JMIX envelope
Response
200 OK: Returns a json manifest in JSON format.
Endpoint: \
POST /api/jmix
Description:
Store a new JMIX envelope uploaded as a single archive file.
Headers
Content-Type: Required. Specifies the archive format used in the request body.
Supported values:application/zip→ for.ziparchiveapplication/gzip→ for.tar.gzarchive
Body
The request body must contain a .zip or .tar.gz archive representing a full JMIX envelope directory.
The archive must:
- Contain a valid JMIX envelope structure.
- Include a top-level
manifest.jsonfile. - Use the
manifest.json.idvalue as the authoritative envelope ID.
Responses
201 Created The envelope was accepted and stored successfully.
Example JSON response:
400 Bad Request
Returned if:- The archive is malformed or unreadable.
manifest.jsonis missing or invalid.- Required JMIX validation fails.
409 Conflict
Returned if an envelope with the sameidalready exists and cannot be overwritten.
manifest.jsonmust be present and parseablepayload/metadata.jsonmust be valid JSON- Envelope ID must be a UUID
- If
payload/files/is present,payload/files.jsonis required - If encryption metadata is present in
manifest.json.security, decrypt logic must be available - JWS signature is not required for acceptance, but may be stored and optionally verified
Endpoint: \
GET /api/jmix/prime/<studyInstanceUid>
Description:
Build a new JMIX envelope from a DICOM study. Returns only success or failure.
Responses
201 Created The study was found and was successfully primed.
404 Not Found The study was not found.
500 Internal Server Error An error occurred while priming the study.