drchrono Practice Management API

Create and manage practice management resources

OpenAPI Specification

drchrono-practice-management-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: v4 - Hunt Valley
  description: RESTful API for the drchrono EHR platform providing access to patient records, clinical encounters, appointments, prescriptions, billing, lab orders, and practice administration with OAuth 2.0 authentication and HIPAA-compliant data exchange.
  x-logo:
    url: https://www.drchrono.com/site_media/images/logos/drchrono-black-wpadding.png
    altText: DrChrono Logo
  title: DrChrono EHR REST Administrative Practice Management API
servers:
- url: https://app.drchrono.com
tags:
- description: Create and manage practice management resources
  name: Practice Management
paths:
  /api/doctor_work_schedule/{id}:
    put:
      responses:
        '204':
          content: {}
          description: No Content
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: doctor_work_schedule_update
      description: Update an existing doctor's entire work schedule
    patch:
      responses:
        '204':
          content: {}
          description: No Content
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: doctor_work_schedule_partial_update
      description: Update an existing doctor's work schedule
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkSchedule'
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: doctor_work_schedule_read
      description: Retrieve a work schedule for the doctor (beta)
  /api/messages:
    post:
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DoctorMessage'
          description: Created
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: integer
          description: ''
          title: patient
        required: false
        description: ''
        name: patient
        in: query
      - schema:
          type: integer
          description: ''
          title: doctor
        required: false
        description: ''
        name: doctor
        in: query
      - schema:
          type: integer
          description: ''
          title: responsible_user
        required: false
        description: ''
        name: responsible_user
        in: query
      - schema:
          type: string
          description: ''
          title: updated_since
        required: false
        description: ''
        name: updated_since
        in: query
      - schema:
          type: string
          description: ''
          title: received_since
        required: false
        description: ''
        name: received_since
        in: query
      - schema:
          type: integer
          description: ''
          title: owner
        required: false
        description: ''
        name: owner
        in: query
      - schema:
          type: string
          description: ''
          title: type
        required: false
        description: ''
        name: type
        in: query
      tags:
      - Practice Management
      x-permissions:
      - message-center
      x-practice-access: '"share_communications" need to be set for data access among practice'
      security:
      - drchrono_oauth2:
        - messages:read
        - messages:write
      operationId: messages_create
      description: Create messages in doctor's message center
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                title: ''
                type: object
                description: Paginated Result
                properties:
                  previous:
                    type: string
                    description: Previous paginated page
                    title: previous
                  data:
                    items:
                      $ref: '#/components/schemas/DoctorMessage'
                    type: array
                    description: result data
                    title: data
                  next:
                    type: string
                    description: Next Paginated page
                    title: next
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: The pagination cursor value.
          title: Cursor
        required: false
        name: cursor
        in: query
      - schema:
          type: integer
          description: Number of results to return per page.
          title: Page size
        required: false
        name: page_size
        in: query
      - schema:
          type: integer
          description: ''
          title: patient
        required: false
        description: ''
        name: patient
        in: query
      - schema:
          type: integer
          description: ''
          title: doctor
        required: false
        description: ''
        name: doctor
        in: query
      - schema:
          type: integer
          description: ''
          title: responsible_user
        required: false
        description: ''
        name: responsible_user
        in: query
      - schema:
          type: string
          description: ''
          title: updated_since
        required: false
        description: ''
        name: updated_since
        in: query
      - schema:
          type: string
          description: ''
          title: received_since
        required: false
        description: ''
        name: received_since
        in: query
      - schema:
          type: integer
          description: ''
          title: owner
        required: false
        description: ''
        name: owner
        in: query
      - schema:
          type: string
          description: ''
          title: type
        required: false
        description: ''
        name: type
        in: query
      tags:
      - Practice Management
      x-permissions:
      - message-center
      x-practice-access: '"share_communications" need to be set for data access among practice'
      security:
      - drchrono_oauth2:
        - messages:read
        - messages:write
      operationId: messages_list
      description: Retrieve or search messages in doctor's message center
  /api/task_categories:
    post:
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskCategory'
          description: Created
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - tasks:read
        - tasks:write
      operationId: task_categories_create
      description: Create a task category
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                title: ''
                type: object
                description: Paginated Result
                properties:
                  previous:
                    type: string
                    description: Previous paginated page
                    title: previous
                  data:
                    items:
                      $ref: '#/components/schemas/TaskCategory'
                    type: array
                    description: result data
                    title: data
                  next:
                    type: string
                    description: Next Paginated page
                    title: next
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: The pagination cursor value.
          title: Cursor
        required: false
        name: cursor
        in: query
      - schema:
          type: integer
          description: Number of results to return per page.
          title: Page size
        required: false
        name: page_size
        in: query
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - tasks:read
        - tasks:write
      operationId: task_categories_list
      description: Retrieve or search task categories
  /api/offices/{id}/add_exam_room:
    post:
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Office'
          description: Created
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      - schema:
          type: integer
          description: ''
          title: doctor
        required: false
        description: ''
        name: doctor
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: offices_add_exam_room
      description: Add an exam room to the office
  /api/inventory_vaccines/{id}:
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryVaccine'
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      - schema:
          type: string
          description: ''
          title: status
        required: false
        description: ''
        name: status
        in: query
      - schema:
          type: string
          description: ''
          title: cvx_code
        required: false
        description: ''
        name: cvx_code
        in: query
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      - schema:
          type: integer
          description: ''
          title: doctor
        required: false
        description: ''
        name: doctor
        in: query
      tags:
      - Practice Management
      x-permissions:
      - clinical-notes
      x-practice-access: '"share_inventory" need to be set for data access among practice'
      security:
      - drchrono_oauth2:
        - clinical:read
        - clinical:write
      operationId: inventory_vaccines_read
      description: Retrieve an existing vaccine inventory
  /api/offices:
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                title: ''
                type: object
                description: Paginated Result
                properties:
                  previous:
                    type: string
                    description: Previous paginated page
                    title: previous
                  data:
                    items:
                      $ref: '#/components/schemas/Office'
                    type: array
                    description: result data
                    title: data
                  next:
                    type: string
                    description: Next Paginated page
                    title: next
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: The pagination cursor value.
          title: Cursor
        required: false
        name: cursor
        in: query
      - schema:
          type: integer
          description: Number of results to return per page.
          title: Page size
        required: false
        name: page_size
        in: query
      - schema:
          type: integer
          description: ''
          title: doctor
        required: false
        description: ''
        name: doctor
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: offices_list
      description: Retrieve or search offices
  /api/task_statuses/{id}:
    put:
      responses:
        '204':
          content: {}
          description: No Content
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - tasks:read
        - tasks:write
      operationId: task_statuses_update
      description: Update an existing task status
    patch:
      responses:
        '204':
          content: {}
          description: No Content
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - tasks:read
        - tasks:write
      operationId: task_statuses_partial_update
      description: Update an existing task status
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - tasks:read
        - tasks:write
      operationId: task_statuses_read
      description: Retrieve an existing task status
  /api/office_work_schedule:
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkSchedule'
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2: []
      operationId: office_work_schedule_list
      description: Get the work schedule for the authed doctor's primary office (beta)
  /api/task_templates:
    post:
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskTemplate'
          description: Created
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: integer
          description: ''
          title: assignee_user
        required: false
        description: ''
        name: assignee_user
        in: query
      - schema:
          type: integer
          description: ''
          title: status
        required: false
        description: ''
        name: status
        in: query
      - schema:
          type: integer
          description: ''
          title: assignee_group
        required: false
        description: ''
        name: assignee_group
        in: query
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      - schema:
          type: integer
          description: ''
          title: category
        required: false
        description: ''
        name: category
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - tasks:read
        - tasks:write
      operationId: task_templates_create
      description: Create a task template
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                title: ''
                type: object
                description: Paginated Result
                properties:
                  previous:
                    type: string
                    description: Previous paginated page
                    title: previous
                  data:
                    items:
                      $ref: '#/components/schemas/TaskTemplate'
                    type: array
                    description: result data
                    title: data
                  next:
                    type: string
                    description: Next Paginated page
                    title: next
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: The pagination cursor value.
          title: Cursor
        required: false
        name: cursor
        in: query
      - schema:
          type: integer
          description: Number of results to return per page.
          title: Page size
        required: false
        name: page_size
        in: query
      - schema:
          type: integer
          description: ''
          title: assignee_user
        required: false
        description: ''
        name: assignee_user
        in: query
      - schema:
          type: integer
          description: ''
          title: status
        required: false
        description: ''
        name: status
        in: query
      - schema:
          type: integer
          description: ''
          title: assignee_group
        required: false
        description: ''
        name: assignee_group
        in: query
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      - schema:
          type: integer
          description: ''
          title: category
        required: false
        description: ''
        name: category
        in: query
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - tasks:read
        - tasks:write
      operationId: task_templates_list
      description: Retrieve or search task templates
  /api/office_work_schedule/{id}:
    put:
      responses:
        '204':
          content: {}
          description: No Content
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: office_work_schedule_update
      description: Update an existing office's entire work schedule
    patch:
      responses:
        '204':
          content: {}
          description: No Content
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: office_work_schedule_partial_update
      description: Update an existing office's work schedule
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkSchedule'
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      tags:
      - Practice Management
      x-permissions: []
      x-practice-access: Data access among practice is available
      security:
      - drchrono_oauth2:
        - user:read
        - user:write
      operationId: office_work_schedule_read
      description: Retrieve a work schedule (beta)
  /api/inventory_categories/{id}:
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryCategory'
          description: OK
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
          description: Unauthorized
        '400':
          content: {}
          description: Bad Request
        '500':
          content: {}
          description: Internal Server Error
      parameters:
      - schema:
          type: string
          description: ''
          title: ''
        required: true
        name: id
        in: path
      - schema:
          type: string
          description: ''
          title: since
        required: false
        description: ''
        name: since
        in: query
      - schema:
          type: integer
          description: ''
          title: doctor
        required: false
        description: ''
        name: doctor
        in: query
      tags:
      - Practice Management
      x-permissions:
      - clinical-notes
      x-practice-access: '"share_inventory" need to be set for data access among practice'
      security:
      - drchrono_oauth2:
        - clinical:read
        - clinical:write
      operationId: inventory_categories_read
      description: Retrieve an existing inventory category
  /api/tasks/{id}:
    put:
      responses:
        '204':
          content: {}
          description: No Content
        '405':
          content: {}
          description: Method Not Allowed
        '404':
          content: {}
          description: Not Found
        '403':
          content: {}
          description: Permission Denied
        '401':
          content: {}
 

# --- truncated at 32 KB (116 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/drchrono/refs/heads/main/openapi/drchrono-practice-management-api-openapi.yml