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

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.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

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/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:

/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-codesign tetap perlu signing manual sebelum deploy.
  • Jangan menjalankan beberapa command Flutter berat secara bersamaan karena bisa berebut file sementara pada folder platform.