@awell-health/awell-extensions 1.0.244 → 1.1.0-beta10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. package/dist/extensions/avaAi/common/sdk/openAiSdk.d.ts +2 -0
  2. package/dist/extensions/avaAi/common/sdk/openAiSdk.js +5 -0
  3. package/dist/extensions/avaAi/common/sdk/openAiSdk.js.map +1 -0
  4. package/dist/extensions/avaAi/index.d.ts +2 -0
  5. package/dist/extensions/avaAi/index.js +21 -0
  6. package/dist/extensions/avaAi/index.js.map +1 -0
  7. package/dist/extensions/avaAi/settings.d.ts +18 -0
  8. package/dist/extensions/avaAi/settings.js +22 -0
  9. package/dist/extensions/avaAi/settings.js.map +1 -0
  10. package/dist/extensions/{awell/v1/actions/getPatientByIdentifier → avaAi/v1/actions/generatePatientSummary}/config/dataPoints.d.ts +3 -3
  11. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/dataPoints.js +15 -0
  12. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/dataPoints.js.map +1 -0
  13. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/fields.d.ts +29 -0
  14. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/fields.js +46 -0
  15. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/fields.js.map +1 -0
  16. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/index.d.ts +2 -0
  17. package/dist/extensions/{awell/v1/actions/getPatientByIdentifier → avaAi/v1/actions/generatePatientSummary}/config/index.js +2 -2
  18. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/config/index.js.map +1 -0
  19. package/dist/extensions/{awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.d.ts → avaAi/v1/actions/generatePatientSummary/generatePatientSummary.d.ts} +2 -2
  20. package/dist/extensions/{awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.js → avaAi/v1/actions/generatePatientSummary/generatePatientSummary.js} +31 -33
  21. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.js.map +1 -0
  22. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.js +27 -0
  23. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.js.map +1 -0
  24. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/index.d.ts +1 -0
  25. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/index.js +6 -0
  26. package/dist/extensions/{awell/v1/actions/addIdentifierToPatient → avaAi/v1/actions/generatePatientSummary}/index.js.map +1 -1
  27. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.d.ts +3 -0
  28. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.js +43 -0
  29. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.js.map +1 -0
  30. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.test.js +133 -0
  31. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.test.js.map +1 -0
  32. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.d.ts +1 -0
  33. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.js +6 -0
  34. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.js.map +1 -0
  35. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/index.d.ts +1 -0
  36. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/index.js +6 -0
  37. package/dist/extensions/avaAi/v1/actions/generatePatientSummary/utils/index.js.map +1 -0
  38. package/dist/extensions/avaAi/v1/actions/index.d.ts +1 -0
  39. package/dist/extensions/avaAi/v1/actions/index.js +6 -0
  40. package/dist/extensions/avaAi/v1/actions/index.js.map +1 -0
  41. package/dist/extensions/awell/index.js +0 -2
  42. package/dist/extensions/awell/index.js.map +1 -1
  43. package/dist/extensions/awell/v1/actions/index.d.ts +0 -2
  44. package/dist/extensions/awell/v1/actions/index.js +1 -5
  45. package/dist/extensions/awell/v1/actions/index.js.map +1 -1
  46. package/dist/extensions/awell/v1/actions/searchPatientsByPatientCode/searchPatientsByPatientCode.js +1 -1
  47. package/dist/extensions/awell/v1/actions/searchPatientsByPatientCode/searchPatientsByPatientCode.js.map +1 -1
  48. package/dist/extensions/awell/v1/gql/fragment-masking.d.ts +13 -0
  49. package/dist/extensions/awell/v1/gql/fragment-masking.js +12 -0
  50. package/dist/extensions/awell/v1/gql/fragment-masking.js.map +1 -0
  51. package/dist/extensions/awell/v1/gql/gql.d.ts +36 -0
  52. package/dist/extensions/awell/v1/gql/gql.js +47 -0
  53. package/dist/extensions/awell/v1/gql/gql.js.map +1 -0
  54. package/dist/extensions/awell/v1/gql/graphql.d.ts +525 -1066
  55. package/dist/extensions/awell/v1/gql/graphql.js +17 -46
  56. package/dist/extensions/awell/v1/gql/graphql.js.map +1 -1
  57. package/dist/extensions/awell/v1/gql/index.d.ts +2 -0
  58. package/dist/extensions/awell/v1/gql/index.js +19 -0
  59. package/dist/extensions/awell/v1/gql/index.js.map +1 -0
  60. package/dist/extensions/awell/v1/sdk/awellSdk.d.ts +1 -6
  61. package/dist/extensions/awell/v1/sdk/awellSdk.js +0 -11
  62. package/dist/extensions/awell/v1/sdk/awellSdk.js.map +1 -1
  63. package/dist/extensions/awell/v1/sdk/graphql/index.d.ts +0 -2
  64. package/dist/extensions/awell/v1/sdk/graphql/index.js +1 -5
  65. package/dist/extensions/awell/v1/sdk/graphql/index.js.map +1 -1
  66. package/dist/extensions/canvasMedical/v1/actions/createClaim/config/fields.d.ts +2 -2
  67. package/dist/extensions/canvasMedical/v1/validation/patient.zod.d.ts +44 -44
  68. package/dist/extensions/index.d.ts +1 -1
  69. package/dist/extensions/index.js +9 -2
  70. package/dist/extensions/index.js.map +1 -1
  71. package/dist/extensions/markdown.json +6 -2
  72. package/package.json +4 -3
  73. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.js +0 -74
  74. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.js.map +0 -1
  75. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.test.js +0 -36
  76. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.test.js.map +0 -1
  77. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/dataPoints.d.ts +0 -1
  78. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/dataPoints.js +0 -5
  79. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/dataPoints.js.map +0 -1
  80. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/fields.d.ts +0 -28
  81. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/fields.js +0 -26
  82. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/fields.js.map +0 -1
  83. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/index.d.ts +0 -3
  84. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/index.js +0 -11
  85. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/index.js.map +0 -1
  86. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/patient.d.ts +0 -8
  87. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/patient.js +0 -6
  88. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/config/patient.js.map +0 -1
  89. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/index.d.ts +0 -1
  90. package/dist/extensions/awell/v1/actions/addIdentifierToPatient/index.js +0 -6
  91. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/dataPoints.js +0 -14
  92. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/dataPoints.js.map +0 -1
  93. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/fields.d.ts +0 -28
  94. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/fields.js +0 -26
  95. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/fields.js.map +0 -1
  96. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/index.d.ts +0 -2
  97. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/config/index.js.map +0 -1
  98. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.d.ts +0 -4
  99. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.js.map +0 -1
  100. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.test.js +0 -43
  101. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.test.js.map +0 -1
  102. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/index.d.ts +0 -1
  103. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/index.js +0 -6
  104. package/dist/extensions/awell/v1/actions/getPatientByIdentifier/index.js.map +0 -1
  105. package/dist/extensions/awell/v1/sdk/graphql/addIdentifier.mutation.d.ts +0 -1
  106. package/dist/extensions/awell/v1/sdk/graphql/addIdentifier.mutation.js +0 -15
  107. package/dist/extensions/awell/v1/sdk/graphql/addIdentifier.mutation.js.map +0 -1
  108. package/dist/extensions/awell/v1/sdk/graphql/getPatientByIdentifier.query.d.ts +0 -1
  109. package/dist/extensions/awell/v1/sdk/graphql/getPatientByIdentifier.query.js +0 -37
  110. package/dist/extensions/awell/v1/sdk/graphql/getPatientByIdentifier.query.js.map +0 -1
  111. /package/dist/extensions/{awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.test.d.ts → avaAi/v1/actions/generatePatientSummary/generatePatientSummary.test.d.ts} +0 -0
  112. /package/dist/extensions/{awell/v1/actions/getPatientByIdentifier/getPatientByIdentifier.test.d.ts → avaAi/v1/actions/generatePatientSummary/utils/generatePromp/generatePrompt.test.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ import { OpenAIApi as OpenAiSdk } from 'openai';
2
+ export default OpenAiSdk;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const openai_1 = require("openai");
4
+ exports.default = openai_1.OpenAIApi;
5
+ //# sourceMappingURL=openAiSdk.js.map
@@ -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,2 @@
1
+ import { type Extension } from '@awell-health/extensions-core';
2
+ export declare const AvaAi: Extension;
@@ -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"}
@@ -1,9 +1,9 @@
1
1
  export declare const dataPoints: {
2
- patientAlreadyExists: {
2
+ prompt: {
3
3
  key: string;
4
- valueType: "boolean";
4
+ valueType: "string";
5
5
  };
6
- patientId: {
6
+ patientSummary: {
7
7
  key: string;
8
8
  valueType: "string";
9
9
  };
@@ -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"}
@@ -0,0 +1,2 @@
1
+ export { fields, validateActionFields } from './fields';
2
+ export { dataPoints } from './dataPoints';
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dataPoints = exports.FieldsValidationSchema = exports.fields = void 0;
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, "FieldsValidationSchema", { enumerable: true, get: function () { return fields_1.FieldsValidationSchema; } });
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
- export declare const addIdentifierToPatient: Action<typeof fields, typeof settings>;
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.getPatientByIdentifier = void 0;
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 awellSdk_1 = __importDefault(require("../../sdk/awellSdk"));
13
- const lodash_1 = require("lodash");
14
- exports.getPatientByIdentifier = {
15
- key: 'getPatientByIdentifier',
16
- category: extensions_core_1.Category.WORKFLOW,
17
- title: 'Get patient by identifier',
18
- description: 'Retrieve a patient based on the provided identifier system and value',
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 { fields: { system, value }, settings: { apiUrl, apiKey }, } = (0, extensions_core_1.validate)({
25
- schema: zod_1.z.object({
26
- fields: config_1.FieldsValidationSchema,
27
- settings: settings_1.SettingsValidationSchema,
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 sdk = new awellSdk_1.default({ apiUrl, apiKey });
32
- const patient = await sdk.getPatientByIdentifier({
33
- system,
34
- value,
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
- patientAlreadyExists: String(true),
48
- patientId: patient.id,
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: 'Awell API reported an error' },
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=getPatientByIdentifier.js.map
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"}
@@ -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
@@ -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/awell/v1/actions/addIdentifierToPatient/index.ts"],"names":[],"mappings":";;;AAAA,mEAAiE;AAAxD,gIAAA,sBAAsB,OAAA"}
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,3 @@
1
+ import { type Patient } from '@awell-health/extensions-core';
2
+ export declare const promptQuestion: (language: string) => string;
3
+ export declare const generatePrompt: (patient: Patient, characteristics?: string[], language?: string) => string;
@@ -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"}
@@ -0,0 +1 @@
1
+ export { generatePrompt } from './generatePrompt';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePrompt = void 0;
4
+ var generatePrompt_1 = require("./generatePrompt");
5
+ Object.defineProperty(exports, "generatePrompt", { enumerable: true, get: function () { return generatePrompt_1.generatePrompt; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/utils/generatePromp/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAAxC,gHAAA,cAAc,OAAA"}
@@ -0,0 +1 @@
1
+ export { generatePrompt } from './generatePromp';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePrompt = void 0;
4
+ var generatePromp_1 = require("./generatePromp");
5
+ Object.defineProperty(exports, "generatePrompt", { enumerable: true, get: function () { return generatePromp_1.generatePrompt; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../extensions/avaAi/v1/actions/generatePatientSummary/utils/index.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAAvC,+GAAA,cAAc,OAAA"}
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/avaAi/v1/actions/index.ts"],"names":[],"mappings":";;;AAAA,mEAAiE;AAAxD,gIAAA,sBAAsB,OAAA"}