Clinvia
Platform for clinic networks in TypeScript and Node.js: scheduling, online booking, medical records, health plans from authorization to billing and a patient app
- My role
- UX/UI Designer · Full Stack Developer · Architecture analysis
ClinviaContext
Clinvia is a platform for clinic networks: a multi-practitioner, multi-location schedule, online booking with automatic confirmation, a medical record with clinical notes and prescriptions, health plans from authorization request to billing, network reports and an app for patients to book, confirm and join teleconsultations.
I did the product, the UX/UI and the architecture analysis. The technical foundation is Medplum, an open source healthcare platform built on the FHIR standard, in TypeScript and Node.js, which already handles the clinical API, authentication, permissions and auditing. The clinic product is built on top of it.
Business problem
In a clinic network, the schedule lives in one system, the medical record in another and the health plan in a spreadsheet. The front desk confirms appointments by phone, the doctor hunts for the previous exam in a folder, an authorization is denied for lack of a document that was already in the record, and billing only finds out about the denial when the money doesn't come in.
Clinvia puts it all in one place: the same patient, the same appointment and the same health plan from booking to billing, with access to every piece of health data controlled and logged.
The technical foundation
From Medplum come the FHIR R4 server with REST and GraphQL APIs, OAuth 2.0 and OpenID authentication with two-factor verification, access policies by project and compartment, audit logging, real-time subscriptions, Bots, the scheduling library and the example apps for a patient portal, medical records and health plan eligibility.
The Clinvia product
The clinic rules and the entire interface: a schedule with temporary slot holds, message confirmations and reminders, a waiting room, visits with clinical notes, ICD-10 and prescriptions, health plan authorizations and billing in the Brazilian TISS standard with denials and appeals, network reports, privacy with an access trail, and the patient app with teleconsultation.
Architecture
All clinical data lives in Medplum's FHIR server: patients, schedules, visits, prescriptions, health plans and audit records are FHIR resources, with no parallel database. Clinvia is the product layer on top: the clinic app and the patient app, the scheduling rules and the integrations with health plans and messaging, which run as Bots and queued tasks.
Architecture decisions and trade-offs
Six decisions recorded as ADRs: the context, what was decided, what each one costs and how it shows up for the people using the product.
Information architecture and flows
The product map, the six roles and the three flows that matter most: from online booking to the visit, the exam that needs authorization, and billing through to denials.
The screens in Figma
Twelve desktop screens with a clickable prototype, for the front desk, the clinical staff, billing and network management.
- 01 / 10
Today's overview
Today's appointments, confirmations, the waiting room with each patient's wait time, occupancy per practitioner and the alert that matters right now: the authorization still pending for the 9:20 appointment.
- 02 / 10
Daily schedule
Five practitioners side by side, with each appointment's status in color and text: confirmed, no reply, waiting, in progress, seen, no-show or teleconsultation, plus a line for the current time.
- 03 / 10
New appointment
The practitioner's free slots, health plan eligibility checked with the insurer before booking, and confirmation sent to the patient by message. The slot is held for 5 minutes while the front desk confirms.
- 04 / 10
Patients
Search by name, CPF, phone or member card, health plan, last and next appointment, clinical alert (allergy, pacemaker) and the data consent status for each patient.
- 05 / 10
Medical record
A clinical summary with blood pressure over the months, active problems with ICD-10 codes, current medications, vital signs and a timeline of visits, exams and teleconsultations.
- 06 / 10
Visit
SOAP-format notes with a template per specialty, ICD-10 diagnoses, prescriptions checked against the recorded allergy, exam orders with coverage and what happens on signing: prescription in the app, authorization sent and follow-up suggested.
- 07 / 10
Health plans and authorizations
Authorizations sent to insurers with status and deadline, a denial with the stated reason and what's missing for the appeal, pulling the ECG and the clinical note straight from the record.
- 08 / 10
Billing and denials
Batches per insurer in the TISS standard, received and receivable amounts, and each denial with its reason and next step. Before closing a batch, every claim is validated and whatever fails goes back to the front desk.
- 09 / 10
Reports
Visits, occupancy, no-shows, average wait and online booking, no-shows by weekday with a reminder recommendation, occupancy by specialty and visits per health plan.
- 10 / 10
Privacy and access
Access profiles enforced on the server, the trail of who opened which record, blocked attempts and emergency access with justification, plus consents, data subject requests and data retention.
Interface states
Loading, empty with a next action, the insurer that didn't respond (without blocking the booking) and feedback for background tasks, such as reminders being sent and the slot someone else confirmed first.
Patient app
The next appointment with confirm and reschedule, the member card, prescriptions and exam orders that arrive after the visit, booking with coverage already checked, and the teleconsultation room.
Handling health data with care
Health data is sensitive data under Brazil's LGPD, and the interface was designed for it:
Visual System
A custom design system in Figma, with color variables and components with variants: button, appointment status badge, menu item and filter. Clinical teal for action, petroleum-blue ink for reading and one color per schedule status, always paired with text.
Palette
Teal
#0B7A75
Main action and brand
Ink
#0B2027
Headings and text
Ice
#E2F3F1
Selection and active item
Amber
#B54708
In progress and warning
Red
#B42318
No-show, allergy and denial
Violet
#4F3CC9
Teleconsultation
Typography
Manrope
800
Headings and numbers
Inter
400 / 500 / 600 / 700
Interface, tables and forms
JetBrains Mono
400
Times, claims and batches
Next versions
What comes next on the product roadmap:
References and credits
Clinvia's technical foundation is Medplum, by Medplum and the open source community, published under the Apache-2.0 license.
Takeaways
In healthcare, a good product is one that doesn't let data get lost along the way: the booked appointment is the same one that becomes the visit, the authorization and the billing batch. Using a standard like FHIR and a foundation that already handles permissions and auditing keeps the effort where it makes a difference: the clinic rules and an interface that owns what is still pending instead of hiding it.
Other projects to explore.
Healthcare & AestheticsLúmina Estética Avançada
Clinic website with UI/UX and a custom WordPress theme
See project
Citizenship & ImmigrationVogel Cidadania Italiana
Lead generation landing page for an Italian citizenship advisory firm, from UX/UI to React code, with a free assessment form, a leads API and a mobile version
See project
IoT · RefrigerationNTC Refrigeração
IoT refrigeration monitoring platform for retail chains: performance analysis, alarm center and mobile app, from scope to code
See project