@awell-health/awell-extensions 2.0.254 → 2.0.256

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,7 +68,7 @@
68
68
  "changelog": "# Dropbox Sign changelog"
69
69
  },
70
70
  "elation": {
71
- "readme": "---\ntitle: Elation\ndescription: Elation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices.\n---\n# Elation\n\nElation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices. It offers a range of features including patient scheduling, charting, e-prescribing, billing, and telemedicine. Overall, Elation is designed to streamline the workflow of medical practices, improve patient care, and increase efficiency.\n\n## Setup\n\n### Webhooks\n\nThe integration of webhooks with Elation presents unique challenges and considerations:\n\n- **Non-Discriminative Triggers**: Elation does not differentiate between the creation or update of a resource. Both actions will set off webhook with action `saved`, which might not provide enough discriminative information for some use cases.\n- **Programmatic Setup**: Elation webhooks can only be configured programmatically, as there's no dedicated user interface in Elation to set up webhooks. View [this demo video](https://youtu.be/v8u6E8MEI8E) for a step-by-step guide on how to set up your webhooks in Elation.\n- **Limitation on user-triggered actions**: Elation has a concept called \"Preventing echo\". This means that that any action carried out by the user affiliated with the API credentials that created the subscription doesn't trigger a webhook. You can read more about this behaviour [here](https://docs.elationhealth.com/reference/webhooks). If you are not receiving any webhooks from Elation after setting up your subscription, then this is the reason. A feasible workaround to the above limitation is creating a dedicated user not meant for human interactions but serves the sole purpose of facilitating M2M communication.\n\nIf you need help setting up your webhooks in Elation, reach out! We are happy to help you.\n\n### Extension settings\n\nIn order to use this extension you will need to provide the extension with the following settings:\n\n- Base URL / endpoint URL of the API\n- Authorization URL\n- Client ID for OAuth2 Password authentication\n- Client Secret for OAuth2 Password authentication\n- API Username for OAuth2 Password authentication\n- API Password for OAuth2 Password authentication\n\nNot sure where you can find all of this information? Click [here](https://docs.elationhealth.com/reference/introduction) to have a look at Elation's Developer documentation.\n\n## Actions\n\nThe following actions are supported with Elation today:\n\n### Create Patient\n\nThis action creates a patient in Elation.\n\n**When creating a patient, you will have to specifiy the primary physician and caregiver practice ID:**\n- Primary physician ID: you can retrieve this ID by using the [Find Physicians](https://docs.elationhealth.com/reference/find-physicians) API call, or by using the `Find Physician` action\n- Caregiver Practice ID: similar to the primary physician ID, you can find this ID by using the same API call or action\n\nIf the Elation API throws an error indicating the patient with the provided information already exists, the action will succeed and the ID of the existing patient will be returned.\n\n### Get Patient\n\nUsing a patient identifier, retrieve a patient object from Elation. \n\nNote that when retrieve the mobile phone number, we are tranforming the number to an international format. We apply a heuristic and assume all mobile numbers in Elation are in US national format so we prepend the number with the +1 country code. Having the number in international format unlocks more powerful functionality like sending text messages with 3rd party services like Twilio and MessageBird.\n\n### Update Patient\n\nUpdate a patient in Elation using any fields available in create patient. We use Elation's `PATCH` method to apply partial modifications to a the patient resource (i.e. update only what is needed).\n\n### Create Appointment\n\nEasily create a patient appointment in Elation.\n\nCreating an appointment requires a few strings to be well-formulated:\n- `Scheduled date` must be a datetime string (ISO-8601). For example, January 1, 2023 at noon, Pacific Time (-8 hours) would be shown as such: `2023-01-01T12:00:00.000-08:00`\n- `Reason` must not be free text. This value comes from the following list of appointment types (`Follow-Up`, `Office Visit`, `Physical Exam`, etc.):\n![Appointment types](./assets/elation-appointment-reason.png?raw=true \"Elation Appointment Types\")\n- `Patient` is the patient ID.\n- `Physician` is the physician ID (see `Find Physician`)\n- `Practice` is the practice ID (again, see `Find Physician`)\n\nYou can also include a duration (default to 15 minutes, or whatever has been set in your EHR)\n\n### Get Appointment\n\nRetrieve appointment details using an appointment ID. \n\n### Create Non-Visit Note\n\nThe non-visit note is a special kind of note that, as the name suggests, is not associated with a visit. These notes, in their simplest form, provide a chronological account of information about the patient.\n\n**Additional documentation for some of the action fields:**\n1. Category: The default category is \"Problem\" but you can choose any of \"Past\", \"Family\", \"Social\", \"Instr\", \"PE\", \"ROS\", \"Med\", \"Data\", \"Assessment\", \"Test\", \"Tx\", \"Narrative\", \"Followup\", \"Reason\", \"Plan\", \"Objective\", \"Hpi\", \"Allergies\", \"Habits\", \"Assessplan\", \"Consultant\", \"Attending\", \"Dateprocedure\", \"Surgical\", \"Orders\", \"Referenced\", \"Procedure\".\n2. Chart and document date automatically get set to the current date, i.e. the date when the action is orchestrated.\n\n### Delete Non-Visit Note\n\nDeletes the non-visit note identified by an ID.\n\n### Get Non-Visit Note\n\nRetrieve the details of a non-visit note identified by an ID.\n### Get physician\n\nUsing a physician identifier, retrieve a physician object from Elation.\n\n### Find physicians\n\nSearch a physician based on a set of parameters. The ID of the physician matching the search parameters will be returned. To retrieve the details of the physician, you can use the the \"Get physician\" action.\n\nNote that this action can only support finding one physician so if your search criteria match multiple physicians the action will throw an error.\n\n### ✨ Find Future Appointment\n\nTries to find a **single future appointment** for a patient based on a prompt in natural language. These are the steps executed by the action:\n\n1. All future appointments with status `Scheduled` or `Confirmed` for the patient are retrieved from Elation.\n2. Based on the provided prompt, an LLM tries to find a single appointment from the list of future appointments that matches the prompt.\n3. If multiple appointments exist that match the instructions, only the first one is returned.\n\nIf a matching appointment is found, the action returns the full appointment resource and an explanation of why the LLM chose this appointment.\n\n### ✨ Find Appointments\n\nTries to find **all appointments** for a patient based on a prompt in natural language. These are the steps executed by the action:\n\n1. All appointments, independent their date or status, for the patient are retrieved from Elation.\n2. Based on the provided prompt, an LLM tries to find all appointments from the list appointments that matches the prompt.\n\nThe action returns the full appointment resources of all appointments matching the prompt and an explanation of why the LLM chose these appointments. Additionally, the action returns a count of appointments by status.\n\nExample data points output below.\n\nAppointments (note: only displaying a partial appointment resource)```json\n[\n {\n \"id\": 456,\n \"scheduled_date\": \"2023-07-12T20:44:22Z\",\n \"status\": {\n \"status\": \"Scheduled\",\n },\n },\n {\n \"id\": 456,\n \"scheduled_date\": \"2023-08-12T20:44:22Z\",\n \"status\": {\n \"status\": \"Confirmed\",\n },\n }\n]```\n\nAppointment counts by status\n```json\n{\n \"Scheduled\": 1,\n \"Confirmed\": 1,\n}\n```\n\n### ✨ Update Patient Tags\n\nUses AI to manage patient tags in Elation based on natural language instructions. The action executes the following steps:\n\n1. Retrieves existing patient tags from Elation\n2. Uses an LLM to interpret natural language instructions and determine required tag changes\n3. Updates patient tags in Elation according to the interpreted changes\n\nThe action returns:\n- Complete list of updated tags after changes\n- Detailed explanation of what changes were made and why\n\n**Important Notes:**\n- When adding new tags, specify them in single quotes (e.g., 'Diabetes', 'High-Risk'). Tags must exist in your Elation database\n- Due to Elation API limitations, clearing all tags is implemented by setting a single space tag (' '). This is the recommended workaround from Elation's team\n\n### ✨ Check Patient Tags\n\nUses AI to check if a patient's tags match given instructions in natural language. The action executes the following steps:\n\n1. Retrieves existing patient tags from Elation\n2. Uses an LLM to interpret natural language instructions and check if the patient's tags match the requirements\n3. Returns a boolean result and explanation of the check\n\nThe action returns:\n- `tagsFound`: Boolean indicating if the patient's tags match the instructions\n- `explanation`: Detailed explanation of why the tags match or don't match the instructions\n\n\n**Important Notes:**\n- When specifying exact tag matches, use double quotes (e.g., \"Diabetes\", \"High-Risk\"). Tags must exist in your Elation database\n- The LLM can understand complex logical conditions like \"either/or\", \"both\", \"not\", \"any of\", \"none of\"\n\n### ✨ Cancel Appointments\n\nUses AI to identify and cancel patient appointments based on natural language instructions. The action executes the following steps:\n\n1. Retrieves all upcoming appointments for the patient from Elation\n2. Uses an LLM to interpret the prompt and identify which appointments should be canceled\n3. Processes the cancellation for matched appointments and handles partial success scenarios\n\nThe action returns:\n- `cancelledAppointments`: Array of appointment IDs that were successfully canceled\n- `explanation`: Detailed explanation of which appointments were canceled and why they matched the criteria\n\n",
71
+ "readme": "---\ntitle: Elation\ndescription: Elation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices.\n---\n# Elation\n\nElation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices. It offers a range of features including patient scheduling, charting, e-prescribing, billing, and telemedicine. Overall, Elation is designed to streamline the workflow of medical practices, improve patient care, and increase efficiency.\n\n## Setup\n\n### Webhooks\n\nThe integration of webhooks with Elation presents unique challenges and considerations:\n\n- **Non-Discriminative Triggers**: Elation does not differentiate between the creation or update of a resource. Both actions will set off webhook with action `saved`, which might not provide enough discriminative information for some use cases.\n- **Programmatic Setup**: Elation webhooks can only be configured programmatically, as there's no dedicated user interface in Elation to set up webhooks. View [this demo video](https://youtu.be/v8u6E8MEI8E) for a step-by-step guide on how to set up your webhooks in Elation.\n- **Limitation on user-triggered actions**: Elation has a concept called \"Preventing echo\". This means that that any action carried out by the user affiliated with the API credentials that created the subscription doesn't trigger a webhook. You can read more about this behaviour [here](https://docs.elationhealth.com/reference/webhooks). If you are not receiving any webhooks from Elation after setting up your subscription, then this is the reason. A feasible workaround to the above limitation is creating a dedicated user not meant for human interactions but serves the sole purpose of facilitating M2M communication.\n\nIf you need help setting up your webhooks in Elation, reach out! We are happy to help you.\n\n### Extension settings\n\nIn order to use this extension you will need to provide the extension with the following settings:\n\n- Base URL / endpoint URL of the API\n- Authorization URL\n- Client ID for OAuth2 Password authentication\n- Client Secret for OAuth2 Password authentication\n- API Username for OAuth2 Password authentication\n- API Password for OAuth2 Password authentication\n\nNot sure where you can find all of this information? Click [here](https://docs.elationhealth.com/reference/introduction) to have a look at Elation's Developer documentation.\n\n## Actions\n\nThe following actions are supported with Elation today:\n\n### Create Patient\n\nThis action creates a patient in Elation.\n\n**When creating a patient, you will have to specifiy the primary physician and caregiver practice ID:**\n- Primary physician ID: you can retrieve this ID by using the [Find Physicians](https://docs.elationhealth.com/reference/find-physicians) API call, or by using the `Find Physician` action\n- Caregiver Practice ID: similar to the primary physician ID, you can find this ID by using the same API call or action\n\nIf the Elation API throws an error indicating the patient with the provided information already exists, the action will succeed and the ID of the existing patient will be returned.\n\n### Get Patient\n\nUsing a patient identifier, retrieve a patient object from Elation. \n\nNote that when retrieve the mobile phone number, we are tranforming the number to an international format. We apply a heuristic and assume all mobile numbers in Elation are in US national format so we prepend the number with the +1 country code. Having the number in international format unlocks more powerful functionality like sending text messages with 3rd party services like Twilio and MessageBird.\n\n### Update Patient\n\nUpdate a patient in Elation using any fields available in create patient. We use Elation's `PATCH` method to apply partial modifications to a the patient resource (i.e. update only what is needed).\n\n### Create Appointment\n\nEasily create a patient appointment in Elation.\n\nCreating an appointment requires a few strings to be well-formulated:\n- `Scheduled date` must be a datetime string (ISO-8601). For example, January 1, 2023 at noon, Pacific Time (-8 hours) would be shown as such: `2023-01-01T12:00:00.000-08:00`\n- `Reason` must not be free text. This value comes from the following list of appointment types (`Follow-Up`, `Office Visit`, `Physical Exam`, etc.):\n![Appointment types](./assets/elation-appointment-reason.png?raw=true \"Elation Appointment Types\")\n- `Patient` is the patient ID.\n- `Physician` is the physician ID (see `Find Physician`)\n- `Practice` is the practice ID (again, see `Find Physician`)\n\nYou can also include a duration (default to 15 minutes, or whatever has been set in your EHR)\n\n### Get Appointment\n\nRetrieve appointment details using an appointment ID. \n\n### Create Non-Visit Note\n\nThe non-visit note is a special kind of note that, as the name suggests, is not associated with a visit. These notes, in their simplest form, provide a chronological account of information about the patient.\n\n**Additional documentation for some of the action fields:**\n1. Category: The default category is \"Problem\" but you can choose any of \"Past\", \"Family\", \"Social\", \"Instr\", \"PE\", \"ROS\", \"Med\", \"Data\", \"Assessment\", \"Test\", \"Tx\", \"Narrative\", \"Followup\", \"Reason\", \"Plan\", \"Objective\", \"Hpi\", \"Allergies\", \"Habits\", \"Assessplan\", \"Consultant\", \"Attending\", \"Dateprocedure\", \"Surgical\", \"Orders\", \"Referenced\", \"Procedure\".\n2. Chart and document date automatically get set to the current date, i.e. the date when the action is orchestrated.\n\n### Delete Non-Visit Note\n\nDeletes the non-visit note identified by an ID.\n\n### Get Non-Visit Note\n\nRetrieve the details of a non-visit note identified by an ID.\n### Get physician\n\nUsing a physician identifier, retrieve a physician object from Elation.\n\n### Find physicians\n\nSearch a physician based on a set of parameters. The ID of the physician matching the search parameters will be returned. To retrieve the details of the physician, you can use the the \"Get physician\" action.\n\nNote that this action can only support finding one physician so if your search criteria match multiple physicians the action will throw an error.\n\n### ✨ Find Future Appointment\n\nThis AI-powered action finds a **single future appointment** for a patient based on a prompt in natural language. Just type something like \"next cardiology appointment\" — AI figures it out and finds the matching appointment for you.\n\n**How it works:**\n1. All future appointments with status `Scheduled` or `Confirmed` for the patient are retrieved from Elation.\n2. Based on the provided prompt, an LLM tries to find a single appointment from the list of future appointments that matches the prompt.\n3. If multiple appointments exist that match the instructions, only the first one is returned.\n\n**What it needs (Inputs):**\n- `Elation patient ID` (Required): The numeric ID of the patient in Elation whose appointments you want to search.\n- `Describe what appointment you would like to find` (Required): A natural language description of the appointment you're looking for. Be as specific as possible about the type, status, timing, or any other important aspect for your use case.\n\n**What it gives back (Outputs):**\n- `Appointment`: The complete appointment data in JSON format (if found).\n- `Appointment Exists`: Boolean indicator (true/false) of whether a matching appointment was found.\n- `Explanation`: A clear explanation of why the selected appointment was chosen or why no appointment was found.\n\n**Tips for best results:**\n- Include specific details about the appointment type, status, or purpose in your description.\n- Use single or double quotes for exact matches. For example, if you search for '\"Physical Exam\"', the action will search for appointments with that exact appointment type (with small variations physical exams, Physical exam).\n- When you know exactly what to match (status, physician name, appointment type), put it in quotes (e.g., '\"Scheduled\"', '\"Follow-Up\"') for exact matching.\n- For other criteria where you're less certain, provide descriptive instructions without quotes, for example all physical exams - then AI action will try to find all exams that can be classified as physical exams.\n- Time-based instructions work well, such as \"next week,\" \"this month,\" or \"next Thursday.\"\n- If multiple appointments match your criteria, only the first one will be returned.\n- Be clear and specific in your instructions to avoid ambiguity - this is critical for getting accurate results.\n\n**Example:**\n```\nInput:\n Elation patient ID: 12345\n Describe what appointment you would like to find: \"Find my next video appointment with status 'Confirmed' for 'Follow-Up'\"\n\nOutput:\n Appointment: {\n \"id\": 67890,\n \"scheduled_date\": \"2023-08-15T14:30:00Z\",\n \"status\": {\n \"status\": \"Confirmed\"\n },\n \"mode\": \"VIDEO\",\n \"reason\": \"Follow-Up\"\n }\n Appointment Exists: true\n Explanation: \"I found a video appointment scheduled for August 15, 2023 at 2:30 PM. The appointment is confirmed and is for a Follow-Up visit, which matches your search criteria. This is the earliest upcoming confirmed video appointment for a follow-up.\"\n```\n\n### ✨ Find Appointments\n\nThis AI-powered action finds **all appointments** for a patient based on a prompt in natural language. Want to know how many mental health sessions someone has had this year? Just ask — AI returns them all.\n\n**How it works:**\n1. All appointments, independent of their date or status, for the patient are retrieved from Elation.\n2. Based on the provided prompt, an LLM tries to find all appointments from the list of appointments that match the prompt.\n\n**What it needs (Inputs):**\n- `Elation patient ID` (Required): The numeric ID of the patient in Elation whose appointments you want to search.\n- `Describe the appointments to search for` (Required): A natural language description of the appointments you're looking for. Be as specific as possible about appointment types, timing, status, or other criteria.\n\n**What it gives back (Outputs):**\n- `Appointments`: Array of appointment objects that match your search criteria (in JSON format).\n- `Explanation`: A detailed explanation of why these appointments were selected, including the reasoning behind the matches.\n- `Appointment Counts By Status`: A summary of how many matching appointments were found in each status category (e.g., \"Scheduled\": 2, \"Completed\": 1).\n\n**Tips for best results:**\n- When you know exactly what to match (status, appointment type), put it in quotes (e.g., '\"Scheduled\"', '\"Office Visit\"') for exact matching.\n- For other criteria where you're less certain, provide descriptive instructions without quotes.\n- Include specific time ranges, such as \"all appointments in 2023\" or \"appointments from January to March\" when relevant.\n- Filter by appointment status: \"Cancelled,\" \"Completed,\" \"Scheduled,\" or \"Confirmed\" when relevant.\n- Be clear and specific in your instructions and avoid ambiguity - this is critical for getting accurate results.\n\n**Example:**\n```\nInput:\n Elation patient ID: 12345\n Describe the appointments to search for: \"Find all completed appointments with type 'Physical Exam' in the last 6 months\"\n\nOutput:\n Appointments: [\n {\n \"id\": 67890,\n \"scheduled_date\": \"2023-06-10T13:00:00Z\",\n \"status\": {\n \"status\": \"Completed\"\n },\n \"reason\": \"Physical Exam\",\n \"mode\": \"IN_PERSON\"\n },\n {\n \"id\": 67891,\n \"scheduled_date\": \"2023-03-15T09:30:00Z\",\n \"status\": {\n \"status\": \"Completed\"\n },\n \"reason\": \"Physical Exam\",\n \"mode\": \"IN_PERSON\"\n }\n ]\n Explanation: \"I found 2 completed physical exam appointments in the last 6 months. The first appointment was on June 10, 2023, and the second appointment was on March 15, 2023. Both appointments were in-person and are marked as completed in the system.\"\n Appointment Counts By Status: {\n \"Completed\": 2\n }\n```\n\n### ✨ Cancel Appointments\n\nThis AI-powered action uses AI to identify and cancel patient appointments based on natural language instructions. You can say, \"All follow-up appointments for next week\" and AI will identify and cancel the right ones for you.\n\n**How it works:**\n1. Retrieves all upcoming appointments for the patient from Elation\n2. Uses an LLM to interpret the prompt and identify which appointments should be canceled\n3. Processes the cancellation for matched appointments and handles partial success scenarios\n\n**What it needs (Inputs):**\n- `Elation patient ID` (Required): The numeric ID of the patient in Elation whose appointments you want to cancel.\n- `Describe the appointments you would like to cancel` (Required): Natural language instructions describing which appointments should be canceled. Be specific about criteria such as time period, appointment type, or provider.\n\n**What it gives back (Outputs):**\n- `Cancelled Appointments`: An array of appointment IDs that were successfully canceled.\n- `Explanation`: A detailed explanation of which appointments were canceled and why they matched your criteria.\n\n**Tips for best results:**\n- Use single or double quotes for exact matches. For example, '\"Follow-Up\"' will only match appointments with exactly that type.\n- When you know exactly what to match (appointment type, status), put it in quotes (e.g., '\"Scheduled\"', '\"Physical Exam\"') for exact matching.\n- For other criteria where you're less certain, provide descriptive instructions without quotes.\n- Be specific about the time frame: \"all appointments this week,\" \"appointments in July,\" etc.\n- You can target specific appointment types: \"all physical therapy appointments,\" \"follow-up visits\", etc.\n- Only future appointments with status \"Scheduled\" or \"Confirmed\" can be canceled.\n- If no appointments match your criteria, the action will explain why nothing was canceled.\n- For safety, highly specific criteria are recommended to avoid unintended cancellations.\n- Be clear and specific in your instructions to avoid ambiguity - this is critical for preventing accidental cancellations.\n\n**Example:**\n```\nInput:\n Elation patient ID: 12345\n Describe the appointments you would like to cancel: \"All appointments with status 'Scheduled' for office visits in the next two weeks.\"\n\nOutput:\n Cancelled Appointments: [67890, 67891]\n Explanation: \"I canceled 2 appointments based on your request:\n 1. Appointment #67890: Scheduled for June 5, 2023 at 2:00 PM, type: Office Visit\n 2. Appointment #67891: Scheduled for June 12, 2023 at 10:30 AM, type: Office Visit\n \n Both appointments were within the next two weeks and match the 'Office Visit' type and 'Scheduled' status as specified. The appointments were successfully canceled in the system and will need to be rescheduled after the patient returns from vacation.\"\n```\n\n### ✨ Update Patient Tags\n\nThis AI-powered action uses AI to manage patient tags in Elation based on natural language instructions. Want to mark someone for special attention? Just say it, and AI updates their tags in Elation.\n\n**How it works:**\n1. Retrieves existing patient tags from Elation\n2. Uses an LLM to interpret natural language instructions and determine required tag changes\n3. Updates patient tags in Elation according to the interpreted changes\n\n**What it needs (Inputs):**\n- `Elation patient ID` (Required): The numeric ID of the patient in Elation whose tags you want to update.\n- `Specify tags to add, remove, or modify` (Required): Natural language instructions explaining what tag changes you want to make. Be specific about which tags to add, remove, or modify.\n\n**What it gives back (Outputs):**\n- `Updated Tags`: A comma-separated list of all patient tags after your requested changes have been applied.\n- `Explanation`: A detailed explanation of what changes were made to the tags and why.\n\n**Tips for best results:**\n- When specifying new tags to add, use single quotes around tag names (e.g., 'Diabetes', 'High-Risk') for exact matching.\n- Case sensitivity and exact spelling matter when using quotes - 'Diabetes' and 'diabetes' will be treated as different tags.\n- Be explicit about which tags to remove or replace (e.g., \"Remove the 'Temporary' tag\").\n- You can include context to help the AI understand why tags are being modified.\n- To clear all tags, you can say \"Remove all tags\" or \"Clear all existing tags.\"\n- Due to Elation API limitations, clearing all tags is implemented by setting a single space tag (' '). This is the recommended workaround from Elation's team.\n- Tags must already exist in your Elation database to be added.\n- Be clear and specific in your instructions to avoid ambiguity - this is critical for getting accurate results.\n\n**Example:**\n```\nInput:\n Elation patient ID: 12345\n Specify tags to add, remove, or modify: \"Add the tags 'Diabetes' and 'CCM Program'. Remove the 'Inactive' tag if it exists.\"\n\nOutput:\n Updated Tags: \"Diabetes, CCM Program, Hypertension\"\n Explanation: \"I've made the following changes to the patient's tags:\n 1. Added 'Diabetes' tag as requested\n 2. Added 'CCM Program' tag as requested\n 3. No 'Inactive' tag was found, so no removal was necessary\n 4. The existing 'Hypertension' tag was preserved\"\n```\n\n### ✨ Check Patient Tags\n\nThis AI-powered action uses AI to check if a patient's tags match given instructions in natural language. Ask \"Is this patient marked as 'Diabetic' or 'Obese'?\" — AI checks and explains the answer.\n\n**How it works:**\n1. Retrieves existing patient tags from Elation\n2. Uses an LLM to interpret natural language instructions and check if the patient's tags match the requirements\n3. Returns a boolean result and explanation of the check\n\n**What it needs (Inputs):**\n- `Elation patient ID` (Required): The numeric ID of the patient in Elation whose tags you want to check.\n- `Instructions for checking tags` (Required): Natural language instructions explaining what tag conditions you want to verify. Be specific about what tags should or shouldn't be present.\n\n**What it gives back (Outputs):**\n- `Tags Found`: Boolean (true/false) indicating whether the patient's tags match your specified criteria.\n- `Explanation`: A detailed explanation of why the tags match or don't match your criteria, including which tags were found or missing.\n\n**Tips for best results:**\n- When specifying exact tag matches, use double quotes around tag names (e.g., \"Diabetes\", \"High-Risk\") for exact matching.\n- Case sensitivity and exact spelling matter when using quotes - \"Diabetes\" and \"diabetes\" will be treated as different tags.\n- You can use logical operators in your instructions, such as AND, OR, NOT (e.g., \"Check if the patient has 'Diabetes' AND 'Hypertension' tags\").\n- Complex conditions are supported, like \"either/or\", \"both\", \"not\", \"any of\", \"none of\".\n- Be precise about what combination of tags you're looking for to get accurate results.\n- The action provides reasoning about why the criteria was or wasn't met, which can be useful for debugging or explaining decisions.\n- Be clear and specific in your instructions to avoid ambiguity - this is critical for getting accurate results.\n\n**Example:**\n```\nInput:\n Elation patient ID: 12345\n Instructions for checking tags: \"Check if the patient has the tag 'CCM Program' but does not have the tag 'Excluded'. They need to be in the CCM program without exclusions to be eligible for our new service.\"\n\nOutput:\n Tags Found: true\n Explanation: \"The patient meets the specified criteria. They have the 'CCM Program' tag, indicating enrollment in the Chronic Care Management program. They do not have the 'Excluded' tag. The patient's complete tag list is: CCM Program, Diabetes, Hypertension. Based on these tags, the patient is eligible for the new service as they are in the CCM program without exclusions.\"\n```\n\n\n",
72
72
  "changelog": "# Elation Changelog\n\n## January 30, 2024\n\n- New actions\n - Post letter: Using patient and practice identifier, post a new letter to either Provider, Patient or associate it with an existing Referral.\n\n## October 3, 2023\n\n- The README is now more concise with less unneeded detail. A section on the particularities of Elation subscriptions (webhooks) was added.\n- Misc. updates to labels, descriptions, action fields order\n- Action updates\n - Create Non-Visit Note:\n - Simplify the action by removing some optional action fields (we can always expand later)\n - `document_date` and `chart_date` are now automatically set to the date of today so that the corresponding action fields could be removed\n - Create patient\n - `dob` is now a `date` field type (was a string)\n - You can pass a mobile phone number and email when creating a patient\n - Find physician\n - Only returns the physician ID instead of all the details of the physician. To retrieve the details one can use the new `Get physician` action\n - Update patient\n - `dob` is now a `date` field type (was a string)\n - We are now using `PATCH` instead of `PUT` which allows for a partial update, i.e. only update the fields that are needed.\n- New actions\n - Get physician: Using a physician identifier, retrieve a physician object from Elation.\n- Removed actions\n - Update Non-Visit Note\n- Webhooks\n - Fix the type of `patientId` in `patientCreatedOrUpdated` webhook\n - Added `appointmentCreatedOrUpdated` webhook\n\n## September 4, 2023\n\n- rename `onCreatePatient` webhook to `patientCreatedOrUpdated`\n- filter non `saved` actions for this webhook\n\n## August 21, 2023\n\n- make non-visit note text a large input (`StringType.TEXT`)\n\n## May 23, 2024\n\n- add patient_status.status to patient object in getPatient action\n- add status to updatePatient action\n"
73
73
  },
