Skip to content

MedicFlow

Healthcare workflows running directly on dedicated POS hardware.

Role
Mobile Engineer
Context
AFT Solutions Limited, for hospitals in Oyo State
Timeline
Nov 2025 to present
Platforms
Android POS
Status
Internal
MedicFlow bills screen on a POS terminal, with a printed patient bill from General Hospital Moniya above it. Patient details redacted.

Overview

MedicFlow is a hospital billing and records app. Front-desk staff look up outpatients and inpatients, attach services, and raise regular, lab and diet bills against a patient’s record.

It runs on dedicated Android POS terminals, so the same device that holds the record prints the bill and collects payment, by bank transfer or by card on the terminal.

My role

I built the MedicFlow mobile application in React Native: patient lookup, outpatient and inpatient details, the billing flows, the API integration, and the payment and printing integration with the terminal’s POS software. I also own its Android builds and releases.

The challenge

A hospital desk is not a consumer app setting. The device is a shared terminal with a small screen, payment happens in the middle of a clinical workflow, and every megabyte of the app has to be installed onto hardware that cannot download from a store.

  • Small terminal screens for billing forms that are naturally long.
  • Card payment and printing go through the vendor’s POS application.
  • The APK is installed directly onto terminals, so its size matters.

Architecture

  1. MedicFlow app

    Patients, bills, services

    Built by me

  2. Accelerex native module

    Config plugin and Android bridge

    Built by me

  3. Hospital billing API

    Patient and bill data

    Built by the team

  4. POS payment application

    Card reader and printer

    Third party

MedicFlow reuses the Accelerex bridge built for the field systems, so billing takes the payment and printing path already proven in enforcement apps.

Engineering challenges

Billing inside a clinical flow

problem
Staff need to bill for services without leaving the patient’s record.
constraint
Card payment and printing belong to a separate POS application the app cannot control directly.
approach
Each bill can be printed or paid from where it was created. Card payments hand off to the POS application through the Accelerex module and return with the result; bank transfer is offered alongside.
result
Registration, services, billing and payment happen on one device at one desk.

A smaller APK for terminals

problem
A universal Android build bundles code for every CPU architecture, and terminals only ever run one.
constraint
Shrinking has to be safe: aggressive minification can strip classes that React Native libraries and native modules load by reflection.
approach
Per-architecture APK splits with ABI filters in the EAS profiles, R8 minification, resource shrinking and PNG crunching in release builds, and ProGuard keep rules so Reanimated and TurboModules survive minification.
result
Each terminal installs a build containing only its own architecture, and release builds stay stable.

Why dedicated hardware is different

problem
Consumer-app assumptions break on POS terminals.
constraint
Terminals can lack system apps such as a camera, their storage is shared with vendor software, and they cannot be updated through a store the way phones are.
approach
I carried over the shared-storage receipt printing, the vendor module and the over-the-air update setup built for the field systems instead of assuming phone behaviour.
result
MedicFlow started from patterns already proven on the same class of hardware.

Outcome

  • 3

    bill types: regular, lab and diet

  • Android POS

    deployment target

Technologies

  • React Native
  • Expo Router
  • TypeScript
  • TanStack Query
  • Zustand
  • Accelerex POS
  • R8 and ProGuard
  • EAS Update