WA-KLINIK adalah sistem manajemen klinik terintegrasi dengan WhatsApp yang dirancang khusus untuk Klinik dr. Angga (Chiropractic & Chronic Pain Management). Sistem ini menggabungkan kemampuan AI untuk berinteraksi dengan pasien melalui WhatsApp, manajemen jadwal praktik, dan pengelolaan data pasien dalam satu platform yang mudah digunakan.
Core Features
1. AI-Powered WhatsApp Bot
- Chatbot cerdas dengan integrasi OpenRouter/OpenAI
- Respons otomatis untuk pertanyaan umum pasien
- Pembuatan jadwal appointment via chat
- Normalisasi nomor telepon otomatis untuk mencegah duplikasi
2. Schedule Management
- Kalender mingguan interaktif dengan drag-and-drop
- Pengaturan jam praktik, istirahat, dan hari libur
- Blokir otomatis untuk tanggal libur nasional
- Statistik harian (total appointment, gender, kontrol/reservasi)
3. Patient Management
- Database pasien terintegrasi
- Riwayat keluhan dan kunjungan
- Pencarian dengan normalisasi nomor HP
- Laporan per periode
4. Multi-Instance Support
- Kelola multiple WhatsApp instances
- Role-based access (superadmin, admin)
- Filter data per instance
Tech Stack
| Component | Technology |
|---|---|
| Backend | Node.js + Express.js |
| Database | MySQL + Sequelize ORM |
| Cache | Redis |
| WUZAPI Integration | |
| AI | OpenRouter / OpenAI API |
| Frontend | EJS Templates + Vanilla JS |
| Realtime | Socket.IO |
Screenshots
Login Page
Halaman login dengan desain modern dan aman.
Dashboard
Overview statistik klinik dengan grafik dan quick actions.
Chat History
Riwayat percakapan WhatsApp dengan pasien, terintegrasi dengan AI.
Patient Management
Manajemen data pasien dengan pencarian dan filter.
Schedule (Jadwal Praktik)
Kalender interaktif dengan drag-and-drop untuk mengatur jadwal.
Reports (Laporan)
Laporan kehadiran dan statistik per periode.
Instances (WhatsApp Instances)
Kelola multiple WhatsApp instances dengan status koneksi.
Bot Settings (Pengaturan AI)
Konfigurasi AI provider, model selection dengan search, dan system prompt.
Mobile Responsive
Sistem ini fully responsive untuk penggunaan di mobile.
Mobile Dashboard
Mobile Schedule
Key Implementation Details
Phone Number Normalization
Sistem menggunakan normalisasi nomor telepon untuk mencegah duplikasi data pasien:
function normalizePhone(phone) {
// Remove WhatsApp suffixes
let normalized = phone.replace(/@s\.whatsapp\.net|@c\.us/g, '');
// Remove non-digits except +
normalized = normalized.replace(/[^\d+]/g, '');
// Handle Indonesian formats
if (normalized.startsWith('+62')) {
normalized = normalized.slice(1);
} else if (normalized.startsWith('0')) {
normalized = '62' + normalized.slice(1);
}
return normalized;
}
Holiday Calendar Blocking
Jadwal praktik otomatis memblokir tanggal libur yang sudah di-setting:
// Load holidays and block calendar cells
const holiday = calendarHolidays.find(h => h.date === dateStr);
if (holiday) {
isUnavailable = true;
unavailableReason = holiday.name;
}
Searchable Model Dropdown
Fitur pencarian model AI untuk memudahkan pemilihan dari 100+ model OpenRouter:
- Filter real-time saat mengetik
- Grouping berdasarkan tier harga (GRATIS, BUDGET, STANDARD, PREMIUM)
- Informasi harga dan context length
Deployment
Docker Support
docker-compose up -d
Manual Setup
npm install
cp .env.example .env
# Configure .env
npm start
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/auth/login |
POST | User authentication |
/schedule/api/appointments |
GET/POST | Manage appointments |
/patients/api |
GET/POST | Patient CRUD |
/bot/webhook/:token |
POST | WhatsApp webhook |
/chat-history/api/conversations |
GET | Chat history |
Conclusion
WA-KLINIK adalah solusi lengkap untuk manajemen klinik modern yang mengintegrasikan komunikasi WhatsApp dengan AI. Sistem ini dirancang untuk meningkatkan efisiensi operasional klinik dan pengalaman pasien.
Built with Node.js, Express, MySQL, Redis, and AI-powered by OpenRouter
Comments