Warmy Health Companion is a cancer care mobile application developed for Chang Gung Memorial Hospital, serving cancer patients and their attending physicians. The App features an adorable "Warmy" mascot as its visual centerpiece, reducing the sense of distance often associated with medical apps and providing patients with a sense of warmth and companionship throughout their treatment journey.
The iOS version is built with Swift, while the Android version is developed in Kotlin. The backend API is powered by Laravel. The system integrates Firebase Push Notification and Google Form surveys, enabling physicians to track patients' health conditions and treatment progress in real time.
This project focuses on accommodating the hospital's complex business logic, including multi-layered access control between physicians and patients, privacy protection of medical records, and feature permissions and status determination based on disease classification. Per NDA requirements, the physician interface only displays case IDs without revealing patients' real names.
Integrated Google Form survey system enabling physicians to track cancer patients' health status changes. Patients can fill out various assessment scales directly within the App.
Each physician can only view their own assigned patients. Fine-grained data isolation and access control is achieved through physician specialty-disease case associations.
Firebase Cloud Messaging delivers push notifications to remind patients to complete questionnaires, appointment reminders, and health education broadcasts.
Designed in compliance with NDA requirements. The physician interface only displays case IDs without revealing patients' real names or other sensitive personal information.
The system's core logic is built upon multi-layered access control between physicians and patients. Each physician can only access the records of their assigned patients, with data isolation achieved through physician specialty-disease and case associations — the system automatically matches corresponding case lists based on each physician's specialty disease classification.
Access control extends beyond patient visibility to the feature level. Each case corresponds to different feature permission combinations based on its condition type, and each feature permission has its own status to evaluate (e.g., whether a questionnaire has been completed, whether a follow-up appointment has been confirmed), forming a four-layer control structure of Disease → Case → Feature → Status.
In accordance with NDA requirements, the system enforces strict access control on sensitive fields. The physician interface displays only case IDs, without showing patients' real names, national ID numbers, or other personally identifiable information. The API layer uses Resource Transformers to filter sensitive fields at the serialization stage, ensuring the frontend cannot access unauthorized data under any circumstances.
Firebase Cloud Messaging (FCM) is integrated to deliver cross-platform push notifications. The backend triggers notifications via Laravel scheduled tasks for use cases including: questionnaire completion reminders, appointment date notifications, health education broadcasts, and system announcements.
The iOS client uses a dual-channel approach with APNs + FCM to ensure notification delivery rates, while the Android client communicates directly through the FCM channel. Device tokens are registered upon user login and deregistered upon logout, with support for simultaneous notifications across multiple devices.
The survey functionality is built on Google Form, embedded within the App via WebView. Patients can directly fill out various physician-assigned health assessment scales (such as Eustachian Tube Dysfunction Questionnaire, Nasal Symptom Questionnaire, etc.) within the App.
The backend tracks each patient's questionnaire completion progress and deadlines, with push notifications reminding patients of incomplete surveys. The physician interface displays patients' questionnaire completion status for overall tracking progress.
The backend is built with Laravel providing a RESTful API with modules for user authentication, case management, questionnaire tracking, and push notification management. The authentication flow distinguishes between patient login and physician login roles, each with independent Guard and Middleware layers.
The data access layer implements fine-grained RBAC access control using Policy + Scope, ensuring every API endpoint undergoes authentication and authorization checks. Scheduled tasks handle background jobs such as push notification delivery and questionnaire expiration reminders.
The iOS version is natively developed in Swift, using MVC architecture with URLSession for API requests. The UI is built with UIKit, integrating Firebase SDK for push notification and device token management.
The Android version is natively developed in Kotlin, using Retrofit as the HTTP Client and Coroutines for asynchronous operations. Push notifications are received and processed through FirebaseMessagingService, supporting notification display in foreground, background, and terminated states.
CONTACT US
Whether it's a healthcare app, enterprise internal system, or mobile application development, we can build a tailored solution for you.
Contact Us