Files
lis/mylis/README.md
T
2026-07-21 19:08:27 +07:00

213 lines
4.6 KiB
Markdown

# 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:
```text
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.dlp` masih 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:
- `CCI`
- `Kultur`
- `Pewarna Langsung`
- `TBC`
- `Viral Load`
- `IgM IgG Leptospira`
- `PCR COVID`
Semua wizard memakai pola umum:
1. Data pasien dan petugas.
2. Isian parameter/template sesuai DLP.
3. Tes Kepekaan Antibiotik jika berlaku.
4. Data alat jika berlaku.
5. 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 Draft`
- `Save Preliminary result`
- `Save Final Result`
Untuk role selain supervisor/SPV:
- `Save as Draft`
- `Save and Send To SPV`
- `Kirim SPV Preliminary`
Checkbox `Nilai Kritis` tersedia di step akhir dan dikirim ke API saat menyimpan.
## Struktur Folder
```text
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:
```text
/api/mobile
```
Endpoint utama:
- `GET /api/mobile/ping`
- `POST /api/mobile/login`
- `GET /api/mobile/dashboard`
- `GET /api/mobile/early-warning`
- `GET /api/mobile/books/{master}/examinations`
- `GET /api/mobile/examinations/{id}`
- `GET /api/mobile/examinations/{id}/expertise`
- `POST /api/mobile/examinations/{id}/expertise/template`
- `POST /api/mobile/examinations/{id}/expertise`
Controller Laravel berada di:
```text
/Users/duidev/htdocs/lis/htdocs/app/Http/Controllers/MobileApiController.php
```
Route API berada di:
```text
/Users/duidev/htdocs/lis/htdocs/routes/api.php
```
## Menjalankan Aplikasi
Ambil dependency:
```bash
flutter pub get
```
Jalankan di device/simulator:
```bash
flutter run
```
Jalankan dengan default URL lain:
```bash
flutter run --dart-define=LIS_BASE_URL=https://lis.swandhana.test/
```
## Verifikasi
Analisis kode Flutter:
```bash
flutter analyze
```
Test Flutter:
```bash
flutter test
```
Cek route Laravel mobile:
```bash
php artisan route:list --path=mobile
```
Cek sintaks controller Laravel:
```bash
php -l app/Http/Controllers/MobileApiController.php
```
## Build
Android debug:
```bash
flutter build apk --debug
```
iOS debug tanpa code signing:
```bash
flutter build ios --debug --no-codesign
```
macOS debug:
```bash
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-codesign` tetap perlu signing manual sebelum deploy.
- Jangan menjalankan beberapa command Flutter berat secara bersamaan karena bisa berebut file sementara pada folder platform.