Orion Health Registries API

Patient registry management

OpenAPI Specification

orion-registries-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Orion Health FHIR Alerts Registries 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: Registries
  description: Patient registry management
paths:
  /registries:
    get:
      operationId: listRegistries
      summary: Orion Health List patient registries
      description: Retrieve a list of patient registries configured for the organization, such as diabetes, heart failure, or chronic disease registries.
      tags:
      - Registries
      parameters:
      - name: type
        in: query
        description: Filter by registry type
        schema:
          type: string
          enum:
          - chronic-disease
          - preventive-care
          - behavioral-health
          - maternal-health
          - pediatric
          - custom
      - name: status
        in: query
        description: Filter by registry status
        schema:
          type: string
          enum:
          - active
          - inactive
          - archived
      - $ref: '#/components/parameters/PageOffset'
      - $ref: '#/components/parameters/PageLimit'
      responses:
        '200':
          description: List of patient registries
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Registry'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /registries/{registryId}:
    get:
      operationId: getRegistry
      summary: Orion Health Get a patient registry
      description: Retrieve details of a specific patient registry.
      tags:
      - Registries
      parameters:
      - name: registryId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Registry details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Registry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /registries/{registryId}/patients:
    get:
      operationId: listRegistryPatients
      summary: Orion Health List patients in a registry
      description: Retrieve the list of patients enrolled in a specific registry, with optional filtering by risk level and care status.
      tags:
      - Registries
      parameters:
      - name: registryId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: riskLevel
        in: query
        description: Filter by risk stratification level
        schema:
          type: string
          enum:
          - low
          - moderate
          - high
          - critical
      - name: careStatus
        in: query
        description: Filter by care management status
        schema:
          type: string
          enum:
          - enrolled
          - active
          - completed
          - discharged
      - $ref: '#/components/parameters/PageOffset'
      - $ref: '#/components/parameters/PageLimit'
      responses:
        '200':
          description: List of patients in the registry
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/RegistryPatient'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    RegistryPatient:
      type: object
      properties:
        patientId:
          type: string
        patientName:
          type: string
        dateOfBirth:
          type: string
          format: date
        gender:
          type: string
        riskLevel:
          type: string
          enum:
          - low
          - moderate
          - high
          - critical
        riskScore:
          type: number
        careStatus:
          type: string
          enum:
          - enrolled
          - active
          - completed
          - discharged
        primaryConditions:
          type: array
          items:
            type: string
        lastEncounterDate:
          type: string
          format: date
        assignedCareManager:
          type: string
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
    Registry:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        type:
          type: string
          enum:
          - chronic-disease
          - preventive-care
          - behavioral-health
          - maternal-health
          - pediatric
          - custom
        status:
          type: string
          enum:
          - active
          - inactive
          - archived
        patientCount:
          type: integer
        criteria:
          type: object
          properties:
            conditions:
              type: array
              items:
                type: string
            ageRange:
              type: object
              properties:
                min:
                  type: integer
                max:
                  type: integer
            gender:
              type: array
              items:
                type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        offset:
          type: integer
        limit:
          type: integer
        total:
          type: integer
        hasMore:
          type: boolean
  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
  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