You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_QLine/README.md

202 lines
5.4 KiB
Markdown

12 months ago
# HMG_QLine
2 years ago
9 months ago
HMG_QLine is a Flutter-based application designed for efficient patient management and queue handling in healthcare environments. It features multiple screens for patient display, robust logging, and
background service integration to ensure reliability and uptime.
2 years ago
12 months ago
## Features
9 months ago
12 months ago
- Patient queue management across all screens
12 months ago
- Foreground service to monitor app state and auto-reopen if terminated or backgrounded
- SignalR integration for real-time updates
- Persistent logging with automatic log file rotation
- Dynamic app versioning
- Modular architecture with ViewModels and Services
2 years ago
12 months ago
## Getting Started
1 year ago
12 months ago
### Prerequisites
9 months ago
12 months ago
- Flutter SDK (>=3.0.0)
- Dart (>=2.17.0)
- Android Studio or Xcode for platform-specific builds
### Installation
9 months ago
12 months ago
1. Clone the repository:
```bash
git clone https://github.com/your-org/HMG_QLine.git
cd HMG_QLine
```
2. Install dependencies:
```bash
flutter pub get
```
3. Run the app:
```bash
flutter run
```
## Project Structure
9 months ago
12 months ago
- `lib/` - Main source code
9 months ago
- `api/` - API integration
- `config/` - Configuration files
- `constants/` - App-wide constants
- `models/` - Data models
- `repositories/` - Data repositories
- `services/` - Business logic and background services
- `utilities/` - Utility functions
- `view_models/` - State management
- `views/` - UI screens
12 months ago
- `assets/` - Fonts, images, icons, and tones
- `android/`, `ios/`, `macos/`, `linux/`, `windows/` - Platform-specific code
## Logging
9 months ago
12 months ago
- Logs are saved in the device's external storage under `/logs/`
- Log files are rotated every 48 hours
- Each log entry includes a timestamp, source, and type
## Foreground Service
9 months ago
12 months ago
- Monitors app lifecycle
- Automatically reopens or restarts the app if terminated or sent to background
- Checks app status every minute
## SignalR Integration
9 months ago
12 months ago
- Reconnects automatically after disconnection
- Ensures real-time updates for patient queues
## Debugging
9 months ago
12 months ago
- Debuggable builds can be enabled in `android/app/build.gradle` for troubleshooting
## Contributing
9 months ago
12 months ago
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
## License
9 months ago
This project is licensed under the MIT License.
# Queuing System Shell Scripts
This repository contains a set of shell scripts for managing Android devices running the HMG QLine application in a multi-device hospital environment. The scripts automate deployment, logging, restarting, and uninstallation tasks for efficient device management.
## Features
- **Deploy APKs:** Install and launch specific versions of the QLine app on multiple devices.
- **Restart App:** Force-stop and relaunch the QLine app on all connected devices.
- **Uninstall App:** Remove the QLine app from all connected devices.
- **Extract Logs:** Pull log files from devices for troubleshooting and analysis.
- **Device Connection:** Automatically connect to devices over Wi-Fi using IP addresses.
## Folder Structure
```
queuing_system/
├── apks/ # APK files for different QLine app versions
├── logs/ # Data logs from devices
├── connect_devices.sh # Script to connect to devices
├── deploy_qline.sh # Script to deploy APKs
├── device_ips.txt # List of device IP addresses
├── extract_logs.sh # Script to extract logs from devices
├── restart_qline.sh # Script to restart the app on devices
├── uninstall_qline.sh # Script to uninstall the app
```
## Getting Started
1. **Clone the repository:**
```bash
git clone <repo-url>
cd queuing_system
```
2. **Configure device IPs:**
- Add device IPs to a file (e.g., `device_ips_all.txt`), one per line.
3. **Prepare APKs:**
- Place APK files in the `apks/` folder, named as per the versioning scheme.
4. **Run scripts:**
- Make scripts executable: `chmod +x *.sh`
- Example: Deploy APKs
```bash
./deploy_qline.sh
```
- Example: Extract logs from a device
```bash
sh extract_logs.sh -ip <device_ip:port>
```
## Script Commands (One by One)
Use the commands below with the appropriate IP list file.
### Connect Devices
```bash
sh connect_devices.sh -ipfile device_ips_all.txt
```
### Deploy QLine APK
```bash
sh deploy_qline.sh -ipfile device_ips_all.txt -version 9.2
```
**Deploy to Single IP:**
```bash
echo "10.70.6.143" > temp_ip.txt
sh deploy_qline.sh -ipfile temp_ip.txt -version 9.2
rm temp_ip.txt
```
### Restart QLine App
```bash
sh restart_qline.sh -ipfile device_ips_all.txt
```
### Uninstall QLine App
```bash
sh uninstall_qline.sh -ipfile device_ips_all.txt
```
### Extract Logs (Single Device)
```bash
sh extract_logs.sh -ip <device_ip:port>
```
### Extract Logs (All Devices)
```bash
sh extract_all_logs.sh -ipfile device_ips_all.txt
```
### Clear Logs (Single Device)
```bash
sh clear_logs.sh -ip <device_ip:port>
```
### Clear Logs (All Devices)
```bash
sh clear_logs_all.sh -ipfile device_ips_all.txt
```
### Kill QLine App (All Devices)
```bash
sh kill_qline.sh -ipfile device_ips_all.txt
```
## Requirements
- macOS (tested)
- Android SDK Platform Tools (adb)
- Wi-Fi connection to devices
## Notes
- Ensure all devices are on the same Wi-Fi network (`Cloud Solutions`).
- APKs and logs are ignored from version control via `.gitignore`.
- Scripts are designed for hospital multi-floor deployments but can be adapted for other environments.
## License
MIT License