Sistem Basis Data Kanker Nasional Indonesia
INAMSOS (Indonesia National Cancer Database System) adalah platform terpadu untuk pengumpulan, manajemen, dan analisis data kanker secara nasional. Sistem ini dirancang khusus untuk mendukung penelitian kanker di Indonesia dengan fitur keamanan tingkat tinggi dan kepatuhan terhadap regulasi kesehatan.
- Sentralisasi Data: Mengumpulkan data kanker dari seluruh rumah sakit kolegium di Indonesia
- Penelitian: Mendukung peneliti dengan akses data terstandardisasi dan anonim
- Analisis Prediktif: Memberikan wawasan tentang tren kanker di Indonesia
- Kebijakan: Mendukung pembuatan kebijakan kesehatan berbasis data
- Kolaborasi: Memfasilitasi kolaborasi penelitian multi-pusat
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β Backend API β β Database β
β (Next.js) βββββΊβ (NestJS) βββββΊβ (PostgreSQL) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
β β β
βββββββββββ βββββββββββ βββββββββββ
β Redis β β MinIO β β Elastic β
β (Cache) β β (Files) β β (Logs) β
βββββββββββ βββββββββββ βββββββββββ
- Pendaftaran pasien tumor yang komprehensif
- Formulir entry data dengan validasi real-time
- Upload gambar medis dan dokumen pendukung
- Quality assurance dan data validation
- Audit trail lengkap untuk semua perubahan
- Multi-Factor Authentication (MFA)
- Role-based Access Control (RBAC)
- Enkripsi data end-to-end (AES-256)
- Audit logging yang komprehensif
- Kepatuhan HIPAA dan regulasi kesehatan Indonesia
- Browser data agregat anonim
- Sistem permintaan data dengan approval workflow
- Export data dalam format penelitian standar
- Kolaborasi multi-pusat
- Tracking impact penelitian
- Real-time cancer distribution mapping
- Trend analysis dengan visualisasi time-series
- Center comparison analytics
- Predictive analytics untuk emerging patterns
- Performance metrics dan KPI tracking
- 4 tingkat akses pengguna yang berbeda
- Multi-center tenant architecture
- User lifecycle management
- Training dan onboarding workflows
- Framework: NestJS 10.0.0
- Bahasa: TypeScript 5.1.3
- Database: PostgreSQL 15+
- ORM: Prisma 5.6.0
- Authentication: JWT + Passport
- Validation: class-validator + class-transformer
- Documentation: Swagger/OpenAPI 3.0
- Queue: Bull Queue dengan Redis
- File Storage: MinIO (S3-compatible)
- Monitoring: Winston + Prometheus
- Security: Helmet, CORS, Rate Limiting
- Multi-schema: audit, medical, system schemas
- Data separation: Logical separation per center
- Audit trails: Complete change tracking
- Backup strategy: Automated backups with retention
- RESTful API: OpenAPI 3.0 documentation
- Authentication: JWT with refresh tokens
- File handling: Multer dengan MinIO
- Email: Nodemailer dengan templates
- SMS: Twilio integration
- Healthcare standards: HL7/FHIR ready
- Node.js: 18.0+ LTS
- PostgreSQL: 15+
- Redis: 6.0+
- MinIO: Latest release
- Memory: Minimum 8GB RAM
- Storage: Minimum 100GB SSD
- Git: Version control
- Docker: Containerization (optional)
- VS Code: Recommended IDE
- Postman: API testing
git clone https://github.com/indonesia-health/inamsos.git
cd inamsos# Backend dependencies
cd backend
npm install
# Generate Prisma client
npx prisma generate# Copy environment template
cp .env.example .env
# Edit environment variables
nano .env# Run migrations
npx prisma migrate dev
# Seed initial data
npm run db:seed# Start backend
npm run start:dev
# API Documentation available at:
# http://localhost:3000/api-docs- API Documentation: Referensi API lengkap
- Security Guide: Konfigurasi keamanan
- Deployment Guide: Panduan deployment produksi
- User Manual: Panduan pengguna lengkap
- Architecture: Dokumentasi arsitektur sistem
- Troubleshooting: Solusi masalah umum
# Development
npm run start:dev # Start in development mode
npm run start:debug # Start with debugging
npm run test # Run unit tests
npm run test:e2e # Run end-to-end tests
npm run test:cov # Run tests with coverage
# Building
npm run build # Build for production
npm run start:prod # Start production build
# Database
npm run db:generate # Generate Prisma client
npm run db:migrate # Run database migrations
npm run db:seed # Seed database with initial data
# Code Quality
npm run lint # Run ESLint
npm run format # Format code with Prettierinamsos/
βββ backend/ # NestJS backend application
βββ frontend/ # Next.js frontend application
βββ desktop/ # Wails-based desktop application
β βββ cmd/runner/ # Standalone runner for offline mode
β βββ pkg/process/ # Go-based process manager for Postgres and Backend
β βββ scripts/ # Setup and binary management scripts
β βββ wails.json # Wails configuration
βββ docs/ # Documentation files
βββ scripts/ # Build and deployment scripts
βββ docker-compose.yml # Docker configuration
INAMSOS includes a desktop wrapper built with Wails, enabling offline data collection and synchronization.
- Standalone Runner: Bundles PostgreSQL and the NestJS backend into a single executable.
- Offline Sync: Automatically queues mutations when offline and syncs with the remote server when a connection is available.
- Native Experience: Native window management and file system access.
# Install Wails
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Setup binaries (PostgreSQL)
cd desktop/scripts
./setup-binaries.sh
# Build & Run desktop app
cd desktop
wails dev- β AES-256 encryption untuk data sensitif
- β TLS 1.3 untuk data transmission
- β Multi-factor authentication
- β Role-based access control
- β Audit logging lengkap
- β Regular security patches
- β HIPAA compliance
- β Indonesian data protection laws
- β Medical ethics standards
- β IRB approval workflows
- β Data retention policies
POST /auth/register- User registrationPOST /auth/login- User loginPOST /auth/verify-mfa- MFA verificationGET /auth/profile- Get user profile
GET /patients- Get patients listPOST /patients- Create new patientGET /patients/:id- Get patient detailsPUT /patients/:id- Update patient data
GET /research/data- Browse aggregated dataPOST /research/requests- Submit data requestGET /research/collaborations- View collaborations
GET /analytics/dashboard- Dashboard metricsGET /analytics/trends- Cancer trendsGET /analytics/reports- Generate reports
Untuk dokumentasi API lengkap, lihat API Documentation
Kami menyambut kontribusi dari komunitas pengembang dan peneliti kesehatan. Silakan baca CONTRIBUTING.md untuk panduan kontribusi.
- Fork repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push ke branch (
git push origin feature/amazing-feature) - Create Pull Request
- Email: support@inamsos.go.id
- Documentation: docs/
- Issue Tracking: GitHub Issues
- Training Programs: Program pelatihan tersedia untuk semua user types
- User Manuals: Dokumentasi pengguna lengkap
- Help Desk: Dukungan teknis 24/7 untuk critical issues
Proyek ini dilisensikan under MIT License - lihat LICENSE file untuk detail.
- Kolegium Onkologi Indonesia - Partner utama
- Kementerian Kesehatan RI - Support regulasi
- Rumah Sakit Kolegium - Data providers
- Tim Pengembang INAMSOS - Development team
- β Core data collection system
- β Basic authentication & authorization
- β Simple analytics dashboard
- β Research request workflow
- π Advanced AI-powered analytics
- π Mobile applications
- π Integration dengan international databases
- π Enhanced collaboration platform
- π Predictive treatment outcomes
- π Real-time clinical decision support
- π International research partnerships
- π Advanced genetic analysis
INAMSOS - Membangun masa depan penelitian kanker Indonesia melalui data dan teknologi.
Untuk informasi lebih lanjut, hubungi:
- Email: info@inamsos.go.id
- Website: https://inamsos.go.id
- Documentation: https://docs.inamsos.go.id