Download the PHP package opencoreemr/oce-module-sinch-conversations without Composer

On this page you can find all versions of the php package opencoreemr/oce-module-sinch-conversations. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package oce-module-sinch-conversations

OpenEMR Sinch Conversations Module

A HIPAA-compliant, omnichannel patient communication module for OpenEMR using the Sinch Conversations API.

Features

Requirements

Installation

Important Note About Uninstall/Reinstall

OpenEMR does not automatically drop module tables on uninstall. If you need to reinstall the module cleanly:

This will drop all module tables and allow a clean reinstallation.

Via Composer (Recommended)

  1. Navigate to your OpenEMR installation directory
  2. Install the module via Composer:

  3. Log into OpenEMR as an administrator
  4. Navigate to Administration > Modules > Manage Modules
  5. Find "OpenCoreEMR Sinch Conversations" in the list and click Register
  6. Click Install
  7. Click Enable

Manual Installation

  1. Download the latest release
  2. Extract to interface/modules/custom_modules/oce-module-sinch-conversations (relative to your OpenEMR root directory)
  3. Follow steps 3-7 from the Composer installation

Sinch Provisioning CLI

The module includes a CLI tool for managing Sinch configuration programmatically (apps, webhooks, channels). This is useful for:

Quick Start:

📖 Full documentation: See CLI-PROVISIONING.md for complete CLI documentation and API client usage.

Configuration

  1. Navigate to Administration > Globals > OpenCoreEMR Sinch Conversations Module
  2. Configure the following settings:

    • Sinch Project ID: Your Sinch project ID
    • Sinch App ID: Your Sinch app ID
    • API Key: Your Sinch API key (will be encrypted)
    • API Secret: Your Sinch API secret (will be encrypted)
    • API Region: Select your preferred region (default: 'us')
    • Default Channel: SMS, WhatsApp, or RCS
    • Clinic Name: Your clinic name (appears in all messages)
    • Clinic Phone: Your main clinic phone number
  3. Save the settings
  4. Test the connection using the "Test API Connection" button

Usage

Patient Opt-In

CRITICAL: Patients must opt in before receiving any messages.

Methods for collecting consent:

  1. Patient Portal: Add opt-in checkbox during portal registration
  2. In-Person: Collect consent on intake forms
  3. Web Form: Dedicated consent form on clinic website

When a patient opts in, the system will automatically send the required confirmation:

Sending Messages

Individual Messages

Messages are sent automatically based on triggers:

Or manually from the module interface:

  1. Navigate to Modules > Sinch Conversations
  2. Click Send Message
  3. Select patient
  4. Choose template
  5. Preview and send

Batch Messages

For announcements to multiple patients:

  1. Navigate to Modules > Sinch Conversations
  2. Click Batch Messages
  3. Select patient cohort (all patients, age range, etc.)
  4. Choose template (office closure, wellness campaign, etc.)
  5. Preview and schedule/send

Viewing Conversations

  1. Navigate to Modules > Sinch Conversations
  2. View inbox with all conversations
  3. Click Refresh to check for new patient replies
  4. Click conversation to view full thread
  5. Reply to patient messages

Keyword Responses (HELP, STOP)

The system automatically handles patient keyword responses:

Keyword Action Response
STOP Opt-out patient "You have been unsubscribed from our text notifications..."
START Re-subscribe patient "You have been re-subscribed to text notifications..."
HELP Provide assistance "Text notifications from {{ clinic_name }}. For assistance, call..."

Supported opt-out keywords: STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT Supported opt-in keywords: START, UNSTOP, SUBSCRIBE

Legal Requirements & Disclaimers

⚠️ Business Associate Agreement (BAA) Required

IMPORTANT: This module uses the Sinch Conversations API to send text messages to patients. You MUST have a Business Associate Agreement (BAA) with Sinch before using this module in production with patient data.

OpenCoreEMR has a BAA with Sinch and has received compliance approval for the message templates included in this module.

If you are not using this module through OpenCoreEMR, you must:

  1. Execute your own BAA with Sinch before sending any patient messages
  2. Submit your message templates to Sinch for compliance review
  3. Obtain approval before using templates in production
  4. Maintain proper consent records for all patients

To establish a BAA with Sinch:

TCPA & HIPAA Compliance

Before sending any SMS messages, you MUST:

1. Obtain Prior Express Written Consent

You must obtain prior express written consent from patients before sending any text messages. This consent must:

Example Consent Language:

I consent to receive text message notifications from [Clinic Name] at the phone number provided above. I understand that these messages may include appointment reminders, test result notifications, billing reminders, and other healthcare-related communications. I understand that message and data rates may apply, and message frequency varies. I can opt out at any time by replying STOP.

2. Document Consent

You must maintain records of:

3. Never Include PHI in SMS

Standard SMS is not encrypted. You must NEVER include Protected Health Information such as:

Instead: Use the approved templates that direct patients to the secure patient portal.

