Skip to content

Deploying OpenEMR

Introduction

OpenEMR is an open-source electronic health records (EHR) and medical practice management solution used by healthcare providers worldwide. As an ONC certified Complete EHR, OpenEMR meets the requirements for meaningful use and provides comprehensive features for managing patient care, billing, and practice operations.

With over 100 million patient records managed globally, OpenEMR is one of the most widely deployed open-source EHR solutions. The platform supports multi-language interfaces and is used in medical facilities ranging from small clinics to large hospital networks.

Key features of OpenEMR include:

  • Electronic Health Records: Complete patient charts with history, medications, and allergies
  • Scheduling: Patient appointment scheduling with calendar views
  • Medical Billing: Claims processing, ERA posting, and payment tracking
  • E-Prescribing: Electronic prescription management with EPCS support
  • Patient Portal: Secure patient access to records and messaging
  • Clinical Decision Support: Alerts, reminders, and clinical guidelines
  • Lab Integration: Electronic lab orders and results management
  • Document Management: Scan and store patient documents
  • Reporting: Clinical, financial, and operational reports
  • HIPAA Compliant: Built-in security and audit logging
  • HL7/FHIR Support: Healthcare data exchange standards
  • Multi-Language: Available in over 30 languages

This guide walks through deploying OpenEMR on Klutch.sh using Docker.

Why Deploy OpenEMR on Klutch.sh

Deploying OpenEMR on Klutch.sh provides healthcare organizations with EHR infrastructure:

Data Control: Maintain control over patient data and healthcare records.

Compliance Ready: HTTPS by default helps meet security requirements for healthcare data.

Persistent Storage: Store patient records and documents with persistent volumes.

Scalable Resources: Allocate resources based on practice size and patient volume.

Cost Effective: Avoid per-provider licensing fees of proprietary EHR systems.

Prerequisites

Before deploying OpenEMR on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your deployment
  • A MySQL or MariaDB database instance
  • Understanding of healthcare compliance requirements (HIPAA, etc.)
  • Proper security measures for healthcare data

Deploying OpenEMR on Klutch.sh

    Set Up Your Database

    Deploy a MySQL or MariaDB database on Klutch.sh with encryption at rest for healthcare compliance.

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM openemr/openemr:7.0.2
    # OpenEMR configuration is done through environment variables
    # and the web-based setup wizard
    EXPOSE 80 443
    CMD ["apache2-foreground"]

    Push to GitHub

    Commit and push your Dockerfile to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create and Configure the App

    Create a new app and connect it to your GitHub repository.

    Configure HTTP Traffic

    Set the traffic type to HTTP with an internal port of 80.

    Set Environment Variables

    Configure required variables:

    VariableDescription
    MYSQL_HOSTDatabase hostname
    MYSQL_ROOT_PASSWORDDatabase root password
    MYSQL_USERDatabase user
    MYSQL_PASSDatabase password
    MYSQL_DATABASEDatabase name
    OE_USEROpenEMR admin username
    OE_PASSOpenEMR admin password

    Attach Persistent Volumes

    Add persistent storage:

    Mount PathRecommended SizePurpose
    /var/www/localhost/htdocs/openemr/sites50+ GBSite data and documents
    /etc/ssl100 MBSSL certificates

    Deploy Your Application

    Click Deploy to build and launch your OpenEMR instance.

    Complete Setup

    Access your deployment and complete the web-based installation wizard. Configure your practice settings, add providers, and set up billing.

Security Considerations

Healthcare data requires additional security measures:

  • Enable audit logging for all user actions
  • Configure role-based access control
  • Implement regular backup procedures
  • Review access logs regularly
  • Ensure compliance with applicable healthcare regulations

Additional Resources