HIS monorepo - Hospital Information System
- TypeScript 79.8%
- HTML 11.3%
- JavaScript 4.2%
- SCSS 4.1%
- Shell 0.6%
|
All checks were successful
CI/CD Pipeline / Build, Push & Deploy (push) Successful in 1m24s
|
||
|---|---|---|
| .forgejo/workflows | ||
| .github | ||
| .hermes/plans | ||
| apps | ||
| demo | ||
| deploy | ||
| docs | ||
| k8s/fivjs-test | ||
| packages | ||
| services | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc | ||
| Dockerfile.adt | ||
| Dockerfile.billing | ||
| Dockerfile.charge-capture | ||
| Dockerfile.clinical | ||
| Dockerfile.empi | ||
| Dockerfile.example | ||
| Dockerfile.identity | ||
| Dockerfile.imaging | ||
| Dockerfile.lab | ||
| Dockerfile.mock-api | ||
| Dockerfile.notification | ||
| Dockerfile.patient-registry | ||
| Dockerfile.pharmacy | ||
| Dockerfile.policy | ||
| Dockerfile.queue-engine | ||
| Dockerfile.reporting | ||
| Dockerfile.scheduling | ||
| Dockerfile.web | ||
| fivjs-his-landscape.html | ||
| package-lock.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| ROADMAP.md | ||
| tsconfig.json | ||
| turbo.json | ||
| vitest.workspace.js | ||
FivJS Healthcare Information System
A multi-tenant, multi-brand, multi-country hospital and care-delivery platform. Scales from a single-doctor aesthetic clinic to a 2,000-bed tertiary group.
📐 Before you start — read the Ground Rules Theme tokens, component patterns, PR conventions. Updated ADRs at
docs/70-architecture/adrs/.
Architecture
his-rnd/
├── apps/ # Frontend applications
│ ├── api-gateway/ # API gateway (FHIR R4 facade)
│ ├── web/ # Web admin panel
│ ├── mobile/ # Patient mobile app
│ └── kiosk/ # Self-service kiosk
├── packages/ # Shared libraries
│ ├── core/ # Primitive types, errors, utilities
│ ├── domain/ # Domain models & business logic (DDD)
│ ├── fhir/ # FHIR R4 types, profiles, operations
│ ├── event-bus/ # Event bus abstraction
│ ├── config/ # Environment & tenant config
│ ├── observability/ # Logging, tracing, metrics
│ ├── testing/ # Test utilities & fixtures
│ └── types/ # Barrel re-exports
├── services/ # Backend microservices
│ ├── identity/ # IAM, SSO, RBAC/ABAC
│ ├── empi/ # Enterprise Master Patient Index
│ ├── scheduling/ # Appointments, slots, waitlist
│ ├── clinical/ # CPOE, notes, vitals, problems
│ ├── billing/ # Charge capture, invoicing, claims
│ ├── pharmacy/ # Prescriptions, dispensing, controlled drugs
│ ├── lab/ # Laboratory Information System (LIS)
│ ├── imaging/ # Radiology Information System (RIS)
│ ├── adt/ # Admission, Discharge, Transfer
│ ├── notification/ # SMS, email, push, voice
│ └── reporting/ # Analytics, dashboards, exports
├── docs/ # Architecture & module documentation
└── tools/ # Build & migration scripts
Prerequisites
- Node.js ≥ 20.0.0
- pnpm ≥ 9.0.0 (
corepack enable && corepack prepare pnpm@9.15.0 --activate)
Getting Started
# Install dependencies
pnpm install
# Start development (all packages + services)
pnpm dev
# Build all
pnpm build
# Run tests
pnpm test
# Lint & type-check
pnpm lint && pnpm typecheck
Tech Stack
| Layer | Technology |
|---|---|
| Monorepo | pnpm workspaces + Turborepo |
| Language | TypeScript (strict mode) |
| API | FHIR R4 (canonical); REST + WebSocket |
| Event Bus | RabbitMQ (default); Kafka optional |
| Database | PostgreSQL (primary); polyglot where justified |
| Cache | Redis |
| Auth | OIDC / OAuth 2.1 / SMART on FHIR |
| Observability | OpenTelemetry + Sentry |
Key Principles
- API-first, screens are thin — No business logic in screens.
- Coexistence-native — Every module ships greenfield, shadow, proxy, and sync modes.
- Event-sourced where audit matters — Clinical orders, ADT, billing, controlled drugs.
- Consent is a first-class entity — Every PHI read checks active consent.
- Policy packs, not forks — Per-country compliance as config.
Managing Packages
# Add a dependency to a specific package
pnpm --filter @fivjs/core add zod
# Run a script in a specific package
pnpm --filter @fivjs/service-identity dev
License
Proprietary — FivJS Pte Ltd