Medical Missionaries of Divine Mercy

Paper to Field-Ready EMR

A non-clinician student led the transition of a volunteer medical mission from paper records to a self-hosted, offline-first OpenEMR system — deployed live in Costa Rica and headed to Laredo, Texas.

This is the technical record: the decisions, the failures, the rebuilds, and what it took to run a clinical system 60 miles from the nearest server farm.

1,121

Patients served

Costa Rica 2026

6

Custom forms

built from paper originals

8

Station accounts

across the clinic

Nov 4–10

Laredo

primary deployment

What Was Built

Self-Hosted, Offline-First

OpenEMR 7.0 on Ubuntu 22.04 LTS, running on a hardened VM. No cloud, no public IP, no internet dependency during clinic operations. Designed for remote sites with intermittent connectivity.

Encrypted, HIPAA-Aligned

Private certificate authority for LAN-only TLS. Per-device trust installed pre-mission. All traffic encrypted. Firewall hardened with default-deny inbound. HIPAA-aligned hybrid model for Laredo.

Built for Real Field Use

Six station-specific custom forms designed from paper originals with station-lead input. Vitals entered once, propagated everywhere. Routing thresholds editable mid-mission without code changes.

Project Timeline

  1. Paper-only missionsShipped

    Medical Missionaries of Divine Mercy (MMDM) operated free clinics in Costa Rica and Laredo using only paper forms. Records were restricted to a single physical copy, and thermal autorefractor printouts routinely faded within months.

  2. Microsoft nonprofit consultationShipped

    MMDM's 501(c)(3) status confirmed. First meeting with a Microsoft representative to assess how nonprofit licensing and cloud resources could support the mission's digital infrastructure.

  3. Build in-house: saving $6,000Shipped

    A Microsoft subsidiary offered to configure cloud and networking infrastructure for $6,000. After reviewing scope with the MMDM president — a former Microsoft employee — the decision was made to build it in-house. Full cloud infrastructure stood up independently.

  4. Cloud infrastructure establishedShipped

    Secured a Microsoft nonprofit grant providing free access to the Azure portal and Copilot. Transitioned the organization away from passing USB drives by provisioning @mmdm.org Outlook and SharePoint accounts, establishing MMDM's first centralized cloud infrastructure.

  5. Bill of Materials approvedShipped

    Hardware specification presented to MMDM leadership. TP-Link Omada network gear, Lenovo tablets, and supporting equipment approved for procurement.

  6. Hardware arrives and testing beginsShipped

    Full hardware order arrives: 8-port PoE+ switch, Gigabit VPN gateway, Wi-Fi 6 AX3000 access points (indoor and outdoor), Lenovo IdeaTabs for each station. First configuration and connectivity tests run against the existing Windows/XAMPP setup.

  7. OpenEMR formulary planningShipped

    Consulted with Dr. Byrd, Head of Pediatrics and a veteran of 32 MMDM missions over 20 years. Outlined the clinical and operational requirements for integrating a pharmacy formulary into the OpenEMR deployment.

  8. Linux migrationShipped

    MariaDB system tables corrupt on the original Windows host. The SQL dump is intact. Decision: stop repairing, migrate to Ubuntu 22.04 LTS on a hardened VM. Clean import; fresh baseline established.

  9. Private CA and HTTPSShipped

    A private certificate authority provides LAN-only TLS without a public CA. Per-device trust installed once before each mission. All clinic traffic encrypted from day one.

  10. On-mission resetShipped

    Patient-creation flow breaks mid-clinic. Fallback build lacks required security updates. Decision: full OpenEMR reset in place during the mission. Rebuilt, confirmed working, no patient records lost.

  11. Costa Rica field trialShipped

    First deployment: paper-primary with evening EMR entry across eleven stations. 39 missionaries and 13 local translators served a record 1,121 patients — including 151 during a one-day outreach to Bloriñak. Connectivity held at every fixed station. Network gaps in outdoor corridors and a switch capacity limit identified and logged. MMDM's 10th anniversary mission.

  12. Post-mission analysisShipped

    Volunteer survey drives form refinements. Recruiting program launches. Leadership deck and speaker script prepared for June 4 board meeting.

  13. Leadership meetingShipped

    Board approval request, dental form authority introductions, HIPAA-aligned hybrid model endorsement, and recruiting-plan support on the agenda.

  14. Architectural resetShipped

    OpenEMR and the board-endorsed Power Apps direction both scrapped in favor of a purpose-built Node.js and SQLite system, designed offline-first for mission conditions rather than adapted to them.

  15. Medical form reviewShipped

    Dr. Byrd answered the Medical station's open questions on June 10, shaping the form's skeleton build. On June 25 he reviewed that build and specified what else needs to be added, ahead of the June 30 board demo.

  16. Board demoShipped

    Custom system demoed live across all five stations. Proposal: a clinic.mmdm.org review subdomain so leadership can track the build remotely.

  17. Sandbox onlineShipped

    clinic.mmdm.org comes online via Render — auto-deploys from main, safety-interlocked against real patient data. Leads can now review forms remotely while development continues out-of-state.

  18. Laredo deploymentPlanned

    Primary full deployment: HIPAA-aligned, US jurisdiction, pharmacist on-site with e-prescribing to local pharmacies. Catholic Charities intake handoff, cross-street network bridge, Laredo-specific form configuration.

  19. Philippines deploymentPlanned

    Batangas, Philippines. First international deployment outside of the Western Hemisphere. Scope and form configuration for this mission are being determined.

  20. Costa Rica — Grano de OroPlanned

    Annual return to the Cabécar community in Grano de Oro. Full digital-primary deployment target if Laredo trial is successful.

Explore the Project

Every decision has a reason.

The Build page covers the full technical picture — stack, architecture, security model, and the trade-offs that shaped each choice. The Journal is where the work happens in public.

andrewcastor.dev · GitHub