@awell-health/awell-extensions 1.0.244 → 1.1.0-beta11
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/extensions/athenahealth/actions/index.d.ts +5 -5
- package/dist/extensions/avaAi/common/sdk/openAiSdk.d.ts +2 -0
- package/dist/extensions/avaAi/common/sdk/openAiSdk.js +5 -0
- package/dist/extensions/avaAi/common/sdk/openAiSdk.js.map +1 -0
- package/dist/extensions/avaAi/index.d.ts +2 -0
- package/dist/extensions/avaAi/index.js +21 -0
- package/dist/extensions/avaAi/index.js.map +1 -0
- package/dist/extensions/avaAi/settings.d.ts +18 -0
- package/dist/extensions/avaAi/settings.js +22 -0
- package/dist/extensions/avaAi/settings.js.map +1 -0
- package/dist/extensions/{awell/v1/actions/getPatientByIdentifier → avaAi/v1/actions/generatePatientSummary}/config/dataPoints.d.ts +3 -3
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/dataPoints.js +15 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/dataPoints.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/fields.d.ts +29 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/fields.js +46 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/fields.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/index.d.ts +2 -0
- package/dist/extensions/{awell/v1/actions/getPatientByIdentifier → avaAi/v1/actions/generatePatientSummary}/config/index.js +2 -2
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/index.js.map +1 -0
- package/dist/extensions/{awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.d.ts → avaAi/v1/actions/generatePatientSummary/generatePatientSummary.d.ts} +2 -2
- package/dist/extensions/{awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.js → avaAi/v1/actions/generatePatientSummary/generatePatientSummary.js} +31 -33
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.js +27 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/index.d.ts +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/index.js +6 -0
- package/dist/extensions/{awell/v1/actions/addIdentifierToPatient → avaAi/v1/actions/generatePatientSummary}/index.js.map +1 -1
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.d.ts +3 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.js +43 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.test.js +133 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.test.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.d.ts +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.js +6 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/index.d.ts +1 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/index.js +6 -0
- package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/index.js.map +1 -0
- package/dist/extensions/avaAi/v1/actions/index.d.ts +1 -0
- package/dist/extensions/avaAi/v1/actions/index.js +6 -0
- package/dist/extensions/avaAi/v1/actions/index.js.map +1 -0
- package/dist/extensions/awell/index.js +0 -2
- package/dist/extensions/awell/index.js.map +1 -1
- package/dist/extensions/awell/v1/actions/index.d.ts +0 -2
- package/dist/extensions/awell/v1/actions/index.js +1 -5
- package/dist/extensions/awell/v1/actions/index.js.map +1 -1
- package/dist/extensions/awell/v1/actions/searchPatientsByPatientCode/searchPatientsByPatientCode.js +1 -1
- package/dist/extensions/awell/v1/actions/searchPatientsByPatientCode/searchPatientsByPatientCode.js.map +1 -1
- package/dist/extensions/awell/v1/actions/searchPatientsByPatientCode/searchPatientsByPatientCode.test.js.map +1 -1
- package/dist/extensions/awell/v1/gql/fragment-masking.d.ts +13 -0
- package/dist/extensions/awell/v1/gql/fragment-masking.js +12 -0
- package/dist/extensions/awell/v1/gql/fragment-masking.js.map +1 -0
- package/dist/extensions/awell/v1/gql/gql.d.ts +36 -0
- package/dist/extensions/awell/v1/gql/gql.js +47 -0
- package/dist/extensions/awell/v1/gql/gql.js.map +1 -0
- package/dist/extensions/awell/v1/gql/graphql.d.ts +525 -1066
- package/dist/extensions/awell/v1/gql/graphql.js +17 -46
- package/dist/extensions/awell/v1/gql/graphql.js.map +1 -1
- package/dist/extensions/awell/v1/gql/index.d.ts +2 -0
- package/dist/extensions/awell/v1/gql/index.js +19 -0
- package/dist/extensions/awell/v1/gql/index.js.map +1 -0
- package/dist/extensions/awell/v1/sdk/awellSdk.d.ts +1 -6
- package/dist/extensions/awell/v1/sdk/awellSdk.js +0 -11
- package/dist/extensions/awell/v1/sdk/awellSdk.js.map +1 -1
- package/dist/extensions/awell/v1/sdk/graphql/index.d.ts +0 -2
- package/dist/extensions/awell/v1/sdk/graphql/index.js +1 -5
- package/dist/extensions/awell/v1/sdk/graphql/index.js.map +1 -1
- package/dist/extensions/canvasMedical/v1/actions/createClaim/config/fields.d.ts +2 -2
- package/dist/extensions/canvasMedical/v1/validation/patient.zod.d.ts +44 -44
- package/dist/extensions/elation/actions/index.d.ts +12 -12
- package/dist/extensions/experimental/index.js +2 -0
- package/dist/extensions/experimental/index.js.map +1 -1
- package/dist/extensions/experimental/schemas.d.ts +2 -0
- package/dist/extensions/experimental/schemas.js +44 -0
- package/dist/extensions/experimental/schemas.js.map +1 -0
- package/dist/extensions/experimental/v1/actions/returnObject/index.d.ts +5 -1
- package/dist/extensions/experimental/v1/actions/returnObject/index.js +13 -2
- package/dist/extensions/experimental/v1/actions/returnObject/index.js.map +1 -1
- package/dist/extensions/healthie/actions/index.d.ts +23 -23
- package/dist/extensions/icd/actions/index.d.ts +1 -1
- package/dist/extensions/index.d.ts +1 -1
- package/dist/extensions/index.js +9 -2
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/markdown.json +6 -2
- package/dist/extensions/metriport/actions/index.d.ts +7 -7
- package/dist/extensions/talkDesk/actions/index.d.ts +1 -1
- package/dist/extensions/textline/actions/index.d.ts +3 -3
- package/dist/extensions/wellinks-public/actions/index.d.ts +9 -9
- package/dist/extensions/westFax/actions/index.d.ts +1 -1
- package/package.json +4 -3
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.js +0 -74
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.js.map +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.test.js +0 -36
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.test.js.map +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/dataPoints.d.ts +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/dataPoints.js +0 -5
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/dataPoints.js.map +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/fields.d.ts +0 -28
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/fields.js +0 -26
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/fields.js.map +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/index.d.ts +0 -3
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/index.js +0 -11
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/index.js.map +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/patient.d.ts +0 -8
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/patient.js +0 -6
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/patient.js.map +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/index.d.ts +0 -1
- package/dist/extensions/awell/v1/actions/addIdentifierToPatient/index.js +0 -6
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/dataPoints.js +0 -14
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/dataPoints.js.map +0 -1
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/fields.d.ts +0 -28
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/fields.js +0 -26
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/fields.js.map +0 -1
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/index.d.ts +0 -2
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/index.js.map +0 -1
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.d.ts +0 -4
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.js.map +0 -1
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.test.js +0 -43
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.test.js.map +0 -1
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/index.d.ts +0 -1
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/index.js +0 -6
- package/dist/extensions/awell/v1/actions/getPatientByIdentifier/index.js.map +0 -1
- package/dist/extensions/awell/v1/sdk/graphql/addIdentifier.mutation.d.ts +0 -1
- package/dist/extensions/awell/v1/sdk/graphql/addIdentifier.mutation.js +0 -15
- package/dist/extensions/awell/v1/sdk/graphql/addIdentifier.mutation.js.map +0 -1
- package/dist/extensions/awell/v1/sdk/graphql/getPatientByIdentifier.query.d.ts +0 -1
- package/dist/extensions/awell/v1/sdk/graphql/getPatientByIdentifier.query.js +0 -37
- package/dist/extensions/awell/v1/sdk/graphql/getPatientByIdentifier.query.js.map +0 -1
- /package/dist/extensions/{awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.test.d.ts → avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.d.ts} +0 -0
- /package/dist/extensions/{awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.test.d.ts → avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.test.d.ts} +0 -0
@@ -50,7 +50,7 @@ declare const actions: {
|
|
50
50
|
required: true;
|
51
51
|
description: string;
|
52
52
|
};
|
53
|
-
}, "email" | "firstName" | "lastName" | "dob"
|
53
|
+
}, "email" | "firstName" | "lastName" | "dob">;
|
54
54
|
getAppointment: import("@awell-health/extensions-core").Action<{
|
55
55
|
appointmentId: {
|
56
56
|
id: string;
|
@@ -102,7 +102,7 @@ declare const actions: {
|
|
102
102
|
required: true;
|
103
103
|
description: string;
|
104
104
|
};
|
105
|
-
}, "startTime" | "status" | "date" | "duration" | "patientId" | "appointmentTypeId" | "appointmentTypeName"
|
105
|
+
}, "startTime" | "status" | "date" | "duration" | "patientId" | "appointmentTypeId" | "appointmentTypeName">;
|
106
106
|
createPatient: import("@awell-health/extensions-core").Action<{
|
107
107
|
departmentid: {
|
108
108
|
id: string;
|
@@ -182,7 +182,7 @@ declare const actions: {
|
|
182
182
|
required: true;
|
183
183
|
description: string;
|
184
184
|
};
|
185
|
-
}, "createdPatientId"
|
185
|
+
}, "createdPatientId">;
|
186
186
|
createAppointmentNote: import("@awell-health/extensions-core").Action<{
|
187
187
|
appointmentid: {
|
188
188
|
id: string;
|
@@ -248,7 +248,7 @@ declare const actions: {
|
|
248
248
|
required: true;
|
249
249
|
description: string;
|
250
250
|
};
|
251
|
-
}, never
|
251
|
+
}, never>;
|
252
252
|
addClinicalDocument: import("@awell-health/extensions-core").Action<{
|
253
253
|
departmentid: {
|
254
254
|
id: string;
|
@@ -314,6 +314,6 @@ declare const actions: {
|
|
314
314
|
required: true;
|
315
315
|
description: string;
|
316
316
|
};
|
317
|
-
}, "clinicalDocumentId"
|
317
|
+
}, "clinicalDocumentId">;
|
318
318
|
};
|
319
319
|
export default actions;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"openAiSdk.js","sourceRoot":"","sources":["../../../../../extensions/avaAi/common/sdk/openAiSdk.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAE/C,kBAAe,kBAAS,CAAA"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.AvaAi = void 0;
|
4
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
5
|
+
const actions_1 = require("./v1/actions");
|
6
|
+
const settings_1 = require("./settings");
|
7
|
+
exports.AvaAi = {
|
8
|
+
key: 'avaAi',
|
9
|
+
title: 'Ava - Awell Virtual (AI) Assistant',
|
10
|
+
icon_url: 'https://res.cloudinary.com/da7x4rzl4/image/upload/v1681032937/Awell%20Extensions/Avatar.png',
|
11
|
+
description: `Ava is "Awell's Virtual (AI) Assistant that can help you automate simple tasks in your care flow.`,
|
12
|
+
category: extensions_core_1.Category.AI,
|
13
|
+
author: {
|
14
|
+
authorType: extensions_core_1.AuthorType.AWELL,
|
15
|
+
},
|
16
|
+
actions: {
|
17
|
+
generatePatientSummary: actions_1.generatePatientSummary,
|
18
|
+
},
|
19
|
+
settings: settings_1.settings,
|
20
|
+
};
|
21
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/avaAi/index.ts"],"names":[],"mappings":";;;AACA,mEAAoE;AACpE,0CAAqD;AACrD,yCAAqC;AAExB,QAAA,KAAK,GAAc;IAC9B,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,oCAAoC;IAC3C,QAAQ,EACN,6FAA6F;IAC/F,WAAW,EAAE,mGAAmG;IAChH,QAAQ,EAAE,0BAAQ,CAAC,EAAE;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,4BAAU,CAAC,KAAK;KAC7B;IACD,OAAO,EAAE;QACP,sBAAsB,EAAtB,gCAAsB;KACvB;IACD,QAAQ,EAAR,mBAAQ;CACT,CAAA"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
export declare const settings: {
|
3
|
+
openAiApiKey: {
|
4
|
+
key: string;
|
5
|
+
label: string;
|
6
|
+
obfuscated: true;
|
7
|
+
required: true;
|
8
|
+
description: string;
|
9
|
+
};
|
10
|
+
};
|
11
|
+
export declare const SettingsValidationSchema: z.ZodObject<{
|
12
|
+
openAiApiKey: z.ZodString;
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
14
|
+
openAiApiKey: string;
|
15
|
+
}, {
|
16
|
+
openAiApiKey: string;
|
17
|
+
}>;
|
18
|
+
export declare const validateSettings: (settings: unknown) => z.infer<typeof SettingsValidationSchema>;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.validateSettings = exports.SettingsValidationSchema = exports.settings = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
exports.settings = {
|
6
|
+
openAiApiKey: {
|
7
|
+
key: 'openAiApiKey',
|
8
|
+
label: 'Open AI API Key',
|
9
|
+
obfuscated: true,
|
10
|
+
required: true,
|
11
|
+
description: 'The OpenAI API uses API keys for authentication',
|
12
|
+
},
|
13
|
+
};
|
14
|
+
exports.SettingsValidationSchema = zod_1.z.object({
|
15
|
+
openAiApiKey: zod_1.z.string(),
|
16
|
+
});
|
17
|
+
const validateSettings = (settings) => {
|
18
|
+
const parsedData = exports.SettingsValidationSchema.parse(settings);
|
19
|
+
return parsedData;
|
20
|
+
};
|
21
|
+
exports.validateSettings = validateSettings;
|
22
|
+
//# sourceMappingURL=settings.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../extensions/avaAi/settings.ts"],"names":[],"mappings":";;;AACA,6BAAwC;AAE3B,QAAA,QAAQ,GAAG;IACtB,YAAY,EAAE;QACZ,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iDAAiD;KAC/D;CACgC,CAAA;AAEtB,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;CAC2B,CAAC,CAAA;AAE/C,MAAM,gBAAgB,GAAG,CAC9B,QAAiB,EACyB,EAAE;IAC5C,MAAM,UAAU,GAAG,gCAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE3D,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.dataPoints = void 0;
|
4
|
+
exports.dataPoints = {
|
5
|
+
prompt: {
|
6
|
+
// Comes in handy for debugging purposes - should be removed at some point
|
7
|
+
key: 'prompt',
|
8
|
+
valueType: 'string',
|
9
|
+
},
|
10
|
+
patientSummary: {
|
11
|
+
key: 'patientSummary',
|
12
|
+
valueType: 'string',
|
13
|
+
},
|
14
|
+
};
|
15
|
+
//# sourceMappingURL=dataPoints.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE;QACN,0EAA0E;QAC1E,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,QAAQ;KACpB;IACD,cAAc,EAAE;QACd,GAAG,EAAE,gBAAgB;QACrB,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { FieldType } from '@awell-health/extensions-core';
|
2
|
+
import { z } from 'zod';
|
3
|
+
export declare const fields: {
|
4
|
+
characteristics: {
|
5
|
+
id: string;
|
6
|
+
label: string;
|
7
|
+
description: string;
|
8
|
+
type: FieldType.STRING;
|
9
|
+
required: false;
|
10
|
+
};
|
11
|
+
language: {
|
12
|
+
id: string;
|
13
|
+
label: string;
|
14
|
+
description: string;
|
15
|
+
type: FieldType.STRING;
|
16
|
+
required: false;
|
17
|
+
};
|
18
|
+
};
|
19
|
+
export declare const FieldsValidationSchema: z.ZodObject<{
|
20
|
+
characteristics: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string[], string>, string[], string>>;
|
21
|
+
language: z.ZodEffects<z.ZodOptional<z.ZodString>, string, string | undefined>;
|
22
|
+
}, "strip", z.ZodTypeAny, {
|
23
|
+
language: string;
|
24
|
+
characteristics?: string[] | undefined;
|
25
|
+
}, {
|
26
|
+
language?: string | undefined;
|
27
|
+
characteristics?: string | undefined;
|
28
|
+
}>;
|
29
|
+
export declare const validateActionFields: (fields: unknown) => z.infer<typeof FieldsValidationSchema>;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.validateActionFields = exports.FieldsValidationSchema = exports.fields = void 0;
|
4
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
5
|
+
const zod_1 = require("zod");
|
6
|
+
const lodash_1 = require("lodash");
|
7
|
+
exports.fields = {
|
8
|
+
characteristics: {
|
9
|
+
id: 'characteristics',
|
10
|
+
label: 'Characteristics to include in summary',
|
11
|
+
description: 'A comma-separated list of patient characteristics you would like to include in the summary (eg: first_name, last_name, birth_date). If left blank, all patient profile characteristics will be included.',
|
12
|
+
type: extensions_core_1.FieldType.STRING,
|
13
|
+
required: false,
|
14
|
+
},
|
15
|
+
language: {
|
16
|
+
id: 'language',
|
17
|
+
label: 'Language of the summary',
|
18
|
+
description: 'The language the summary will be written in. Defaults to "English".',
|
19
|
+
type: extensions_core_1.FieldType.STRING,
|
20
|
+
required: false,
|
21
|
+
},
|
22
|
+
};
|
23
|
+
exports.FieldsValidationSchema = zod_1.z.object({
|
24
|
+
characteristics: zod_1.z.optional(zod_1.z
|
25
|
+
.string()
|
26
|
+
// Make sure all white spaces are stripped
|
27
|
+
.transform((chars) => chars.replace(/\s/g, ''))
|
28
|
+
.transform((chars) => chars.split(','))
|
29
|
+
// Make sure there are no undefined or empty characteristics
|
30
|
+
.transform((charsArray) => charsArray.filter((chars) => {
|
31
|
+
if ((0, lodash_1.isNil)(chars) || (0, lodash_1.isEmpty)(chars))
|
32
|
+
return false;
|
33
|
+
return true;
|
34
|
+
}))),
|
35
|
+
language: zod_1.z.optional(zod_1.z.string()).transform((lang) => {
|
36
|
+
if ((0, lodash_1.isNil)(lang) || (0, lodash_1.isEmpty)(lang))
|
37
|
+
return 'English';
|
38
|
+
return lang;
|
39
|
+
}),
|
40
|
+
});
|
41
|
+
const validateActionFields = (fields) => {
|
42
|
+
const parsedData = exports.FieldsValidationSchema.parse(fields);
|
43
|
+
return parsedData;
|
44
|
+
};
|
45
|
+
exports.validateActionFields = validateActionFields;
|
46
|
+
//# sourceMappingURL=fields.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/config/fields.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,6BAAwC;AACxC,mCAAuC;AAE1B,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,0MAA0M;QAC5M,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;KAChB;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,qEAAqE;QACvE,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;KAChB;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,eAAe,EAAE,OAAC,CAAC,QAAQ,CACzB,OAAC;SACE,MAAM,EAAE;QACT,0CAA0C;SACzC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC9C,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,4DAA4D;SAC3D,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CACxB,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEhD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CACH,CACJ;IACD,QAAQ,EAAE,OAAC,CAAC,QAAQ,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QAClD,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QAElD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;CAC+C,CAAC,CAAA;AAE7C,MAAM,oBAAoB,GAAG,CAClC,MAAe,EACyB,EAAE;IAC1C,MAAM,UAAU,GAAG,8BAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAEvD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC"}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.dataPoints = exports.
|
3
|
+
exports.dataPoints = exports.validateActionFields = exports.fields = void 0;
|
4
4
|
var fields_1 = require("./fields");
|
5
5
|
Object.defineProperty(exports, "fields", { enumerable: true, get: function () { return fields_1.fields; } });
|
6
|
-
Object.defineProperty(exports, "
|
6
|
+
Object.defineProperty(exports, "validateActionFields", { enumerable: true, get: function () { return fields_1.validateActionFields; } });
|
7
7
|
var dataPoints_1 = require("./dataPoints");
|
8
8
|
Object.defineProperty(exports, "dataPoints", { enumerable: true, get: function () { return dataPoints_1.dataPoints; } });
|
9
9
|
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/config/index.ts"],"names":[],"mappings":";;;AAAA,mCAAuD;AAA9C,gGAAA,MAAM,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AACrC,2CAAyC;AAAhC,wGAAA,UAAU,OAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import { type Action } from '@awell-health/extensions-core';
|
2
|
-
import { type settings } from '../../../settings';
|
3
2
|
import { fields } from './config';
|
4
|
-
|
3
|
+
import { type settings } from '../../../settings';
|
4
|
+
export declare const generatePatientSummary: Action<typeof fields, typeof settings>;
|
@@ -3,49 +3,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.
|
7
|
-
const settings_1 = require("../../../settings");
|
8
|
-
const extensions_core_1 = require("@awell-health/extensions-core");
|
6
|
+
exports.generatePatientSummary = void 0;
|
9
7
|
const config_1 = require("./config");
|
8
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
9
|
+
const settings_1 = require("../../../settings");
|
10
10
|
const zod_validation_error_1 = require("zod-validation-error");
|
11
11
|
const zod_1 = require("zod");
|
12
|
-
const
|
13
|
-
const
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
title: '
|
18
|
-
description:
|
12
|
+
const openAiSdk_1 = __importDefault(require("../../../common/sdk/openAiSdk"));
|
13
|
+
const openai_1 = require("openai");
|
14
|
+
const utils_1 = require("./utils");
|
15
|
+
exports.generatePatientSummary = {
|
16
|
+
key: 'generatePatientSummary',
|
17
|
+
title: 'Generate patient summary',
|
18
|
+
description: "Generates a human-readable and brief summary about the patient based on the characteristics in the patient's profile.",
|
19
|
+
category: extensions_core_1.Category.AI,
|
19
20
|
fields: config_1.fields,
|
20
21
|
dataPoints: config_1.dataPoints,
|
21
22
|
previewable: false,
|
22
23
|
onActivityCreated: async (payload, onComplete, onError) => {
|
24
|
+
var _a, _b;
|
23
25
|
try {
|
24
|
-
const {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
payload,
|
26
|
+
const { patient } = payload;
|
27
|
+
const { openAiApiKey } = (0, settings_1.validateSettings)(payload.settings);
|
28
|
+
const { characteristics, language } = (0, config_1.validateActionFields)(payload.fields);
|
29
|
+
const configuration = new openai_1.Configuration({
|
30
|
+
apiKey: openAiApiKey,
|
30
31
|
});
|
31
|
-
const
|
32
|
-
const
|
33
|
-
|
34
|
-
|
32
|
+
const openai = new openAiSdk_1.default(configuration);
|
33
|
+
const prompt = (0, utils_1.generatePrompt)(patient, characteristics, language);
|
34
|
+
const TOKENS_FOR_PROMPT = 400;
|
35
|
+
const TOKENS_FOR_COMPLETION = 100;
|
36
|
+
const result = await openai.createCompletion({
|
37
|
+
model: 'text-davinci-003',
|
38
|
+
prompt,
|
39
|
+
temperature: 0,
|
40
|
+
max_tokens: TOKENS_FOR_PROMPT + TOKENS_FOR_COMPLETION,
|
41
|
+
n: 1, // Only generate one completion per prompt
|
35
42
|
});
|
36
|
-
if ((0, lodash_1.isNil)(patient)) {
|
37
|
-
await onComplete({
|
38
|
-
data_points: {
|
39
|
-
patientAlreadyExists: String(false),
|
40
|
-
patientId: undefined,
|
41
|
-
},
|
42
|
-
});
|
43
|
-
return;
|
44
|
-
}
|
45
43
|
await onComplete({
|
46
44
|
data_points: {
|
47
|
-
|
48
|
-
|
45
|
+
prompt,
|
46
|
+
patientSummary: String((_b = (_a = result === null || result === void 0 ? void 0 : result.data) === null || _a === void 0 ? void 0 : _a.choices[0]) === null || _b === void 0 ? void 0 : _b.text),
|
49
47
|
},
|
50
48
|
});
|
51
49
|
}
|
@@ -71,7 +69,7 @@ exports.getPatientByIdentifier = {
|
|
71
69
|
events: [
|
72
70
|
{
|
73
71
|
date: new Date().toISOString(),
|
74
|
-
text: { en: '
|
72
|
+
text: { en: 'Something went wrong while orchestration the action' },
|
75
73
|
error: {
|
76
74
|
category: 'SERVER_ERROR',
|
77
75
|
message: error.message,
|
@@ -82,4 +80,4 @@ exports.getPatientByIdentifier = {
|
|
82
80
|
}
|
83
81
|
},
|
84
82
|
};
|
85
|
-
//# sourceMappingURL=
|
83
|
+
//# sourceMappingURL=generatePatientSummary.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"generatePatientSummary.js","sourceRoot":"","sources":["../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.ts"],"names":[],"mappings":";;;;;;AACA,qCAAmE;AACnE,mEAAwD;AACxD,gDAAmE;AACnE,+DAAmD;AACnD,6BAA8B;AAC9B,8EAAqD;AACrD,mCAAsC;AACtC,mCAAwC;AAE3B,QAAA,sBAAsB,GAA2C;IAC5E,GAAG,EAAE,wBAAwB;IAC7B,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,uHAAuH;IACzH,QAAQ,EAAE,0BAAQ,CAAC,EAAE;IACrB,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;;QACxD,IAAI;YACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;YAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,2BAAgB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAC3D,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAoB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAE1E,MAAM,aAAa,GAAG,IAAI,sBAAa,CAAC;gBACtC,MAAM,EAAE,YAAY;aACrB,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAI,mBAAS,CAAC,aAAa,CAAC,CAAA;YAE3C,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAA;YAEjE,MAAM,iBAAiB,GAAG,GAAG,CAAA;YAC7B,MAAM,qBAAqB,GAAG,GAAG,CAAA;YAEjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;gBAC3C,KAAK,EAAE,kBAAkB;gBACzB,MAAM;gBACN,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,iBAAiB,GAAG,qBAAqB;gBACrD,CAAC,EAAE,CAAC,EAAE,0CAA0C;aACjD,CAAC,CAAA;YAEF,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,MAAM;oBACN,cAAc,EAAE,MAAM,CAAC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;iBACvD;aACF,CAAC,CAAA;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,cAAQ,EAAE;gBAC3B,MAAM,KAAK,GAAG,IAAA,mCAAY,EAAC,GAAG,CAAC,CAAA;gBAC/B,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE;4BACxB,KAAK,EAAE;gCACL,QAAQ,EAAE,aAAa;gCACvB,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE;6BAC5B;yBACF;qBACF;iBACF,CAAC,CAAA;gBACF,OAAM;aACP;YAED,MAAM,KAAK,GAAG,GAAY,CAAA;YAC1B,MAAM,OAAO,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,qDAAqD,EAAE;wBACnE,KAAK,EAAE;4BACL,QAAQ,EAAE,cAAc;4BACxB,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB;qBACF;iBACF;aACF,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAA"}
|
package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.js
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const __1 = require("..");
|
4
|
+
const tests_1 = require("../../../../../src/tests");
|
5
|
+
jest.mock('../../../common/sdk/openAiSdk');
|
6
|
+
describe('Generate patient summary with Open AI', () => {
|
7
|
+
const onComplete = jest.fn();
|
8
|
+
const onError = jest.fn();
|
9
|
+
beforeEach(() => {
|
10
|
+
onComplete.mockClear();
|
11
|
+
onError.mockClear();
|
12
|
+
});
|
13
|
+
test('Should call the onComplete callback', async () => {
|
14
|
+
await __1.generatePatientSummary.onActivityCreated((0, tests_1.generateTestPayload)({
|
15
|
+
fields: {
|
16
|
+
characteristics: '',
|
17
|
+
language: 'English',
|
18
|
+
},
|
19
|
+
settings: {
|
20
|
+
openAiApiKey: 'an-api-key',
|
21
|
+
},
|
22
|
+
}), onComplete, onError);
|
23
|
+
expect(onComplete).toHaveBeenCalled();
|
24
|
+
expect(onError).not.toHaveBeenCalled();
|
25
|
+
});
|
26
|
+
});
|
27
|
+
//# sourceMappingURL=generatePatientSummary.test.js.map
|
package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"generatePatientSummary.test.js","sourceRoot":"","sources":["../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.ts"],"names":[],"mappings":";;AAAA,0BAA2C;AAC3C,oDAA8D;AAE9D,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;AAE1C,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEzB,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,CAAC,SAAS,EAAE,CAAA;QACtB,OAAO,CAAC,SAAS,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,0BAAsB,CAAC,iBAAiB,CAC5C,IAAA,2BAAmB,EAAC;YAClB,MAAM,EAAE;gBACN,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,SAAS;aACpB;YACD,QAAQ,EAAE;gBACR,YAAY,EAAE,YAAY;aAC3B;SACF,CAAC,EACF,UAAU,EACV,OAAO,CACR,CAAA;QAED,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACrC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { generatePatientSummary } from './generatePatientSummary';
|
@@ -0,0 +1,6 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.generatePatientSummary = void 0;
|
4
|
+
var generatePatientSummary_1 = require("./generatePatientSummary");
|
5
|
+
Object.defineProperty(exports, "generatePatientSummary", { enumerable: true, get: function () { return generatePatientSummary_1.generatePatientSummary; } });
|
6
|
+
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../extensions/
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/index.ts"],"names":[],"mappings":";;;AAAA,mEAAiE;AAAxD,gIAAA,sBAAsB,OAAA"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.generatePrompt = exports.promptQuestion = void 0;
|
4
|
+
const lodash_1 = require("lodash");
|
5
|
+
const promptQuestion = (language) => `Create a human-readable summary of a person that only includes the below characteristics. The text should be written in the present tense. Write it in ${language}.`;
|
6
|
+
exports.promptQuestion = promptQuestion;
|
7
|
+
const generatePrompt = (patient, characteristics, language = 'English') => {
|
8
|
+
var _a;
|
9
|
+
const flattenedProfile = {
|
10
|
+
...(0, lodash_1.omit)(patient.profile, ['address']),
|
11
|
+
...(_a = patient.profile) === null || _a === void 0 ? void 0 : _a.address,
|
12
|
+
};
|
13
|
+
const getCharacteristicsForPrompt = () => {
|
14
|
+
if ((0, lodash_1.isNil)(characteristics) || (0, lodash_1.isEmpty)(characteristics))
|
15
|
+
return flattenedProfile;
|
16
|
+
return (0, lodash_1.pick)(flattenedProfile, characteristics);
|
17
|
+
};
|
18
|
+
const characteristicsForPrompt = getCharacteristicsForPrompt();
|
19
|
+
const characteristicsArray = Object.entries(characteristicsForPrompt)
|
20
|
+
.map((e) => ({ [e[0]]: e[1] }))
|
21
|
+
.filter((chars) => {
|
22
|
+
if ((0, lodash_1.isNil)(chars) || (0, lodash_1.isEmpty)(chars))
|
23
|
+
return false;
|
24
|
+
return true;
|
25
|
+
});
|
26
|
+
const characteristicsPrompt = characteristicsArray
|
27
|
+
.filter((char) => {
|
28
|
+
const value = Object.values(char)[0];
|
29
|
+
if ((0, lodash_1.isNil)(value) || (0, lodash_1.isEmpty)(value))
|
30
|
+
return false;
|
31
|
+
return true;
|
32
|
+
})
|
33
|
+
.map((char) => {
|
34
|
+
return `Characteristic: ${(0, lodash_1.startCase)(String(Object.keys(char)[0]))}
|
35
|
+
Value: ${String(Object.values(char)[0]).trim()}`;
|
36
|
+
})
|
37
|
+
.join('\n\n');
|
38
|
+
return `${(0, exports.promptQuestion)(language)}
|
39
|
+
|
40
|
+
${characteristicsPrompt}`;
|
41
|
+
};
|
42
|
+
exports.generatePrompt = generatePrompt;
|
43
|
+
//# sourceMappingURL=generatePrompt.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"generatePrompt.js","sourceRoot":"","sources":["../../../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.ts"],"names":[],"mappings":";;;AAAA,mCAA8D;AAGvD,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAU,EAAE,CACzD,0JAA0J,QAAQ,GAAG,CAAA;AAD1J,QAAA,cAAc,kBAC4I;AAEhK,MAAM,cAAc,GAAG,CAC5B,OAAgB,EAChB,eAA0B,EAC1B,WAAmB,SAAS,EACpB,EAAE;;IACV,MAAM,gBAAgB,GAAG;QACvB,GAAG,IAAA,aAAI,EAAC,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QACrC,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,OAAO;KAC5B,CAAA;IAED,MAAM,2BAA2B,GAAG,GAA4B,EAAE;QAChE,IAAI,IAAA,cAAK,EAAC,eAAe,CAAC,IAAI,IAAA,gBAAO,EAAC,eAAe,CAAC;YACpD,OAAO,gBAAgB,CAAA;QAEzB,OAAO,IAAA,aAAI,EAAC,gBAAgB,EAAE,eAAe,CAAC,CAAA;IAChD,CAAC,CAAA;IAED,MAAM,wBAAwB,GAAG,2BAA2B,EAAE,CAAA;IAC9D,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC;SAClE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEhD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEJ,MAAM,qBAAqB,GAAG,oBAAoB;SAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpC,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEhD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,OAAO,mBAAmB,IAAA,kBAAS,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;IAC5C,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAA;IAEf,OAAO,GAAG,IAAA,sBAAc,EAAC,QAAQ,CAAC;;EAElC,qBAAqB,EAAE,CAAA;AACzB,CAAC,CAAA;AA3CY,QAAA,cAAc,kBA2C1B"}
|
@@ -0,0 +1,133 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const graphql_1 = require("../../../../../../awell/v1/gql/graphql");
|
4
|
+
const generatePrompt_1 = require("./generatePrompt");
|
5
|
+
const language = 'English';
|
6
|
+
describe('Generate prompt for patient summary', () => {
|
7
|
+
test('Should generate a prompt with all characteristics', async () => {
|
8
|
+
const result = (0, generatePrompt_1.generatePrompt)({
|
9
|
+
id: 'patient-id',
|
10
|
+
profile: {
|
11
|
+
first_name: 'Nick',
|
12
|
+
last_name: 'Hellemans',
|
13
|
+
address: {
|
14
|
+
street: 'John Doe Street 20',
|
15
|
+
city: 'Kontich',
|
16
|
+
country: 'Belgium',
|
17
|
+
state: 'Antwerp',
|
18
|
+
zip: '2550',
|
19
|
+
},
|
20
|
+
birth_date: '1993-11-30',
|
21
|
+
email: 'john.doe@awellhealth.com',
|
22
|
+
mobile_phone: '+32 xxx xx xx xx',
|
23
|
+
phone: '+32 xxx xx xx xx',
|
24
|
+
national_registry_number: '123456789',
|
25
|
+
patient_code: '98765',
|
26
|
+
preferred_language: 'en',
|
27
|
+
sex: graphql_1.Sex.Male,
|
28
|
+
},
|
29
|
+
}, [], language);
|
30
|
+
expect(result).toBe(`${(0, generatePrompt_1.promptQuestion)(language)}
|
31
|
+
|
32
|
+
Characteristic: First Name
|
33
|
+
Value: Nick
|
34
|
+
|
35
|
+
Characteristic: Last Name
|
36
|
+
Value: Hellemans
|
37
|
+
|
38
|
+
Characteristic: Birth Date
|
39
|
+
Value: 1993-11-30
|
40
|
+
|
41
|
+
Characteristic: Email
|
42
|
+
Value: john.doe@awellhealth.com
|
43
|
+
|
44
|
+
Characteristic: Mobile Phone
|
45
|
+
Value: +32 xxx xx xx xx
|
46
|
+
|
47
|
+
Characteristic: Phone
|
48
|
+
Value: +32 xxx xx xx xx
|
49
|
+
|
50
|
+
Characteristic: National Registry Number
|
51
|
+
Value: 123456789
|
52
|
+
|
53
|
+
Characteristic: Patient Code
|
54
|
+
Value: 98765
|
55
|
+
|
56
|
+
Characteristic: Preferred Language
|
57
|
+
Value: en
|
58
|
+
|
59
|
+
Characteristic: Sex
|
60
|
+
Value: MALE
|
61
|
+
|
62
|
+
Characteristic: Street
|
63
|
+
Value: John Doe Street 20
|
64
|
+
|
65
|
+
Characteristic: City
|
66
|
+
Value: Kontich
|
67
|
+
|
68
|
+
Characteristic: Country
|
69
|
+
Value: Belgium
|
70
|
+
|
71
|
+
Characteristic: State
|
72
|
+
Value: Antwerp
|
73
|
+
|
74
|
+
Characteristic: Zip
|
75
|
+
Value: 2550`);
|
76
|
+
});
|
77
|
+
test('Should generate a prompt with only a subset of characteristics', async () => {
|
78
|
+
const result = (0, generatePrompt_1.generatePrompt)({
|
79
|
+
id: 'patient-id',
|
80
|
+
profile: {
|
81
|
+
first_name: 'Nick',
|
82
|
+
last_name: 'Hellemans',
|
83
|
+
address: {
|
84
|
+
street: 'John Doe Street 20',
|
85
|
+
city: 'Kontich',
|
86
|
+
country: 'Belgium',
|
87
|
+
state: 'Antwerp',
|
88
|
+
zip: '2550',
|
89
|
+
},
|
90
|
+
birth_date: '1993-11-30',
|
91
|
+
email: 'john.doe@awellhealth.com',
|
92
|
+
mobile_phone: '+32 xxx xx xx xx',
|
93
|
+
phone: '+32 xxx xx xx xx',
|
94
|
+
national_registry_number: '123456789',
|
95
|
+
patient_code: '98765',
|
96
|
+
preferred_language: 'en',
|
97
|
+
sex: graphql_1.Sex.Male,
|
98
|
+
},
|
99
|
+
}, ['first_name', 'email', 'street', 'non_existing_char', ''], language);
|
100
|
+
expect(result).toBe(`${(0, generatePrompt_1.promptQuestion)(language)}
|
101
|
+
|
102
|
+
Characteristic: First Name
|
103
|
+
Value: Nick
|
104
|
+
|
105
|
+
Characteristic: Email
|
106
|
+
Value: john.doe@awellhealth.com
|
107
|
+
|
108
|
+
Characteristic: Street
|
109
|
+
Value: John Doe Street 20`);
|
110
|
+
});
|
111
|
+
test('Should generate a prompt only with characteristics that are defined', async () => {
|
112
|
+
const result = (0, generatePrompt_1.generatePrompt)({
|
113
|
+
id: 'patient-id',
|
114
|
+
profile: {
|
115
|
+
first_name: 'Nick',
|
116
|
+
// last_name: 'Hellemans'
|
117
|
+
sex: undefined,
|
118
|
+
email: 'john.doe@awellhealth.com',
|
119
|
+
address: {
|
120
|
+
street: undefined,
|
121
|
+
},
|
122
|
+
},
|
123
|
+
}, ['first_name', 'last_name', 'sex', 'email', 'street'], language);
|
124
|
+
expect(result).toBe(`${(0, generatePrompt_1.promptQuestion)(language)}
|
125
|
+
|
126
|
+
Characteristic: First Name
|
127
|
+
Value: Nick
|
128
|
+
|
129
|
+
Characteristic: Email
|
130
|
+
Value: john.doe@awellhealth.com`);
|
131
|
+
});
|
132
|
+
});
|
133
|
+
//# sourceMappingURL=generatePrompt.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"generatePrompt.test.js","sourceRoot":"","sources":["../../../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.test.ts"],"names":[],"mappings":";;AAAA,oEAA4D;AAC5D,qDAAiE;AAEjE,MAAM,QAAQ,GAAG,SAAS,CAAA;AAE1B,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,IAAA,+BAAc,EAC3B;YACE,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE;gBACP,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE;oBACP,MAAM,EAAE,oBAAoB;oBAC5B,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,MAAM;iBACZ;gBACD,UAAU,EAAE,YAAY;gBACxB,KAAK,EAAE,0BAA0B;gBACjC,YAAY,EAAE,kBAAkB;gBAChC,KAAK,EAAE,kBAAkB;gBACzB,wBAAwB,EAAE,WAAW;gBACrC,YAAY,EAAE,OAAO;gBACrB,kBAAkB,EAAE,IAAI;gBACxB,GAAG,EAAE,aAAG,CAAC,IAAI;aACd;SACF,EACD,EAAE,EACF,QAAQ,CACT,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,IAAA,+BAAc,EAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA6CvC,CAAC,CAAA;IACX,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,MAAM,GAAG,IAAA,+BAAc,EAC3B;YACE,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE;gBACP,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE;oBACP,MAAM,EAAE,oBAAoB;oBAC5B,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,MAAM;iBACZ;gBACD,UAAU,EAAE,YAAY;gBACxB,KAAK,EAAE,0BAA0B;gBACjC,YAAY,EAAE,kBAAkB;gBAChC,KAAK,EAAE,kBAAkB;gBACzB,wBAAwB,EAAE,WAAW;gBACrC,YAAY,EAAE,OAAO;gBACrB,kBAAkB,EAAE,IAAI;gBACxB,GAAG,EAAE,aAAG,CAAC,IAAI;aACd;SACF,EACD,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAC1D,QAAQ,CACT,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,IAAA,+BAAc,EAAC,QAAQ,CAAC;;;;;;;;;0BASzB,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,MAAM,GAAG,IAAA,+BAAc,EAC3B;YACE,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE;gBACP,UAAU,EAAE,MAAM;gBAClB,2BAA2B;gBAC3B,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,0BAA0B;gBACjC,OAAO,EAAE;oBACP,MAAM,EAAE,SAAS;iBAClB;aACF;SACF,EACD,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EACrD,QAAQ,CACT,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,IAAA,+BAAc,EAAC,QAAQ,CAAC;;;;;;gCAMnB,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export { generatePrompt } from './generatePrompt';
|