NEMS
A FHIR-compliant patient scheduling platform for one of the largest non-profit community healthcare providers in the United States.
View case study , NEMSCase study · Workforce scheduling
A shift platform for hospital residency teams, where preferences feed an allocation algorithm and a swap takes a tap rather than a chain of phone calls.
In hospital testing
01The business situation
DocSwap comes from Citadel Meditech Pty. Ltd. of Australia. Every term, a hospital has to place its residents and practitioners across shifts that must be covered whatever happens. People have preferences, lives and constraints. Historically the balancing was done by hand, and every subsequent change rippled outwards through phone calls. The platform had to hold both halves: build a defensible roster in the first place, and let it flex afterwards without unravelling.
Core challenge
Turn preference-gathering, allocation and shift swapping into one system, without taking the final decision away from the medical admin.
Before
Preferences, rosters and swaps handled by hand
After
One roster everyone works from and can move within
DocSwap Platform
02The system at a glance
03Workflow 01
Before a term is scheduled, practitioners record what they would prefer. The admin opens and closes that window on a timeline, so allocation runs against a complete picture rather than whoever replied first.
assets/portfolio/docswap/workflow-preferences.png · 16 / 11
04Workflow 02
Once the roster is published, life happens. A practitioner requests a swap, the platform finds a counterparty, and if there is none it falls back to the relief pool rather than to a phone tree.
1My shifts
assets/portfolio/docswap/step-shifts.png · 1 / 2.04
2Request a swap
assets/portfolio/docswap/step-swap.png · 1 / 2.04
3Relief pool cover
assets/portfolio/docswap/step-relief.png · 1 / 2.04
05Workflow 03
Allocation weighs every practitioner’s stated preference against the shifts that must be covered, and produces a roster. It is a starting point, not a verdict: the medical admin can override any placement.
assets/portfolio/docswap/roster-board.png · 16 / 10
assets/portfolio/docswap/admin-mobile.png · 1 / 2.04
06Engineering behind the product
The hard part was never the interface. It was producing an allocation people would accept, and keeping it correct as it changed.
Practitioner preferences are weighed against coverage requirements to produce a term roster that is as close to everyone’s choices as the constraints allow.
Allocation is treated as a proposal the medical admin can amend, so the algorithm assists the decision rather than replacing it.
A swap request is matched against practitioners eligible to take the shift rather than broadcast to everyone.
When no direct counterparty exists, the shift moves to a pool rather than leaving the gap unresolved.
Built in React Native so residents and practitioners get a native experience on both platforms from one codebase.
Preference windows, generation and publication are stages on an explicit timeline the admin controls.
Shift changes and swap outcomes reach practitioners through OneSignal, with email over Mailgun.
07Technical architecture
A hybrid mobile app over a Laravel backend, with a custom allocation algorithm at its centre.
Mobile
Backend
Frontend
Data
Cloud & services
Delivery tooling
08Delivery journey
Build on the client’s own surveys
Scope the full product, not an MVP
Design and approve both surfaces
Build and tune the allocation model
Build the app and the dashboard
Roll out to hospital teams
Refine against real term cycles
The company reports release to internal hospital teams, with testing continuing across the hospital chain. Dates, durations and rollout scope are withheld until confirmed. Verify before publishing
09What the system enabled