74
74
  "epic": {
@@ -160,7 +160,7 @@
160
160
  "changelog": "# Salesforce changelog"
161
161
  },
162
162
  "shelly": {
163
- "readme": "---\ntitle: Shelly\ndescription: Library of AI-powered actions\n---\n\n# Shelly\n\nShelly is a library of AI-powered actions for enhancing workflow automation and data processing. It leverages advanced language models and specialized APIs to provide intelligent automation capabilities.\n\n## Actions\n\n### Categorize Message\nUses AI to classify messages into predefined categories.\n\n- Analyzes message content using LLM\n- Matches against provided categories\n- Provides explanation for the categorization\n\nFeatures:\n- Supports custom category lists\n- Handles multiple languages\n- Returns \"None\" if no category matches\n- Includes detailed explanation of the classification\n\n### Generate Message\nCreates personalized messages using AI.\n\n- Takes communication objective and context\n- Generates appropriate message content\n- Formats according to stakeholder needs\n\nFeatures:\n- Customizable tone and style\n- Multi-language support\n- Personalization based on recipient data\n- Context-aware message generation\n\n### Medication From Image\nExtracts structured medication information from images.\n\n- Processes uploaded medication images\n- Uses specialized API for text extraction\n- Returns structured medication data\n\nFeatures:\n- Extracts medication names, dosages, and instructions\n- Supports various image formats\n- Returns both structured data and text summary\n- Includes error handling for unclear images\n\n### Review Medication Extraction\nAllows stakeholders to review and validate extracted medication information.\n\n- Displays extracted medication data\n- Provides interface for validation\n- Captures reviewer feedback\n\nFeatures:\n- Side-by-side image and data comparison\n- Validation workflow\n- Support for corrections and annotations\n\n### Summarize Care Flow\nProvides an AI-generated summary of the entire care flow progress.\n\n- Collects all relevant care flow data\n- Analyzes activities and outcomes\n- Generates a comprehensive summary\n\nFeatures:\n- Customizable for different stakeholders (e.g., clinicians, patients)\n- Optional focus areas through additional instructions\n- Includes relevant context and disclaimers\n\n### Summarize Form\nUses AI to generate concise summaries of form responses.\n\n- Retrieves the latest form data from the current step\n- Processes form responses with an LLM\n- Generates a structured summary in the specified format\n\nFeatures:\n- Supports bullet-point or paragraph format\n- Customizable language selection\n- Optional additional instructions for focused summaries\n- Includes context-aware disclaimers\n\n### Summarize Forms in Step\nSimilar to summarizeForm but processes all forms within a step.\n\nFeatures:\n- Combines data from multiple forms\n- Maintains context between form responses\n- Same formatting options as single form summaries\n\n### Summarize Track Outcome\nGenerates comprehensive summaries of track activities and outcomes.\n\n- Analyzes track data and activities\n- Identifies key outcomes and decisions\n- Creates structured summary\n\nFeatures:\n- Customizable focus areas\n- Support for specific outcome analysis\n- Flexible formatting options\n- Context-aware summaries",
163
+ "readme": "---\ntitle: Shelly\ndescription: Smart tools to help with communication, information, and summaries in your care flow.\n---\n\n# Shelly\n\nShelly provides a set of smart tools that use artificial intelligence (most precisely Large Language Models) to help automate tasks and manage information within your care flow.\n\nActions labeled as Beta are still experimental and should not be used for production use cases. They are safe for demo and experimenting. Others are production ready - go ahead and use them.\n\n## Actions\n\nBelow is a detailed look at each tool Shelly offers, what it needs to work, what it gives you back, and how to use it best.\n\n### Categorize Message (Beta)\n\nThis tool automatically analyzes and categorizes incoming messages based on a set of predefined categories that you specify. It's particularly useful for triaging patient communications and routing them to the appropriate part of your care flow based on content and urgency.\n\n**What it needs (Inputs):**\n- `Message` (Required): The text of the message that needs categorization.\n- `Categories` (Required): A list of predefined categories to classify against, separated by commas (e.g., \"Medication Refill,Appointment Request,Symptom Report,Insurance Question,Urgent Medical Issue\").\n\n**What it gives back (Outputs):**\n- `Category`: The determined ONE category from your predefined list. If no suitable match is found, it returns \"None\".\n- `Explanation`: A concise explanation (in HTML format) of the reasoning behind the categorization, which can be displayed to care team or used for auditing.\n\n**Tips for best results:**\n- Use distinct categories that align with your clinical workflows.\n- Categories should reflect common patient communication types in your practice.\n- Avoid ambiguity as current Categorize Message selects only one suitable category.\n\n**Example:**\n```\nInput:\n Message: \"Hello, I need a refill for my blood pressure medication (Lisinopril 20mg). I've been taking it for the past year, and I'm down to my last few pills. My prescription number is RX43821. Can you please send a refill request to my usual pharmacy? I haven't had any side effects or issues with this medication.\"\n Categories: \"Medication Refill Request,Appointment Scheduling,Non-urgent Symptom Report,Insurance/Billing Question,Urgent Medical Concern\"\n\nOutput:\n Category: \"Medication Refill Request\"\n Explanation: \"This message clearly states a need for medication refill, specifically for Lisinopril. The patient provides prescription details and mentions having no side effects or issues. The communication is straightforward and fits perfectly into the 'Medication Refill Request' category as the patient is explicitly asking for a prescription renewal rather than scheduling an appointment, reporting symptoms, asking about insurance, or expressing an urgent concern.\"\n```\n\n### Generate Message (Beta)\n\nThis tool creates contextually appropriate, personalized communications for patients or healthcare team members based on specific clinical situations and communication needs.\n\n**What it needs (Inputs):**\n- `Communication Objective` (Required): The clinical purpose and context of the message (e.g., \"Welcome the patient to our chronic care management program\", \"Gather initial health information before the first appointment\", \"Remind the patient about their upcoming medication refill deadline,\" \"Provide detailed preparation instructions for the upcoming colonoscopy procedure\").\n- `Personalization Input` (Optional): Clinical and demographic information to personalize the message (e.g., patient name, patient demographics, any other relevant information).\n- `Stakeholder` (Optional): The intended recipient's role (e.g., \"Patient\", \"Caregiver\", \"Primary Care Provider\", \"Specialist\"). Defaults to \"Patient\".\n- `Language` (Optional): The language for the message. Defaults to English.\n\n**What it gives back (Outputs):**\n- `Subject`: A clinically appropriate subject line for the message.\n- `Message`: The complete message content (in HTML format).\n\n**Tips for best results:**\n- Include relevant context in the communication objective.\n- Make sure to include all personalization details for better personalized outreach.\n\n**Example:**\n```\nInput:\n Communication Objective: \"Remind the patient about their upcoming appointment and provide preparation instructions (fasting 8 hours before, come 15 minutes early).\"\n Personalization Input: \"Patient Name: Emma Johnson, Appointment Date: July 15, 2023, Appointment Time: 2:30 PM, Provider: Dr. Sarah Chen, Appointment Type: Annual Physical Exam, Fasting Required: Yes (8 hours)\"\n Stakeholder: \"Patient\"\n Language: \"English\"\n\nOutput:\n Subject: \"Reminder: Your Appointment with Dr. Chen on July 15\"\n Message: \"<p>Dear Emma,</p><p>This is a friendly reminder about your upcoming appointment:</p><p><strong>Date:</strong> July 15, 2023<br><strong>Time:</strong> 2:30 PM<br><strong>Provider:</strong> Dr. Sarah Chen<br><strong>Type:</strong> Annual Physical Exam</p><p><strong>Important Preparation Instructions:</strong></p><ul><li>Please fast for 8 hours before your appointment (water is permitted)</li><li>Arrive 15 minutes early to complete any necessary paperwork</li><li>Bring your identification and insurance information</li></ul><p>We look forward to seeing you!</p><p>Best regards,<br>The Care Team</p>\"\n```\n\n### Medication From Image (Beta)\n\nThis tool uses advanced image processing and AI to extract structured medication information from images of prescription labels, medication packaging, or pill bottles.\n\n**What it needs (Inputs):**\n- `Image URL` (Required): The URL of the medication image to be processed.\n\n**What it gives back (Outputs):**\n- `Data`: Structured medication information in JSON format, including elements like medication name, dosage, frequency, and instructions.\n- `Medication As Text`: A formatted plain text version of the extracted medication information for easier human readability.\n\n**Tips for best results:**\n- Ensure adequate lighting and focus when capturing images.\n- Position the camera to capture the entire medication label clearly.\n- The tool can process various image types:\n - Prescription labels and bottles\n - Medication packaging and boxes\n - Handwritten or printed medication lists\n - Photos of medication tables or charts\n - Images containing multiple medications\n- For medication lists, ensure the text is clearly visible and the image is not blurry.\n- Multiple medications in a single image will be identified and separated when possible.\n\n**Example:**\n```\nInput:\n Image URL: \"https://example.com/rx_image.jpg\"\n\nOutput:\n Data: '{\"medications\":[{\"name\":\"Atorvastatin\",\"dosage\":\"40 mg\",\"frequency\":\"Once daily\",\"instructions\":\"Take in the evening\",\"prescriber\":\"Dr. Jennifer Wilson\",\"pharmacy\":\"CityHealth Pharmacy\",\"rxNumber\":\"RX80442553\",\"dateIssued\":\"2023-05-15\",\"refills\":\"2 remaining\"}]}'\n Medication As Text: \"Name: Atorvastatin\\nDosage: 40 mg\\nFrequency: Once daily\\nInstructions: Take in the evening\\nPrescriber: Dr. Jennifer Wilson\\nPharmacy: CityHealth Pharmacy\\nRx Number: RX80442553\\nDate Issued: 2023-05-15\\nRefills: 2 remaining\"\n```\n\n### Review Medication Extraction\n\nThis tool enables qualified clinical staff to review, validate, and if necessary, correct medication information extracted from images.\n\n**What it needs (Inputs):**\n- `Image URL` (Required): The URL of the medication image that was processed.\n- `Extracted Medication` (Required): The structured medication data generated by the Medication From Image action.\n\n**What it gives back (Outputs):**\n- `Reviewed Data`: The validated or corrected medication information in JSON format.\n- `Review Status`: The verification status (e.g., \"Verified Without Changes\", \"Corrected\", \"Rejected\").\n\n**Tips for best results:**\n- Assign this task to staff members with clinical medication knowledge.\n- The interface presents both the original image and extracted data side-by-side.\n- Corrections made during review are captured for quality improvement.\n- Consider implementing this as part of a medication reconciliation workflow.\n\n### Summarize Care Flow (Beta)\n\nThis tool generates comprehensive, contextualized summaries of a patient's progress through their care flow, highlighting key activities, routes taken, and outcomes.\n\n**What it needs (Inputs):**\n- `Additional Instructions` (Optional): Specific focus areas for the summary (e.g., \"Focus on form completions and reminder effectiveness,\" \"Summarize patient engagement patterns\").\n- `Stakeholder` (Optional): The intended audience (e.g., \"Care Coordinator\", \"Administrator\", \"Patient\", \"Provider\"). This affects terminology and detail level.\n\n**What it gives back (Outputs):**\n- `Summary`: A comprehensive summary of the care flow progress (in HTML format). All summaries include an AI-generated disclaimer for transparency and regulatory compliance.\n\n**Tips for best results:**\n- Use additional instructions to focus on specific care flow parts.\n- Specify the stakeholder to ensure appropriate terminology and detail level.\n\n**Example:**\n```\nInput:\n Additional Instructions: \"Focus on patient engagement with the intake forms, summarize the reminder sequence and when forms were completed.\"\n Stakeholder: \"Care Coordinator\"\n\nOutput:\n Summary: \"<p><strong>Important Notice:</strong> This is an AI-generated summary for the 'New Patient Intake' care flow (ID: cf_12345).</p><p><strong>Summary: Patient Intake Process</strong></p><p>Patient Alex Morgan (38) was enrolled in the New Patient Intake process on June 3, 2023. The care flow included three required forms: Personal Information, Medical History, and Insurance Verification.</p><p><strong>Form Completion Timeline:</strong></p><ul><li><strong>Personal Information Form:</strong> Completed immediately during enrollment (June 3)</li><li><strong>Medical History Form:</strong> Not completed initially<ul><li>First reminder sent: June 5 via email</li><li>Second reminder sent: June 8 via text message</li><li>Form completed: June 9 (after 2 reminders)</li></ul></li><li><strong>Insurance Verification Form:</strong> Not completed initially<ul><li>First reminder sent: June 5 via email</li><li>Second reminder sent: June 8 via text message</li><li>Third reminder sent: June 12 via phone call</li><li>Form completed: June 12 (after 3 reminders during call)</li></ul></li></ul><p><strong>Engagement Analysis:</strong> Patient responded to text message reminders most effectively (completed Medical History form within 24 hours of text reminder). The Insurance Verification form required additional support, which was successfully provided during the phone call reminder.</p><p><strong>Next Steps:</strong> All required intake forms have been completed. Patient is now ready for their first appointment on June 15, 2023.</p>\"\n```\n\n### Summarize Form\n\nThis tool analyzes patient-reported data from forms and generates concise, relevant summaries that highlight key findings in question-answer pairs. It focuses on the last form in the step before this AI Action is included in.\n\n**What it needs (Inputs):**\n- `Summary Format` (Required): Preferred format for the summary (\"Bullet Points\" or \"Paragraph\").\n- `Language` (Optional): Desired language for the summary. If not set, it automatically detects the form's language.\n- `Additional Instructions` (Optional): Any additional instructions like specific questions to focus on, desired level of detail, information to emphasize or exclude, etc.\n\n**What it gives back (Outputs):**\n- `Summary`: A formatted summary of form responses (in HTML format). All summaries include an AI-generated disclaimer for transparency and regulatory compliance.\n\n**Tips for best results:**\n- Use bullet point format for symptom reports and clinical findings.\n- Use paragraph format for narrative elements like patient experiences.\n- Additional instructions can help prioritize significant responses and level of details for your use case needs.\n- Remember this is a summary, not a transcript - question-answer pairs from the form won't appear verbatim, and the AI will intelligently condense unnecessary details while preserving important information.\n\n**Example:**\n```\nInput:\n Summary Format: \"Bullet Points\"\n Language: \"English\"\n Additional Instructions: \"Highlight any pain scores >5, medication side effects, and changes since last assessment. Flag any responses requiring urgent clinical attention.\"\n\nOutput:\n Summary: \"<p><strong>Important Notice:</strong> This is an AI-generated summary for form responses in version 2.3 of the 'Post-Surgical Follow-up' care flow (ID: cf_789).</p><p><strong>Post-Operative Assessment Summary:</strong></p><ul><li><strong>Pain Assessment</strong>: Reports pain level of 7/10 at surgical site <span style='color:red'>(CLINICAL ATTENTION ADVISED)</span></li><li>Pain characteristics: Described as 'sharp and throbbing,' worse with movement</li><li>Pain management: Taking prescribed oxycodone-acetaminophen as directed, but reporting inadequate relief</li><li><strong>Incision Site</strong>: Reports increasing redness and warmth around incision since yesterday <span style='color:red'>(CLINICAL ATTENTION ADVISED)</span></li><li>Drainage: Minimal serous drainage, no purulence reported</li><li><strong>Functional Status</strong>: Ambulating with assistance, able to perform basic ADLs with moderate difficulty</li><li><strong>Medication Side Effects</strong>: Reports nausea and constipation with pain medication</li><li><strong>Vital Signs</strong> (self-reported): Temperature 99.8°F (37.7°C), slightly elevated from last assessment (98.6°F)</li><li><strong>Change Since Last Assessment</strong>: Patient reports increased pain and incision site changes over past 24 hours</li></ul>\"\n```\n\n### Summarize Forms in Step\n\nThis tool analyzes data from multiple forms completed in a single step and creates summaries for each form. It processes all forms in the current step where this AI Action is included and organizes them by form title.\n\n**What it needs (Inputs):**\n- `Summary Format` (Required): Preferred format for the summary (\"Bullet Points\" or \"Paragraph\").\n- `Language` (Optional): Desired language for the summary. If not set, it automatically detects the predominant language.\n- `Additional Instructions` (Optional): Any additional instructions like specific questions to focus on, desired level of detail, information to emphasize or exclude, etc.\n\n**What it gives back (Outputs):**\n- `Summary`: A formatted collection of all form responses in the step, organized by form title (in HTML format). All summaries include an AI-generated disclaimer for transparency and regulatory compliance.\n\n**Tips for best results:**\n- Particularly valuable for multi-form assessments that gather related information.\n- Reduces the need to read through multiple form submissions separately.\n- Remember this is a summary, not a transcript - question-answer pairs from the forms won't appear verbatim, and the AI will intelligently condense unnecessary details while preserving important information.\n\n**Example:**\n```\nInput:\n Summary Format: \"Bullet Points\"\n Language: \"Default\"\n Additional Instructions: \"Highlight key symptoms and lifestyle factors that might affect the patient's condition.\"\n\nOutput:\n Summary: \"<p><strong>Important Notice:</strong> This is an AI-generated summary for form responses in the 'Diabetes Management' care flow (ID: cf_789).</p>\n\n<p><strong>Blood Glucose Monitoring Form:</strong></p>\n<ul>\n<li>Morning readings averaging 145 mg/dL (target: <120 mg/dL)</li>\n<li>Evening readings within normal range (average 115 mg/dL)</li>\n<li>Two hypoglycemic events reported this week (both after exercise)</li>\n<li>Consistent monitoring schedule (14/14 planned measurements completed)</li>\n</ul>\n\n<p><strong>Nutrition Assessment Form:</strong></p>\n<ul>\n<li>Carbohydrate intake: 45-60g per meal, within recommended range</li>\n<li>Reported difficulty avoiding carbs at dinner social events</li>\n<li>Successfully increased vegetable consumption to 3-4 servings daily</li>\n<li>Water intake below recommendation (4 glasses vs. recommended 8)</li>\n</ul>\n\n<p><strong>Physical Activity Log:</strong></p>\n<ul>\n<li>Walking: 20 minutes daily (consistent pattern)</li>\n<li>Strength training: 2 sessions this week (target: 3 sessions)</li>\n<li>Reports joint pain in knees after longer walking sessions</li>\n<li>Activity level increases on weekends, with lower glucose readings noted after weekend activities</li>\n</ul>\"\n```\n\n### Summarize Track Outcome\n\nThis tool analyzes the progression through a specific track in a care flow, highlighting key routes taken and outcomes.\n\n**What it needs (Inputs):**\n- `Instructions` (Optional): Specific focus for the analysis (e.g., \"Summarize outcome, focus on semantic information in form and messages\").\n\n**What it gives back (Outputs):**\n- `Outcome Summary`: A comprehensive summary of the track's progression and outcomes (in HTML format).\n\n**Tips for best results:**\n- Make sure you build a care flow in a way that AI action can leverage semantic information (meaningful names of steps, labels, meaningful names of actions)\n- NOTE: AI action does not have access to transition logic; it only can see which routes were taken and which steps were discarded.\n\n**Example:**\n```\nInput:\n Instructions: \"Summarize outcome, focus on semantic information in form and messages\"\n\nOutput:\n Outcome Summary: \"<p><strong>Important Notice:</strong> This is an AI-generated summary for the 'Patient Symptom Assessment' care flow (ID: cf_567).</p><p><strong>Track Outcome Summary:</strong></p><p><strong>Outcome:</strong> The initial assessment form was completed, summarizing the patient's symptoms and concerns.</p><p><strong>Details Supporting the Outcome:</strong></p><ul><li>The initial assessment form was presented to the patient, Samantha Joe, who provided responses indicating symptoms of fever, fatigue, and shortness of breath, with a severity level of 8.</li><li>The patient confirmed having experienced these symptoms before and expressed a need for help with anxiety.</li><li>The form responses were summarized, highlighting the patient's primary concerns and symptom details.</li><li>The process concluded with the successful completion of the form summary.</li></ul>\"\n```\n\n\n",
164
164
  "changelog": "# Shelly changelog"
165
165
  },
