InteleShare Storage API

The Storage API handles the raw DICOM image and study binary layer - upload (STOW-style ingest), retrieve rendered or original images and frames, wrap and unwrap DICOM, and manage thumbnails. Complements the Services API, which handles metadata and workflow. Endpoints are modeled from the public Storage API reference.

OpenAPI Specification

intelerad-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: InteleShare / Ambra v3 Services API (Modeled)
  version: v3
  x-endpoints-modeled: true
  description: >-
    MODELED OpenAPI for the Intelerad InteleShare / Ambra "v3 Services" public API
    (formerly Ambra Health / DICOM Grid). The v3 API is a documented public REST-like
    interface: clients POST (or GET) to RPC-style action endpoints under a resource
    namespace, and every response includes a `status` field of "OK" or "ERROR".
    Authentication uses a session id (`sid`) obtained from /session/login, HTTP Basic
    auth, or OAuth tokens for third-party integrations. DICOM instance access is also
    available over the DICOMweb standard (WADO-RS / QIDO-RS / STOW-RS).

    This document is HONESTLY MODELED from the public API reference at
    https://access.dicomgrid.com/api/v3/api.html and the InteleShare HL7 Guide. Exact
    request/response schemas, required parameters, and per-endpoint permissions are
    defined by Intelerad's authoritative reference and vary by account entitlement;
    treat the paths below as a representative, not exhaustive or byte-exact, surface.
  contact:
    name: Intelerad Medical Systems
    url: https://www.intelerad.com/en/contact-us/
servers:
- url: https://access.dicomgrid.com/api/v3
  description: InteleShare / Ambra v3 Services API (public cloud; account-specific
    hosts also exist, e.g. https://access.ambrahealth.com/api/v3)
security:
- sid: []
- basicAuth: []
- oauth: []
tags:
- name: Session
- name: Study
- name: Storage
- name: Patient
- name: Order
- name: Report
- name: HL7
- name: Webhook
- name: Namespace
paths:
  /session/login:
    post:
      tags: [Session]
      summary: Authenticate and obtain a session id (sid)
      responses:
        '200':
          description: OK response containing a session id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
  /session/logout:
    post:
      tags: [Session]
      summary: Invalidate the current session
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /study/list:
    post:
      tags: [Study]
      summary: List studies visible to the session, with filtering and pagination
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /study/get:
    post:
      tags: [Study]
      summary: Retrieve a single study's metadata by uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /study/share:
    post:
      tags: [Study]
      summary: Share a study to another namespace, user, or patient
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /study/delete:
    post:
      tags: [Study]
      summary: Delete a study
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /storage/study/{namespace}/{studyUid}:
    get:
      tags: [Storage]
      summary: Retrieve study image / pixel data from the Storage API
      parameters:
      - { name: namespace, in: path, required: true, schema: { type: string } }
      - { name: studyUid, in: path, required: true, schema: { type: string } }
      responses:
        '200':
          description: Binary DICOM or rendered image payload
  /patient/list:
    post:
      tags: [Patient]
      summary: List patient records within a namespace
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /patient/get:
    post:
      tags: [Patient]
      summary: Retrieve a patient record and demographics
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /order/list:
    post:
      tags: [Order]
      summary: List orders / scheduled procedures feeding the worklist
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /order/add:
    post:
      tags: [Order]
      summary: Create an order (often sourced from an inbound HL7 ORM message)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /report/list:
    post:
      tags: [Report]
      summary: List radiology reports attached to studies
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /hl7/transform/list:
    post:
      tags: [HL7]
      summary: List HL7 message templates and transforms (ORM / ORU / ADT)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /webhook/add:
    post:
      tags: [Webhook]
      summary: Register a webhook for platform events
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
  /namespace/list:
    post:
      tags: [Namespace]
      summary: List namespaces (tenant scopes) available to the session
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/StatusResponse' }
components:
  securitySchemes:
    sid:
      type: apiKey
      in: query
      name: sid
      description: Session id obtained from /session/login. May also be supplied as a
        request field depending on the endpoint.
    basicAuth:
      type: http
      scheme: basic
    oauth:
      type: http
      scheme: bearer
      description: OAuth bearer token for third-party integrations.
  schemas:
    StatusResponse:
      type: object
      description: Every v3 Services response includes a status field of OK or ERROR.
      required: [status]
      properties:
        status:
          type: string
          enum: [OK, ERROR]
        error_type:
          type: string
          description: Present when status is ERROR.
        error_subtype:
          type: string