@awell-health/awell-extensions 1.0.243 → 1.0.245
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/extensions/dockHealth/actions/createTask/config/datapoints.d.ts +6 -0
- package/dist/extensions/dockHealth/actions/createTask/config/datapoints.js +10 -0
- package/dist/extensions/dockHealth/actions/createTask/config/datapoints.js.map +1 -0
- package/dist/extensions/dockHealth/actions/createTask/config/fields.d.ts +48 -0
- package/dist/extensions/dockHealth/actions/createTask/config/fields.js +45 -0
- package/dist/extensions/dockHealth/actions/createTask/config/fields.js.map +1 -0
- package/dist/extensions/dockHealth/actions/createTask/config/index.d.ts +2 -0
- package/dist/extensions/dockHealth/actions/createTask/config/index.js +9 -0
- package/dist/extensions/dockHealth/actions/createTask/config/index.js.map +1 -0
- package/dist/extensions/dockHealth/actions/createTask/createTask.d.ts +4 -0
- package/dist/extensions/dockHealth/actions/createTask/createTask.js +56 -0
- package/dist/extensions/dockHealth/actions/createTask/createTask.js.map +1 -0
- package/dist/extensions/dockHealth/actions/createTask/createTask.test.d.ts +1 -0
- package/dist/extensions/dockHealth/actions/createTask/createTask.test.js +32 -0
- package/dist/extensions/dockHealth/actions/createTask/createTask.test.js.map +1 -0
- package/dist/extensions/dockHealth/actions/createTask/index.d.ts +1 -0
- package/dist/extensions/dockHealth/actions/createTask/index.js +6 -0
- package/dist/extensions/dockHealth/actions/createTask/index.js.map +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/datapoints.d.ts +10 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/datapoints.js +15 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/datapoints.js.map +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/fields.d.ts +18 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/fields.js +21 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/fields.js.map +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/index.d.ts +2 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/index.js +9 -0
- package/dist/extensions/dockHealth/actions/getPatient/config/index.js.map +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/getPatient.d.ts +4 -0
- package/dist/extensions/dockHealth/actions/getPatient/getPatient.js +29 -0
- package/dist/extensions/dockHealth/actions/getPatient/getPatient.js.map +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/getPatient.test.d.ts +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/getPatient.test.js +29 -0
- package/dist/extensions/dockHealth/actions/getPatient/getPatient.test.js.map +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/index.d.ts +1 -0
- package/dist/extensions/dockHealth/actions/getPatient/index.js +6 -0
- package/dist/extensions/dockHealth/actions/getPatient/index.js.map +1 -0
- package/dist/extensions/dockHealth/actions/index.d.ts +128 -0
- package/dist/extensions/dockHealth/actions/index.js +10 -0
- package/dist/extensions/dockHealth/actions/index.js.map +1 -0
- package/dist/extensions/dockHealth/api/cacheService.d.ts +11 -0
- package/dist/extensions/dockHealth/api/cacheService.js +15 -0
- package/dist/extensions/dockHealth/api/cacheService.js.map +1 -0
- package/dist/extensions/dockHealth/api/client.d.ts +32 -0
- package/dist/extensions/dockHealth/api/client.js +66 -0
- package/dist/extensions/dockHealth/api/client.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/index.d.ts +8 -0
- package/dist/extensions/dockHealth/api/schema/atoms/index.js +25 -0
- package/dist/extensions/dockHealth/api/schema/atoms/index.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/patientReference.schema.d.ts +14 -0
- package/dist/extensions/dockHealth/api/schema/atoms/patientReference.schema.js +10 -0
- package/dist/extensions/dockHealth/api/schema/atoms/patientReference.schema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskGroup.schema.d.ts +14 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskGroup.schema.js +10 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskGroup.schema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskListReference.schema.d.ts +14 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskListReference.schema.js +10 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskListReference.schema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskMetadataSchema.d.ts +17 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskMetadataSchema.js +13 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskMetadataSchema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskReference.schema.d.ts +14 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskReference.schema.js +10 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskReference.schema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskWorkflowStatusReference.schema.d.ts +14 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskWorkflowStatusReference.schema.js +10 -0
- package/dist/extensions/dockHealth/api/schema/atoms/taskWorkflowStatusReference.schema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/atoms/userReference.schema.d.ts +14 -0
- package/dist/extensions/dockHealth/api/schema/atoms/userReference.schema.js +10 -0
- package/dist/extensions/dockHealth/api/schema/atoms/userReference.schema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/index.d.ts +2 -0
- package/dist/extensions/dockHealth/api/schema/index.js +19 -0
- package/dist/extensions/dockHealth/api/schema/index.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/patient.schema.d.ts +201 -0
- package/dist/extensions/dockHealth/api/schema/patient.schema.js +76 -0
- package/dist/extensions/dockHealth/api/schema/patient.schema.js.map +1 -0
- package/dist/extensions/dockHealth/api/schema/task.schema.d.ts +583 -0
- package/dist/extensions/dockHealth/api/schema/task.schema.js +60 -0
- package/dist/extensions/dockHealth/api/schema/task.schema.js.map +1 -0
- package/dist/extensions/dockHealth/index.d.ts +2 -0
- package/dist/extensions/dockHealth/index.js +22 -0
- package/dist/extensions/dockHealth/index.js.map +1 -0
- package/dist/extensions/dockHealth/lib/dock.types.d.ts +28 -0
- package/dist/extensions/dockHealth/lib/dock.types.js +36 -0
- package/dist/extensions/dockHealth/lib/dock.types.js.map +1 -0
- package/dist/extensions/dockHealth/lib/index.d.ts +2 -0
- package/dist/extensions/dockHealth/lib/index.js +21 -0
- package/dist/extensions/dockHealth/lib/index.js.map +1 -0
- package/dist/extensions/dockHealth/lib/validatePayloadAndCreateClient.d.ts +15 -0
- package/dist/extensions/dockHealth/lib/validatePayloadAndCreateClient.js +36 -0
- package/dist/extensions/dockHealth/lib/validatePayloadAndCreateClient.js.map +1 -0
- package/dist/extensions/dockHealth/settings.d.ts +44 -0
- package/dist/extensions/dockHealth/settings.js +48 -0
- package/dist/extensions/dockHealth/settings.js.map +1 -0
- package/dist/extensions/index.js +2 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/markdown.json +5 -1
- package/package.json +2 -2
@@ -0,0 +1,60 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CreateTaskSchema = exports.TaskSchema = void 0;
|
4
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
5
|
+
const zod_1 = require("zod");
|
6
|
+
const atoms_1 = require("./atoms");
|
7
|
+
exports.TaskSchema = zod_1.z.object({
|
8
|
+
assignedBy: atoms_1.UserReferenceSchema.optional(),
|
9
|
+
assignedTo: atoms_1.UserReferenceSchema.optional(),
|
10
|
+
assignees: zod_1.z.array(atoms_1.UserReferenceSchema).optional(),
|
11
|
+
comments: zod_1.z.any(),
|
12
|
+
completedBy: atoms_1.UserReferenceSchema.optional(),
|
13
|
+
completedDt: extensions_core_1.DateTimeOptionalSchema,
|
14
|
+
createdDateTime: extensions_core_1.DateTimeSchema,
|
15
|
+
creator: atoms_1.UserReferenceSchema,
|
16
|
+
description: zod_1.z.string(),
|
17
|
+
details: zod_1.z.string().optional(),
|
18
|
+
dueDate: extensions_core_1.DateTimeOptionalSchema,
|
19
|
+
duplicated: zod_1.z.boolean().optional(),
|
20
|
+
edited: zod_1.z.boolean().optional(),
|
21
|
+
hasMentions: zod_1.z.boolean().optional(),
|
22
|
+
id: zod_1.z.string(),
|
23
|
+
identifier: zod_1.z.string().optional(),
|
24
|
+
includeTaskGroup: zod_1.z.boolean().optional(),
|
25
|
+
parentTask: atoms_1.TaskReferenceSchema.optional(),
|
26
|
+
patient: atoms_1.PatientReferenceSchema.optional(),
|
27
|
+
priority: zod_1.z.enum(['HIGH', 'MEDIUM', 'LOW', 'NONE']).optional(),
|
28
|
+
read: zod_1.z.boolean().optional(),
|
29
|
+
reminderDt: extensions_core_1.DateTimeOptionalSchema,
|
30
|
+
reminderTime: zod_1.z.string().optional(),
|
31
|
+
reminderType: zod_1.z
|
32
|
+
.enum(['NONE', 'DAY_OF', 'DAY_BEFORE_1', 'DAY_BEFORE_2', 'WEEK_BEFORE_1'])
|
33
|
+
.optional(),
|
34
|
+
sourceMessage: zod_1.z.string().optional(),
|
35
|
+
status: zod_1.z.enum(['COMPLETE', 'INCOMPLETE']),
|
36
|
+
subTaskSortIndex: zod_1.z.number().optional(),
|
37
|
+
subTasksCompletedCount: zod_1.z.number().optional(),
|
38
|
+
subTasksCount: zod_1.z.number().optional(),
|
39
|
+
subtasks: zod_1.z.array(zod_1.z.string()).optional(),
|
40
|
+
taskGroup: atoms_1.TaskGroupSchema.optional(),
|
41
|
+
taskList: atoms_1.TaskListReferenceSchema,
|
42
|
+
taskMentions: zod_1.z.array(zod_1.z.any()).optional(),
|
43
|
+
taskMetaData: atoms_1.TaskMetadataSchema,
|
44
|
+
taskOutcomes: zod_1.z.array(zod_1.z.any()).optional(),
|
45
|
+
templateTaskIdentifier: zod_1.z.string().optional(),
|
46
|
+
tokenizedDescription: zod_1.z.string().optional(),
|
47
|
+
tokenizedDetails: zod_1.z.string().optional(),
|
48
|
+
type: zod_1.z.enum(['IN_APP', 'EMAIL', 'TEMPLATE', 'BUNDLE']).optional(),
|
49
|
+
updated: zod_1.z.boolean().optional(),
|
50
|
+
updatedDateTime: extensions_core_1.DateTimeOptionalSchema,
|
51
|
+
workflowStatus: atoms_1.TaskWorkflowStatusReferenceSchema.optional(),
|
52
|
+
});
|
53
|
+
exports.CreateTaskSchema = exports.TaskSchema.pick({
|
54
|
+
description: true,
|
55
|
+
taskList: true,
|
56
|
+
patient: true,
|
57
|
+
taskMetaData: true,
|
58
|
+
taskGroup: true,
|
59
|
+
});
|
60
|
+
//# sourceMappingURL=task.schema.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"task.schema.js","sourceRoot":"","sources":["../../../../../extensions/dockHealth/api/schema/task.schema.ts"],"names":[],"mappings":";;;AAAA,mEAGsC;AACtC,6BAAuB;AACvB,mCAQgB;AAEH,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE,2BAAmB,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,2BAAmB,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,2BAAmB,CAAC,CAAC,QAAQ,EAAE;IAClD,QAAQ,EAAE,OAAC,CAAC,GAAG,EAAE;IACjB,WAAW,EAAE,2BAAmB,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,wCAAsB;IACnC,eAAe,EAAE,gCAAc;IAC/B,OAAO,EAAE,2BAAmB;IAC5B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,wCAAsB;IAC/B,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,2BAAmB,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,8BAAsB,CAAC,QAAQ,EAAE;IAC1C,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9D,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,wCAAsB;IAClC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,OAAC;SACZ,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;SACzE,QAAQ,EAAE;IACb,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC1C,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,uBAAe,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,+BAAuB;IACjC,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,YAAY,EAAE,0BAAkB;IAChC,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClE,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,eAAe,EAAE,wCAAsB;IACvC,cAAc,EAAE,yCAAiC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAA;AAIW,QAAA,gBAAgB,GAAG,kBAAU,CAAC,IAAI,CAAC;IAC9C,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAA"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.dockHealth = void 0;
|
7
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
8
|
+
const actions_1 = __importDefault(require("./actions"));
|
9
|
+
const settings_1 = require("./settings");
|
10
|
+
exports.dockHealth = {
|
11
|
+
key: 'dockHealth',
|
12
|
+
title: 'Dock Health',
|
13
|
+
description: 'HIPAA-compliant task management and workflow automation for healthcare. Assign, track, automate, and complete administrative to-do lists.',
|
14
|
+
icon_url: 'https://res.cloudinary.com/da7x4rzl4/image/upload/v1714717332/Awell%20Extensions/images.png',
|
15
|
+
category: extensions_core_1.Category.WORKFLOW,
|
16
|
+
author: {
|
17
|
+
authorType: extensions_core_1.AuthorType.AWELL,
|
18
|
+
},
|
19
|
+
settings: settings_1.settings,
|
20
|
+
actions: actions_1.default,
|
21
|
+
};
|
22
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/dockHealth/index.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,wDAA+B;AAC/B,yCAAqC;AAExB,QAAA,UAAU,GAAc;IACnC,GAAG,EAAE,YAAY;IACjB,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,2IAA2I;IAC7I,QAAQ,EACN,6FAA6F;IAC/F,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,MAAM,EAAE;QACN,UAAU,EAAE,4BAAU,CAAC,KAAK;KAC7B;IACD,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,iBAAO;CACR,CAAA"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
export declare const DockEnvironmentSchema: z.ZodPipeline<z.ZodString, z.ZodEnum<["DEVELOPMENT", "PRODUCTION"]>>;
|
3
|
+
export type DockEnvironment = z.infer<typeof DockEnvironmentSchema>;
|
4
|
+
export declare const AUTH_URLS: Record<DockEnvironment, string>;
|
5
|
+
export declare const API_URLS: Record<DockEnvironment, string>;
|
6
|
+
export declare const DockApiScopes: string;
|
7
|
+
export declare const DockSettingsSchema: z.ZodObject<{
|
8
|
+
environment: z.ZodPipeline<z.ZodString, z.ZodEnum<["DEVELOPMENT", "PRODUCTION"]>>;
|
9
|
+
clientId: z.ZodString;
|
10
|
+
clientSecret: z.ZodString;
|
11
|
+
apiKey: z.ZodString;
|
12
|
+
organizationId: z.ZodString;
|
13
|
+
userId: z.ZodString;
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
15
|
+
environment: "DEVELOPMENT" | "PRODUCTION";
|
16
|
+
apiKey: string;
|
17
|
+
clientId: string;
|
18
|
+
userId: string;
|
19
|
+
clientSecret: string;
|
20
|
+
organizationId: string;
|
21
|
+
}, {
|
22
|
+
environment: string;
|
23
|
+
apiKey: string;
|
24
|
+
clientId: string;
|
25
|
+
userId: string;
|
26
|
+
clientSecret: string;
|
27
|
+
organizationId: string;
|
28
|
+
}>;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DockSettingsSchema = exports.DockApiScopes = exports.API_URLS = exports.AUTH_URLS = exports.DockEnvironmentSchema = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
exports.DockEnvironmentSchema = zod_1.z
|
6
|
+
.string()
|
7
|
+
.min(1)
|
8
|
+
.toUpperCase()
|
9
|
+
.pipe(zod_1.z.enum(['DEVELOPMENT', 'PRODUCTION']));
|
10
|
+
exports.AUTH_URLS = {
|
11
|
+
PRODUCTION: 'https://partner-auth.dock.health',
|
12
|
+
DEVELOPMENT: 'https://partner-auth-dev.dockhealth.app',
|
13
|
+
};
|
14
|
+
exports.API_URLS = {
|
15
|
+
PRODUCTION: 'https://partner-api.dock.health',
|
16
|
+
DEVELOPMENT: 'https://partner-api-dev.dockhealth.app',
|
17
|
+
};
|
18
|
+
/**
|
19
|
+
* The scopes we need to to execute all actions in this extension
|
20
|
+
*/
|
21
|
+
const scopesArray = [
|
22
|
+
'dockhealth/user.all.read',
|
23
|
+
'dockhealth/user.all.write',
|
24
|
+
'dockhealth/patient.all.read',
|
25
|
+
'dockhealth/patient.all.write',
|
26
|
+
];
|
27
|
+
exports.DockApiScopes = scopesArray.join(' ');
|
28
|
+
exports.DockSettingsSchema = zod_1.z.object({
|
29
|
+
environment: exports.DockEnvironmentSchema,
|
30
|
+
clientId: zod_1.z.string().min(1),
|
31
|
+
clientSecret: zod_1.z.string().min(1),
|
32
|
+
apiKey: zod_1.z.string().min(1),
|
33
|
+
organizationId: zod_1.z.string().min(1),
|
34
|
+
userId: zod_1.z.string().min(1),
|
35
|
+
});
|
36
|
+
//# sourceMappingURL=dock.types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dock.types.js","sourceRoot":"","sources":["../../../../extensions/dockHealth/lib/dock.types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,WAAW,EAAE;KACb,IAAI,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;AAIjC,QAAA,SAAS,GAAoC;IACxD,UAAU,EAAE,kCAAkC;IAC9C,WAAW,EAAE,yCAAyC;CACvD,CAAA;AAEY,QAAA,QAAQ,GAAoC;IACvD,UAAU,EAAE,iCAAiC;IAC7C,WAAW,EAAE,wCAAwC;CACtD,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,0BAA0B;IAC1B,2BAA2B;IAC3B,6BAA6B;IAC7B,8BAA8B;CAC/B,CAAA;AAEY,QAAA,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAErC,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,6BAAqB;IAClC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAA"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
exports.validatePayloadAndCreateClient = void 0;
|
18
|
+
var validatePayloadAndCreateClient_1 = require("./validatePayloadAndCreateClient");
|
19
|
+
Object.defineProperty(exports, "validatePayloadAndCreateClient", { enumerable: true, get: function () { return validatePayloadAndCreateClient_1.validatePayloadAndCreateClient; } });
|
20
|
+
__exportStar(require("./dock.types"), exports);
|
21
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/dockHealth/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mFAAiF;AAAxE,gJAAA,8BAA8B,OAAA;AACvC,+CAA4B"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import z from 'zod';
|
2
|
+
import { DockAPIClient } from '../api/client';
|
3
|
+
import { DockSettingsSchema } from './dock.types';
|
4
|
+
type ValidateAndCreateClient = <T extends z.ZodTypeAny>(args: {
|
5
|
+
fieldsSchema: T;
|
6
|
+
payload: unknown;
|
7
|
+
}) => Promise<{
|
8
|
+
dockClient: DockAPIClient;
|
9
|
+
fields: z.infer<(typeof args)['fieldsSchema']>;
|
10
|
+
settings: z.infer<typeof DockSettingsSchema>;
|
11
|
+
pathwayId: string;
|
12
|
+
activityId: string;
|
13
|
+
}>;
|
14
|
+
export declare const validatePayloadAndCreateClient: ValidateAndCreateClient;
|
15
|
+
export {};
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.validatePayloadAndCreateClient = void 0;
|
7
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
8
|
+
const zod_1 = __importDefault(require("zod"));
|
9
|
+
const client_1 = require("../api/client");
|
10
|
+
const dock_types_1 = require("./dock.types");
|
11
|
+
const validatePayloadAndCreateClient = async ({ fieldsSchema, payload, }) => {
|
12
|
+
const { settings: { environment, clientId, clientSecret, apiKey, organizationId, userId, }, pathway: { id: pathwayId }, activity: { id: activityId }, fields, settings, } = (0, extensions_core_1.validate)({
|
13
|
+
schema: zod_1.default.object({
|
14
|
+
fields: fieldsSchema,
|
15
|
+
settings: dock_types_1.DockSettingsSchema,
|
16
|
+
pathway: zod_1.default.object({ id: zod_1.default.string() }),
|
17
|
+
activity: zod_1.default.object({ id: zod_1.default.string() }),
|
18
|
+
}),
|
19
|
+
payload,
|
20
|
+
});
|
21
|
+
const dockClient = new client_1.DockAPIClient({
|
22
|
+
authUrl: dock_types_1.AUTH_URLS[environment],
|
23
|
+
baseUrl: dock_types_1.API_URLS[environment],
|
24
|
+
requestConfig: {
|
25
|
+
client_id: clientId,
|
26
|
+
client_secret: clientSecret,
|
27
|
+
scope: dock_types_1.DockApiScopes,
|
28
|
+
},
|
29
|
+
apiKey,
|
30
|
+
organizationId,
|
31
|
+
userId,
|
32
|
+
});
|
33
|
+
return { dockClient, fields, settings, pathwayId, activityId };
|
34
|
+
};
|
35
|
+
exports.validatePayloadAndCreateClient = validatePayloadAndCreateClient;
|
36
|
+
//# sourceMappingURL=validatePayloadAndCreateClient.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"validatePayloadAndCreateClient.js","sourceRoot":"","sources":["../../../../extensions/dockHealth/lib/validatePayloadAndCreateClient.ts"],"names":[],"mappings":";;;;;;AAAA,mEAAwD;AACxD,8CAAmB;AACnB,0CAA6C;AAC7C,6CAKqB;AAad,MAAM,8BAA8B,GAA4B,KAAK,EAAE,EAC5E,YAAY,EACZ,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EACJ,QAAQ,EAAE,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,GACP,EACD,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAC1B,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAC5B,MAAM,EACN,QAAQ,GACT,GAAG,IAAA,0BAAQ,EAAC;QACX,MAAM,EAAE,aAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,+BAAkB;YAC5B,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,QAAQ,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACvC,CAAC;QACF,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAI,sBAAa,CAAC;QACnC,OAAO,EAAE,sBAAS,CAAC,WAAW,CAAC;QAC/B,OAAO,EAAE,qBAAQ,CAAC,WAAW,CAAC;QAC9B,aAAa,EAAE;YACb,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,YAAY;YAC3B,KAAK,EAAE,0BAAa;SACrB;QACD,MAAM;QACN,cAAc;QACd,MAAM;KACP,CAAC,CAAA;IAEF,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;AAChE,CAAC,CAAA;AAzCY,QAAA,8BAA8B,kCAyC1C"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
export declare const settings: {
|
2
|
+
environment: {
|
3
|
+
key: string;
|
4
|
+
label: string;
|
5
|
+
obfuscated: false;
|
6
|
+
required: false;
|
7
|
+
description: string;
|
8
|
+
};
|
9
|
+
clientId: {
|
10
|
+
key: string;
|
11
|
+
label: string;
|
12
|
+
obfuscated: false;
|
13
|
+
required: true;
|
14
|
+
description: string;
|
15
|
+
};
|
16
|
+
clientSecret: {
|
17
|
+
key: string;
|
18
|
+
label: string;
|
19
|
+
obfuscated: true;
|
20
|
+
required: true;
|
21
|
+
description: string;
|
22
|
+
};
|
23
|
+
apiKey: {
|
24
|
+
key: string;
|
25
|
+
label: string;
|
26
|
+
obfuscated: true;
|
27
|
+
required: true;
|
28
|
+
description: string;
|
29
|
+
};
|
30
|
+
organizationId: {
|
31
|
+
key: string;
|
32
|
+
label: string;
|
33
|
+
obfuscated: false;
|
34
|
+
required: true;
|
35
|
+
description: string;
|
36
|
+
};
|
37
|
+
userId: {
|
38
|
+
key: string;
|
39
|
+
label: string;
|
40
|
+
obfuscated: false;
|
41
|
+
required: true;
|
42
|
+
description: string;
|
43
|
+
};
|
44
|
+
};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.settings = void 0;
|
4
|
+
exports.settings = {
|
5
|
+
environment: {
|
6
|
+
key: 'environment',
|
7
|
+
label: 'Environment',
|
8
|
+
obfuscated: false,
|
9
|
+
required: false,
|
10
|
+
description: 'Dock Health supports two environments. Use the "DEVELOPMENT" environment to test your code and the "PRODUCTION" environment for your live application',
|
11
|
+
},
|
12
|
+
clientId: {
|
13
|
+
key: 'clientId',
|
14
|
+
label: 'Client ID',
|
15
|
+
obfuscated: false,
|
16
|
+
required: true,
|
17
|
+
description: 'Used to perform the Client Credential grant to obtain an access token',
|
18
|
+
},
|
19
|
+
clientSecret: {
|
20
|
+
key: 'clientSecret',
|
21
|
+
label: 'Client secret',
|
22
|
+
obfuscated: true,
|
23
|
+
required: true,
|
24
|
+
description: 'Used to perform the Client Credential grant to obtain an access token',
|
25
|
+
},
|
26
|
+
apiKey: {
|
27
|
+
key: 'apiKey',
|
28
|
+
label: 'API key',
|
29
|
+
obfuscated: true,
|
30
|
+
required: true,
|
31
|
+
description: 'The API key you received from Dock Health.',
|
32
|
+
},
|
33
|
+
organizationId: {
|
34
|
+
key: 'organizationId',
|
35
|
+
label: 'Organization ID',
|
36
|
+
obfuscated: false,
|
37
|
+
required: true,
|
38
|
+
description: 'Identifier of the organization making the request.',
|
39
|
+
},
|
40
|
+
userId: {
|
41
|
+
key: 'userId',
|
42
|
+
label: 'User ID',
|
43
|
+
obfuscated: false,
|
44
|
+
required: true,
|
45
|
+
description: 'Identifier of the user on whose behalf the request is made.',
|
46
|
+
},
|
47
|
+
};
|
48
|
+
//# sourceMappingURL=settings.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../extensions/dockHealth/settings.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAG;IACtB,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,aAAa;QACpB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,uJAAuJ;KAC1J;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,uEAAuE;KAC1E;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,uEAAuE;KAC1E;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,4CAA4C;KAC1D;IACD,cAAc,EAAE;QACd,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,oDAAoD;KAClE;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,6DAA6D;KAC3E;CACgC,CAAA"}
|
package/dist/extensions/index.js
CHANGED
@@ -57,6 +57,7 @@ const athenahealth_1 = require("./athenahealth");
|
|
57
57
|
const icd_1 = require("./icd");
|
58
58
|
const textline_1 = require("./textline");
|
59
59
|
const medplum_1 = require("./medplum");
|
60
|
+
const dockHealth_1 = require("./dockHealth");
|
60
61
|
const json = __importStar(require("./markdown.json"));
|
61
62
|
const external_server_1 = require("./external-server");
|
62
63
|
exports.markdown = json;
|
@@ -69,6 +70,7 @@ exports.extensions = [
|
|
69
70
|
cloudinary_1.Cloudinary,
|
70
71
|
cmDotCom_1.CmDotCom,
|
71
72
|
collectData_1.CollectData,
|
73
|
+
dockHealth_1.dockHealth,
|
72
74
|
docuSign_1.DocuSign,
|
73
75
|
dropboxSign_1.DropboxSign,
|
74
76
|
elation_1.Elation,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../extensions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+B;AAC/B,2CAAuC;AACvC,yCAAqC;AACrC,mDAA+C;AAC/C,6CAAyC;AACzC,+CAA2C;AAC3C,uCAAmC;AACnC,iDAA6C;AAC7C,yCAAqC;AACrC,yCAAqC;AACrC,+CAA0C;AAC1C,2CAAuC;AACvC,uCAAmC;AACnC,iCAAsC;AACtC,+CAA2C;AAC3C,2CAAuC;AACvC,qCAAiC;AACjC,6DAA+C;AAC/C,yCAAqC;AACrC,yCAAqC;AACrC,yCAAqC;AACrC,yCAAqC;AACrC,2CAAuC;AACvC,yCAAqC;AACrC,uCAAmC;AACnC,uCAAmC;AACnC,uCAAmC;AACnC,+CAA2C;AAC3C,+CAA2C;AAC3C,iDAA6C;AAC7C,+BAA2B;AAC3B,yCAAqC;AACrC,uCAAmC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../extensions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+B;AAC/B,2CAAuC;AACvC,yCAAqC;AACrC,mDAA+C;AAC/C,6CAAyC;AACzC,+CAA2C;AAC3C,uCAAmC;AACnC,iDAA6C;AAC7C,yCAAqC;AACrC,yCAAqC;AACrC,+CAA0C;AAC1C,2CAAuC;AACvC,uCAAmC;AACnC,iCAAsC;AACtC,+CAA2C;AAC3C,2CAAuC;AACvC,qCAAiC;AACjC,6DAA+C;AAC/C,yCAAqC;AACrC,yCAAqC;AACrC,yCAAqC;AACrC,yCAAqC;AACrC,2CAAuC;AACvC,yCAAqC;AACrC,uCAAmC;AACnC,uCAAmC;AACnC,uCAAmC;AACnC,+CAA2C;AAC3C,+CAA2C;AAC3C,iDAA6C;AAC7C,+BAA2B;AAC3B,yCAAqC;AACrC,uCAAmC;AACnC,6CAAyC;AAEzC,sDAAuC;AACvC,uDAAkD;AAGrC,QAAA,QAAQ,GAAa,IAAI,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,aAAK;IACL,2BAAY;IACZ,qBAAS;IACT,mBAAQ;IACR,6BAAa;IACb,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,iBAAO;IACP,2BAAY;IACZ,gCAAc;IACd,mBAAQ;IACR,mBAAQ;IACR,wBAAU;IACV,SAAG;IACH,iBAAO;IACP,mBAAQ;IACR,qBAAS;IACT,iBAAO;IACP,oBAAa;IACb,yBAAW;IACX,iBAAO;IACP,qBAAS;IACT,yBAAW;IACX,mBAAQ;IACR,6BAAQ;IACR,mBAAQ;IACR,mBAAQ;IACR,qBAAS;IACT,eAAM;IACN,iBAAO;IACP,iBAAO;CACR,CAAA"}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
"changelog": "# Athena changelog"
|
5
5
|
},
|
6
6
|
"awell": {
|
7
|
-
"readme": "---\ntitle: Awell Workflow\ndescription: Enrich your care flows with powerful Awell actions.\n---\n\n# Awell API extension\n\n## Extension settings\n\nYou will need to provide the [API URL](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/endpoints) and an [API key](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/authorization).\n\n## Custom Actions\n\n### Start care flow\n\nStarts a new care flow for the patient enrolled in your current care flow.\n\n**Passing baseline info:**\nPlease read the documentation on [our developer hub](https://developers.awellhealth.com/awell-orchestration/api-reference/mutations/start-pathway) to learn more about how to pass baseline info.\n\n**Example of how to configure a value for the baseline info action field:**\n\n```json\n[\n {\n \"data_point_definition_id\": \"age\",\n \"value\": \"29\"\n },\n {\n \"data_point_definition_id\": \"dob\",\n \"value\": \"1993-11-30\"\n }\n]\n```\n\n### Stop care flow\n\nStops the care flow the patient is currently enrolled in. A reason is why you are stopping the care flow is mandatory.\n\n### Update patient\n\nAllows updating patient data for the patient currently enrolled in the care flow.\n\n### Is patient already enrolled in care flow\n\nChecks whether the patient is already enrolled in a care flow definition. The care flow the patient is currently enrolled in does not count and is excluded from the results.\n\n**Action fields:**\n\n- pathwayStatus: a comma-separated string of care flow statuses that will be used when looking for care flows the patient is already enrolled in. By default, we only look at active care flows. Options: \"active\", \"completed\", \"missing_baseline_info\", \"starting\", and \"stopped\".\n- careFlowDefinitionIds: a comma-separated string of care flow definition ids that will be used when looking for care flows the patient is already enrolled in. By default, we only search for care flows that match the current care flow definition id (i.e. is the patient already included in the current care flow?).\n\n**Data points:**\n\n- result: a boolean indicating whether the patient is already enrolled in another care flow that matches your criteria (status & care flow definition id)\n- nbrOfResults: the number of care flows found for the patient that match the criteria.\n- careFlowIds: a comma-separated string of care flow ids that matched your search criteria. It will be empty when the result is `false` because then there are no other care flow ids that match your criteria.\n\n### Search patients by patient code\n\nNote that this action is deprecated and we recommend using [identifiers](https://developers.awellhealth.com/awell-orchestration/docs/misc/patient-identifiers) instead.\n\nSearch whether, apart from the patient currently enrolled in the care flow, another patient with the same `patient_code` already exists.\n\n**Data points:**\n\n1. patientAlreadyExists: a boolean which will be true if minimum one patient with the patient code already exists.\n2. numberOfPatientsFound: the number of patients found with the same patient code.\n3. awellPatientIds: a comma-separated string of all Awell patient ids (except the current patient) that have the same patient code as the patient currently enrolled in the care flow. Will return an empty string when there are no other patients with the same patient code.\n\n### Get patient by identifier\n\nThis action lets you check if a patient with a specific identifier already exists in Awell. It's particularly useful when a patient's identity is initially anonymous during the start of the care flow, but later becomes identifiable through the identifiers collected during the
|
7
|
+
"readme": "---\ntitle: Awell Workflow\ndescription: Enrich your care flows with powerful Awell actions.\n---\n\n# Awell API extension\n\n## Extension settings\n\nYou will need to provide the [API URL](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/endpoints) and an [API key](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/authorization).\n\n## Custom Actions\n\n### Start care flow\n\nStarts a new care flow for the patient enrolled in your current care flow.\n\n**Passing baseline info:**\nPlease read the documentation on [our developer hub](https://developers.awellhealth.com/awell-orchestration/api-reference/mutations/start-pathway) to learn more about how to pass baseline info.\n\n**Example of how to configure a value for the baseline info action field:**\n\n```json\n[\n {\n \"data_point_definition_id\": \"age\",\n \"value\": \"29\"\n },\n {\n \"data_point_definition_id\": \"dob\",\n \"value\": \"1993-11-30\"\n }\n]\n```\n\n### Stop care flow\n\nStops the care flow the patient is currently enrolled in. A reason is why you are stopping the care flow is mandatory.\n\n### Update patient\n\nAllows updating patient data for the patient currently enrolled in the care flow.\n\n### Is patient already enrolled in care flow\n\nChecks whether the patient is already enrolled in a care flow definition. The care flow the patient is currently enrolled in does not count and is excluded from the results.\n\n**Action fields:**\n\n- pathwayStatus: a comma-separated string of care flow statuses that will be used when looking for care flows the patient is already enrolled in. By default, we only look at active care flows. Options: \"active\", \"completed\", \"missing_baseline_info\", \"starting\", and \"stopped\".\n- careFlowDefinitionIds: a comma-separated string of care flow definition ids that will be used when looking for care flows the patient is already enrolled in. By default, we only search for care flows that match the current care flow definition id (i.e. is the patient already included in the current care flow?).\n\n**Data points:**\n\n- result: a boolean indicating whether the patient is already enrolled in another care flow that matches your criteria (status & care flow definition id)\n- nbrOfResults: the number of care flows found for the patient that match the criteria.\n- careFlowIds: a comma-separated string of care flow ids that matched your search criteria. It will be empty when the result is `false` because then there are no other care flow ids that match your criteria.\n\n### Search patients by patient code\n\nNote that this action is deprecated and we recommend using [identifiers](https://developers.awellhealth.com/awell-orchestration/docs/misc/patient-identifiers) instead.\n\nSearch whether, apart from the patient currently enrolled in the care flow, another patient with the same `patient_code` already exists.\n\n**Data points:**\n\n1. patientAlreadyExists: a boolean which will be true if minimum one patient with the patient code already exists.\n2. numberOfPatientsFound: the number of patients found with the same patient code.\n3. awellPatientIds: a comma-separated string of all Awell patient ids (except the current patient) that have the same patient code as the patient currently enrolled in the care flow. Will return an empty string when there are no other patients with the same patient code.\n\n### Get patient by identifier\n\nThis action lets you check if a patient with a specific identifier already exists in Awell. It's particularly useful when a patient's identity is initially anonymous during the start of the care flow, but later becomes identifiable through the identifiers collected during the care flow. This check ensures whether a patient with that identifier is already present or not.\n\n### Add identifier to patient\n\nThis action enables adding an identifier to the current patient. We recommend using the \"Get patient by identifier\" action first to verify if a patient with that identifier already exists. If the identifier isn't already associated with another patient, it's safe to add it to the current patient. If a match is found, implementing a strategy for deduplication is advisable.\n\n## Webhooks\n\nWebhooks in the Awell extension offer ways to trigger a care flow based on the end of another care flow, or from any event that happens in your system (via the pathwayStart webhook).\n",
|
8
8
|
"changelog": "# Awell changelog\n\n## April 2024\n\nTwo new action were added: \"Get patient by identifier\" and \"Add identifier to patient\".\n\n## October 26, 2023\n\nGeneric webhook to start a care flow added\n\n## April 19, 2023\n\nStop care flow action added.\nSearch patients by patient code action was added.\n\"Is patient enrolled in care flow\" action added.\n"
|
9
9
|
},
|
10
10
|
"calDotCom": {
|
@@ -31,6 +31,10 @@
|
|
31
31
|
"readme": "---\ntitle: Advanced data collection\ndescription: Collect data from your users using a variety of input types and data sources\n---\n\nThis extension allows you to collect data from your users using a variety of more advanced input types and data sources.\n\n## Extension settings\n\nIn order to set up this extension, no settings are required.\n\n## Custom Actions\n\n### Dynamic choice selector\n\nStandard select questions in Awell forms have a discrete set of choices to select from that are defined at the time that the form is created. If the list of choices to present to your responders isn't known at the time the form is being built, or changes often, this action allows you to load choices dynamically from a remote data source.\n\nDynamically-loaded choices must adhere to the following format in a list form (i.e. an array):\n\n```json\n{\n \"id\": \"unique-id\",\n \"label\": \"Choice label\",\n \"value\": \"Choice value\"\n}\n```\n\nAdditionally, you can specify a free text search field (`Options - Search query param` field) to allow users to search through the choices. This is optional but highly recommended. If not specified, the choices will be fetched on question load and presented in a static list that cannot be filtered.\n\nAs an example, using the endpoint `https://example.com/choices` with a query parameter `search` (e.g. `https://example.com/choices?search=QUERY` where `QUERY` is whatever the user typed into the input), then the API is expected to return the choices based on that match the search term.\n\nWe recommend that your search logic returns an _alphabetically-sorted_ list of all options where the _lowercase_ label names _contain_ the _lowercase_ search term.\n\n```js\n// Example search logic\nconst searchTerm = req.query.search\nconst results = []\n\noptions.forEach((option) => {\n if (option.label.toLowerCase().includes(searchTerm.toLowerCase())) {\n results.push({\n label: option.label,\n value: option.value,\n id: option.id,\n })\n }\n})\n\nconst sortedResults = results.sort((a, b) => a.label.localeCompare(b.label))\nres.json(results)\n```\n",
|
32
32
|
"changelog": "# Collect Data changelog\n"
|
33
33
|
},
|
34
|
+
"dockHealth": {
|
35
|
+
"readme": "---\ntitle: Dock Health\ndescription: HIPAA-compliant task management and workflow automation for healthcare. Assign, track, automate, and complete administrative to-do lists.\n---\n\n## Dock Health\n\nHIPAA-compliant task management and workflow automation for healthcare. Assign, track, automate, and complete administrative to-do lists.\n\n## Extension settings\n\nFor the extension to function correctly, you must configure the following settings. You can read more about these settings [here](https://github.com/DockHealth/dockhealth-api).\n\n- Environment (production or development)\n- Client ID\n- Client secret\n- API key\n- Organiation identifier\n- User identifier",
|
36
|
+
"changelog": "# Dock Health changelog"
|
37
|
+
},
|
34
38
|
"docuSign": {
|
35
39
|
"readme": "---\ntitle: DocuSign\ndescription: Make your business faster, simpler and more cost-efficient with electronic agreements. Agree with confidence, with intuitive signing experiences across virtually any device.\n---\n# DocuSign\n\nMake your business faster, simpler and more cost-efficient with electronic agreements. Agree with confidence, with intuitive signing experiences across virtually any device.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide the following settings:\n\n1. **Integration key (client ID)** - An integration key identifies your integration and links to its configuration values. This can be obtained in your developer account from the **Apps and Keys** page\n2. **API Account ID** - A GUID value that identifies your account. This can be obtained in your developer account from the **Apps and Keys** page\n3. **Impersonated User ID (UserID)** - This is a GUID identifying the DocuSign user that you will be impersonating with the access token. Your own User ID can be found at the top of the **Apps and Keys** page.\n4. **RSA private key (in Base64 format)** - This is for the integration key you obtained above and can also be created on the **Apps and Keys** page (DocuSign also allows uploading your own keys). You only need the private key, and it can only be copied once. Make sure to retain it for your records. Provide it in Base64 format - if you copy the key as is, it will not be valid as newlines and formatting won't be persisted.\n5. **Base API URL** - Base API URL for API calls matching your environment on DocuSign. Defaults to: https://demo.docusign.net. Can be obtained from **Account Base URI** section of the **Apps and Keys** page or the `base_uri` property in the response of a call to the `/oauth/userinfo`.\n 1. `DEV` environment: https://demo.docusign.net (default)\n 2. `PRODUCTION` environment: **https://`{server}`.docusign.net**, where `{server}` is the data center location of your production account (for example, **CA**, **NA2**, or **EU**)\n6. **Return URL template** - Return URL for your application to which DocuSign will redirect the user after signing the document. Set when you self host your application. You can use {sessionId}, {pathwayId}, {activityId} and {stakeholderId} variables to construct the URL, where variables will be replaced with actual values. Defaults to: \"https://goto.development.awell.health/?sessionId={sessionId}\". Remember that this URL MUST match the one you registered for your app in DocuSign settings. [See docs](https://developers.docusign.com/platform/configure-app/#redirect-uri) for more details.\n\nAlso, before working with **DocuSign** you should receive consent of the user to impersonate them with the API calls (even for your own account). Check the details on how to do that [on DocuSign docs](https://developers.docusign.com/platform/auth/consent/obtaining-individual-consent/). It's a ONE TIME operation and is required for API calls to work for specific client-scope-uri combination. Required params explained below:\n\n- `YOUR_REQUESTED_SCOPES`: This extension uses JWT Grant, so in place of `YOUR_REQUESTED_SCOPES` you MUST put at least `signature%20impersonation`.\n - sample consent URL: https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature%20impersonation%20click.manage%20click.send&client_id=XYZ-123&redirect_uri=https://test.com\n\n## Custom Actions\n\n### Embedded signing\n\nEmbedded Signing gives users the ability to sign documents directly from Awell Hosted Pages using DocuSign's embedded signing feature. First an embedded signature request with a template is created and then a signing URL is generated for the signature request. Via the signing URL, we can let the user sign the request from within Awell.\n\nEmbedded signing behaves as a blocking action where the action is only completed when the signature request is effectively signed.\n\n**In order to add embedded signing, you need to add 2 actions to you care flow:**\n\n1. First, add the \"Create embedded signature request with template\" action. This action will create an embedded signature request based on a template and return a **sign URL**.\n2. Second, add the \"Embedded signing\" action. In this action you will have to configure the **sign URL** you got from the first action.\n\n**Please note that the signing URL generated in the first step is only valid for 5 minutes and is one-time only.** This means that from as soon as the first action is activated, the user has 5 minutes to complete the signing request. Loading a session by the user also means that sign url is loaded and refreshing the page will cause the link to expire. When the sign URL has expired, the document cannot be signed anymore and and the process would have to be repeated.\n",
|
36
40
|
"changelog": "# DocuSign changelog\n"
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@awell-health/awell-extensions",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.245",
|
4
4
|
"packageManager": "yarn@3.4.1",
|
5
5
|
"main": "dist/src/index.js",
|
6
6
|
"repository": {
|
@@ -42,7 +42,7 @@
|
|
42
42
|
"@types/docusign-esign": "^5.19.0",
|
43
43
|
"@types/express": "^4.17.19",
|
44
44
|
"@types/jest": "^29.4.0",
|
45
|
-
"@types/lodash": "^4.
|
45
|
+
"@types/lodash": "^4.17.0",
|
46
46
|
"@types/mailchimp__mailchimp_transactional": "^1.0.5",
|
47
47
|
"@types/node": "^18.13.0",
|
48
48
|
"@types/node-fetch": "^2.6.2",
|