@awell-health/awell-extensions 2.1.93 → 2.1.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extensions/awell/v1/actions/listFormAnswers/listFormAnswers.js +1 -99
- package/dist/extensions/awell/v1/actions/listFormAnswers/listFormAnswers.js.map +1 -1
- package/dist/extensions/shelly/actions/index.d.ts +26 -0
- package/dist/extensions/shelly/actions/summarizeForm/config/fields.d.ts +37 -0
- package/dist/extensions/shelly/actions/summarizeForm/config/fields.js +30 -0
- package/dist/extensions/shelly/actions/summarizeForm/config/fields.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.d.ts +3 -0
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.js +78 -12
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.js.map +1 -1
- package/dist/src/lib/awell/getFormsInTrack/getFormsInTrack.d.ts +15 -0
- package/dist/src/lib/awell/getFormsInTrack/getFormsInTrack.js +103 -0
- package/dist/src/lib/awell/getFormsInTrack/getFormsInTrack.js.map +1 -0
- package/dist/src/lib/awell/getFormsInTrack/index.d.ts +1 -0
- package/dist/src/lib/awell/getFormsInTrack/index.js +6 -0
- package/dist/src/lib/awell/getFormsInTrack/index.js.map +1 -0
- package/dist/src/lib/awell/index.d.ts +1 -0
- package/dist/src/lib/awell/index.js +1 -0
- package/dist/src/lib/awell/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,104 +6,6 @@ const config_1 = require("./config");
|
|
|
6
6
|
const zod_1 = require("zod");
|
|
7
7
|
const awell_1 = require("../../../../../src/lib/awell");
|
|
8
8
|
const generateFormOutput_1 = require("./lib/generateFormOutput");
|
|
9
|
-
const lodash_1 = require("lodash");
|
|
10
|
-
const getFormsInTrack = async ({ awellSdk, pathwayId, activityId, }) => {
|
|
11
|
-
var _a, _b;
|
|
12
|
-
// First get the current activity to find the track_id and cutoff date
|
|
13
|
-
const activityResponse = await awellSdk.orchestration.query({
|
|
14
|
-
activity: {
|
|
15
|
-
__args: {
|
|
16
|
-
id: activityId,
|
|
17
|
-
},
|
|
18
|
-
success: true,
|
|
19
|
-
activity: {
|
|
20
|
-
id: true,
|
|
21
|
-
date: true,
|
|
22
|
-
context: {
|
|
23
|
-
track_id: true,
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
const currentActivity = (_a = activityResponse.activity) === null || _a === void 0 ? void 0 : _a.activity;
|
|
29
|
-
if ((0, lodash_1.isNil)(currentActivity)) {
|
|
30
|
-
throw new Error('Cannot find the current activity');
|
|
31
|
-
}
|
|
32
|
-
const trackId = (_b = currentActivity.context) === null || _b === void 0 ? void 0 : _b.track_id;
|
|
33
|
-
if ((0, lodash_1.isNil)(trackId) || trackId.trim() === '') {
|
|
34
|
-
throw new Error('Could not find track ID for the current activity');
|
|
35
|
-
}
|
|
36
|
-
// Get all activities in the track
|
|
37
|
-
const activitiesResponse = await awellSdk.orchestration.query({
|
|
38
|
-
pathwayActivities: {
|
|
39
|
-
__args: {
|
|
40
|
-
pathway_id: pathwayId,
|
|
41
|
-
track_id: trackId,
|
|
42
|
-
pagination: { offset: 0, count: 500 },
|
|
43
|
-
},
|
|
44
|
-
success: true,
|
|
45
|
-
activities: {
|
|
46
|
-
id: true,
|
|
47
|
-
status: true,
|
|
48
|
-
date: true,
|
|
49
|
-
object: {
|
|
50
|
-
id: true,
|
|
51
|
-
name: true,
|
|
52
|
-
type: true,
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
// Filter and sort by date in ascending order (chronological)
|
|
58
|
-
const formActivitiesInTrack = activitiesResponse.pathwayActivities.activities
|
|
59
|
-
.filter((a) => a.object.type === 'FORM' &&
|
|
60
|
-
a.status === 'DONE' &&
|
|
61
|
-
a.date <= currentActivity.date)
|
|
62
|
-
.sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime());
|
|
63
|
-
if (formActivitiesInTrack.length === 0) {
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
// Fetch form definitions and responses for all forms
|
|
67
|
-
return await Promise.all(formActivitiesInTrack.map(async (formActivity) => {
|
|
68
|
-
const formDefinition = await awellSdk.orchestration.query({
|
|
69
|
-
form: {
|
|
70
|
-
__args: {
|
|
71
|
-
id: formActivity.object.id,
|
|
72
|
-
pathway_id: pathwayId,
|
|
73
|
-
},
|
|
74
|
-
form: {
|
|
75
|
-
__scalar: true,
|
|
76
|
-
questions: {
|
|
77
|
-
__scalar: true,
|
|
78
|
-
options: {
|
|
79
|
-
__scalar: true,
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
const formResponse = await awellSdk.orchestration.query({
|
|
86
|
-
formResponse: {
|
|
87
|
-
__args: {
|
|
88
|
-
pathway_id: pathwayId,
|
|
89
|
-
activity_id: formActivity.id,
|
|
90
|
-
},
|
|
91
|
-
response: {
|
|
92
|
-
answers: {
|
|
93
|
-
__scalar: true,
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
return {
|
|
99
|
-
formActivityId: formActivity.id,
|
|
100
|
-
formId: formActivity.object.id,
|
|
101
|
-
formName: formActivity.object.name,
|
|
102
|
-
formDefinition: formDefinition.form.form,
|
|
103
|
-
formResponse: formResponse.formResponse.response,
|
|
104
|
-
};
|
|
105
|
-
}));
|
|
106
|
-
};
|
|
107
9
|
exports.listFormAnswers = {
|
|
108
10
|
key: 'listFormAnswers',
|
|
109
11
|
category: extensions_core_1.Category.WORKFLOW,
|
|
@@ -150,7 +52,7 @@ exports.listFormAnswers = {
|
|
|
150
52
|
}
|
|
151
53
|
else {
|
|
152
54
|
// scope === 'Track'
|
|
153
|
-
const allFormsInTrack = await getFormsInTrack({
|
|
55
|
+
const allFormsInTrack = await (0, awell_1.getFormsInTrack)({
|
|
154
56
|
awellSdk,
|
|
155
57
|
pathwayId: payload.pathway.id,
|
|
156
58
|
activityId: payload.activity.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listFormAnswers.js","sourceRoot":"","sources":["../../../../../../extensions/awell/v1/actions/listFormAnswers/listFormAnswers.ts"],"names":[],"mappings":";;;AAEA,mEAAkE;AAClE,qCAAqE;AACrE,6BAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"listFormAnswers.js","sourceRoot":"","sources":["../../../../../../extensions/awell/v1/actions/listFormAnswers/listFormAnswers.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,6 +131,32 @@ declare const actions: {
|
|
|
131
131
|
};
|
|
132
132
|
}, Record<string, never>, "summary">;
|
|
133
133
|
summarizeForm: import("@awell-health/extensions-core").Action<{
|
|
134
|
+
scope: {
|
|
135
|
+
id: string;
|
|
136
|
+
label: string;
|
|
137
|
+
description: string;
|
|
138
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
|
139
|
+
required: false;
|
|
140
|
+
options: {
|
|
141
|
+
dropdownOptions: {
|
|
142
|
+
label: "Track" | "Step";
|
|
143
|
+
value: "Track" | "Step";
|
|
144
|
+
}[];
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
formSelection: {
|
|
148
|
+
id: string;
|
|
149
|
+
label: string;
|
|
150
|
+
description: string;
|
|
151
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
|
152
|
+
required: false;
|
|
153
|
+
options: {
|
|
154
|
+
dropdownOptions: {
|
|
155
|
+
label: "Latest" | "All";
|
|
156
|
+
value: "Latest" | "All";
|
|
157
|
+
}[];
|
|
158
|
+
};
|
|
159
|
+
};
|
|
134
160
|
summaryFormat: {
|
|
135
161
|
id: string;
|
|
136
162
|
label: string;
|
|
@@ -4,7 +4,37 @@ export declare enum SummaryFormatEnum {
|
|
|
4
4
|
BULLET_POINTS = "Bullet-points",
|
|
5
5
|
TEXT_PARAGRAPH = "Text paragraph"
|
|
6
6
|
}
|
|
7
|
+
declare const ScopeEnum: z.ZodEnum<["Step", "Track"]>;
|
|
8
|
+
export type ScopeType = z.infer<typeof ScopeEnum>;
|
|
9
|
+
declare const FormSelectionEnum: z.ZodEnum<["Latest", "All"]>;
|
|
10
|
+
export type FormSelectionType = z.infer<typeof FormSelectionEnum>;
|
|
7
11
|
export declare const fields: {
|
|
12
|
+
scope: {
|
|
13
|
+
id: string;
|
|
14
|
+
label: string;
|
|
15
|
+
description: string;
|
|
16
|
+
type: FieldType.STRING;
|
|
17
|
+
required: false;
|
|
18
|
+
options: {
|
|
19
|
+
dropdownOptions: {
|
|
20
|
+
label: "Track" | "Step";
|
|
21
|
+
value: "Track" | "Step";
|
|
22
|
+
}[];
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
formSelection: {
|
|
26
|
+
id: string;
|
|
27
|
+
label: string;
|
|
28
|
+
description: string;
|
|
29
|
+
type: FieldType.STRING;
|
|
30
|
+
required: false;
|
|
31
|
+
options: {
|
|
32
|
+
dropdownOptions: {
|
|
33
|
+
label: "Latest" | "All";
|
|
34
|
+
value: "Latest" | "All";
|
|
35
|
+
}[];
|
|
36
|
+
};
|
|
37
|
+
};
|
|
8
38
|
summaryFormat: {
|
|
9
39
|
id: string;
|
|
10
40
|
label: string;
|
|
@@ -34,15 +64,22 @@ export declare const fields: {
|
|
|
34
64
|
};
|
|
35
65
|
};
|
|
36
66
|
export declare const FieldsValidationSchema: z.ZodObject<{
|
|
67
|
+
scope: z.ZodDefault<z.ZodEnum<["Step", "Track"]>>;
|
|
68
|
+
formSelection: z.ZodDefault<z.ZodEnum<["Latest", "All"]>>;
|
|
37
69
|
summaryFormat: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodEnum<[SummaryFormatEnum.BULLET_POINTS, SummaryFormatEnum.TEXT_PARAGRAPH]>>>, SummaryFormatEnum, SummaryFormatEnum | undefined>;
|
|
38
70
|
language: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
39
71
|
additionalInstructions: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
40
72
|
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
scope: "Track" | "Step";
|
|
41
74
|
language: string;
|
|
75
|
+
formSelection: "Latest" | "All";
|
|
42
76
|
additionalInstructions: string;
|
|
43
77
|
summaryFormat: SummaryFormatEnum;
|
|
44
78
|
}, {
|
|
79
|
+
scope?: "Track" | "Step" | undefined;
|
|
45
80
|
language?: string | undefined;
|
|
81
|
+
formSelection?: "Latest" | "All" | undefined;
|
|
46
82
|
additionalInstructions?: string | undefined;
|
|
47
83
|
summaryFormat?: SummaryFormatEnum | undefined;
|
|
48
84
|
}>;
|
|
85
|
+
export {};
|
|
@@ -11,7 +11,35 @@ var SummaryFormatEnum;
|
|
|
11
11
|
SummaryFormatEnum["BULLET_POINTS"] = "Bullet-points";
|
|
12
12
|
SummaryFormatEnum["TEXT_PARAGRAPH"] = "Text paragraph";
|
|
13
13
|
})(SummaryFormatEnum || (exports.SummaryFormatEnum = SummaryFormatEnum = {}));
|
|
14
|
+
const ScopeEnum = zod_1.default.enum(['Step', 'Track']);
|
|
15
|
+
const FormSelectionEnum = zod_1.default.enum(['Latest', 'All']);
|
|
14
16
|
exports.fields = {
|
|
17
|
+
scope: {
|
|
18
|
+
id: 'scope',
|
|
19
|
+
label: 'Scope',
|
|
20
|
+
description: 'The scope in which to look for forms. Default is "Step" (current step only).',
|
|
21
|
+
type: extensions_core_1.FieldType.STRING,
|
|
22
|
+
required: false,
|
|
23
|
+
options: {
|
|
24
|
+
dropdownOptions: Object.values(ScopeEnum.enum).map((scope) => ({
|
|
25
|
+
label: scope,
|
|
26
|
+
value: scope,
|
|
27
|
+
})),
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
formSelection: {
|
|
31
|
+
id: 'formSelection',
|
|
32
|
+
label: 'Form selection',
|
|
33
|
+
description: 'Whether to summarize the most recent form or all forms in the scope. Default is "Latest".',
|
|
34
|
+
type: extensions_core_1.FieldType.STRING,
|
|
35
|
+
required: false,
|
|
36
|
+
options: {
|
|
37
|
+
dropdownOptions: Object.values(FormSelectionEnum.enum).map((selection) => ({
|
|
38
|
+
label: selection,
|
|
39
|
+
value: selection,
|
|
40
|
+
})),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
15
43
|
summaryFormat: {
|
|
16
44
|
id: 'summaryFormat',
|
|
17
45
|
label: 'Summary Format',
|
|
@@ -42,6 +70,8 @@ exports.fields = {
|
|
|
42
70
|
};
|
|
43
71
|
// Step 3: Define the validation schema using zod
|
|
44
72
|
exports.FieldsValidationSchema = zod_1.default.object({
|
|
73
|
+
scope: ScopeEnum.default('Step'),
|
|
74
|
+
formSelection: FormSelectionEnum.default('Latest'),
|
|
45
75
|
summaryFormat: zod_1.default
|
|
46
76
|
.enum([SummaryFormatEnum.BULLET_POINTS, SummaryFormatEnum.TEXT_PARAGRAPH])
|
|
47
77
|
.optional()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/shelly/actions/summarizeForm/config/fields.ts"],"names":[],"mappings":";;;;;;AAAA,mEAAqE;AACrE,8CAAwC;AAExC,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,oDAA+B,CAAA;IAC/B,sDAAiC,CAAA;AACnC,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/shelly/actions/summarizeForm/config/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,9 @@ import { fields, dataPoints } from './config';
|
|
|
7
7
|
* 1. Generate a concise summary in specified format and language
|
|
8
8
|
* 2. Includes appropriate disclaimer
|
|
9
9
|
*
|
|
10
|
+
* Supports configurable scope (Step or Track) and form selection (Latest or All),
|
|
11
|
+
* matching the behavior of the listFormAnswers action.
|
|
12
|
+
*
|
|
10
13
|
* @returns HTML-formatted summary
|
|
11
14
|
*/
|
|
12
15
|
export declare const summarizeForm: Action<typeof fields, Record<string, never>, keyof typeof dataPoints>;
|
|
@@ -19,19 +19,22 @@ const lodash_1 = require("lodash");
|
|
|
19
19
|
* 1. Generate a concise summary in specified format and language
|
|
20
20
|
* 2. Includes appropriate disclaimer
|
|
21
21
|
*
|
|
22
|
+
* Supports configurable scope (Step or Track) and form selection (Latest or All),
|
|
23
|
+
* matching the behavior of the listFormAnswers action.
|
|
24
|
+
*
|
|
22
25
|
* @returns HTML-formatted summary
|
|
23
26
|
*/
|
|
24
27
|
exports.summarizeForm = {
|
|
25
28
|
key: 'summarizeForm',
|
|
26
29
|
category: extensions_core_1.Category.WORKFLOW,
|
|
27
30
|
title: 'Summarize Form',
|
|
28
|
-
description: 'Summarize
|
|
31
|
+
description: 'Summarize form responses with AI. Defaults to the latest form in the current step, but can summarize all forms in the step or across the track.',
|
|
29
32
|
fields: config_1.fields,
|
|
30
33
|
previewable: false,
|
|
31
34
|
dataPoints: config_1.dataPoints,
|
|
32
35
|
onEvent: async ({ payload, onComplete, onError, helpers }) => {
|
|
33
36
|
// 1. Validate input fields
|
|
34
|
-
const { summaryFormat, language, additionalInstructions } = config_1.FieldsValidationSchema.parse(payload.fields);
|
|
37
|
+
const { scope, formSelection, summaryFormat, language, additionalInstructions, } = config_1.FieldsValidationSchema.parse(payload.fields);
|
|
35
38
|
// 2. Initialize OpenAI model with metadata
|
|
36
39
|
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
|
37
40
|
settings: {}, // we use built-in API key for OpenAI
|
|
@@ -43,16 +46,79 @@ exports.summarizeForm = {
|
|
|
43
46
|
const awellSdk = await helpers.awellSdk();
|
|
44
47
|
// Get care flow details for the disclaimer
|
|
45
48
|
const careFlowDetails = await (0, getCareFlowDetails_1.getCareFlowDetails)(awellSdk, payload.pathway.id);
|
|
46
|
-
// 3. Get form data
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
// 3. Get form data based on scope and formSelection
|
|
50
|
+
let formData;
|
|
51
|
+
if (scope === 'Step') {
|
|
52
|
+
if (formSelection === 'Latest') {
|
|
53
|
+
// Single latest form in step (original behavior)
|
|
54
|
+
const { formDefinition, formResponse } = await (0, awell_1.getLatestFormInCurrentStep)({
|
|
55
|
+
awellSdk,
|
|
56
|
+
pathwayId: payload.pathway.id,
|
|
57
|
+
activityId: payload.activity.id,
|
|
58
|
+
});
|
|
59
|
+
const { result } = (0, getFormResponseText_1.getFormResponseText)({
|
|
60
|
+
formDefinition,
|
|
61
|
+
formResponse,
|
|
62
|
+
});
|
|
63
|
+
formData = result;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// All forms in step
|
|
67
|
+
const formsData = await (0, awell_1.getAllFormsInCurrentStep)({
|
|
68
|
+
awellSdk,
|
|
69
|
+
pathwayId: payload.pathway.id,
|
|
70
|
+
activityId: payload.activity.id,
|
|
71
|
+
});
|
|
72
|
+
const { result } = (0, getFormResponseText_1.getResponsesForAllForms)({ formsData });
|
|
73
|
+
formData = result;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// scope === 'Track'
|
|
78
|
+
const allFormsInTrack = await (0, awell_1.getFormsInTrack)({
|
|
79
|
+
awellSdk,
|
|
80
|
+
pathwayId: payload.pathway.id,
|
|
81
|
+
activityId: payload.activity.id,
|
|
82
|
+
});
|
|
83
|
+
if (formSelection === 'Latest') {
|
|
84
|
+
// Latest form in track
|
|
85
|
+
if (allFormsInTrack.length === 0) {
|
|
86
|
+
formData = '';
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const latestForm = allFormsInTrack[allFormsInTrack.length - 1];
|
|
90
|
+
const { result } = (0, getFormResponseText_1.getFormResponseText)({
|
|
91
|
+
formDefinition: latestForm.formDefinition,
|
|
92
|
+
formResponse: latestForm.formResponse,
|
|
93
|
+
});
|
|
94
|
+
formData = result;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// All forms in track
|
|
99
|
+
const { result } = (0, getFormResponseText_1.getResponsesForAllForms)({
|
|
100
|
+
formsData: allFormsInTrack,
|
|
101
|
+
});
|
|
102
|
+
formData = result;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (formData === '') {
|
|
106
|
+
await onError({
|
|
107
|
+
events: [
|
|
108
|
+
{
|
|
109
|
+
date: new Date().toISOString(),
|
|
110
|
+
text: {
|
|
111
|
+
en: `No completed form found in the current ${scope.toLowerCase()}`,
|
|
112
|
+
},
|
|
113
|
+
error: {
|
|
114
|
+
category: 'WRONG_INPUT',
|
|
115
|
+
message: `No completed form found in the current ${scope.toLowerCase()}`,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
56
122
|
// Create disclaimer message based on version availability
|
|
57
123
|
let disclaimerMessage = '';
|
|
58
124
|
if (!(0, lodash_1.isNil)(careFlowDetails.version)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizeForm.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeForm/summarizeForm.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,yEAAqE;AACrE,2EAAuE;AACvE,wFAAoF;AACpF,wEAAwE;AACxE,qCAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"summarizeForm.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeForm/summarizeForm.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,yEAAqE;AACrE,2EAAuE;AACvE,wFAAoF;AACpF,wEAAwE;AACxE,qCAAqE;AACrE,uEAGsC;AACtC,qDAIkC;AAClC,iDAAsD;AACtD,qEAAiE;AACjE,mCAA8B;AAE9B;;;;;;;;;;;GAWG;AACU,QAAA,aAAa,GAItB;IACF,GAAG,EAAE,eAAe;IACpB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,iJAAiJ;IACnJ,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IAEV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,2BAA2B;QAC3B,MAAM,EACJ,KAAK,EACL,aAAa,EACb,aAAa,EACb,QAAQ,EACR,sBAAsB,GACvB,GAAG,+BAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEhD,2CAA2C;QAC3C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,qCAAiB,EAAC;YAC7D,QAAQ,EAAE,EAAE,EAAE,qCAAqC;YACnD,OAAO;YACP,OAAO;YACP,SAAS,EAAE,yBAAa,CAAC,KAAK;YAC9B,kBAAkB,EAAE,IAAI,EAAE,0CAA0C;SACrE,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEzC,2CAA2C;QAC3C,MAAM,eAAe,GAAG,MAAM,IAAA,uCAAkB,EAC9C,QAAQ,EACR,OAAO,CAAC,OAAO,CAAC,EAAE,CACnB,CAAA;QAED,oDAAoD;QACpD,IAAI,QAAgB,CAAA;QAEpB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC/B,iDAAiD;gBACjD,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GACpC,MAAM,IAAA,kCAA0B,EAAC;oBAC/B,QAAQ;oBACR,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC7B,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;iBAChC,CAAC,CAAA;gBAEJ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,yCAAmB,EAAC;oBACrC,cAAc;oBACd,YAAY;iBACb,CAAC,CAAA;gBACF,QAAQ,GAAG,MAAM,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,oBAAoB;gBACpB,MAAM,SAAS,GAAG,MAAM,IAAA,gCAAwB,EAAC;oBAC/C,QAAQ;oBACR,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC7B,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;iBAChC,CAAC,CAAA;gBAEF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6CAAuB,EAAC,EAAE,SAAS,EAAE,CAAC,CAAA;gBACzD,QAAQ,GAAG,MAAM,CAAA;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,eAAe,GAAG,MAAM,IAAA,uBAAe,EAAC;gBAC5C,QAAQ;gBACR,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC7B,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;aAChC,CAAC,CAAA;YAEF,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC/B,uBAAuB;gBACvB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,QAAQ,GAAG,EAAE,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC9D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,yCAAmB,EAAC;wBACrC,cAAc,EAAE,UAAU,CAAC,cAAc;wBACzC,YAAY,EAAE,UAAU,CAAC,YAAY;qBACtC,CAAC,CAAA;oBACF,QAAQ,GAAG,MAAM,CAAA;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6CAAuB,EAAC;oBACzC,SAAS,EAAE,eAAe;iBAC3B,CAAC,CAAA;gBACF,QAAQ,GAAG,MAAM,CAAA;YACnB,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC9B,IAAI,EAAE;4BACJ,EAAE,EAAE,0CAA0C,KAAK,CAAC,WAAW,EAAE,EAAE;yBACpE;wBACD,KAAK,EAAE;4BACL,QAAQ,EAAE,aAAa;4BACvB,OAAO,EAAE,0CAA0C,KAAK,CAAC,WAAW,EAAE,EAAE;yBACzE;qBACF;iBACF;aACF,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,0DAA0D;QAC1D,IAAI,iBAAiB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,IAAA,cAAK,EAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,iBAAiB,GAAG,sGAAsG,eAAe,CAAC,OAAO,kBAAkB,eAAe,CAAC,KAAK,UAAU,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;QAC1N,CAAC;aAAM,CAAC;YACN,iBAAiB,GAAG,yGAAyG,eAAe,CAAC,KAAK,UAAU,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;QACpL,CAAC;QAED,IAAI,eAAe,GAAG,QAAQ,CAAA;QAE9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,eAAe,GAAG,MAAM,IAAA,6CAAqB,EAAC;oBAC5C,KAAK;oBACL,IAAI,EAAE,QAAQ;oBACd,QAAQ;oBACR,SAAS;iBACV,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,oDAAoD;gBACpD,eAAe,GAAG,SAAS,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,OAAO,GAAG,MAAM,IAAA,2CAAoB,EAAC;YACzC,KAAK;YACL,QAAQ;YACR,aAAa;YACb,QAAQ,EAAE,eAAe;YACzB,iBAAiB;YACjB,sBAAsB;YACtB,QAAQ;YACR,SAAS;SACV,CAAC,CAAA;QAEF,+BAA+B;QAC/B,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAA;QACjD,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AwellSdk, type Form, type FormResponse } from '@awell-health/awell-sdk';
|
|
2
|
+
export interface FormData {
|
|
3
|
+
formActivityId: string;
|
|
4
|
+
formId: string;
|
|
5
|
+
formName: string;
|
|
6
|
+
formDefinition: Form;
|
|
7
|
+
formResponse: FormResponse;
|
|
8
|
+
}
|
|
9
|
+
type GetFormsInTrack = (params: {
|
|
10
|
+
awellSdk: AwellSdk;
|
|
11
|
+
pathwayId: string;
|
|
12
|
+
activityId: string;
|
|
13
|
+
}) => Promise<FormData[]>;
|
|
14
|
+
export declare const getFormsInTrack: GetFormsInTrack;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFormsInTrack = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const getFormsInTrack = async ({ awellSdk, pathwayId, activityId, }) => {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
// First get the current activity to find the track_id and cutoff date
|
|
8
|
+
const activityResponse = await awellSdk.orchestration.query({
|
|
9
|
+
activity: {
|
|
10
|
+
__args: {
|
|
11
|
+
id: activityId,
|
|
12
|
+
},
|
|
13
|
+
success: true,
|
|
14
|
+
activity: {
|
|
15
|
+
id: true,
|
|
16
|
+
date: true,
|
|
17
|
+
context: {
|
|
18
|
+
track_id: true,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
const currentActivity = (_a = activityResponse.activity) === null || _a === void 0 ? void 0 : _a.activity;
|
|
24
|
+
if ((0, lodash_1.isNil)(currentActivity)) {
|
|
25
|
+
throw new Error('Cannot find the current activity');
|
|
26
|
+
}
|
|
27
|
+
const trackId = (_b = currentActivity.context) === null || _b === void 0 ? void 0 : _b.track_id;
|
|
28
|
+
if ((0, lodash_1.isNil)(trackId) || trackId.trim() === '') {
|
|
29
|
+
throw new Error('Could not find track ID for the current activity');
|
|
30
|
+
}
|
|
31
|
+
// Get all activities in the track
|
|
32
|
+
const activitiesResponse = await awellSdk.orchestration.query({
|
|
33
|
+
pathwayActivities: {
|
|
34
|
+
__args: {
|
|
35
|
+
pathway_id: pathwayId,
|
|
36
|
+
track_id: trackId,
|
|
37
|
+
pagination: { offset: 0, count: 500 },
|
|
38
|
+
},
|
|
39
|
+
success: true,
|
|
40
|
+
activities: {
|
|
41
|
+
id: true,
|
|
42
|
+
status: true,
|
|
43
|
+
date: true,
|
|
44
|
+
object: {
|
|
45
|
+
id: true,
|
|
46
|
+
name: true,
|
|
47
|
+
type: true,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
// Filter and sort by date in ascending order (chronological)
|
|
53
|
+
const formActivitiesInTrack = activitiesResponse.pathwayActivities.activities
|
|
54
|
+
.filter((a) => a.object.type === 'FORM' &&
|
|
55
|
+
a.status === 'DONE' &&
|
|
56
|
+
a.date <= currentActivity.date)
|
|
57
|
+
.sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime());
|
|
58
|
+
if (formActivitiesInTrack.length === 0) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
// Fetch form definitions and responses for all forms
|
|
62
|
+
return await Promise.all(formActivitiesInTrack.map(async (formActivity) => {
|
|
63
|
+
const formDefinition = await awellSdk.orchestration.query({
|
|
64
|
+
form: {
|
|
65
|
+
__args: {
|
|
66
|
+
id: formActivity.object.id,
|
|
67
|
+
pathway_id: pathwayId,
|
|
68
|
+
},
|
|
69
|
+
form: {
|
|
70
|
+
__scalar: true,
|
|
71
|
+
questions: {
|
|
72
|
+
__scalar: true,
|
|
73
|
+
options: {
|
|
74
|
+
__scalar: true,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
const formResponse = await awellSdk.orchestration.query({
|
|
81
|
+
formResponse: {
|
|
82
|
+
__args: {
|
|
83
|
+
pathway_id: pathwayId,
|
|
84
|
+
activity_id: formActivity.id,
|
|
85
|
+
},
|
|
86
|
+
response: {
|
|
87
|
+
answers: {
|
|
88
|
+
__scalar: true,
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
return {
|
|
94
|
+
formActivityId: formActivity.id,
|
|
95
|
+
formId: formActivity.object.id,
|
|
96
|
+
formName: formActivity.object.name,
|
|
97
|
+
formDefinition: formDefinition.form.form,
|
|
98
|
+
formResponse: formResponse.formResponse.response,
|
|
99
|
+
};
|
|
100
|
+
}));
|
|
101
|
+
};
|
|
102
|
+
exports.getFormsInTrack = getFormsInTrack;
|
|
103
|
+
//# sourceMappingURL=getFormsInTrack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFormsInTrack.js","sourceRoot":"","sources":["../../../../../src/lib/awell/getFormsInTrack/getFormsInTrack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getFormsInTrack, type FormData } from './getFormsInTrack';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFormsInTrack = void 0;
|
|
4
|
+
var getFormsInTrack_1 = require("./getFormsInTrack");
|
|
5
|
+
Object.defineProperty(exports, "getFormsInTrack", { enumerable: true, get: function () { return getFormsInTrack_1.getFormsInTrack; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/awell/getFormsInTrack/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkE;AAAzD,kHAAA,eAAe,OAAA"}
|
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./getLatestFormInCurrentStep"), exports);
|
|
18
18
|
__exportStar(require("./getAllFormsInCurrentStep"), exports);
|
|
19
|
+
__exportStar(require("./getFormsInTrack"), exports);
|
|
19
20
|
__exportStar(require("./getEmailValidationRegex"), exports);
|
|
20
21
|
__exportStar(require("./getLastCalculationActivityInCurrentStep"), exports);
|
|
21
22
|
__exportStar(require("./addEventLog"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/awell/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C;AAC5C,6DAA0C;AAC1C,4DAAyC;AACzC,4EAAyD;AACzD,gDAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/awell/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C;AAC5C,6DAA0C;AAC1C,oDAAiC;AACjC,4DAAyC;AACzC,4EAAyD;AACzD,gDAA6B"}
|