Three pillars. One platform. Layered on what you already run.
Remote Patient Monitoring, on-demand telehealth, and a multilingual AI care companion — sitting on a multi-tenant Postgres + Express + Next.js stack that's PDPA-native, JCI-anchored, and engineered to interoperate with the HIS your hospital is already invested in. No exotic dependencies. No workflow disruption.
What the patient gets.
The VIP care layer is three connected experiences, each available in the patient's language, from first consultation through full recovery.
Remote Patient Monitoring
- SpO₂, HR, RR, temperature, BP, pain, wound photo — captured via Bluetooth devices, manual entry, or pulled from HIS
- Pathway-specific thresholds for orthopedic, cardiac, cosmetic, bariatric, spine, dental, IVF, oncology, and GAS
- Composite rules (sepsis, PE, bleeding) evaluated continuously over a 4-hour window
- TimescaleDB-hypertable-ready vitals time-series
On-Demand Telehealth
- Video and async messaging with the patient's actual provider — not a call centre
- Daily.co video, structured messaging routes, attachments threaded into the case
- 4-locale UX with patient preferred-language captured at intake
- Every conversation lands in the case audit trail — no out-of-band channels
AI Care Companion
- Multilingual assistant grounded on the patient's case, schedule, and discharge plan
- Handles non-clinical questions: schedules, medication reminders, facility and travel info
- Anything clinical routes to the care team via a server-side classifier — model never decides
- Inputs and outputs audit-logged; bounded by case-scoped consent; never substitutes for clinical judgement
What the hospital integrates with.
Vitals ingestion
- SpO₂, HR, RR, temperature, BP, pain score, wound photo, sleep duration + fragmentation
- Bluetooth pulse-ox, cellular pulse-ox, manual entry, or pulled from HIS
- Composite primary key on (taken_at, id) — TimescaleDB-hypertable-ready
Threshold engine
- Pathway-specific profiles — orthopedic / cardiac / cosmetic / bariatric / spine / dental / IVF / oncology / GAS
- Composite rules — sepsis, PE, bleeding — evaluated over a 4h window
- Cardiac, bariatric, spine overrides on top of the baseline profile
SBAR clinician handoffs
- JCI IPSG.2-aligned Situation / Background / Assessment / Recommendation
- Structured form serialized into the audit log
- No silent acknowledgements — note OR sbar required
Multilingual at launch
- Thai (primary), English, Mandarin, Arabic — 4 BCP-47 locales
- Patient preferred-language captured at intake
- Translation strings require clinician review per locale
PDPA compliance
- Purpose-bounded consent ledger with audit metadata (IP, UA, timestamp)
- Append-only — withdrawals preserve the trail
- requireRpmTenant middleware enforces hospital-scope on every endpoint
HIS integration
- OpenAPI 3.1 spec covers patient enroll, case, vitals, alerts, consent, webhooks
- Designed for InterSystems TrakCare, HOSxP / HOSxP XE, Hospital OS
- Thai FHIR Implementation Guide compatible
Bangkok data residency
- EXPECTED_DB_REGION soft-check at boot — warns on drift
- Iteration plan: Azure Thailand North when GA, Neon Singapore as documented interim
- Cross-border to home-country PCP only with explicit patient consent
Medical-tourism intake
- Passport country, number (AES-256-GCM encrypted), expiry
- Cost estimate in THB satang + USD cents — never floats — bundled-pricing friendly
- FX rate snapshot at intake — reproducible estimates
JCI-anchored
- IPSG.1 — two patient identifiers
- IPSG.6 — 11-flag vulnerable-population enum (elderly, pregnancy, fall risk, etc.)
- MOI.8 — ICD-10-TM diagnosis coding native
Every threshold sourced. Every rule documented.
The platform's clinical logic does not originate from us. Pathway thresholds, composite-rule windows, and risk-flag enums are sourced from published surgical-care guidance and JCI standards, version-pinned in the repository, and intended for review by any Thai design-partner's clinical sponsor before production use.
Awaiting clinical sponsor review
Thresholds, composite rules, and risk-flag enums are screening tools, not diagnostic ones. Clinical action rests with the clinician acknowledging the alert under JCI IPSG.2 SBAR handoff. Adkins Labs does not practice medicine.
Boring tech where it matters.
The platform is built on tools your hospital's IT team already trusts. No exotic dependencies, no novel runtimes. Engineering boredom is a feature when the alternative is teaching procurement what a new framework is.
| Layer | Technology | Hosting |
|---|---|---|
| Frontend | Next.js 15 · React 19 · Tailwind v4 | Vercel |
| API | Express 4 · TypeScript · Zod | Render |
| Database | PostgreSQL 16 · Drizzle ORM | Neon (interim) → Azure Thailand North |
| Cache / queue | Redis · BullMQ | Upstash · Render |
| Telehealth video | Daily.co | — |
| AI Care Companion | Anthropic Claude · grounded on case context | — |
| SendGrid | — | |
| Storage | AWS S3 (Bangkok Local Zone planned) | — |
| Monitoring | Sentry · Pino structured logs | — |
What ships today, what's gated on a design partner.
The platform is honest about its phase. Listed below is what's in the repo today, with green markers for "ready to integrate" and amber for "gated on first signed partner."
Ready to integrate
- RPM API surface (vitals · cases · alerts · consent · withdraw)
- PostgreSQL schemas with composite-PK time-series tables
- OpenAPI 3.1 spec for HIS adapter teams
- PDPA consent ledger + audit trail
- JCI compliance map → code-surface
- 4-locale i18n scaffold (no content)
- AES-256-GCM at-rest encryption helper (live on passport data)
- Hospital target list + outreach drafts
Gated on first signed partner
- Production database provisioning (Azure Thailand North / Neon SG)
- Hospital admin · clinician · intake-coordinator portals (MVP live, hardening pending)
- Telehealth video routes (Daily.co integration scaffold)
- AI Care Companion (Claude grounding on case context + escalation workflow)
- Thai HIS adapter bindings (TrakCare · HOSxP · Hospital OS)
- Clinician-reviewed translation strings per locale
- Webhook alert dispatcher
- PDPA retention sweep + RTBF worker