athenahealth CDS Hooks API

CDS Hooks integration for athenaOne — invoke remote clinical decision support services at well-defined points in the EHR workflow (patient-view, order-select, order-sign, appointment-book). Returns Cards (suggestion, action, link) and optional SMART App Launch links to display real-time guidance inside the athenaOne provider experience.

OpenAPI Specification

athenahealth-cds-hooks-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: athenahealth CDS Hooks API
  description: |
    CDS Hooks integration for athenaOne — invoke remote clinical decision
    support services at well-defined points in the EHR workflow.
  version: 1.0.0
servers:
- url: https://cds.example.com
  description: Third-party CDS service implementing CDS Hooks
paths:
  /cds-services:
    get:
      summary: Discover CDS Services
      operationId: discoverCdsServices
      tags: [CDS Hooks]
      responses:
        '200':
          description: Discovery response
          content:
            application/json:
              schema:
                type: object
                properties:
                  services:
                    type: array
                    items:
                      $ref: '#/components/schemas/CdsService'
  /cds-services/{id}:
    post:
      summary: Invoke CDS Service
      operationId: invokeCdsService
      tags: [CDS Hooks]
      parameters:
      - name: id
        in: path
        required: true
        schema: {type: string}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CdsRequest'
      responses:
        '200':
          description: CDS Hooks response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CdsResponse'
components:
  schemas:
    CdsService:
      type: object
      properties:
        id: {type: string}
        hook: {type: string, enum: [patient-view, order-select, order-sign, appointment-book]}
        title: {type: string}
        description: {type: string}
        prefetch:
          type: object
          additionalProperties: {type: string}
    CdsRequest:
      type: object
      properties:
        hook: {type: string}
        hookInstance: {type: string}
        fhirServer: {type: string, format: uri}
        context:
          type: object
        prefetch:
          type: object
    CdsResponse:
      type: object
      properties:
        cards:
          type: array
          items:
            $ref: '#/components/schemas/Card'
    Card:
      type: object
      properties:
        summary: {type: string}
        indicator: {type: string, enum: [info, warning, critical]}
        detail: {type: string}
        source:
          type: object
          properties:
            label: {type: string}
            url: {type: string, format: uri}
        suggestions:
          type: array
          items:
            type: object
        links:
          type: array
          items:
            type: object
            properties:
              label: {type: string}
              url: {type: string, format: uri}
              type: {type: string, enum: [absolute, smart]}