AlayaCare Vitals API

The Vitals API from AlayaCare — 3 operation(s) for vitals.

OpenAPI Specification

alayacare-vitals-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.19-oas3
  title: AlayaCare Accounting Accounts Vitals API
  description: '**AlayaCare IDs:**

    The following terms are used to reference IDs that identify resources in AlayaCare:

    - id

    - visit_id

    - premium_id

    - visit_premium_id

    - employee_id

    - cost_centre_id

    - client_id


    **External IDs**

    The following terms are used to reference IDs that identify resources systems external to AlayaCare:

    - employee_external_id

    - client_external_id


    External IDs are required to be unique.

    No other assumptions are made regarding their format they are treated as strings.

    '
servers:
- url: https://example.alayacare.com/ext/api/v2/accounting
security:
- basic_auth: []
tags:
- name: Vitals
paths:
  /vitals/client/{client_id}:
    parameters:
    - description: Client ID
      name: client_id
      in: path
      required: true
      type: integer
    get:
      tags:
      - Vitals
      summary: Get a list of a client's vital recordings by the client's AlayaCare ID
      parameters:
      - $ref: '#/parameters/page'
      - $ref: '#/parameters/count'
      - name: group[]
        description: The group or comma-separated groups of the vitals.
        type: string
        in: query
      - name: name[]
        description: The name or comma-separated names of the vitals.
        type: string
        in: query
      - name: end_at
        description: The end date for the vital creation date range, using ISO 8601 date-time formatting.
        type: string
        in: query
      - name: start_at
        description: The start date for the vital creation date range, using ISO 8601 date-time formatting.
        type: string
        in: query
      responses:
        200:
          description: Client's vitals details
          schema:
            $ref: '#/definitions/VitalList'
        401:
          $ref: '#/responses/AuthChallenge'
        400:
          $ref: '#/responses/InvalidRequest'
    post:
      tags:
      - Vitals
      summary: Record a vital for a client using the client's AlayaCare ID
      parameters:
      - description: Vital data in JSON format
        name: vital
        in: body
        required: true
        schema:
          $ref: '#/definitions/VitalCreate'
      responses:
        201:
          description: Vital successfully created
          schema:
            $ref: '#/definitions/Vital'
        401:
          $ref: '#/responses/AuthChallenge'
        400:
          $ref: '#/responses/InvalidRequest'
  /vitals/client/by_id/{external_client_id}:
    parameters:
    - description: External client ID
      name: external_client_id
      in: path
      required: true
      type: string
    get:
      tags:
      - Vitals
      summary: Get a list of a client's vital recordings by the client's external ID
      parameters:
      - $ref: '#/parameters/page'
      - $ref: '#/parameters/count'
      - name: group[]
        description: The group or comma-separated groups of the vitals.
        type: string
        in: query
      - name: name[]
        description: The name or comma-separated names of the vitals.
        type: string
        in: query
      - name: end_at
        description: The end date for the vital creation date range, using ISO 8601 date-time formatting.
        type: string
        in: query
      - name: start_at
        description: The start date for the vital creation date range, using ISO 8601 date-time formatting.
        type: string
        in: query
      responses:
        200:
          description: Client's vitals details
          schema:
            $ref: '#/definitions/VitalList'
        401:
          $ref: '#/responses/AuthChallenge'
        400:
          $ref: '#/responses/InvalidRequest'
    post:
      tags:
      - Vitals
      summary: Record a vital for a client using the client's external ID
      parameters:
      - description: Vital data
        name: vital
        in: body
        required: true
        schema:
          $ref: '#/definitions/VitalCreate'
      responses:
        201:
          description: Create successful.
        401:
          $ref: '#/responses/AuthChallenge'
        400:
          $ref: '#/responses/InvalidRequest'
  /vitals/{vital_id}:
    parameters:
    - description: Vital ID
      name: vital_id
      in: path
      required: true
      type: string
      format: uuid
    get:
      tags:
      - Vitals
      summary: Get details of a vital recording
      responses:
        200:
          description: A vital
          schema:
            $ref: '#/definitions/Vital'
        401:
          $ref: '#/responses/AuthChallenge'
        400:
          $ref: '#/responses/InvalidRequest'
        404:
          $ref: '#/responses/NotFound'
    put:
      tags:
      - Vitals
      summary: Update a vital recording
      parameters:
      - description: Medication data
        name: medication
        in: body
        required: true
        schema:
          $ref: '#/definitions/VitalCreate'
      responses:
        200:
          description: Update successful.
        401:
          $ref: '#/responses/AuthChallenge'
        400:
          $ref: '#/responses/InvalidRequest'
        404:
          $ref: '#/responses/NotFound'
components:
  securitySchemes:
    basic_auth:
      type: http
      description: Basic HTTP auth over https
      scheme: basic
