Orion Health Message Queues API

Message queue monitoring and management

OpenAPI Specification

orion-message-queues-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Orion Health FHIR Alerts Message Queues API
  description: The Orion Health FHIR API provides standards-based access to healthcare data using the HL7 FHIR (Fast Healthcare Interoperability Resources) specification. It enables healthcare organizations to read, search, create, and update clinical resources including patients, encounters, observations, conditions, medications, allergies, procedures, diagnostic reports, and care plans. The API conforms to FHIR R4 (v4.0.1) and supports both JSON and XML representations.
  version: 1.0.0
  contact:
    name: Orion Health API Support
    email: apisupport@orionhealth.com
    url: https://www.orionhealth.com/support
  license:
    name: Proprietary
    url: https://www.orionhealth.com/terms-of-service
  termsOfService: https://www.orionhealth.com/terms-of-service
servers:
- url: https://api.orionhealth.com/fhir
  description: Production FHIR Server
- url: https://sandbox.orionhealth.com/fhir
  description: Sandbox FHIR Server
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Message Queues
  description: Message queue monitoring and management
paths:
  /queues:
    get:
      operationId: listQueues
      summary: Orion Health List message queues
      description: Retrieve all message queues in the Rhapsody engine with their current depth and status.
      tags:
      - Message Queues
      parameters:
      - name: routeId
        in: query
        description: Filter by route ID
        schema:
          type: integer
      - name: hasErrors
        in: query
        description: Only show queues with errors
        schema:
          type: boolean
      - $ref: '#/components/parameters/PageOffset'
      - $ref: '#/components/parameters/PageLimit'
      responses:
        '200':
          description: List of message queues
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Queue'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /queues/{queueId}:
    get:
      operationId: getQueue
      summary: Orion Health Get queue details
      description: Retrieve details of a specific message queue.
      tags:
      - Message Queues
      parameters:
      - name: queueId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Queue details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueueDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /queues/{queueId}/messages:
    get:
      operationId: listQueueMessages
      summary: Orion Health List messages in a queue
      description: Retrieve messages currently held in a specific queue.
      tags:
      - Message Queues
      parameters:
      - name: queueId
        in: path
        required: true
        schema:
          type: integer
      - name: status
        in: query
        schema:
          type: string
          enum:
          - queued
          - error
          - held
      - $ref: '#/components/parameters/PageOffset'
      - $ref: '#/components/parameters/PageLimit'
      responses:
        '200':
          description: List of messages
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Message'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    PageLimit:
      name: limit
      in: query
      description: Maximum number of items to return
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    PageOffset:
      name: offset
      in: query
      description: Number of items to skip
      schema:
        type: integer
        minimum: 0
        default: 0
  schemas:
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
    QueueDetail:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        routeId:
          type: integer
        routeName:
          type: string
        depth:
          type: integer
        errorCount:
          type: integer
        heldCount:
          type: integer
        maxDepth:
          type: integer
        oldestMessageTime:
          type: string
          format: date-time
        averageWaitTimeMs:
          type: number
        throughputPerSecond:
          type: number
    Message:
      type: object
      properties:
        id:
          type: integer
        messageType:
          type: string
          description: HL7 message type (e.g., ADT^A01, ORM^O01)
        status:
          type: string
          enum:
          - processed
          - error
          - held
          - queued
        routeId:
          type: integer
        routeName:
          type: string
        receivedAt:
          type: string
          format: date-time
        processedAt:
          type: string
          format: date-time
        size:
          type: integer
          description: Message size in bytes
        errorMessage:
          type: string
    Queue:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        routeId:
          type: integer
        routeName:
          type: string
        depth:
          type: integer
          description: Number of messages in the queue
        errorCount:
          type: integer
        heldCount:
          type: integer
        oldestMessageTime:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        offset:
          type: integer
        limit:
          type: integer
        total:
          type: integer
        hasMore:
          type: boolean
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization using SMART on FHIR
      flows:
        authorizationCode:
          authorizationUrl: https://auth.orionhealth.com/oauth2/authorize
          tokenUrl: https://auth.orionhealth.com/oauth2/token
          scopes:
            patient/*.read: Read access to all patient data
            patient/*.write: Write access to all patient data
            patient/Patient.read: Read access to Patient resources
            patient/Observation.read: Read access to Observation resources
            patient/Condition.read: Read access to Condition resources
            patient/MedicationRequest.read: Read access to MedicationRequest resources
            launch: Launch context
            openid: OpenID Connect
            fhirUser: FHIR user identity
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT