mouse55/oe-module-custom-sms-reminders

OpenEMR 定制短信提醒模块

v1.0.0 2022-06-14 19:56 UTC

This package is auto-updated.

Last update: 2024-09-19 20:32:08 UTC


README

###目标:### 这个项目最初是出于学习经验而开始的,基于 Stephen Nielson 的 adunsulag/oe-module-custom-skeleton 项目。可能还有更高效的方法来完成这个功能,但这个项目至少在安装和使用方面有一定的便利性和灵活性,至少对我来说是很有吸引力的。主要目标是创建一个易于管理的功能,以便自动发送短信提醒给预约在即的患者。显然,降低成本也是一个目标。最后,我的诊所有一大部分西班牙语患者,所以我需要能够相对无缝地发送至少一种额外的语言的短信(但最好能够根据不同的需求添加不同和/或更多的语言)。在很大程度上,这一切都已经实现了。

###要求:### 首先,除非你有可用的蜂窝调制解调器并且不介意重写一些代码来使用它(并且还需要付费保持一条专用电话线用于此过程),否则按照目前编写的代码,需要与 textbelt 在 www.textbelt.com 建立付费关系。如果大量购买,短信(在美国)可以以大约每条短信0.01美元的价格发送。

其次,我的办公室使用 Ubuntu 服务器。至少需要对命令行有基本的熟悉才能正确设置。这个模块在我的 Mac 上也能运行,我假设可以通过任务计划程序对其进行修改以在 Windows 服务器上运行。

需要对 OpenEMR 数据库进行一些小的修改。如果你感兴趣,可以通过查看包含在此处的 table.sql 文件来查看这些修改。它们都不会干扰 OpenEMR 的标准安装,而且它们很可能不会干扰你已有的任何自定义设置。

我包含了一些用于实验的示例消息。你可能需要编写一些自己的消息。仔细考虑你如何想做到这一点。这个国家有一些规定,规定了哪些类型的信息可以在不安全的中介(如短信)上发布。由于我默认设置为允许所有患者接收提醒短信(如果需要,可以逐个案例覆盖),我通常尝试编写非常简短和简单的消息,只包含患者的首字母和即将到来的访问日期/时间。

需要 php CURL 模块才能正确地与 textbelt 交互(还有其他方法 - 请参考 textbelt.com 网站,并在必要时重新编写 sms_textbelt.php)。我相信这已经在我的 Ubuntu 服务器上安装了。如果没有,可以很容易地用以下命令安装:

sudo apt-get install php-curl

###安装:### 在命令行中,导航到 openemr 目录并输入以下命令:$ composer require mouse55/oe-module-custom-sms-reminders

之后,以管理员的身份登录 OpenEMR 并导航到模块>管理模块>未注册。点击注册,然后从已注册选项卡点击安装,然后启用。

在此阶段,导航到“管理”>“全局”>“短信提醒”。确保服务已启用,并输入从textbelt.com获得的网关API密钥。出于测试目的,您可以使用“textbelt”作为密钥(但这将限制您每天发送一条短信)。或者,您可以在“真实”的付费密钥后追加“_test”,系统将运行到完成,但实际不会发送短信(这限制了其测试效用)。最后,在“短信发送前小时数”中填写一个合适的小时数,然后保存。

现在,导航到“管理”>“自定义短信提醒”并设置一些消息。此页面是仿照“管理”>“编码”>“代码”页面设计的,应该至少有些熟悉。我已包括两个可以使用的示例消息,可以进行编辑或简单地删除并替换。请注意,“活动”消息不能直接编辑。它们需要先停用并保存(更新)为这样的状态。编辑完成后,可以重新激活它们。另外,可以保存任意数量的消息,但每种语言只能有一个活动消息。

最后,您需要编辑crontab文件,以指示系统根据您的预定时间表向符合条件的接收者发送消息。为此,在命令提示符下输入以下内容:

sudo nano /etc/crontab

并在文件末尾追加以下行:

30 08-19 * * * root /usr/bin/php /var/www/html/openemr/interface/modules/custom_modules/oe-module-custom-sms-reminders/public/cron_textbelt_reminders.php

例如,这将指示cron每天在早上7:30到晚上7:30的半小时自动运行cron_textbelt_reminders.php文件。将“短信发送前小时数”参数设置为48(仅为示例),这将指示系统在预定预约时间前不超过48小时发送这些消息。

如果您的php可执行文件在不同的位置,您必须运行

whereis php

以定位它,并用结果替换crontab文件中的/usr/bin/php。另外,如上所述,cron_textbelt_reminders.php文件将以root用户身份运行。然而,它也可能以另一个非管理员用户身份运行,在这种情况下,可能需要调整文件的读取权限。

###随机想法:### 发送消息的语言选择取决于在“人口统计”>“统计”中为患者选择的语言。如果没有选择语言,则默认为英语。

如果您没有注意到,在“人口统计”>“选择”的底部添加了一个额外的字段(“允许短信提醒”)。如果患者反对接收短信,他们可以通过将此设置为该患者的“NO”来单独排除该服务。

如果您想暂时关闭服务,请在“管理”>“全局”>“短信提醒”中取消选中“启用短信服务提醒”。如果您想完全删除服务,请卸载模块(尽管在这种情况下,数据库的更改将保留,因此人口统计>选择中的上述可见更改仍然存在,但它将没有任何效果)。