Project archive

Nixpend Healthcare Information System (HIS)

Clinical operations platform built with Vue and Frappe for managing patient records, appointments, and real-time multi-user healthcare workflows.

Vue 3TypeScriptTailwind CSSFrappe FrameworkFrappe UIMariaDBREST APIsWebSockets

Read this case as a

Choose your lens

Owned the implementation of important clinical interface workflows, including patient records, appointments, API integration, and real-time multi-user updates in a production healthcare environment.

Claims come with context

Each outcome shows its source, related capability, and confidence level. Missing operational data stays visibly unavailable.

Supporting context01

Real-time workflow updates

WebSocket events refresh relevant patient and appointment state across active interfaces

Source · Private production system with patient information excluded

Vue 3WebSocketsFrappe
Supporting context02

Integrated clinical workflows

Patient records, appointments, and medical-history interactions are connected through Frappe services

Source · Public product website and approved interface screenshots

Frappe UIREST APIsHealthcare systems
Unavailable03

Clinical outcome measurements

Patient information and internal operational measurements cannot be published

Source · Healthcare confidentiality

PrivacyHealthcare systems

Where each capability shows up

Vue 3Real-time workflow updates
WebSocketsReal-time workflow updates
FrappeReal-time workflow updates
Frappe UIIntegrated clinical workflows
REST APIsIntegrated clinical workflows
Healthcare systemsIntegrated clinical workflows
PrivacyClinical outcome measurements
Healthcare systemsClinical outcome measurements

A fragmented workflow slowed the whole system.

Healthcare teams needed a responsive system for managing patient records, appointments, and medical history without the delays and fragmented workflows associated with legacy administrative tools. Multiple users also needed to see relevant clinical updates without repeatedly refreshing the interface.

One product model, expressed clearly at every layer.

I built a Vue 3 and Frappe UI application connected to Frappe Framework APIs and MariaDB. The interface organizes patient, appointment, and medical-record workflows while WebSocket events update affected views when related data changes.

Walk through the system

Select a layer to inspect its responsibility.

Active layer 1

Vue 3 and Frappe UI clinical interface

Vue 3 and Frappe UI clinical interface owns the user-facing workflow and consumes a stable contract.

Responsibility stays explicit at this boundary.
Decision log

Use event-driven interface updates

Context
Multiple clinical users could update related records concurrently
Decision
Used WebSocket events to refresh affected workflow state
Trade-off
Added state-management complexity but reduced stale clinical views
Decision log

Build on Frappe Framework

Context
The product required structured records, permissions, and healthcare workflows
Decision
Used Frappe as the service and data foundation with a custom Vue interface
Trade-off
Reduced backend reinvention but required careful integration with Frappe conventions

Complexity moved behind durable boundaries.

The main challenge was coordinating real-time updates across multiple users without introducing stale records, excessive refreshes, or unstable interface state. The implementation also had to protect sensitive clinical information and remain dependable during daily healthcare operations.

Want to discuss a similar system?

Share the context and we’ll find a useful first move.

Start a conversation
<PORTFOLIO/>