update
This commit is contained in:
No files matched your search
+206
-11
@@ -1,17 +1,212 @@
|
||||
# mylis
|
||||
# MyLIS Flutter
|
||||
|
||||
A new Flutter project.
|
||||
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.
|
||||
|
||||
## Getting Started
|
||||
Default URL Laravel lokal:
|
||||
|
||||
This project is a starting point for a Flutter application.
|
||||
```text
|
||||
https://lis.swandhana.test/
|
||||
```
|
||||
|
||||
A few resources to get you started if this is your first Flutter project:
|
||||
URL tersebut bisa diganti dari halaman sebelum login. Tersedia tombol `Ping` agar pengguna dapat memastikan server Laravel sudah dapat diakses sebelum login.
|
||||
|
||||
- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter)
|
||||
- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
||||
- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources)
|
||||
## Fitur Utama
|
||||
|
||||
For help getting started with Flutter development, view the
|
||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
||||
samples, guidance on mobile development, and a full API reference.
|
||||
- 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.
|
||||
Reference in New Issue
Block a user