@awell-health/awell-extensions 2.0.143 → 2.0.145
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 +16 -5
- package/dist/extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.js.map +1 -1
- package/dist/extensions/elation/actions/signNonVisitNote/config/fields.js +1 -1
- package/dist/extensions/elation/actions/signNonVisitNote/config/fields.js.map +1 -1
- package/dist/extensions/elation/actions/signNonVisitNote/signNonVisitNote.js +16 -17
- package/dist/extensions/elation/actions/signNonVisitNote/signNonVisitNote.js.map +1 -1
- package/dist/extensions/elation/actions/updatePatientTags/updatePatientTags.js +11 -3
- package/dist/extensions/elation/actions/updatePatientTags/updatePatientTags.js.map +1 -1
- package/package.json +1 -1
package/dist/extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.js
CHANGED
@@ -9,6 +9,7 @@ const zod_1 = require("zod");
|
|
9
9
|
const openai_1 = require("@langchain/openai");
|
10
10
|
const addEventLog_1 = require("../../../../src/lib/awell/addEventLog");
|
11
11
|
const appointment_zod_1 = require("../../validation/appointment.zod");
|
12
|
+
const lodash_1 = require("lodash");
|
12
13
|
exports.findAppointmentsByPrompt = {
|
13
14
|
key: 'findAppointmentsByPrompt',
|
14
15
|
category: extensions_core_1.Category.EHR_INTEGRATIONS,
|
@@ -39,6 +40,16 @@ exports.findAppointmentsByPrompt = {
|
|
39
40
|
const appointments = await api.findAppointments({
|
40
41
|
patient: patientId,
|
41
42
|
});
|
43
|
+
if ((0, lodash_1.isNil)(appointments) || appointments.length === 0) {
|
44
|
+
await onComplete({
|
45
|
+
data_points: {
|
46
|
+
explanation: 'No appointments found',
|
47
|
+
appointments: JSON.stringify(appointments),
|
48
|
+
appointmentCountsByStatus: JSON.stringify({}),
|
49
|
+
},
|
50
|
+
});
|
51
|
+
return;
|
52
|
+
}
|
42
53
|
const promptAppointments = appointments
|
43
54
|
.map((appointment) => {
|
44
55
|
const relevantInfo = {
|
@@ -50,7 +61,7 @@ exports.findAppointmentsByPrompt = {
|
|
50
61
|
})
|
51
62
|
.join('\n\n');
|
52
63
|
const ChatModelGPT4o = new openai_1.ChatOpenAI({
|
53
|
-
modelName: 'gpt-4o
|
64
|
+
modelName: 'gpt-4o',
|
54
65
|
openAIApiKey: openAiApiKey,
|
55
66
|
temperature: 0,
|
56
67
|
maxRetries: 3,
|
@@ -125,15 +136,15 @@ exports.findAppointmentsByPrompt = {
|
|
125
136
|
},
|
126
137
|
};
|
127
138
|
const createSystemPrompt = ({ prompt, appointments, }) => {
|
128
|
-
const
|
139
|
+
const currentDate = new Date().getDate();
|
129
140
|
return `You are a helpful medical assistant. You will receive a list (array) of appointments for a single patient and instructions about which types of appointments to find. You're supposed to use the information in the list to find appointments that match, if any exist. If no appointments exists that obviously match the instructions, that's a perfectly acceptable outcome. If multiple appointments exist that match the instructions, you should return all of them.
|
130
141
|
|
131
142
|
Important instructions:
|
132
143
|
- The appointment "reason" is the appointment type.
|
133
|
-
- Only include appointment ids that exist in the input array.
|
144
|
+
- Only include appointment ids that exist in the input array. If no appointments exist that match the instructions, return an empty array.
|
134
145
|
- Pay close attention to the instructions. They are intended to have been written by a clinician, for a clinician.
|
135
146
|
- Think like a clinician. In other words, "Rx" should match a prescription appointment or follow-up related to a prescription, and "PT" would matchphysical therapy.
|
136
|
-
- The current date is ${
|
147
|
+
- The current date is ${currentDate}.
|
137
148
|
----------
|
138
149
|
Input array:
|
139
150
|
${appointments}
|
@@ -143,7 +154,7 @@ ${prompt}
|
|
143
154
|
----------
|
144
155
|
|
145
156
|
Output a JSON object with the following keys:
|
146
|
-
1. appointmentIds: array of strings where each string is an appointment_id that matches the instructions.
|
157
|
+
1. appointmentIds: array of strings where each string is an appointment_id that matches the instructions (or an empty array if no appointments exist that match the instructions).
|
147
158
|
2. explanation: A readable explanation of how the appointments were found and why. Or, if no appointments exist that match the instructions, an explanation of why.`;
|
148
159
|
};
|
149
160
|
//# sourceMappingURL=findAppointmentsByPrompt.js.map
|
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,mEAAqE;AAErE,yCAA4C;AAC5C,qCAAqE;AACrE,mEAAuE;AACvE,6BAAuB;AACvB,8CAA8C;AAC9C,uEAA2E;AAC3E,sEAA6D;
|
1
|
+
{"version":3,"file":"findAppointmentsByPrompt.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/findAppointmentsByPrompt/findAppointmentsByPrompt.ts"],"names":[],"mappings":"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"}
|
@@ -14,7 +14,7 @@ exports.fields = {
|
|
14
14
|
signedBy: {
|
15
15
|
id: 'signedBy',
|
16
16
|
label: 'Signed by',
|
17
|
-
description: 'The ID of
|
17
|
+
description: 'The ID of a physician or office staff who signs the note. Note: it has to be a physician ID, or an office staff ID, not a user ID.',
|
18
18
|
type: extensions_core_1.FieldType.NUMERIC,
|
19
19
|
required: true,
|
20
20
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/elation/actions/signNonVisitNote/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAIsC;AAEzB,QAAA,MAAM,GAAG;IACpB,cAAc,EAAE;QACd,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,EAAE;KAChB;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,WAAW,EACT
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/elation/actions/signNonVisitNote/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAIsC;AAEzB,QAAA,MAAM,GAAG;IACpB,cAAc,EAAE;QACd,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,EAAE;KAChB;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,WAAW,EACT,oIAAoI;QACtI,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,IAAI;KACf;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,cAAc,EAAE,iCAAe;IAC/B,QAAQ,EAAE,iCAAe;CACwB,CAAC,CAAA"}
|
@@ -17,23 +17,6 @@ exports.signNonVisitNote = {
|
|
17
17
|
var _a;
|
18
18
|
const { nonVisitNoteId, signedBy } = config_1.FieldsValidationSchema.parse(payload.fields);
|
19
19
|
const api = (0, client_1.makeAPIClient)(payload.settings);
|
20
|
-
/**
|
21
|
-
* A non-visit note can only be signed by a physician.
|
22
|
-
* We will validate if the signedBy is a physician and throw a readable error if not.
|
23
|
-
*/
|
24
|
-
try {
|
25
|
-
await api.getPhysician(signedBy);
|
26
|
-
}
|
27
|
-
catch (error) {
|
28
|
-
await onError({
|
29
|
-
events: [
|
30
|
-
(0, addEventLog_1.addActivityEventLog)({
|
31
|
-
message: `Failed to retrieve the physician (${signedBy}) to sign the note. Non-visit notes have to be signed by a physician.`,
|
32
|
-
}),
|
33
|
-
],
|
34
|
-
});
|
35
|
-
return;
|
36
|
-
}
|
37
20
|
try {
|
38
21
|
await api.updateNonVisitNote(nonVisitNoteId, {
|
39
22
|
signed_by: signedBy,
|
@@ -63,6 +46,22 @@ exports.signNonVisitNote = {
|
|
63
46
|
});
|
64
47
|
return;
|
65
48
|
}
|
49
|
+
/**
|
50
|
+
* A non-visit note can be signed by a Physician or an Office Staff.
|
51
|
+
* You cannot sign a non-visit note using a User ID.
|
52
|
+
* If you pass an invalid ID, you will get a 400 error with a message like:
|
53
|
+
* "Invalid pk \"1425910919331837\" - object does not exist."
|
54
|
+
*/
|
55
|
+
if (reason.includes('Invalid pk')) {
|
56
|
+
await onError({
|
57
|
+
events: [
|
58
|
+
(0, addEventLog_1.addActivityEventLog)({
|
59
|
+
message: `The signedBy field is not a valid physician or office staff.`,
|
60
|
+
}),
|
61
|
+
],
|
62
|
+
});
|
63
|
+
return;
|
64
|
+
}
|
66
65
|
}
|
67
66
|
// All other errors we didn't handle explicitly we will throw
|
68
67
|
throw error;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signNonVisitNote.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/signNonVisitNote/signNonVisitNote.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AAErE,yCAA4C;AAC5C,qCAAqE;AACrE,uEAA2E;AAG9D,QAAA,gBAAgB,GAIzB;IACF,GAAG,EAAE,kBAAkB;IACvB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,mCAAmC;IAChD,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAiB,EAAE;;QACjE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAC/D,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,GAAG,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3C
|
1
|
+
{"version":3,"file":"signNonVisitNote.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/signNonVisitNote/signNonVisitNote.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AAErE,yCAA4C;AAC5C,qCAAqE;AACrE,uEAA2E;AAG9D,QAAA,gBAAgB,GAIzB;IACF,GAAG,EAAE,kBAAkB;IACvB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,mCAAmC;IAChD,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAiB,EAAE;;QACjE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,+BAAsB,CAAC,KAAK,CAC/D,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,GAAG,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3C,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,kBAAkB,CAAC,cAAc,EAAE;gBAC3C,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAmB,CAAA;YAE/B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN,IAAA,iCAAmB,EAAC;4BAClB,OAAO,EAAE,uBAAuB,cAAc,mBAAmB;yBAClE,CAAC;qBACH;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAA,GAAG,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAA;gBACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EAAE,CAAC;oBAC/D,MAAM,OAAO,CAAC;wBACZ,MAAM,EAAE;4BACN,IAAA,iCAAmB,EAAC;gCAClB,OAAO,EAAE,+DAA+D;6BACzE,CAAC;yBACH;qBACF,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;gBAED;;;;;mBAKG;gBACH,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAClC,MAAM,OAAO,CAAC;wBACZ,MAAM,EAAE;4BACN,IAAA,iCAAmB,EAAC;gCAClB,OAAO,EAAE,8DAA8D;6BACxE,CAAC;yBACH;qBACF,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,UAAU,EAAE,CAAA;IACpB,CAAC;CACF,CAAA"}
|
@@ -81,9 +81,17 @@ Output a JSON object with two keys:
|
|
81
81
|
throw new Error('Failed to update patient tags.');
|
82
82
|
}
|
83
83
|
const validatedTags = TagsSchema.parse(result.updatedTags);
|
84
|
-
|
85
|
-
|
86
|
-
|
84
|
+
if (validatedTags.length === 0) {
|
85
|
+
await api.updatePatient(patientId, {
|
86
|
+
// @ts-expect-error - elation api does not clear tags on an empty array
|
87
|
+
tags: ' ',
|
88
|
+
});
|
89
|
+
}
|
90
|
+
else {
|
91
|
+
await api.updatePatient(patientId, {
|
92
|
+
tags: validatedTags,
|
93
|
+
});
|
94
|
+
}
|
87
95
|
await onComplete({
|
88
96
|
data_points: {
|
89
97
|
updatedTags: validatedTags.join(', '),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"updatePatientTags.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/updatePatientTags/updatePatientTags.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"updatePatientTags.js","sourceRoot":"","sources":["../../../../../extensions/elation/actions/updatePatientTags/updatePatientTags.ts"],"names":[],"mappings":"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"}
|