Good: "Your test results are available. Log in to view: [portal link]" ❌ Bad: "Your cholesterol test came back at 245 mg/dL"

4. Honor Opt-Out Requests Immediately

5. Identify Yourself in Every Message

Every message must start with your clinic name:

Good: "Example Clinic: Your appointment is tomorrow..." ❌ Bad: "Your appointment is tomorrow..."

6. Include Opt-Out Instructions

Every message must include opt-out instructions:

Required: "Reply STOP to opt-out"

Required Initial Opt-In Confirmation

When a patient first opts in, you MUST send this confirmation message:

This message is required by carriers (CTIA) and the TCPA. The system sends it automatically when a patient opts in.

Approved Message Templates

All message templates included in this module have been reviewed and approved by Sinch for use by OpenCoreEMR under our BAA. These templates are:

Template Categories:

  1. Initial Opt-In Confirmation (required)
  2. Appointment Reminders (high-compliance version)
  3. Telehealth Appointment Links
  4. Missed Appointment Follow-Up
  5. Pre-Visit Instructions
  6. Portal Notifications (new messages, test results)
  7. Billing Reminders (statement ready, balance due)
  8. Preventive Care / Wellness Reminders
  9. Public Health Announcements (flu shots, etc.)
  10. Office Closure / Emergency Updates
  11. Post-Visit Feedback Surveys

If you create custom templates, you MUST submit them to Sinch for compliance review before using them in production.

See TEMPLATE-IMPLEMENTATION-PLAN.md for complete template details.

Message Timing Restrictions

Best practices for send times:

No Warranty / Use at Your Own Risk

This open-source software is provided "AS IS" without warranty of any kind, express or implied. You are solely responsible for ensuring your use of this module complies with:

STRONGLY RECOMMENDED: Consult with legal counsel experienced in healthcare compliance before deploying this module in a production environment.

Security

Architecture

Polling-Based (No Webhooks)

This module uses a polling architecture instead of webhooks:

Benefits:

How it works:

  1. Provider clicks "Refresh" or loads inbox
  2. Module polls Sinch API for new messages
  3. Stores new messages in local database
  4. Displays updated inbox

See POLLING-ARCHITECTURE.md for detailed implementation.

Development

Development Taskfile

This module includes a Taskfile for common development tasks:

Common tasks:

Docker Development Environment

Quick setup for local module development (or just run task setup):

All local changes are immediately reflected - no rebuild needed! See docker/README.md for details.

Common Docker Commands

Note: We use docker compose exec to run commands in already-running containers:

Troubleshooting Docker Issues

Container won't start:

OpenEMR installer keeps running:

Changes not showing up:

Database issues:

Port conflicts:

Module Development in Docker

Installing module in OpenEMR:

  1. Access OpenEMR at http://localhost:PORT
  2. Login as admin/pass
  3. Navigate to Administration > Modules > Manage Modules
  4. Find "oce-module-sinch-conversations" and click Register
  5. Click Install then Enable

Testing module changes:

Running tests inside container:

Debugging:

PHI-Free Development

60-70% of this module can be developed without any PHI:

Testing without patient data:

See PHI-ANALYSIS.md for complete development approach.

Running Pre-Commit Checks

Architecture Patterns

This module follows OpenEMR's modern architecture:

See CLAUDE.md for complete architecture guide.

Documentation

Support

OpenCoreEMR Customers

For support with this module:

For Sinch BAA or compliance questions:

Other Users

For technical issues with this module:

For Sinch BAA or compliance:

For legal/compliance advice:

Contributing

This is a complex project with strict compliance requirements. Contributions should:

Before submitting a PR:

  1. Run pre-commit run -a and fix all issues
  2. Test with Sinch sandbox/test environment
  3. Update documentation if adding features
  4. Ensure no PHI in code, comments, or commits

License

GNU General Public License v3.0 or later

Credits

Developed by OpenCoreEMR Inc

Disclaimer

This module is designed to help healthcare organizations communicate with patients via text messaging in a HIPAA-compliant manner. However, the ultimate responsibility for compliance rests with the organization using this software.

You must:

OpenCoreEMR Inc provides this software "as is" and makes no warranties regarding compliance with any laws or regulations.


All versions of oce-module-sinch-conversations with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
ext-curl Version *
ext-date Version *
ext-filter Version *
ext-json Version *
guzzlehttp/guzzle Version ^7.0
opencoreemr/oce-lib-module-config Version ^0.9
openemr/oe-module-installer-plugin Version ^0.1.5
psr/http-message Version ^1.1 || ^2.0
psr/log Version ^1.0 || ^2.0 || ^3.0
symfony/console Version ^6.4 || ^7.0
symfony/event-dispatcher Version ^6.4 || ^7.0
symfony/http-foundation Version ^6.4 || ^7.0
symfony/yaml Version ^6.4 || ^7.0
twig/twig Version ^3.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package opencoreemr/oce-module-sinch-conversations contains the following files

Loading the files please wait ...