@awell-health/awell-extensions 2.0.156 → 2.0.159
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.js +3 -3
- package/dist/extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.js.map +1 -1
- package/dist/extensions/elation/actions/findFutureAppointment/findFutureAppointment.js +3 -3
- package/dist/extensions/elation/actions/findFutureAppointment/findFutureAppointment.js.map +1 -1
- package/dist/extensions/elation/actions/index.d.ts +2 -2
- package/dist/extensions/elation/actions/updatePatientTags/config/dataPoints.d.ts +4 -0
- package/dist/extensions/elation/actions/updatePatientTags/config/dataPoints.js +4 -0
- package/dist/extensions/elation/actions/updatePatientTags/config/dataPoints.js.map +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/config/fields.d.ts +4 -4
- package/dist/extensions/elation/actions/updatePatientTags/config/fields.js +5 -5
- package/dist/extensions/elation/actions/updatePatientTags/config/fields.js.map +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/evaluateTags.d.ts +24 -0
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/evaluateTags.js +149 -0
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/evaluateTags.js.map +1 -0
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.d.ts +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.js +2 -2
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.js.map +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/parser.d.ts +22 -6
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/parser.js +13 -3
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/parser.js.map +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/prompt.d.ts +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/prompt.js +32 -11
- package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/prompt.js.map +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/updatePatientTags.js +7 -6
- package/dist/extensions/elation/actions/updatePatientTags/updatePatientTags.js.map +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/updateTags.js +3 -2
- package/dist/extensions/elation/actions/updatePatientTags/updateTags.js.map +1 -1
- package/dist/extensions/shelly/actions/categorizeMessage/categorizeMessage.js +3 -3
- package/dist/extensions/shelly/actions/categorizeMessage/categorizeMessage.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/generateMessage.js +5 -5
- package/dist/extensions/shelly/actions/generateMessage/generateMessage.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeCareFlow/summarizeCareFlow.js +3 -3
- package/dist/extensions/shelly/actions/summarizeCareFlow/summarizeCareFlow.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.js +3 -3
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.js +3 -3
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.js.map +1 -1
- package/dist/extensions/shelly/lib/validatePayloadAndCreateSdk.js +1 -1
- package/dist/extensions/shelly/lib/validatePayloadAndCreateSdk.js.map +1 -1
- package/package.json +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/config/types.d.ts +0 -29
- package/dist/extensions/elation/actions/updatePatientTags/config/types.js +0 -21
- package/dist/extensions/elation/actions/updatePatientTags/config/types.js.map +0 -1
package/dist/extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.js
CHANGED
@@ -35,7 +35,7 @@ exports.findAppointmentsByPrompt = {
|
|
35
35
|
}
|
36
36
|
try {
|
37
37
|
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
38
|
-
settings:
|
38
|
+
settings: {}, // we use built-in API key for OpenAI
|
39
39
|
helpers,
|
40
40
|
payload,
|
41
41
|
});
|
@@ -44,7 +44,7 @@ exports.findAppointmentsByPrompt = {
|
|
44
44
|
appointments,
|
45
45
|
prompt,
|
46
46
|
metadata,
|
47
|
-
callbacks
|
47
|
+
callbacks,
|
48
48
|
});
|
49
49
|
const selectedAppointments = appointments.filter((appointment) => appointmentIds.includes(appointment.id));
|
50
50
|
const appointmentCountsByStatus = (0, getAppoitnmentCountByStatus_1.getAppointmentCountsByStatus)(selectedAppointments);
|
@@ -56,7 +56,7 @@ exports.findAppointmentsByPrompt = {
|
|
56
56
|
},
|
57
57
|
events: [
|
58
58
|
(0, addEventLog_1.addActivityEventLog)({
|
59
|
-
message: `Found ${selectedAppointments.length} appointments for patient ${patientId}
|
59
|
+
message: `Found ${selectedAppointments.length} appointments for patient ${patientId}`,
|
60
60
|
}),
|
61
61
|
],
|
62
62
|
});
|
package/dist/extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"findAppointmentsByPrompt.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAC9B,mEAAqE;AACrE,uEAA2E;AAE3E,yCAA4C;AAC5C,wFAAoF;AACpF,qCAAqE;AACrE,+EAA4E;AAC5E,2HAAuH;AAE1G,QAAA,wBAAwB,GAIjC;IACF,GAAG,EAAE,0BAA0B;IAC/B,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EAAE,6DAA6D;IAC1E,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC1E,MAAM,GAAG,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3C,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YAC9C,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;QAEF,IAAI,IAAA,cAAK,EAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,WAAW,EAAE,uBAAuB;oBACpC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;iBAC9C;aACF,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,qCAAiB,EAAC;gBAC7D,QAAQ,EAAE,
|
1
|
+
{"version":3,"file":"findAppointmentsByPrompt.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAC9B,mEAAqE;AACrE,uEAA2E;AAE3E,yCAA4C;AAC5C,wFAAoF;AACpF,qCAAqE;AACrE,+EAA4E;AAC5E,2HAAuH;AAE1G,QAAA,wBAAwB,GAIjC;IACF,GAAG,EAAE,0BAA0B;IAC/B,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EAAE,6DAA6D;IAC1E,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC1E,MAAM,GAAG,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3C,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YAC9C,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;QAEF,IAAI,IAAA,cAAK,EAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,WAAW,EAAE,uBAAuB;oBACpC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;iBAC9C;aACF,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,qCAAiB,EAAC;gBAC7D,QAAQ,EAAE,EAAE,EAAE,qCAAqC;gBACnD,OAAO;gBACP,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GACnC,MAAM,IAAA,iEAA+B,EAAC;gBACpC,KAAK;gBACL,YAAY;gBACZ,MAAM;gBACN,QAAQ;gBACR,SAAS;aACV,CAAC,CAAA;YAEJ,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAC/D,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CACxC,CAAA;YAED,MAAM,yBAAyB,GAC7B,IAAA,0DAA4B,EAAC,oBAAoB,CAAC,CAAA;YAEpD,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;oBAClD,WAAW;oBACX,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;iBACrE;gBACD,MAAM,EAAE;oBACN,IAAA,iCAAmB,EAAC;wBAClB,OAAO,EAAE,SAAS,oBAAoB,CAAC,MAAM,6BAA6B,SAAS,EAAE;qBACtF,CAAC;iBACH;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,6BAA6B,EAAE;wBAC3C,KAAK,EAAE;4BACL,QAAQ,EAAE,cAAc;4BACxB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;yBAClE;qBACF;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
|
@@ -33,10 +33,10 @@ exports.findFutureAppointment = {
|
|
33
33
|
}
|
34
34
|
// 3. Initialize OpenAI model with metadata and callbacks
|
35
35
|
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
36
|
-
settings:
|
36
|
+
settings: {}, // we use built-in API key for OpenAI
|
37
37
|
helpers,
|
38
38
|
payload,
|
39
|
-
modelType: constants_1.OPENAI_MODELS.GPT4o
|
39
|
+
modelType: constants_1.OPENAI_MODELS.GPT4o,
|
40
40
|
});
|
41
41
|
// 4. Find matching appointment
|
42
42
|
const { appointmentId, explanation } = await (0, findAppointmentWithLLM_1.findAppointmentWithLLM)({
|
@@ -44,7 +44,7 @@ exports.findFutureAppointment = {
|
|
44
44
|
appointments,
|
45
45
|
prompt,
|
46
46
|
metadata,
|
47
|
-
callbacks
|
47
|
+
callbacks,
|
48
48
|
});
|
49
49
|
const matchedAppointmentId = parser_1.AppointmentIdSchema.parse(appointmentId);
|
50
50
|
const foundAppointment = appointments.find((appointment) => appointment.id === Number(matchedAppointmentId));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"findFutureAppointment.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/findFutureAppointment/findFutureAppointment.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAC9B,mEAAqE;AAErE,uEAA2E;AAE3E,qCAAqE;AACrE,mEAA+D;AAC/D,gEAAyE;AACzE,gGAA4F;AAC5F,wFAAoF;AACpF,wEAAwE;AAE3D,QAAA,qBAAqB,GAI9B;IACF,GAAG,EAAE,uBAAuB;IAC5B,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EAAE,uCAAuC;IACpD,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,oBAAoB;QACpB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE1E,6BAA6B;QAC7B,MAAM,YAAY,GAAG,MAAM,IAAA,6CAAqB,EAC9C,OAAO,CAAC,QAAwB,EAChC,SAAS,CACV,CAAA;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,iBAAiB,EAAE,OAAO;iBAC3B;aACF,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,yDAAyD;QACzD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,qCAAiB,EAAC;YAC7D,QAAQ,EAAE,
|
1
|
+
{"version":3,"file":"findFutureAppointment.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/findFutureAppointment/findFutureAppointment.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAC9B,mEAAqE;AAErE,uEAA2E;AAE3E,qCAAqE;AACrE,mEAA+D;AAC/D,gEAAyE;AACzE,gGAA4F;AAC5F,wFAAoF;AACpF,wEAAwE;AAE3D,QAAA,qBAAqB,GAI9B;IACF,GAAG,EAAE,uBAAuB;IAC5B,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EAAE,uCAAuC;IACpD,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,oBAAoB;QACpB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE1E,6BAA6B;QAC7B,MAAM,YAAY,GAAG,MAAM,IAAA,6CAAqB,EAC9C,OAAO,CAAC,QAAwB,EAChC,SAAS,CACV,CAAA;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,iBAAiB,EAAE,OAAO;iBAC3B;aACF,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,yDAAyD;QACzD,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;SAC/B,CAAC,CAAA;QAEF,+BAA+B;QAC/B,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,+CAAsB,EAAC;YAClE,KAAK;YACL,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,SAAS;SACV,CAAC,CAAA;QAEF,MAAM,oBAAoB,GAAG,4BAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACrE,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CACxC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,MAAM,CAAC,oBAAoB,CAAC,CACjE,CAAA;QAED,kCAAkC;QAClC,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,WAAW,EAAE,CAAC,IAAA,cAAK,EAAC,oBAAoB,CAAC;oBACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;oBAClC,CAAC,CAAC,SAAS;gBACb,WAAW;gBACX,iBAAiB,EAAE,CAAC,IAAA,cAAK,EAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;aACnE;YACD,MAAM,EAAE;gBACN,IAAA,iCAAmB,EAAC;oBAClB,OAAO,EAAE,oEAAoE,SAAS,KAAK,YAAY,CAAC,MAAM,wBAAwB,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,kBAAkB,WAAW,EAAE;iBAC7N,CAAC;aACH;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
@@ -2266,7 +2266,7 @@ export declare const actions: {
|
|
2266
2266
|
required: true;
|
2267
2267
|
description: string;
|
2268
2268
|
};
|
2269
|
-
|
2269
|
+
instructions: {
|
2270
2270
|
id: string;
|
2271
2271
|
label: string;
|
2272
2272
|
type: import("@awell-health/extensions-core").FieldType.TEXT;
|
@@ -2316,7 +2316,7 @@ export declare const actions: {
|
|
2316
2316
|
description: string;
|
2317
2317
|
required: false;
|
2318
2318
|
};
|
2319
|
-
}, "updatedTags">;
|
2319
|
+
}, "updatedTags" | "explanation">;
|
2320
2320
|
getReferralOrder: import("@awell-health/extensions-core").Action<{
|
2321
2321
|
referralOrderId: {
|
2322
2322
|
id: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/elation/actions/updatePatientTags/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
|
1
|
+
{"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/elation/actions/updatePatientTags/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
|
@@ -8,7 +8,7 @@ export declare const fields: {
|
|
8
8
|
required: true;
|
9
9
|
description: string;
|
10
10
|
};
|
11
|
-
|
11
|
+
instructions: {
|
12
12
|
id: string;
|
13
13
|
label: string;
|
14
14
|
type: FieldType.TEXT;
|
@@ -18,11 +18,11 @@ export declare const fields: {
|
|
18
18
|
};
|
19
19
|
export declare const FieldsValidationSchema: z.ZodObject<{
|
20
20
|
patientId: z.ZodNumber;
|
21
|
-
|
21
|
+
instructions: z.ZodString;
|
22
22
|
}, "strip", z.ZodTypeAny, {
|
23
23
|
patientId: number;
|
24
|
-
|
24
|
+
instructions: string;
|
25
25
|
}, {
|
26
26
|
patientId: number;
|
27
|
-
|
27
|
+
instructions: string;
|
28
28
|
}>;
|
@@ -11,16 +11,16 @@ exports.fields = {
|
|
11
11
|
required: true,
|
12
12
|
description: '',
|
13
13
|
},
|
14
|
-
|
15
|
-
id: '
|
16
|
-
label: '
|
14
|
+
instructions: {
|
15
|
+
id: 'instructions',
|
16
|
+
label: 'Specify tags to add, remove, or modify',
|
17
17
|
type: extensions_core_1.FieldType.TEXT,
|
18
18
|
required: true,
|
19
|
-
description: ''
|
19
|
+
description: 'Provide clear instructions for tag changes and relevant context, especially for uncommon tags. Specify new tags in single quotes (e.g., \'Patient-Tag\').'
|
20
20
|
},
|
21
21
|
};
|
22
22
|
exports.FieldsValidationSchema = zod_1.z.object({
|
23
23
|
patientId: extensions_core_1.NumericIdSchema,
|
24
|
-
|
24
|
+
instructions: zod_1.z.string().min(1),
|
25
25
|
});
|
26
26
|
//# sourceMappingURL=fields.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/elation/actions/updatePatientTags/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAIsC;AAEzB,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,EAAE;KAChB;IACD,
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/elation/actions/updatePatientTags/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAIsC;AAEzB,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,EAAE;KAChB;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,wCAAwC;QAC/C,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,2JAA2J;KACzK;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,SAAS,EAAE,iCAAe;IAC1B,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACkB,CAAC,CAAA"}
|
package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/evaluateTags.d.ts
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
/**
|
2
|
+
* LangSmith Evaluation Script for getTagsFromLLM
|
3
|
+
*
|
4
|
+
* Evaluates the getTagsFromLLM function by:
|
5
|
+
* - Running test cases from LangSmith dataset
|
6
|
+
* - Comparing generated tags against expected tags
|
7
|
+
* - Generating evaluation reports
|
8
|
+
*
|
9
|
+
* Requirements:
|
10
|
+
* - Set environment variables in .env:
|
11
|
+
* - OPENAI_API_KEY
|
12
|
+
* - LANGSMITH_API_KEY
|
13
|
+
* - LANGSMITH_TRACING=true
|
14
|
+
* - LANGSMITH_PROJECT=ai-actions-local
|
15
|
+
*
|
16
|
+
* Usage:
|
17
|
+
* node getTagsFromLLM/evaluateTags.ts
|
18
|
+
*
|
19
|
+
* Results can be viewed in LangSmith dashboard:
|
20
|
+
* https://smith.langchain.com/o/3fffae83-70ff-4574-81ba-aaaedf0b4dc5/datasets/745cea13-3379-463f-9a8a-c6b10e29b8f6
|
21
|
+
*
|
22
|
+
* * ⚠️ **Note:** This script does NOT run in CI/CD. It is meant for **manual evaluation** before merging PRs (for now)
|
23
|
+
*/
|
24
|
+
export {};
|
@@ -0,0 +1,149 @@
|
|
1
|
+
"use strict";
|
2
|
+
/**
|
3
|
+
* LangSmith Evaluation Script for getTagsFromLLM
|
4
|
+
*
|
5
|
+
* Evaluates the getTagsFromLLM function by:
|
6
|
+
* - Running test cases from LangSmith dataset
|
7
|
+
* - Comparing generated tags against expected tags
|
8
|
+
* - Generating evaluation reports
|
9
|
+
*
|
10
|
+
* Requirements:
|
11
|
+
* - Set environment variables in .env:
|
12
|
+
* - OPENAI_API_KEY
|
13
|
+
* - LANGSMITH_API_KEY
|
14
|
+
* - LANGSMITH_TRACING=true
|
15
|
+
* - LANGSMITH_PROJECT=ai-actions-local
|
16
|
+
*
|
17
|
+
* Usage:
|
18
|
+
* node getTagsFromLLM/evaluateTags.ts
|
19
|
+
*
|
20
|
+
* Results can be viewed in LangSmith dashboard:
|
21
|
+
* https://smith.langchain.com/o/3fffae83-70ff-4574-81ba-aaaedf0b4dc5/datasets/745cea13-3379-463f-9a8a-c6b10e29b8f6
|
22
|
+
*
|
23
|
+
* * ⚠️ **Note:** This script does NOT run in CI/CD. It is meant for **manual evaluation** before merging PRs (for now)
|
24
|
+
*/
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
27
|
+
};
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
29
|
+
const langsmith_1 = require("langsmith");
|
30
|
+
const evaluation_1 = require("langsmith/evaluation");
|
31
|
+
const createOpenAIModel_1 = require("../../../../../../src/lib/llm/openai/createOpenAIModel");
|
32
|
+
const getTagsFromLLM_1 = require("./getTagsFromLLM");
|
33
|
+
const constants_1 = require("../../../../../../src/lib/llm/openai/constants");
|
34
|
+
const lodash_1 = require("lodash");
|
35
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
36
|
+
dotenv_1.default.config();
|
37
|
+
const langsmith = new langsmith_1.Client({
|
38
|
+
apiKey: process.env.LANGSMITH_API_KEY,
|
39
|
+
apiUrl: process.env.LANGSMITH_ENDPOINT,
|
40
|
+
});
|
41
|
+
// Define the dataset name
|
42
|
+
const datasetName = 'ai-actions-update-patient-tags-elation';
|
43
|
+
// Fetch the 'test' split examples from the dataset
|
44
|
+
const fetchTestExamples = async () => {
|
45
|
+
try {
|
46
|
+
const testExamples = langsmith.listExamples({
|
47
|
+
datasetName,
|
48
|
+
splits: ['test'],
|
49
|
+
});
|
50
|
+
const examples = [];
|
51
|
+
for await (const example of testExamples) {
|
52
|
+
if (!(0, lodash_1.isNil)(example.inputs) && !(0, lodash_1.isNil)(example.outputs)) {
|
53
|
+
// Explicit null check
|
54
|
+
examples.push(example);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
return examples;
|
58
|
+
}
|
59
|
+
catch (error) {
|
60
|
+
console.error('❌ Error fetching test examples:', error);
|
61
|
+
throw error;
|
62
|
+
}
|
63
|
+
};
|
64
|
+
// Custom evaluator to compare generated tags with expected tags
|
65
|
+
const tagsMatchEvaluator = async ({ outputs, referenceOutputs, }) => {
|
66
|
+
console.log('Evaluator received:', { outputs, referenceOutputs }); // Debug log
|
67
|
+
const generatedTags = outputs === null || outputs === void 0 ? void 0 : outputs.validatedTags;
|
68
|
+
const expectedTags = referenceOutputs === null || referenceOutputs === void 0 ? void 0 : referenceOutputs.expected_updated_tags;
|
69
|
+
// console.log('Comparing tags:', { generatedTags, expectedTags }); // Debug log
|
70
|
+
const isEqual = Array.isArray(generatedTags) &&
|
71
|
+
Array.isArray(expectedTags) &&
|
72
|
+
generatedTags.length === expectedTags.length &&
|
73
|
+
generatedTags.every((tag, index) => tag === expectedTags[index]);
|
74
|
+
return { key: 'tags_match', score: isEqual ? 1 : 0 };
|
75
|
+
};
|
76
|
+
// Wrapper function to adapt getTagsFromLLM for evaluation
|
77
|
+
const getTagsFromLLMWrapper = async (input) => {
|
78
|
+
const payload = {
|
79
|
+
activity: {
|
80
|
+
id: 'test-activity-id',
|
81
|
+
},
|
82
|
+
pathway: {
|
83
|
+
tenant_id: 'test-tenant',
|
84
|
+
definition_id: 'test-definition',
|
85
|
+
id: 'test-pathway',
|
86
|
+
org_slug: 'test-org',
|
87
|
+
org_id: 'test-org-id',
|
88
|
+
},
|
89
|
+
fields: {
|
90
|
+
instructions: input.instruction,
|
91
|
+
patientId: 'test-patient',
|
92
|
+
},
|
93
|
+
settings: {
|
94
|
+
openAiApiKey: process.env.OPENAI_API_KEY,
|
95
|
+
},
|
96
|
+
};
|
97
|
+
const helpers = {
|
98
|
+
getOpenAIConfig: () => {
|
99
|
+
const apiKey = process.env.OPENAI_API_KEY;
|
100
|
+
if ((0, lodash_1.isNil)(apiKey) || apiKey.trim() === '') {
|
101
|
+
throw new Error('OPENAI_API_KEY is required but not set');
|
102
|
+
}
|
103
|
+
return { apiKey };
|
104
|
+
},
|
105
|
+
};
|
106
|
+
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
107
|
+
settings: payload.settings,
|
108
|
+
helpers,
|
109
|
+
payload,
|
110
|
+
modelType: constants_1.OPENAI_MODELS.GPT4o,
|
111
|
+
});
|
112
|
+
return await (0, getTagsFromLLM_1.getTagsFromLLM)({
|
113
|
+
model,
|
114
|
+
existingTags: input.input_patient_tags,
|
115
|
+
instructions: input.instruction,
|
116
|
+
metadata,
|
117
|
+
callbacks,
|
118
|
+
});
|
119
|
+
};
|
120
|
+
// Main function to run the evaluation and print results
|
121
|
+
const runEvaluation = async () => {
|
122
|
+
var _a, _b;
|
123
|
+
try {
|
124
|
+
console.log('📡 Fetching test dataset from LangSmith...');
|
125
|
+
const testExamples = await fetchTestExamples();
|
126
|
+
console.log(`✅ Loaded ${testExamples.length} test examples\n`);
|
127
|
+
console.log('🚀 Running evaluation...\n');
|
128
|
+
const results = await (0, evaluation_1.evaluate)(getTagsFromLLMWrapper, {
|
129
|
+
data: testExamples,
|
130
|
+
evaluators: [tagsMatchEvaluator],
|
131
|
+
experimentPrefix: 'GetTagsFromLLM Evaluation',
|
132
|
+
maxConcurrency: 4,
|
133
|
+
});
|
134
|
+
const resultsArray = Array.isArray(results) ? results : [results];
|
135
|
+
const experimentId = (_b = (_a = resultsArray[0]) === null || _a === void 0 ? void 0 : _a.run) === null || _b === void 0 ? void 0 : _b.run_id;
|
136
|
+
if (!(0, lodash_1.isNil)(experimentId) && experimentId.trim() !== '') {
|
137
|
+
console.log('\n✨ Evaluation Complete!');
|
138
|
+
console.log('View detailed results in LangSmith:');
|
139
|
+
console.log(`https://smith.langchain.com/runs/${experimentId}`);
|
140
|
+
}
|
141
|
+
}
|
142
|
+
catch (error) {
|
143
|
+
console.error('❌ Error during evaluation:', error);
|
144
|
+
throw error;
|
145
|
+
}
|
146
|
+
};
|
147
|
+
// Execute the evaluation
|
148
|
+
void runEvaluation();
|
149
|
+
//# sourceMappingURL=evaluateTags.js.map
|
package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/evaluateTags.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"evaluateTags.js","sourceRoot":"","sources":["../../../../../../../extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/evaluateTags.ts"],"names":[],"mappings":"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"}
|
package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.d.ts
CHANGED
@@ -5,7 +5,7 @@ import type { BaseCallbackHandler } from "@langchain/core/callbacks/base";
|
|
5
5
|
interface GetTagsFromLLMProps {
|
6
6
|
model: ChatOpenAI;
|
7
7
|
existingTags: string[];
|
8
|
-
|
8
|
+
instructions: string;
|
9
9
|
metadata: AIActionMetadata;
|
10
10
|
callbacks?: BaseCallbackHandler[];
|
11
11
|
}
|
package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.js
CHANGED
@@ -4,12 +4,12 @@ exports.getTagsFromLLM = void 0;
|
|
4
4
|
const prompt_1 = require("./prompt");
|
5
5
|
const parser_1 = require("./parser");
|
6
6
|
const getTagsFromLLM = async (props) => {
|
7
|
-
const { model, existingTags,
|
7
|
+
const { model, existingTags, instructions, metadata, callbacks } = props;
|
8
8
|
try {
|
9
9
|
const chain = model.pipe(parser_1.parser);
|
10
10
|
const formattedPrompt = await prompt_1.systemPrompt.format({
|
11
11
|
existingTags: JSON.stringify(existingTags),
|
12
|
-
|
12
|
+
instructions
|
13
13
|
});
|
14
14
|
const result = await chain.invoke(formattedPrompt, {
|
15
15
|
metadata,
|
package/dist/extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTagsFromLLM.js","sourceRoot":"","sources":["../../../../../../../extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.ts"],"names":[],"mappings":";;;AAEA,qCAAuC;AACvC,qCAAkD;AAW3C,MAAM,cAAc,GAAG,KAAK,EAAE,KAA0B,EAAuB,EAAE;IACtF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,
|
1
|
+
{"version":3,"file":"getTagsFromLLM.js","sourceRoot":"","sources":["../../../../../../../extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/getTagsFromLLM.ts"],"names":[],"mappings":";;;AAEA,qCAAuC;AACvC,qCAAkD;AAW3C,MAAM,cAAc,GAAG,KAAK,EAAE,KAA0B,EAAuB,EAAE;IACtF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAExE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,eAAM,CAAC,CAAA;QAChC,MAAM,eAAe,GAAG,MAAM,qBAAY,CAAC,MAAM,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YAC1C,YAAY;SACb,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAC/B,eAAe,EACf;YACE,QAAQ;YACR,OAAO,EAAE,0BAA0B;YACnC,SAAS;SACV,CACF,CAAA;QAED,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,WAAW;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;AACH,CAAC,CAAA;AAzBY,QAAA,cAAc,kBAyB1B"}
|
@@ -1,13 +1,29 @@
|
|
1
|
+
import { z } from 'zod';
|
1
2
|
import { StructuredOutputParser } from '@langchain/core/output_parsers';
|
2
|
-
|
3
|
-
export declare const
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
export declare const SingleTagSchema: z.ZodString;
|
4
|
+
export declare const TagsSchema: z.ZodArray<z.ZodString, "many">;
|
5
|
+
export declare const TagsOutputSchema: z.ZodObject<{
|
6
|
+
updatedTags: z.ZodArray<z.ZodString, "many">;
|
7
|
+
explanation: z.ZodString;
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
9
|
+
updatedTags: string[];
|
10
|
+
explanation: string;
|
11
|
+
}, {
|
12
|
+
updatedTags: string[];
|
13
|
+
explanation: string;
|
14
|
+
}>;
|
15
|
+
export declare const parser: StructuredOutputParser<z.ZodObject<{
|
16
|
+
updatedTags: z.ZodArray<z.ZodString, "many">;
|
17
|
+
explanation: z.ZodString;
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
7
19
|
updatedTags: string[];
|
8
20
|
explanation: string;
|
9
21
|
}, {
|
10
22
|
updatedTags: string[];
|
11
23
|
explanation: string;
|
12
24
|
}>>;
|
13
|
-
export type
|
25
|
+
export type TagsOutput = z.infer<typeof TagsOutputSchema>;
|
26
|
+
export interface TagsFromAI {
|
27
|
+
validatedTags: string[];
|
28
|
+
explanation: string;
|
29
|
+
}
|
@@ -1,7 +1,17 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.parser = void 0;
|
3
|
+
exports.parser = exports.TagsOutputSchema = exports.TagsSchema = exports.SingleTagSchema = void 0;
|
4
|
+
const zod_1 = require("zod");
|
4
5
|
const output_parsers_1 = require("@langchain/core/output_parsers");
|
5
|
-
|
6
|
-
exports.
|
6
|
+
exports.SingleTagSchema = zod_1.z.string();
|
7
|
+
exports.TagsSchema = zod_1.z
|
8
|
+
.array(exports.SingleTagSchema)
|
9
|
+
.describe('The updated array of tags');
|
10
|
+
exports.TagsOutputSchema = zod_1.z.object({
|
11
|
+
updatedTags: exports.TagsSchema,
|
12
|
+
explanation: zod_1.z
|
13
|
+
.string()
|
14
|
+
.describe('A single, concise sentence summarizing all tag modifications, including the reasoning behind the changes or lack thereof.'),
|
15
|
+
});
|
16
|
+
exports.parser = output_parsers_1.StructuredOutputParser.fromZodSchema(exports.TagsOutputSchema);
|
7
17
|
//# sourceMappingURL=parser.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../../extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/parser.ts"],"names":[],"mappings":";;;AAAA,mEAAuE;
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../../extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/parser.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAAuE;AAE1D,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,EAAE,CAAA;AAE5B,QAAA,UAAU,GAAG,OAAC;KACxB,KAAK,CAAC,uBAAe,CAAC;KACtB,QAAQ,CAAC,2BAA2B,CAAC,CAAA;AAE3B,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,kBAAU;IACvB,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,2HAA2H,CAAC;CACzI,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,uCAAsB,CAAC,aAAa,CAAC,wBAAgB,CAAC,CAAA"}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { ChatPromptTemplate } from '@langchain/core/prompts';
|
2
|
-
export declare const systemPrompt: ChatPromptTemplate<import("@langchain/core/prompts").ParamsFromFString<"\
|
2
|
+
export declare const systemPrompt: ChatPromptTemplate<import("@langchain/core/prompts").ParamsFromFString<"\n You are a clinical data manager with expert knowledge of Elation Patient Tags, which help care teams organize patient care (e.g., grouping, reporting, or identifying patients for care).\n\n Your task is to manage a single patient's tags based on the provided instructions.\n\n You will receive:\n - existing_tags: An array of the patient's current tags.\n - instruction: A directive specifying which tags to add, update, or remove. Ensure to follow them diligently.\n\n ### Step-by-Step Approach:\n 1. **Review the Instruction**\n - Identify the required tag modifications: additions, updates, or removals.\n\n 2. **Apply Modifications**\n - **Removing Tags:**\n - Only remove tags if explicitly stated in the instruction.\n - Match existing tags for removal, allowing minor variations (e.g., capitalization, spacing).\n - If unsure, do not remove the tag.\n\n - **Adding Tags:**\n - Use the exact wording and formatting provided in the instruction for new tags. Do not modify, reformat, or adjust them in any way. This is critical.\n - Ensure that the final list does not exceed **10 tags**. If adding a tag would exceed this limit, do not add it and clarify this in the \"explanation\".\n - If a tag exceeds **100 characters**, do not add it and state this in the \"explanation\".\n - Ensure all tags remain **unique** (no duplicates).\n - The updated list should first retain all unchanged tags, followed by any new additions.\n\n - **Unaffected Tags:**\n - Tags that are not affected by the modification instructions must remain unchanged, including spacing and formatting.\n\n 3. **Generate Output**\n - Return a JSON object containing:\n - \"updatedTags\": The final array of tags after modifications.\n - \"explanation\": A single, concise sentence summarizing all tag modifications, including the reasoning behind changes or lack thereof. Do not include statements about the total number of tags.\n\n ### Input\n existingTags: {existingTags}\n instructions: {instructions}\n">, any>;
|
@@ -3,20 +3,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.systemPrompt = void 0;
|
4
4
|
const prompts_1 = require("@langchain/core/prompts");
|
5
5
|
exports.systemPrompt = prompts_1.ChatPromptTemplate.fromTemplate(`
|
6
|
-
You are a clinical data manager
|
7
|
-
|
8
|
-
Important instructions:
|
9
|
-
- The maximum number of tags is 10.
|
10
|
-
- The max length of a single tag is 100 characters.
|
11
|
-
- Ensure tags are unique.
|
6
|
+
You are a clinical data manager with expert knowledge of Elation Patient Tags, which help care teams organize patient care (e.g., grouping, reporting, or identifying patients for care).
|
12
7
|
|
8
|
+
Your task is to manage a single patient's tags based on the provided instructions.
|
13
9
|
|
14
|
-
|
15
|
-
|
10
|
+
You will receive:
|
11
|
+
- existing_tags: An array of the patient's current tags.
|
12
|
+
- instruction: A directive specifying which tags to add, update, or remove. Ensure to follow them diligently.
|
16
13
|
|
14
|
+
### Step-by-Step Approach:
|
15
|
+
1. **Review the Instruction**
|
16
|
+
- Identify the required tag modifications: additions, updates, or removals.
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
2. **Apply Modifications**
|
19
|
+
- **Removing Tags:**
|
20
|
+
- Only remove tags if explicitly stated in the instruction.
|
21
|
+
- Match existing tags for removal, allowing minor variations (e.g., capitalization, spacing).
|
22
|
+
- If unsure, do not remove the tag.
|
23
|
+
|
24
|
+
- **Adding Tags:**
|
25
|
+
- Use the exact wording and formatting provided in the instruction for new tags. Do not modify, reformat, or adjust them in any way. This is critical.
|
26
|
+
- Ensure that the final list does not exceed **10 tags**. If adding a tag would exceed this limit, do not add it and clarify this in the "explanation".
|
27
|
+
- If a tag exceeds **100 characters**, do not add it and state this in the "explanation".
|
28
|
+
- Ensure all tags remain **unique** (no duplicates).
|
29
|
+
- The updated list should first retain all unchanged tags, followed by any new additions.
|
30
|
+
|
31
|
+
- **Unaffected Tags:**
|
32
|
+
- Tags that are not affected by the modification instructions must remain unchanged, including spacing and formatting.
|
33
|
+
|
34
|
+
3. **Generate Output**
|
35
|
+
- Return a JSON object containing:
|
36
|
+
- "updatedTags": The final array of tags after modifications.
|
37
|
+
- "explanation": A single, concise sentence summarizing all tag modifications, including the reasoning behind changes or lack thereof. Do not include statements about the total number of tags.
|
38
|
+
|
39
|
+
### Input
|
40
|
+
existingTags: {existingTags}
|
41
|
+
instructions: {instructions}
|
21
42
|
`);
|
22
43
|
//# sourceMappingURL=prompt.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../../../extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/prompt.ts"],"names":[],"mappings":";;;AAAA,qDAA4D;AAE/C,QAAA,YAAY,GAAG,4BAAkB,CAAC,YAAY,CAAC
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../../../extensions/elation/actions/updatePatientTags/lib/getTagsFromLLM/prompt.ts"],"names":[],"mappings":";;;AAAA,qDAA4D;AAE/C,QAAA,YAAY,GAAG,4BAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC3D,CAAC,CAAA"}
|
@@ -20,32 +20,32 @@ const constants_1 = require("../../../../src/lib/llm/openai/constants");
|
|
20
20
|
exports.updatePatientTags = {
|
21
21
|
key: 'updatePatientTags',
|
22
22
|
category: extensions_core_1.Category.EHR_INTEGRATIONS,
|
23
|
-
title: '🪄 Update patient tags
|
23
|
+
title: '🪄 Update patient tags',
|
24
24
|
description: 'Update patient tags in Elation.',
|
25
25
|
fields: config_1.fields,
|
26
26
|
previewable: false,
|
27
27
|
dataPoints: config_1.dataPoints,
|
28
28
|
onEvent: async ({ payload, onComplete, onError, helpers }) => {
|
29
29
|
// 1. Validate input and initialize API client
|
30
|
-
const {
|
30
|
+
const { instructions, patientId } = config_1.FieldsValidationSchema.parse(payload.fields);
|
31
31
|
const api = (0, client_1.makeAPIClient)(payload.settings);
|
32
32
|
// 2. Get existing tags
|
33
33
|
const { tags } = await api.getPatient(patientId);
|
34
34
|
const existingTags = tags !== null && tags !== void 0 ? tags : [];
|
35
35
|
// 3. Initialize OpenAI model with metadata and callbacks
|
36
36
|
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
37
|
-
settings:
|
37
|
+
settings: {}, // we use built-in API key for OpenAI
|
38
38
|
helpers,
|
39
39
|
payload,
|
40
|
-
modelType: constants_1.OPENAI_MODELS.GPT4o
|
40
|
+
modelType: constants_1.OPENAI_MODELS.GPT4o,
|
41
41
|
});
|
42
42
|
// 4. Generate updated tags
|
43
43
|
const { validatedTags, explanation } = await (0, getTagsFromLLM_1.getTagsFromLLM)({
|
44
44
|
model,
|
45
45
|
existingTags,
|
46
|
-
|
46
|
+
instructions,
|
47
47
|
metadata,
|
48
|
-
callbacks
|
48
|
+
callbacks,
|
49
49
|
});
|
50
50
|
// 5. Update tags in Elation
|
51
51
|
await (0, updateTags_1.updateElationTags)(api, patientId, validatedTags);
|
@@ -53,6 +53,7 @@ exports.updatePatientTags = {
|
|
53
53
|
await onComplete({
|
54
54
|
data_points: {
|
55
55
|
updatedTags: validatedTags.join(', '),
|
56
|
+
explanation,
|
56
57
|
},
|
57
58
|
events: [
|
58
59
|
(0, addEventLog_1.addActivityEventLog)({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"updatePatientTags.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/updatePatientTags/updatePatientTags.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,uEAA2E;AAE3E,yCAA4C;AAC5C,qCAAqE;AACrE,6CAAgD;AAChD,wEAAoE;AACpE,wFAAoF;AACpF,wEAAwE;AAExE;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE
|
1
|
+
{"version":3,"file":"updatePatientTags.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/updatePatientTags/updatePatientTags.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,uEAA2E;AAE3E,yCAA4C;AAC5C,qCAAqE;AACrE,6CAAgD;AAChD,wEAAoE;AACpE,wFAAoF;AACpF,wEAAwE;AAExE;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EAAE,iCAAiC;IAC9C,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,8CAA8C;QAC9C,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAC9D,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,GAAG,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3C,uBAAuB;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAChD,MAAM,YAAY,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;QAE/B,yDAAyD;QACzD,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;SAC/B,CAAC,CAAA;QAEF,2BAA2B;QAC3B,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,+BAAc,EAAC;YAC1D,KAAK;YACL,YAAY;YACZ,YAAY;YACZ,QAAQ;YACR,SAAS;SACV,CAAC,CAAA;QAEF,4BAA4B;QAC5B,MAAM,IAAA,8BAAiB,EAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAEtD,kCAAkC;QAClC,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,WAAW;aACZ;YACD,MAAM,EAAE;gBACN,IAAA,iCAAmB,EAAC;oBAClB,OAAO,EAAE,0BAA0B,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,2BAA2B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE;iBACrL,CAAC;aACH;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
@@ -4,8 +4,9 @@ exports.updateElationTags = void 0;
|
|
4
4
|
const updateElationTags = async (api, patientId, tags) => {
|
5
5
|
if (tags.length === 0) {
|
6
6
|
await api.updatePatient(patientId, {
|
7
|
-
//
|
8
|
-
tags
|
7
|
+
// Note: Empty array doesn't clear tags, but [''] does by setting '' as a tag and clearing the rest (so it is not actually removing all tags but setting '' as a tag)
|
8
|
+
// This is also recommended workaround Elation team for clearing tags via API
|
9
|
+
tags: [''],
|
9
10
|
});
|
10
11
|
}
|
11
12
|
else {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"updateTags.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/updatePatientTags/updateTags.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAqB,EAAE,SAAiB,EAAE,IAAc,EAAiB,EAAE;IAC/G,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE;YACjC,
|
1
|
+
{"version":3,"file":"updateTags.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/updatePatientTags/updateTags.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAqB,EAAE,SAAiB,EAAE,IAAc,EAAiB,EAAE;IAC/G,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE;YACjC,qKAAqK;YACrK,6EAA6E;YAC7E,IAAI,EAAE,CAAC,EAAE,CAAC;SACX,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE;YACjC,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA;AAZU,QAAA,iBAAiB,qBAY3B"}
|
@@ -29,7 +29,7 @@ exports.categorizeMessage = {
|
|
29
29
|
const { message, categories } = config_1.FieldsValidationSchema.parse(payload.fields);
|
30
30
|
// 2. Initialize OpenAI model with metadata
|
31
31
|
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
32
|
-
settings:
|
32
|
+
settings: {}, // we use built-in API key for OpenAI
|
33
33
|
helpers,
|
34
34
|
payload,
|
35
35
|
modelType: constants_1.OPENAI_MODELS.GPT4oMini,
|
@@ -40,12 +40,12 @@ exports.categorizeMessage = {
|
|
40
40
|
message,
|
41
41
|
categories,
|
42
42
|
metadata,
|
43
|
-
callbacks
|
43
|
+
callbacks,
|
44
44
|
});
|
45
45
|
// 4. Format and return results
|
46
46
|
const explanationHtml = await (0, utils_1.markdownToHtml)(result.explanation);
|
47
47
|
await onComplete({
|
48
|
-
data_points: { category: result.category, explanation: explanationHtml }
|
48
|
+
data_points: { category: result.category, explanation: explanationHtml },
|
49
49
|
});
|
50
50
|
},
|
51
51
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"categorizeMessage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/categorizeMessage/categorizeMessage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,6EAAyE;AACzE,wFAAoF;AACpF,wEAAwE;AACxE,qCAAqE;AACrE,iDAAsD;AAEtD;;;;;;;;GAQG;AACU,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,
|
1
|
+
{"version":3,"file":"categorizeMessage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/categorizeMessage/categorizeMessage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,6EAAyE;AACzE,wFAAoF;AACpF,wEAAwE;AACxE,qCAAqE;AACrE,iDAAsD;AAEtD;;;;;;;;GAQG;AACU,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,mEAAmE;IACrE,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,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE5E,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,SAAS;SACnC,CAAC,CAAA;QAEF,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,mDAAwB,EAAC;YAC5C,KAAK;YACL,OAAO;YACP,UAAU;YACV,QAAQ;YACR,SAAS;SACV,CAAC,CAAA;QAEF,+BAA+B;QAC/B,MAAM,eAAe,GAAG,MAAM,IAAA,sBAAc,EAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAChE,MAAM,UAAU,CAAC;YACf,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;SACzE,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
@@ -26,13 +26,13 @@ exports.generateMessage = {
|
|
26
26
|
dataPoints: config_1.dataPoints,
|
27
27
|
onEvent: async ({ payload, onComplete, onError, helpers }) => {
|
28
28
|
// 1. Validate input fields
|
29
|
-
const { communicationObjective, personalizationInput, stakeholder, language } = config_1.FieldsValidationSchema.parse(payload.fields);
|
29
|
+
const { communicationObjective, personalizationInput, stakeholder, language, } = config_1.FieldsValidationSchema.parse(payload.fields);
|
30
30
|
// 2. Initialize OpenAI model with metadata
|
31
31
|
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
32
|
-
settings:
|
32
|
+
settings: {}, // we use built-in API key for OpenAI
|
33
33
|
helpers,
|
34
34
|
payload,
|
35
|
-
modelType: constants_1.OPENAI_MODELS.GPT4o // Using GPT4 for high-quality message generation
|
35
|
+
modelType: constants_1.OPENAI_MODELS.GPT4o, // Using GPT4 for high-quality message generation
|
36
36
|
});
|
37
37
|
// 3. Generate message
|
38
38
|
const { subject, message } = await (0, generateMessageWithLLM_1.generateMessageWithLLM)({
|
@@ -42,12 +42,12 @@ exports.generateMessage = {
|
|
42
42
|
stakeholder,
|
43
43
|
language,
|
44
44
|
metadata,
|
45
|
-
callbacks
|
45
|
+
callbacks,
|
46
46
|
});
|
47
47
|
// 4. Format and return results
|
48
48
|
const htmlMessage = await (0, utils_1.markdownToHtml)(message);
|
49
49
|
await onComplete({
|
50
|
-
data_points: { subject, message: htmlMessage }
|
50
|
+
data_points: { subject, message: htmlMessage },
|
51
51
|
});
|
52
52
|
},
|
53
53
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generateMessage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/generateMessage/generateMessage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,yEAAqE;AACrE,qCAAqE;AACrE,iDAAsD;AACtD,wFAAoF;AACpF,wEAAwE;AAExE;;;;;;;;GAQG;AACU,QAAA,eAAe,GAIxB;IACF,GAAG,EAAE,iBAAiB;IACtB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,iCAAiC;IAC9C,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,
|
1
|
+
{"version":3,"file":"generateMessage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/generateMessage/generateMessage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,yEAAqE;AACrE,qCAAqE;AACrE,iDAAsD;AACtD,wFAAoF;AACpF,wEAAwE;AAExE;;;;;;;;GAQG;AACU,QAAA,eAAe,GAIxB;IACF,GAAG,EAAE,iBAAiB;IACtB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,iCAAiC;IAC9C,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,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,QAAQ,GACT,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,EAAE,iDAAiD;SAClF,CAAC,CAAA;QAEF,sBAAsB;QACtB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,+CAAsB,EAAC;YACxD,KAAK;YACL,sBAAsB;YACtB,oBAAoB;YACpB,WAAW;YACX,QAAQ;YACR,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,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE;SAC/C,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
@@ -22,10 +22,10 @@ exports.summarizeCareFlow = {
|
|
22
22
|
const pathway = payload.pathway;
|
23
23
|
// 2. Initialize OpenAI model with metadata
|
24
24
|
const { model, metadata, callbacks } = await (0, openai_1.createOpenAIModel)({
|
25
|
-
settings:
|
25
|
+
settings: {}, // we use built-in API key for OpenAI
|
26
26
|
helpers,
|
27
27
|
payload,
|
28
|
-
modelType: constants_2.OPENAI_MODELS.GPT4o
|
28
|
+
modelType: constants_2.OPENAI_MODELS.GPT4o,
|
29
29
|
});
|
30
30
|
const awellSdk = await helpers.awellSdk();
|
31
31
|
/**
|
@@ -70,7 +70,7 @@ exports.summarizeCareFlow = {
|
|
70
70
|
stakeholder,
|
71
71
|
additionalInstructions,
|
72
72
|
metadata,
|
73
|
-
callbacks
|
73
|
+
callbacks,
|
74
74
|
});
|
75
75
|
const htmlSummary = await (0, utils_1.markdownToHtml)(`${constants_1.DISCLAIMER_MSG}\n\n${summary}`);
|
76
76
|
await onComplete({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"summarizeCareFlow.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeCareFlow/summarizeCareFlow.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,qCAAqE;AACrE,mDAAoD;AACpD,6EAAyE;AACzE,iDAAsD;AACtD,2DAAkE;AAClE,wEAAwE;AAE3D,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,sCAAsC;IACnD,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,EAAE,sBAAsB,EAAE,WAAW,EAAE,
|
1
|
+
{"version":3,"file":"summarizeCareFlow.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeCareFlow/summarizeCareFlow.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,qCAAqE;AACrE,mDAAoD;AACpD,6EAAyE;AACzE,iDAAsD;AACtD,2DAAkE;AAClE,wEAAwE;AAE3D,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,sCAAsC;IACnD,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,EAAE,sBAAsB,EAAE,WAAW,EAAE,GAC3C,+BAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAE/B,2CAA2C;QAC3C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,0BAAiB,EAAC;YAC7D,QAAQ,EAAE,EAAE,EAAE,qCAAqC;YACnD,OAAO;YACP,OAAO;YACP,SAAS,EAAE,yBAAa,CAAC,KAAK;SAC/B,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEzC;;WAEG;QACH,MAAM,wBAAwB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YAClE,iBAAiB,EAAE;gBACjB,MAAM,EAAE;oBACN,UAAU,EAAE,OAAO,CAAC,EAAE;oBACtB,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;oBACrC,OAAO,EAAE;wBACP,SAAS,EAAE,MAAM;wBACjB,KAAK,EAAE,MAAM;qBACd;iBACF;gBACD,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACP,QAAQ,EAAE,IAAI;qBACf;oBACD,MAAM,EAAE;wBACN,QAAQ,EAAE,IAAI;qBACf;oBACD,eAAe,EAAE;wBACf,QAAQ,EAAE,IAAI;qBACf;oBACD,OAAO,EAAE;wBACP,QAAQ,EAAE,IAAI;qBACf;oBACD,KAAK,EAAE;wBACL,QAAQ,EAAE,IAAI;qBACf;oBACD,cAAc,EAAE;wBACd,QAAQ,EAAE,IAAI;qBACf;iBACF;aACF;SACF,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,mDAAwB,EAAC;YAC7C,KAAK;YACL,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAChC,wBAAwB,CAAC,iBAAiB,CAAC,UAAU,EACrD,IAAI,EACJ,CAAC,CACF;YACD,WAAW;YACX,sBAAsB;YACtB,QAAQ;YACR,SAAS;SACV,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAc,EAAC,GAAG,0BAAc,OAAO,OAAO,EAAE,CAAC,CAAA;QAE3E,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
@@ -32,11 +32,11 @@ exports.summarizeForm = {
|
|
32
32
|
const { summaryFormat, language } = config_1.FieldsValidationSchema.parse(payload.fields);
|
33
33
|
// 2. Initialize OpenAI model with metadata
|
34
34
|
const { model, metadata, callbacks } = await (0, createOpenAIModel_1.createOpenAIModel)({
|
35
|
-
settings:
|
35
|
+
settings: {}, // we use built-in API key for OpenAI
|
36
36
|
helpers,
|
37
37
|
payload,
|
38
38
|
modelType: constants_1.OPENAI_MODELS.GPT4o,
|
39
|
-
hideDataForTracing: true // Hide input and output data when tracing
|
39
|
+
hideDataForTracing: true, // Hide input and output data when tracing
|
40
40
|
});
|
41
41
|
// 3. Get form data
|
42
42
|
const { formDefinition, formResponse } = await (0, awell_1.getLatestFormInCurrentStep)({
|
@@ -56,7 +56,7 @@ exports.summarizeForm = {
|
|
56
56
|
language,
|
57
57
|
disclaimerMessage: constants_2.DISCLAIMER_MSG_FORM,
|
58
58
|
metadata,
|
59
|
-
callbacks
|
59
|
+
callbacks,
|
60
60
|
});
|
61
61
|
// 5. Format and return results
|
62
62
|
const htmlSummary = await (0, utils_1.markdownToHtml)(summary);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"summarizeForm.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeForm/summarizeForm.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,yEAAqE;AACrE,wFAAoF;AACpF,wEAAwE;AACxE,qCAAqE;AACrE,uEAAmE;AACnE,qDAAsE;AACtE,iDAAsD;AACtD,mDAAyD;AAEzD;;;;;;;;GAQG;AACU,QAAA,aAAa,GAItB;IACF,GAAG,EAAE,eAAe;IACpB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,0DAA0D;IACvE,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,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,+BAAsB,CAAC,KAAK,
|
1
|
+
{"version":3,"file":"summarizeForm.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeForm/summarizeForm.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,yEAAqE;AACrE,wFAAoF;AACpF,wEAAwE;AACxE,qCAAqE;AACrE,uEAAmE;AACnE,qDAAsE;AACtE,iDAAsD;AACtD,mDAAyD;AAEzD;;;;;;;;GAQG;AACU,QAAA,aAAa,GAItB;IACF,GAAG,EAAE,eAAe;IACpB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,0DAA0D;IACvE,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,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAC9D,OAAO,CAAC,MAAM,CACf,CAAA;QAED,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,mBAAmB;QACnB,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,kCAA0B,EAAC;YACxE,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE;YAClC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;SAChC,CAAC,CAAA;QAEF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,yCAAmB,EAAC;YAC/C,cAAc;YACd,YAAY;SACb,CAAC,CAAA;QAEF,sBAAsB;QACtB,MAAM,OAAO,GAAG,MAAM,IAAA,2CAAoB,EAAC;YACzC,KAAK;YACL,QAAQ;YACR,aAAa;YACb,QAAQ;YACR,iBAAiB,EAAE,+BAAmB;YACtC,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"}
|
@@ -24,11 +24,11 @@ exports.summarizeFormsInStep = {
|
|
24
24
|
const pathway = payload.pathway;
|
25
25
|
// 2. Initialize OpenAI model with hideDataForTracing enabled
|
26
26
|
const { model, metadata, callbacks } = await (0, openai_1.createOpenAIModel)({
|
27
|
-
settings:
|
27
|
+
settings: {}, // we use built-in API key for OpenAI
|
28
28
|
helpers,
|
29
29
|
payload,
|
30
30
|
modelType: constants_2.OPENAI_MODELS.GPT4o,
|
31
|
-
hideDataForTracing: true // Hide input and output data when tracing
|
31
|
+
hideDataForTracing: true, // Hide input and output data when tracing
|
32
32
|
});
|
33
33
|
// Fetch all forms in the current step
|
34
34
|
const formsData = await (0, awell_1.getAllFormsInCurrentStep)({
|
@@ -48,7 +48,7 @@ exports.summarizeFormsInStep = {
|
|
48
48
|
language,
|
49
49
|
disclaimerMessage: constants_1.DISCLAIMER_MSG_FORM,
|
50
50
|
metadata,
|
51
|
-
callbacks // Add callbacks here
|
51
|
+
callbacks, // Add callbacks here
|
52
52
|
});
|
53
53
|
// Disclaimer is now handled within summarizeFormWithLLM
|
54
54
|
const htmlSummary = await (0, utils_1.markdownToHtml)(summary);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"summarizeFormsInStep.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,qCAAqE;AACrE,uEAAuE;AACvE,yEAAqE;AACrE,mDAAyD;AACzD,qDAAoE;AACpE,iDAAsD;AACtD,2DAAkE;AAClE,wEAAwE;
|
1
|
+
{"version":3,"file":"summarizeFormsInStep.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,qCAAqE;AACrE,uEAAuE;AACvE,yEAAqE;AACrE,mDAAyD;AACzD,qDAAoE;AACpE,iDAAsD;AACtD,2DAAkE;AAClE,wEAAwE;AAE3D,QAAA,oBAAoB,GAI7B;IACF,GAAG,EAAE,sBAAsB;IAC3B,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE,2DAA2D;IACxE,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,2BAA2B;QAC3B,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAC9D,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAE/B,6DAA6D;QAC7D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,0BAAiB,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,sCAAsC;QACtC,MAAM,SAAS,GAAG,MAAM,IAAA,gCAAwB,EAAC;YAC/C,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE;YAClC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;SAChC,CAAC,CAAA;QAEF,8BAA8B;QAC9B,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAA,6CAAuB,EAAC;YAC/D,SAAS;SACV,CAAC,CAAA;QAEF,iCAAiC;QACjC,MAAM,OAAO,GAAG,MAAM,IAAA,2CAAoB,EAAC;YACzC,KAAK;YACL,QAAQ,EAAE,oBAAoB;YAC9B,aAAa;YACb,QAAQ;YACR,iBAAiB,EAAE,+BAAmB;YACtC,QAAQ;YACR,SAAS,EAAE,qBAAqB;SACjC,CAAC,CAAA;QAEF,wDAAwD;QACxD,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAA;QAEjD,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
@@ -10,7 +10,7 @@ const validatePayloadAndCreateSdk = async ({ fieldsSchema, payload, }) => {
|
|
10
10
|
const { settings, fields } = (0, extensions_core_1.validate)({
|
11
11
|
schema: zod_1.default.object({
|
12
12
|
fields: fieldsSchema,
|
13
|
-
settings: zod_1.default.object({})
|
13
|
+
settings: zod_1.default.object({}),
|
14
14
|
pathway: zod_1.default.object({
|
15
15
|
id: zod_1.default.string(),
|
16
16
|
definition_id: zod_1.default.string(),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validatePayloadAndCreateSdk.js","sourceRoot":"","sources":["../../../../extensions/shelly/lib/validatePayloadAndCreateSdk.ts"],"names":[],"mappings":";;;;;;AAAA,mEAKsC;AACtC,8CAAmB;AAiBZ,MAAM,2BAA2B,GAAgC,KAAK,EAAE,EAC7E,YAAY,EACZ,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAA,0BAAQ,EAAC;QACpC,MAAM,EAAE,aAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,CAAC
|
1
|
+
{"version":3,"file":"validatePayloadAndCreateSdk.js","sourceRoot":"","sources":["../../../../extensions/shelly/lib/validatePayloadAndCreateSdk.ts"],"names":[],"mappings":";;;;;;AAAA,mEAKsC;AACtC,8CAAmB;AAiBZ,MAAM,2BAA2B,GAAgC,KAAK,EAAE,EAC7E,YAAY,EACZ,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAA,0BAAQ,EAAC;QACpC,MAAM,EAAE,aAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC;gBAChB,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE;gBACd,aAAa,EAAE,aAAC,CAAC,MAAM,EAAE;aAC1B,CAAC;YACF,QAAQ,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACtC,CAAC;QACF,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAE9C,OAAO;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;KACT,CAAA;AACH,CAAC,CAAA;AA3BY,QAAA,2BAA2B,+BA2BvC"}
|
package/package.json
CHANGED
@@ -1,29 +0,0 @@
|
|
1
|
-
import { z } from 'zod';
|
2
|
-
import { StructuredOutputParser } from '@langchain/core/output_parsers';
|
3
|
-
export declare const SingleTagSchema: z.ZodString;
|
4
|
-
export declare const TagsSchema: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
|
5
|
-
export declare const TagsOutputSchema: z.ZodObject<{
|
6
|
-
updatedTags: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
|
7
|
-
explanation: z.ZodString;
|
8
|
-
}, "strip", z.ZodTypeAny, {
|
9
|
-
updatedTags: string[];
|
10
|
-
explanation: string;
|
11
|
-
}, {
|
12
|
-
updatedTags: string[];
|
13
|
-
explanation: string;
|
14
|
-
}>;
|
15
|
-
export declare const parser: StructuredOutputParser<z.ZodObject<{
|
16
|
-
updatedTags: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
|
17
|
-
explanation: z.ZodString;
|
18
|
-
}, "strip", z.ZodTypeAny, {
|
19
|
-
updatedTags: string[];
|
20
|
-
explanation: string;
|
21
|
-
}, {
|
22
|
-
updatedTags: string[];
|
23
|
-
explanation: string;
|
24
|
-
}>>;
|
25
|
-
export type TagsOutput = z.infer<typeof TagsOutputSchema>;
|
26
|
-
export interface TagsFromAI {
|
27
|
-
validatedTags: string[];
|
28
|
-
explanation: string;
|
29
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.parser = exports.TagsOutputSchema = exports.TagsSchema = exports.SingleTagSchema = void 0;
|
4
|
-
const zod_1 = require("zod");
|
5
|
-
const output_parsers_1 = require("@langchain/core/output_parsers");
|
6
|
-
exports.SingleTagSchema = zod_1.z.string().max(100).describe('A single tag');
|
7
|
-
exports.TagsSchema = zod_1.z
|
8
|
-
.array(exports.SingleTagSchema)
|
9
|
-
.max(10)
|
10
|
-
.refine((items) => new Set(items).size === items.length, {
|
11
|
-
message: 'All items must be unique, no duplicate values allowed',
|
12
|
-
})
|
13
|
-
.describe('The updated array of tags');
|
14
|
-
exports.TagsOutputSchema = zod_1.z.object({
|
15
|
-
updatedTags: exports.TagsSchema,
|
16
|
-
explanation: zod_1.z
|
17
|
-
.string()
|
18
|
-
.describe('A readable explanation of the changes made to the tags and why'),
|
19
|
-
});
|
20
|
-
exports.parser = output_parsers_1.StructuredOutputParser.fromZodSchema(exports.TagsOutputSchema);
|
21
|
-
//# sourceMappingURL=types.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../extensions/elation/actions/updatePatientTags/config/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAAuE;AAE1D,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AAE9D,QAAA,UAAU,GAAG,OAAC;KACxB,KAAK,CAAC,uBAAe,CAAC;KACtB,GAAG,CAAC,EAAE,CAAC;KACP,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE;IACvD,OAAO,EAAE,uDAAuD;CACjE,CAAC;KACD,QAAQ,CAAC,2BAA2B,CAAC,CAAA;AAE3B,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,kBAAU;IACvB,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,gEAAgE,CAAC;CAChF,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,uCAAsB,CAAC,aAAa,CAAC,wBAAgB,CAAC,CAAA"}
|