definitions:
  VitalOptionPosition:
    type: string
    description: The position of the client when recording a vital like `blood_pressure` or `pulse`.
    enum:
    - lying
    - sitting
    - standing
    example: sitting
  VitalList:
    type: object
    allOf:
    - $ref: '#/definitions/PaginatedList'
    description: A list of vitals
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/Vital'
  ErrorResponse:
    description: Error response
    type: object
    properties:
      code:
        type: integer
        description: Response code
      message:
        type: string
        description: Detailed error message
    required:
    - code
    - message
  PaginatedList:
    description: Base model of all paginated lists
    type: object
    properties:
      count:
        type: integer
        description: Number of items in the response
        example: 1
      page:
        type: integer
        description: Current page number
        example: 1
      total_pages:
        type: integer
        description: Total number of pages availbale
        example: 1
      items:
        type: array
        items:
          type: object
    required:
    - count
    - page
    - total_pages
    - items
  VitalUnits:
    type: string
    description: The unit used to record the vital.
    enum:
    - c
    - f
    - kgs
    - lb
    - bpm
    - breaths_pm
    - mmhg
    - cm
    - in
    - mmol_l
    - mg_dl
    - kg_m2
    - '%'
    example: mmhg
  VitalOptions:
    type: object
    x-nullable: true
    description: Additional options required for some vital types.
    properties:
      position:
        $ref: '#/definitions/VitalOptionPosition'
      route:
        $ref: '#/definitions/VitalOptionRoute'
  VitalName:
    type: string
    description: The name identifying the vital type.
    enum:
    - blood_glucose
    - bmi
    - height
    - pulse
    - pressure_min
    - pressure_max
    - weight
    - respiratory_rate
    - spo2
    - temperature
    example: pressure_max
  VitalCreate:
    type: object
    description: Vital details
    required:
    - client_id
    - external_client_id
    - name
    - value
    - unit
    properties:
      client_id:
        type: integer
        description: The client ID.
        example: 1234
      external_client_id:
        type: string
        description: The external client ID.
        example: client_1234
      comments:
        x-nullable: true
        type: string
        description: A comment.
        example: No unexpected results
      group:
        x-nullable: true
        type: string
        description: The vital group. This is used to group together separate vitals that are measured together like low and high blood pressure. If no group, this should be set to `name`.
        example: blood_pressure
      name:
        $ref: '#/definitions/VitalName'
      options:
        $ref: '#/definitions/VitalOptions'
      session_guid:
        type: string
        description: A unique identifier to group vitals recorded together within the same `group`.
        example: 97a3e055-2fd1-469d-a058-b173499e37ff
      source:
        type: string
        description: A description of how the vital was recorded. This may be set if the client recorded the vital themselves.
        example: default
      unit:
        $ref: '#/definitions/VitalUnits'
      user_guid:
        x-nullable: true
        type: integer
        description: The `guid` of the user that created the vital. This will generally be the `guid` of the employee, unless the `source` or `user_type` indicate otherwise.
        example: 234
      user_type:
        type: string
        description: The type of user that created the vital. Generally this will not be set unless thesomeone other than an employee created the vital.
        x-nullable: true
        example: null
      value:
        type: number
        description: The value of the recorded vital.
        example: 38.4
  Vital:
    allOf:
    - $ref: '#/definitions/VitalCreate'
    type: object
    description: Vital details
    required:
    - client_id
    - id
    - name
    - date
    - value
    - unit
    properties:
      date:
        type: string
        description: The created date using ISO 8601 date-time formatting.
        example: '2018-01-01T00:30:00+00:00'
      id:
        type: string
        description: The vital ID.
        example: adedb729-54fa-473e-b929-9c71ef5c248e
  VitalOptionRoute:
    type: string
    description: The route that awas used when recording a vital like `temperature`.
    enum:
    - axillary
    - oral
    - rectal
    - tympanic
    example: oral
parameters:
  count:
    name: count
    default: 100
    in: query
    required: false
    type: integer
    description: Number of items per page. If not specified will default to 100.
  page:
    name: page
    default: 1
    in: query
    required: false
    type: integer
    description: Filter by page number. If not specified will default to 1.
responses:
  InvalidRequest:
    description: Invalid data.
    schema:
      $ref: '#/definitions/ErrorResponse'
    examples:
      application/json:
        code: 400
        message: Invalid request
  NotFound:
    description: Not found.
    schema:
      $ref: '#/definitions/ErrorResponse'
    examples:
      application/json:
        code: 404
        message: Progress note not found
  AuthChallenge:
    description: Authentication required.
    schema:
      $ref: '#/definitions/ErrorResponse'
    examples:
      application/json:
        code: 401
        message: Please verify your access level for this url.