166
166
  "stripe": {
@@ -3,4 +3,8 @@ export declare const dataPoints: {
3
3
  key: string;
4
4
  valueType: "string";
5
5
  };
6
+ jsonData: {
7
+ key: string;
8
+ valueType: "json";
9
+ };
6
10
  };
@@ -6,5 +6,9 @@ exports.dataPoints = {
6
6
  key: 'data',
7
7
  valueType: 'string',
8
8
  },
9
+ jsonData: {
10
+ key: 'jsonData',
11
+ valueType: 'json',
12
+ },
9
13
  };
10
14
  //# sourceMappingURL=dataPoints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/medplum/actions/executeBot/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
1
+ {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/medplum/actions/executeBot/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,QAAQ;KACpB;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA"}
@@ -21,6 +21,7 @@ exports.executeBot = {
21
21
  await onComplete({
22
22
  data_points: {
23
23
  data: JSON.stringify(res),
24
+ jsonData: JSON.stringify(res),
24
25
  },
25
26
  });
26
27
  },
@@ -1 +1 @@
1
- {"version":3,"file":"executeBot.js","sourceRoot":"","sources":["../../../../../extensions/medplum/actions/executeBot/executeBot.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AAErE,qCAAqE;AACrE,uCAAwD;AAE3C,QAAA,UAAU,GAInB;IACF,GAAG,EAAE,YAAY;IACjB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,uBAAuB;IACpC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAiB,EAAE;QACvE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,kCAA0B,EAAC;YACrE,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,UAAU,CACrC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,kBAAkB,CACnB,CAAA;QAED,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;aAC1B;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"executeBot.js","sourceRoot":"","sources":["../../../../../extensions/medplum/actions/executeBot/executeBot.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AAErE,qCAAqE;AACrE,uCAAwD;AAE3C,QAAA,UAAU,GAInB;IACF,GAAG,EAAE,YAAY;IACjB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,uBAAuB;IACpC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAiB,EAAE;QACvE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,kCAA0B,EAAC;YACrE,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,UAAU,CACrC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,kBAAkB,CACnB,CAAA;QAED,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;aAC9B;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -19,7 +19,7 @@ const utils_1 = require("../../../../src/utils");
19
19
  exports.categorizeMessage = {
20
20
  key: 'categorizeMessage',
21
21
  category: extensions_core_1.Category.WORKFLOW,
22
- title: 'Categorize Message',
22
+ title: 'Categorize Message (Beta)',
23
23
  description: 'Categorizes messages into predefined categories with explanation.',
24
24
  fields: config_1.fields,
25
25
  previewable: false,
@@ -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,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"}
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,2BAA2B;IAClC,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"}
@@ -19,7 +19,7 @@ const constants_1 = require("../../../../src/lib/llm/openai/constants");
19
19
  exports.generateMessage = {
20
20
  key: 'generateMessage',
21
21
  category: extensions_core_1.Category.WORKFLOW,
22
- title: 'Generate Message',
22
+ title: 'Generate Message (Beta)',
23
23
  description: 'Generate a personalized message',
24
24
  fields: config_1.fields,
25
25
  previewable: false,
@@ -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,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"}
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,yBAAyB;IAChC,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"}
@@ -10,7 +10,7 @@ const lodash_1 = require("lodash");
10
10
  exports.medicationFromImage = {
11
11
  key: 'medicationFromImage',
12
12
  category: extensions_core_1.Category.WORKFLOW,
13
- title: 'Extract medication from image',
13
+ title: 'Extract medication from image (Beta)',
14
14
  description: 'Generates structured medication list from picture ',
15
15
  fields: config_1.fields,
16
16
  previewable: false,
@@ -1 +1 @@
1
- {"version":3,"file":"medicationFromImage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/medicationFromImage/medicationFromImage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,mCAAuD;AACvD,qCAAqE;AACrE,uCAAsD;AACtD,iFAAiE;AACjE,mCAAkC;AAErB,QAAA,mBAAmB,GAI5B;IACF,GAAG,EAAE,qBAAqB;IAC1B,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,oDAAoD;IACjE,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,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACpB,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAC1B,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAC7B,GAAG,MAAM,IAAA,iCAA2B,EAAC;YACpC,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,sBAAsB,GAAG,IAAI,4BAAsB,EAAE,CAAA;YAE3D,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,0BAA0B,CAAC;gBACnE,QAAQ;gBACR,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;aACnC,CAAC,CAAA;YAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW;iBACtC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClB,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACpB,OAAO,GAAG,IAAA,kBAAS,EAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAA;gBACtC,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAA;YACf,CAAC,CAAC;iBACD,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE1B,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;qBAC9B,CAAC;oBACF,gBAAgB;iBACjB;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mCAAU,EAAE,CAAC;gBAChC,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE;gCACJ,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,YAAY,EAAE;6BACvE;4BACD,KAAK,EAAE;gCACL,QAAQ,EAAE,cAAc;gCACxB,OAAO,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,YAAY,EAAE;6BAC5E;yBACF;qBACF;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YAED,gDAAgD;YAChD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"medicationFromImage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/medicationFromImage/medicationFromImage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,mCAAuD;AACvD,qCAAqE;AACrE,uCAAsD;AACtD,iFAAiE;AACjE,mCAAkC;AAErB,QAAA,mBAAmB,GAI5B;IACF,GAAG,EAAE,qBAAqB;IAC1B,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,sCAAsC;IAC7C,WAAW,EAAE,oDAAoD;IACjE,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,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACpB,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAC1B,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAC7B,GAAG,MAAM,IAAA,iCAA2B,EAAC;YACpC,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,sBAAsB,GAAG,IAAI,4BAAsB,EAAE,CAAA;YAE3D,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,0BAA0B,CAAC;gBACnE,QAAQ;gBACR,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;aACnC,CAAC,CAAA;YAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW;iBACtC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClB,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACpB,OAAO,GAAG,IAAA,kBAAS,EAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAA;gBACtC,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAA;YACf,CAAC,CAAC;iBACD,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE1B,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;qBAC9B,CAAC;oBACF,gBAAgB;iBACjB;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mCAAU,EAAE,CAAC;gBAChC,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE;gCACJ,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,YAAY,EAAE;6BACvE;4BACD,KAAK,EAAE;gCACL,QAAQ,EAAE,cAAc;gCACxB,OAAO,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,YAAY,EAAE;6BAC5E;yBACF;qBACF;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YAED,gDAAgD;YAChD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -11,7 +11,7 @@ const constants_2 = require("../../../../src/lib/llm/openai/constants");
11
11
  exports.summarizeCareFlow = {
12
12
  key: 'summarizeCareFlow',
13
13
  category: extensions_core_1.Category.WORKFLOW,
14
- title: 'Summarize Care Flow',
14
+ title: 'Summarize Care Flow (Beta)',
15
15
  description: 'Summarize the care flow up until now',
16
16
  fields: config_1.fields,
17
17
  previewable: false,
@@ -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,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"}
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,4BAA4B;IACnC,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"}
@@ -8,7 +8,7 @@ const extensions_core_1 = require("@awell-health/extensions-core");
8
8
  const actions_1 = __importDefault(require("./actions"));
9
9
  exports.shelly = {
10
10
  key: 'shelly',
11
- title: 'Shelly (Beta)',
11
+ title: 'Shelly',
12
12
  description: 'Library of AI-powered actions',
13
13
  icon_url: 'https://res.cloudinary.com/da7x4rzl4/image/upload/v1726037275/Awell%20Extensions/shelly_logo.png',
14
14
  category: extensions_core_1.Category.WORKFLOW,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/shelly/index.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,wDAA+B;AAElB,QAAA,MAAM,GAAc;IAC/B,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,+BAA+B;IAC5C,QAAQ,EACN,kGAAkG;IACpG,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,MAAM,EAAE;QACN,UAAU,EAAE,4BAAU,CAAC,KAAK;KAC7B;IACD,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAP,iBAAO;CACR,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/shelly/index.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,wDAA+B;AAElB,QAAA,MAAM,GAAc;IAC/B,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,+BAA+B;IAC5C,QAAQ,EACN,kGAAkG;IACpG,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,MAAM,EAAE;QACN,UAAU,EAAE,4BAAU,CAAC,KAAK;KAC7B;IACD,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAP,iBAAO;CACR,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awell-health/awell-extensions",
3
- "version": "2.0.254",
3
+ "version": "2.0.256",
4
4
  "packageManager": "yarn@4.5.3",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": {