# Canvas Medical (BETA)
URL: https://docs.awellhealth.com/docs/marketplace/canvasmedical

> For the complete documentation index, see [llms.txt](https://docs.awellhealth.com/llms.txt).



<img src="/marketplace/canvasmedical.png" width="48" height="48" />

Canvas Medical allows the collection and manage data through a digital device that contains all of the patient's medical history

Category: EHR Integrations. Adds 10 actions to a care flow.

## What to configure [#what-to-configure]

Set these once, on the extension in Awell Studio. An action fails at run time if a
required setting is missing.

| Setting           | Required | Notes                                                                               |
| ----------------- | -------- | ----------------------------------------------------------------------------------- |
| Audience          | No       | The audience for OAuth2 client credentials authentication.                          |
| Authorization URL | Yes      | The complete URL of OAuth2 authentication endpoint.                                 |
| Base URL          | Yes      | The base URL of Canvas Medical API.                                                 |
| Client ID         | Yes      | The client ID for OAuth2 authentication.                                            |
| Client Secret     | Yes      | The client secret for OAuth2 client credentials authentication. Stored as a secret. |

## Actions [#actions]

Canvas Medical (BETA) adds these 10 actions to a care flow. Add one to a step, then fill in its inputs.

### Create Appointment [#create-appointment]

Create an appointment

This action can be previewed in Studio before you publish.

| Input            | Type   | Required | Description      |
| ---------------- | ------ | -------- | ---------------- |
| Appointment data | `json` | Yes      | Appointment data |

Returns:

| Data point      | Type     |
| --------------- | -------- |
| `appointmentId` | `string` |

Easily schedule appointments with providers using the Canvas API. This action allows you to reserve a meeting with a healthcare provider by submitting `appointmentData` in JSON format. Upon successful execution, the data points returns the unique `appointmentId`, serving as the key within the Canvas API object.

### Create claim [#create-claim]

Create a claim for a specific patient.

This action can be previewed in Studio before you publish.

| Input           | Type     | Required | Description                                                                                                                                            |
| --------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Status          | `string` | Yes      | Accepts a value representing the status compliant with Canvas Medical.                                                                                 |
| Type            | `json`   | Yes      | Accepts a JSON object representing the type compliant with Canvas Medical.                                                                             |
| Patient ID      | `string` | Yes      | The patient's unique resource ID (e.g. 865058f6654149bd921264d91519af9e).                                                                              |
| Created         | `date`   | Yes      | The field indicating when this claim resource was created.                                                                                             |
| Provider        | `json`   | Yes      | The field related to determining personnel resources for services in the statement accepts a JSON object in accordance with the Canvas Medical format. |
| Supporting Info | `json`   | No       | Accepts a value representing the supporting info compliant with Canvas Medical.                                                                        |
| Diagnosis       | `json`   | Yes      | The field represents the list will create the Assessments in Canvas for this claim and accepts an array of JSON objects.                               |
| Insurance       | `json`   | Yes      | The field represents the list of elements that defines what coverages are to be used when adjudicating the claim and accepts an array of JSON objects. |
| Item            | `json`   | Yes      | The field represents the list of service charges to be used in the claim and accepts an array of JSON objects.                                         |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `claimId`  | `string` |

Create claim using the Canvas API. This action requires several parameters:

* `status`: Status compliant with Canvas Medical.
* `type`: Type compliant with Canvas Medical.
* `patientId`: Reference to the Canvas Patient using the patient id.
* `created`: The field indicating when this claim resource was created
* `provider`: The field related to determining personnel resources for services in the statement
* `supportingInfo`: Supporting info compliant with Canvas Medical.
* `diagnosis`: The field represents the list will create the Assessments in Canvas for this claim.
* `insurance`: The field represents the list of elements that defines what coverages are to be used when adjudicating the claim.
* `item`: The field represents the list of service charges to be used in the claim.

Upon successful execution, the data points returns `claimId`, which serves as the key within the Canvas API object.

### Create coverage [#create-coverage]

Create a coverage

This action can be previewed in Studio before you publish.

| Input         | Type      | Required | Description                                                                                                                                                                               |
| ------------- | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Order         | `numeric` | Yes      | A numerical value from 1 to 5, representing the order in which insurance coverages should be used when processing claims.                                                                 |
| Status        | `string`  | Yes      | The status of the coverage.                                                                                                                                                               |
| Type          | `json`    | No       | The Insurance Coverage Code Category, such as medical or accident, using values from [http://hl7.org/fhir/ValueSet/coverage-type](http://hl7.org/fhir/ValueSet/coverage-type).            |
| Subscriber    | `string`  | Yes      | The resource for the subscriber of the coverage, formatted as a standard identifier "Patient/5350cd20de8a470aa570a852859ac87e".                                                           |
| Subscriber ID | `string`  | No       | The patient's unique ID.                                                                                                                                                                  |
| Beneficiary   | `string`  | Yes      | The patient the coverage is intended for, formatted as a standard identifier "Patient/5350cd20de8a470aa570a852859ac87e".                                                                  |
| Relationship  | `json`    | Yes      | The beneficiary's relationship to the subscriber, as defined in [http://hl7.org/fhir/ValueSet/subscriber-relationship](http://hl7.org/fhir/ValueSet/subscriber-relationship).             |
| periodStart   | `string`  | Yes      | When the coverage became active for the patient, expressed in FHIR Date format (YYYY-MM-DD).                                                                                              |
| periodEnd     | `string`  | No       | When the coverage was no longer active for the patient, expressed in FHIR Date format (YYYY-MM-DD).                                                                                       |
| Payor         | `json`    | Yes      | Details of the payor, as definded in [https://docs.canvasmedical.com/reference/coverage-create](https://docs.canvasmedical.com/reference/coverage-create)                                 |
| Class         | `json`    | No       | Definition of the plan, subplan, group, and subgroup, as definded in [https://docs.canvasmedical.com/reference/coverage-create](https://docs.canvasmedical.com/reference/coverage-create) |

Returns:

| Data point   | Type     |
| ------------ | -------- |
| `coverageId` | `string` |

Efficiently create a coverage using the Canvas API. This action requires several parameters:

* `Order`: Specifies the order in which insurance coverages should be utilized when processing claims.
* `Status`: Refers to the statuses represented within the Canvas Medical system.
* `Type`: Pertains to the Insurance Coverage Code Category, such as medical or accident, using values from [http://hl7.org/fhir/ValueSet/coverage-type](http://hl7.org/fhir/ValueSet/coverage-type).
* `Subscriber`: Refers to the Canvas Patient using the patient ID, serving as the resource for the coverage's subscriber.
* `Subscriber ID`: Refers to the Canvas Patient using the patient ID.
* `Beneficiary`: Specifies the intended patient for the coverage.
* `Relationship`: Relates to the beneficiary's relationship to the subscriber, as defined in the [http://hl7.org/fhir/ValueSet/](http://hl7.org/fhir/ValueSet/).
* `Period start`: Indicates when the coverage became active for the patient.
* `Period end`: Indicates when the coverage ceased to be active for the patient.
* `Payor`: Relates to the entity responsible for payment.
* `Class`: Utilized to define the plan, subplan, group, and subgroup.

### Create Patient [#create-patient]

Create a patient

This action can be previewed in Studio before you publish.

| Input        | Type   | Required | Description  |
| ------------ | ------ | -------- | ------------ |
| Patient data | `json` | Yes      | Patient data |

Returns:

| Data point  | Type     |
| ----------- | -------- |
| `patientId` | `string` |

Effortlessly create patients using the Canvas API. This action allows you to generate a new patient record by submitting `patientData` in JSON format. Upon successful execution, the data points returns the unique `patientId`, serving as the key within the Canvas API object.

### Create a response to a questionnaire [#create-a-response-to-a-questionnaire]

Create a response to a questionnaire

This action can be previewed in Studio before you publish.

| Input           | Type     | Required | Description                                                                                                           |
| --------------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------------- |
| QuestionnaireId | `string` | Yes      | Reference to the Canvas Questionnaire using the questionnaire id                                                      |
| SubjectId       | `string` | Yes      | Reference to the Canvas Patient using the patient id                                                                  |
| Authored        | `string` | No       | Timestamp the Questionnaire response was filled out (If omitted the current timestamp at data ingestion will be used) |
| AuthorId        | `string` | No       | Reference to the patient or practitioner filling out the questionnaire. If omitted it will default to Canvas Bot      |
| Item            | `json`   | Yes      | List of answers to questions in the questionnaire                                                                     |

Returns:

| Data point                | Type     |
| ------------------------- | -------- |
| `questionnaireResponseId` | `string` |

Create questionnaire responses using the Canvas API to effortlessly record answers within an existing questionnaire. This action requires several parameters:

* `Questionnaire ID`: Reference to the Canvas Questionnaire using the questionnaire id.
* `Subject ID`: Reference to the Canvas Patient using the patient id.
* `Authored`: Timestamp when the Questionnaire response was filled out (If omitted, the current timestamp at data ingestion will be used).
* `Author ID`: Reference to the patient or practitioner filling out the questionnaire. If omitted, it defaults to Canvas Bot.
* `Item`: List of answers to questions in the questionnaire.

Upon successful execution, the data points returns `questionnaireResponseId`, which serves as the key within the Canvas API object.

### Create Task [#create-task]

Create a task

This action can be previewed in Studio before you publish.

| Input     | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| Task data | `json` | Yes      | Task data   |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `taskId`   | `string` |

Efficiently create tasks associated with a specific patient using the Canvas API. This action allows you to generate a new task linked to a designated patient by submitting `taskData` in JSON format. Upon successful execution, the data points returns the unique `taskId`, serving as the key within the Canvas API object.

### Update Appointment [#update-appointment]

Update an appointment

This action can be previewed in Studio before you publish.

| Input            | Type   | Required | Description      |
| ---------------- | ------ | -------- | ---------------- |
| Appointment data | `json` | Yes      | Appointment data |

Returns:

| Data point      | Type     |
| --------------- | -------- |
| `appointmentId` | `string` |

Effortlessly cancel or modify a reserved appointment using the Canvas API. This action allows you to update appointment details by submitting `appointmentData` in JSON format. Upon successful execution, the data points returns the `appointmentId`, serving as the key within the Canvas API object.

### Update coverage [#update-coverage]

Update a coverage

This action can be previewed in Studio before you publish.

| Input         | Type      | Required | Description                                                                                                                                                                               |
| ------------- | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Coverage ID   | `string`  | Yes      | The coverage's unique ID.                                                                                                                                                                 |
| Order         | `numeric` | Yes      | A numerical value from 1 to 5, representing the order in which insurance coverages should be used when processing claims.                                                                 |
| Status        | `string`  | Yes      | The status of the coverage.                                                                                                                                                               |
| Type          | `json`    | No       | The Insurance Coverage Code Category, such as medical or accident, using values from [http://hl7.org/fhir/ValueSet/coverage-type](http://hl7.org/fhir/ValueSet/coverage-type).            |
| Subscriber    | `string`  | Yes      | The resource for the subscriber of the coverage, formatted as a standard identifier "Patient/5350cd20de8a470aa570a852859ac87e".                                                           |
| Subscriber ID | `string`  | No       | The patient's unique ID.                                                                                                                                                                  |
| Beneficiary   | `string`  | Yes      | The patient the coverage is intended for, formatted as a standard identifier "Patient/5350cd20de8a470aa570a852859ac87e".                                                                  |
| Relationship  | `json`    | Yes      | The beneficiary's relationship to the subscriber, as defined in [http://hl7.org/fhir/ValueSet/subscriber-relationship](http://hl7.org/fhir/ValueSet/subscriber-relationship).             |
| periodStart   | `string`  | Yes      | When the coverage became active for the patient, expressed in FHIR Date format (YYYY-MM-DD).                                                                                              |
| periodEnd     | `string`  | No       | When the coverage was no longer active for the patient, expressed in FHIR Date format (YYYY-MM-DD).                                                                                       |
| Payor         | `json`    | Yes      | Details of the payor, as definded in [https://docs.canvasmedical.com/reference/coverage-create](https://docs.canvasmedical.com/reference/coverage-create)                                 |
| Class         | `json`    | No       | Definition of the plan, subplan, group, and subgroup, as definded in [https://docs.canvasmedical.com/reference/coverage-create](https://docs.canvasmedical.com/reference/coverage-create) |

Returns:

| Data point   | Type     |
| ------------ | -------- |
| `coverageId` | `string` |

Efficiently update existin coverage using the Canvas API. This action requires several parameters:

* `Id`: Reference to the Canvas Coverage using the coverage id.
* `Order`: Specifies the order in which insurance coverages should be utilized when processing claims.
* `Status`: Refers to the statuses represented within the Canvas Medical system.
* `Type`: Pertains to the Insurance Coverage Code Category, such as medical or accident, using values from [http://hl7.org/fhir/ValueSet/coverage-type](http://hl7.org/fhir/ValueSet/coverage-type).
* `Subscriber`: Refers to the Canvas Patient using the patient ID, serving as the resource for the coverage's subscriber.
* `Subscriber ID`: Refers to the Canvas Patient using the patient ID.
* `Beneficiary`: Specifies the intended patient for the coverage.
* `Relationship`: Relates to the beneficiary's relationship to the subscriber, as defined in the [http://hl7.org/fhir/ValueSet/](http://hl7.org/fhir/ValueSet/).
* `Period start`: Indicates when the coverage became active for the patient.
* `Period end`: Indicates when the coverage ceased to be active for the patient.
* `Payor`: Relates to the entity responsible for payment.
* `Class`: Utilized to define the plan, subplan, group, and subgroup.

### Update Patient [#update-patient]

Update a patient

This action can be previewed in Studio before you publish.

| Input        | Type   | Required | Description  |
| ------------ | ------ | -------- | ------------ |
| Patient data | `json` | Yes      | Patient data |

Returns:

| Data point  | Type     |
| ----------- | -------- |
| `patientId` | `string` |

Efficiently update existing patient information within the system using the Canvas API. This action allows you to modify data by submitting `patientData` in JSON format. Upon successful execution, the data points returns the `patientId`, which serves as the key within the Canvas API object

### Update Task [#update-task]

Update a task

This action can be previewed in Studio before you publish.

| Input     | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| Task data | `json` | Yes      | Task data   |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `taskId`   | `string` |

Efficiently update existing task information within the system using the Canvas API. This action allows you to modify data by submitting `taskData` in JSON format. Upon successful execution, the action returns the `taskId`, which serves as the key within the Canvas API object.

## Setup and notes [#setup-and-notes]

Canvas Medical is a healthcare platform that empowers care delivery companies to revolutionize digital health experiences for their patients and users. Leveraging certified EHR as a foundation, Canvas Medical offers a comprehensive suite of APIs, enabling customers to swiftly launch innovative patient experiences and cost-effective business models.

Canvas Medical provides appointment management, patient data creation and updates, task management, questionnaire creation, and much more.

### Extension settings [#extension-settings]

For the extension to function correctly, you must include the following elements in your settings:

`client_id` and `client_secret`: These values are generated on the Canvas Medical platform.
`base_url`: This determines the base URL for your FHIR endpoint.
`auth_url`: This determines the base URL for your authorization endpoint.

## Changelog [#changelog]

### 2023-09-01 [#2023-09-01]

* Add new actions: `createAppointment`, `createPatient`, `createQuestionnaireResponses`, `createTask`, `updateAppointment`, `updatePatient`, and `updateTask` for enhanced functionality.

## Where this page comes from [#where-this-page-comes-from]

The settings, actions, inputs, outputs and webhooks above are generated from the
extension's own code, at `@awell-health/awell-extensions` v2.1.159. They match what the
platform actually does rather than a description of it.

Field-level detail also appears in Awell Studio when you configure the action.
Something wrong or missing? Email [support@awellhealth.com](mailto:support@awellhealth.com).
