4.6 KiB
MyLIS Flutter
MyLIS Flutter adalah aplikasi pendamping untuk Laravel LIS lokal. Aplikasi ini fokus pada akses mobile/desktop untuk login, dashboard Early Warning Sistem, daftar pemeriksaan, detail pemeriksaan, dan pengisian expertise per template DLP.
Default URL Laravel lokal:
https://lis.swandhana.test/
URL tersebut bisa diganti dari halaman sebelum login. Tersedia tombol Ping agar pengguna dapat memastikan server Laravel sudah dapat diakses sebelum login.
Fitur Utama
- Login tanpa register.
- Pengaturan URL Laravel dari layar login.
- Ping koneksi ke Laravel.
- Dashboard dengan menu utama
Early Warning Sistem. - Daftar pemeriksaan per buku/kategori.
- Detail pemeriksaan dengan status dan tombol
Expertise. - Screen expertise Flutter native, tidak membuka Blade Laravel.
- Pemilihan template saat
periksa.dlpmasih kosong. - Penyimpanan draft, preliminary, final, dan kirim ke SPV sesuai role pengguna.
- Dukungan build Android, iOS, dan macOS.
Alur Expertise
Jika periksa.dlp kosong, aplikasi menampilkan pilihan template. Jika sudah terisi, aplikasi langsung membuka wizard sesuai DLP.
Screen DLP yang sudah dibuat:
CCIKulturPewarna LangsungTBCViral LoadIgM IgG LeptospiraPCR COVID
Semua wizard memakai pola umum:
- Data pasien dan petugas.
- Isian parameter/template sesuai DLP.
- Tes Kepekaan Antibiotik jika berlaku.
- Data alat jika berlaku.
- Isian expertise akhir.
Navigasi wizard tidak memakai validasi wajib, sehingga pengguna bebas Next dan Previous.
Role dan Tombol Simpan
Untuk role supervisor/SPV:
Save as DraftSave Preliminary resultSave Final Result
Untuk role selain supervisor/SPV:
Save as DraftSave and Send To SPVKirim SPV Preliminary
Checkbox Nilai Kritis tersedia di step akhir dan dikirim ke API saat menyimpan.
Struktur Folder
lib/
app/
app.dart
data/
expertise_data.dart
providers/
session_provider.dart
screens/
dashboard/
examinations/
expertise/
login/
services/
api_client.dart
session_store.dart
widgets/
common_widgets.dart
main.dart
Ringkasan:
main.dart: entry point aplikasi.app/app.dart: root aplikasi dan registrasi part screen.services/api_client.dart: komunikasi HTTP ke Laravel.services/session_store.dart: penyimpanan token dan base URL.providers/session_provider.dart: pengecekan session awal.screens/login: halaman login, URL Laravel, dan ping.screens/dashboard: dashboard dan Early Warning Sistem.screens/examinations: daftar dan detail pemeriksaan.screens/expertise: semua screen wizard DLP.widgets/common_widgets.dart: komponen UI umum.data/expertise_data.dart: daftar DLP dan label template.
API Laravel
Aplikasi memakai endpoint mobile Laravel dengan prefix:
/api/mobile
Endpoint utama:
GET /api/mobile/pingPOST /api/mobile/loginGET /api/mobile/dashboardGET /api/mobile/early-warningGET /api/mobile/books/{master}/examinationsGET /api/mobile/examinations/{id}GET /api/mobile/examinations/{id}/expertisePOST /api/mobile/examinations/{id}/expertise/templatePOST /api/mobile/examinations/{id}/expertise
Controller Laravel berada di:
/Users/duidev/htdocs/lis/htdocs/app/Http/Controllers/MobileApiController.php
Route API berada di:
/Users/duidev/htdocs/lis/htdocs/routes/api.php
Menjalankan Aplikasi
Ambil dependency:
flutter pub get
Jalankan di device/simulator:
flutter run
Jalankan dengan default URL lain:
flutter run --dart-define=LIS_BASE_URL=https://lis.swandhana.test/
Verifikasi
Analisis kode Flutter:
flutter analyze
Test Flutter:
flutter test
Cek route Laravel mobile:
php artisan route:list --path=mobile
Cek sintaks controller Laravel:
php -l app/Http/Controllers/MobileApiController.php
Build
Android debug:
flutter build apk --debug
iOS debug tanpa code signing:
flutter build ios --debug --no-codesign
macOS debug:
flutter build macos --debug
Output build yang umum:
- Android:
build/app/outputs/flutter-apk/app-debug.apk - iOS:
build/ios/iphoneos/Runner.app - macOS:
build/macos/Build/Products/Debug/mylis.app
Catatan Lokal
- Pastikan Laravel lokal
https://lis.swandhana.test/aktif. - Pastikan sertifikat lokal dipercaya oleh device/simulator yang dipakai.
- Untuk iOS device fisik, build
--no-codesigntetap perlu signing manual sebelum deploy. - Jangan menjalankan beberapa command Flutter berat secara bersamaan karena bisa berebut file sementara pada folder platform.