Elation Health Problems API

Patient problem list management

OpenAPI Specification

elation-problems-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Elation Health REST Allergies Problems API
  description: RESTful API for Elation's primary care EHR platform enabling management of patient profiles, visit notes, clinical documents, problems, allergies, immunizations, vitals, medications, lab orders, imaging orders, referrals, appointments, insurance, billing, pharmacy, messaging, and practice administration. Supports OAuth2 client credentials authentication with both sandbox and production environments.
  version: '2.0'
  contact:
    name: Elation Health Developer Support
    url: https://docs.elationhealth.com/reference/api-overview
  termsOfService: https://www.elationhealth.com/
servers:
- url: https://app.elationemr.com/api/2.0
  description: Production
- url: https://sandbox.elationemr.com/api/2.0
  description: Sandbox
security:
- oauth2: []
tags:
- name: Problems
  description: Patient problem list management
paths:
  /problems/:
    get:
      operationId: problems_list
      summary: List problems
      description: Retrieve a paginated list of patient problems.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - name: patient
        in: query
        schema:
          type: integer
        description: Filter by patient ID
      responses:
        '200':
          description: Paginated list of problems
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProblemList'
    post:
      operationId: problems_create
      summary: Create a problem
      description: Add a new problem to a patient's problem list.
      tags:
      - Problems
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProblemCreate'
      responses:
        '201':
          description: Problem created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
  /problems/{id}/:
    get:
      operationId: problems_retrieve
      summary: Retrieve a problem
      description: Get details for a specific patient problem.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: Problem details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
    put:
      operationId: problems_update
      summary: Update a problem
      description: Replace all problem fields with the provided values.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProblemCreate'
      responses:
        '200':
          description: Problem updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
    patch:
      operationId: problems_partial_update
      summary: Partially update a problem
      description: Update one or more problem fields.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProblemCreate'
      responses:
        '200':
          description: Problem updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
    delete:
      operationId: problems_destroy
      summary: Delete a problem
      description: Remove a problem from the patient's problem list.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '204':
          description: Problem deleted
components:
  schemas:
    ProblemCreate:
      type: object
      required:
      - description
      - status
      - start_date
      - patient
      properties:
        description:
          type: string
          description: Description of the problem
        status:
          type: string
          enum:
          - Active
          - Controlled
          - Resolved
        synopsis:
          type: string
          description: Brief synopsis of the problem
        start_date:
          type: string
          format: date-time
          description: Date the problem started
        resolved_date:
          type: string
          format: date-time
          nullable: true
          description: Date the problem was resolved (required when status is Resolved)
        patient:
          type: integer
          description: Patient ID
        dx:
          $ref: '#/components/schemas/Diagnosis'
    Diagnosis:
      type: object
      properties:
        icd9:
          type: array
          items:
            type: string
        icd10:
          type: array
          items:
            type: string
        snomed:
          type: string
    Problem:
      allOf:
      - $ref: '#/components/schemas/ProblemCreate'
      - type: object
        properties:
          id:
            type: integer
            readOnly: true
          created_date:
            type: string
            format: date-time
            readOnly: true
          deleted_date:
            type: string
            format: date-time
            nullable: true
            readOnly: true
    PaginatedProblemList:
      allOf:
      - $ref: '#/components/schemas/PaginationMeta'
      - type: object
        properties:
          results:
            type: array
            items:
              $ref: '#/components/schemas/Problem'
    PaginationMeta:
      type: object
      properties:
        count:
          type: integer
          description: Total number of results
        next:
          type: string
          nullable: true
          description: URL for next page
        previous:
          type: string
          nullable: true
          description: URL for previous page
  parameters:
    offset:
      name: offset
      in: query
      schema:
        type: integer
        default: 0
      description: Pagination offset
    id:
      name: id
      in: path
      required: true
      schema:
        type: integer
      description: Unique resource identifier
    limit:
      name: limit
      in: query
      schema:
        type: integer
        default: 25
      description: Number of results to return
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://sandbox.elationemr.com/api/2.0/oauth2/token/
          scopes:
            apiv2: Full API access