Sistem Pengelolaan Pasien ini dirancang sebagai solusi inovatif untuk meningkatkan pengalaman pasien dan mengoptimalkan pengelolaan data di fasilitas kesehatan. Dengan menggunakan Flask sebagai framework utama dan MongoDB sebagai basis data, proyek ini bertujuan meningkatkan efisiensi pendaftaran pasien, kualitas layanan kesehatan, dan pengelolaan data pasien.
- Muhammad Alif Budiman dari Universitas Negeri Jakarta (Ketua)
- Ahmad Iqbal Ferdinand Romadhon dari Institut Teknologi, Sains, dan Kesehatan RS.DR. Soepraoen Kesdam V/BRW
- Dea Elsiyani Pratiwi dari Universitas Kahuripan Kediri
POSTMAN
SWAGGER (tersedia setelah deploy — buka https://web--sistem-pengelolaan-pasien--5cd2xf2mwjg5.code.run/apidocs/)
- Meningkatkan efisiensi dalam proses pendaftaran pasien melalui antarmuka yang user-friendly.
- Meningkatkan kualitas layanan kesehatan.
- Meningkatkan efisiensi dalam pengelolaan data pasien yang diperlukan.
- Untuk Pasien: Mempermudah proses pendaftaran.
- Untuk Pengelola Klinik: Mempermudah dalam mengorganisir data-data pasien.
- Bahasa Pemrograman: HTML, CSS, Javascript, dan Python.
- Database: MongoDB.
- Framework: Flask.
- Deploy: Render.
-
Autentikasi:
- Register akun pasien.
- Login akun pegawai & pasien.
-
Beranda:
- Homepage (landing page). Halaman ini berisi layanan klinik, tata cara pendaftaran, jadwal praktik dokter, dan antrian hari ini.
-
Pendaftaran Pasien:
- Pendaftaran pasien.
- Cancel pendaftaran.
-
Riwayat:
- Riwayat pendaftaran pasien.
- Riwayat checkup pasien.
-
Profil:
- Lihat dan edit profil.
-
Kelola Pendaftaran Pasien:
- Approve pendaftaran pasien.
- Reject pendaftaran pasien.
- Done pendaftaran pasien.
-
Admin Dashboard:
- Dashboard admin.
-
Export Data:
- Export data pendaftaran pasien ke CSV.
- Export data checkup pasien ke CSV.
-
Rekam Medis:
- Buat rekam medis pasien.
- Edit checkup pasien.
-
Kelola Jadwal Praktik Dokter:
- CRUD operasi untuk jadwal praktik dokter.
- Real-Time:
- Perubahan data dilakukan tanpa perlu refresh halaman
- Python 3.11.9+
- MongoDB Atlas (atau MongoDB lokal untuk pengembangan)
- Clone repository.
- Buat virtual environment dan aktifkan:
python3.11 -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows- Install dependensi:
pip install -r requirements.txt- Buat file
.envdari contoh:
cp .env.example .env
# Edit .env dan isi nilai yang sesuaiIsi .env:
MONGODB_CONNECTION_STRING=mongodb+srv://USERNAME:PASSWORD@CLUSTER_HOST/?retryWrites=true&w=majority
DB_NAME=sistem_pengelolaan_pasien
TOKEN_KEY=access_token
SECRET_KEY=<generate dengan perintah di bawah>
FLASK_DEBUG=false
PORT=5000
Generate SECRET_KEY:
python -c "import secrets; print(secrets.token_urlsafe(64))"- Jalankan seeder (opsional):
python seeder.py- Jalankan aplikasi (mode pengembangan):
python app.py- Akses melalui browser: http://localhost:5000
PORT=8000 gunicorn -w 1 --threads 20 --timeout 120 --bind 0.0.0.0:$PORT app:app| Pengaturan | Nilai |
|---|---|
| Runtime | Python 3.11.9 |
| Region | Singapore |
| Plan | Free |
| Build Command | pip install --upgrade pip && pip install -r requirements.txt |
| Start Command | gunicorn -w 1 --threads 20 --timeout 120 --bind 0.0.0.0:$PORT app:app |
| Health Check Path | /health |
| Nama | Keterangan |
|---|---|
MONGODB_CONNECTION_STRING |
Connection string MongoDB Atlas |
DB_NAME |
Nama database |
TOKEN_KEY |
Nama field token JWT di cookie |
SECRET_KEY |
Secret key untuk signing JWT |
Setelah service Render dibuat:
- Buka dashboard Render, temukan Outbound IP addresses service Anda.
- Buka MongoDB Atlas → Network Access → Add IP Address.
- Tambahkan semua rentang CIDR outbound Render (bukan
0.0.0.0/0secara permanen). - Pastikan database user Atlas hanya memiliki izin minimum yang dibutuhkan aplikasi ini.
Catatan:
0.0.0.0/0dapat digunakan sementara saat pengujian awal, tetapi harus diganti dengan IP spesifik Render secepatnya.
| Keterbatasan | Detail |
|---|---|
| Spin-down | Service mati otomatis setelah ~15 menit tidak aktif. Request pertama memerlukan cold start ~30–60 detik. |
| Filesystem efemeral | Semua file yang diupload (termasuk foto profil) akan hilang setelah restart atau redeploy. |
| Foto profil | Gunakan hanya data demo. Untuk produksi, migrasikan penyimpanan file ke Cloudinary atau AWS S3. |
| Data pasien | Deployment publik hanya boleh menggunakan data dummy/demo, bukan data pasien nyata. |
Silakan berkontribusi dengan melakukan pull request ke repositori ini. Jangan ragu untuk melaporkan issue jika menemui masalah.
Proyek ini dikembangkan sebagai bagian dari program MSIB LearningX Full Stack Web Development.