Feature list - Mancario/RheumaApp GitHub Wiki
Copyright and confidentiality
- This work is not confidential.
- You can develop the app as an open source project (Apache or MIT license).
- You can use the work in your thesis and when applying to jobs in the future, pointing to, e.g., the Github repository.
Project goal
The goal of the project is to develop a cross-platform application for rheumatism patients that works online and offline and communicates/syncs via a pre-defined REST-API with a back-end. The app should run on at least Android and iOS.
Recommended technology stack
We recommand the following technology/tools, but you are free to use what you want, of course:
- Github for the project management (git repository, feature and issue tracking, project planning, Kanban board)
- Ionic Framework 2 Community is a great and open-source HTML5 mobile app development framework based on Apache Cordova and Angular 2.
- Typescript, a type-safe superset of Javascript developed by Microsoft that takes a lot of pain from Javascript development and helps with Angular 2 development. Otherwise, plain Javascript (ES6 or above) works, too.
- Visual Studio Code or Github's Atom editors are great code editors.
Feature Wishlist
- I18N support: development in English, but make all strings translatable to other languages such as German or Norsk)
- Tests and documentation: the app/components should be suitable tested and documented. If a behaviour-driven development framework such as Jasmine is used for the tests, no extra technical documentation is needed. It's much better to have fewer features in the final version that are properly tested then to have tons of features but none are tested 😺
- Layout should have "native" look and feel on Android and iOS and follow Google and Apple's style guidelines for Android and iOS, respectively.
- Pain diary: on a day-to-day basis, users should be able to enter their pain (on a scale from 0-10), disease activity (0-10), fatigue (0-10), the prednisolone dose taken (in milligrams), additional drugs taken (if any), tender joints and general comments/remarks.
- The users should be able to enter pain diary for any given previous days (some users are entering the diary at the end of the week for all previous days)
- Health Assessment Questionnaire (HAQ): every once in a while (usually every 1-3 months) users should be able to fill a questionnaire that measures their functional capacity. The HAQ yields a score between 0-3.
- Swollen and tender joints: Users should be able to assess which joints are swollen and which are tender joints. See below for a rough idea/list.
- Users should be able to enter results of certain blood tests that have been taken by their primary physician, local hospital or rheumatologist. The results of the blood tests over time should be shown in a chart.
- The "home screen"/dashboard of the app should show a nice visualisation ("chart") of the history of the assessed numerical data such as pain, disease activity, fatigue, HAQ, certain blood tests, ... defaulting to the last three months. The user can select larger timespans than three months and/or can go back to arbitrary points in time.
- The user should be able to generate a report for a given time period (such as the last 3 months) and "share" this report (the intention is to e-mail the report to the doctor; but it might be easier to simply implement a "share" functionality and let the mobile OS figure out the target application, which can then be, e.g., E-Mail, WhatsApp, ...).
- Offline mode: The app should work in stand-alone mode, i.e., even when there is no network connection (even for days/weeks).
- Two-way-sync: When online connectivity resumes, the app should sync the latest data with the server and fetch any new data entered through different channels (e.g., the web browser based frontend) from the server. A warning should be issued to the user if the last sync is older than a couple of days.
- Reminder: A reminder/notification should be shown if the user has not entered their diary today yet. Extra: make the time of the reminder configurable (some users enter in the morning, others enter in the evening).
- User registration: users who downloaded the app from the app store without an existing account should be able to create an account from within the application. No REST endpoint for this use case exists yet, so you'd have to specify the needs and tell us to add them to the API.
- Attach arbitrary files to the daily diary entries (e.g., pictures of swollen joints, taken from the phone's gallery or camera).
- Remote logging: Errors in the application should be logged to a remote logging service for debugging purposes.
- User guide: it would be great to have a brief end-user guide that covers each major feature such that end-users who use the app and are not technology keen have a kind of quick-start guide or introduction that takes away the fear of contact with the app.
Tender / swollen joints
For rheumatism patients, up to 44 joints are of interest to the rheumatologist:
- 15 joints per hand (1 IP, 4 DIP, 4 PIP, 5 MCP, wrist)
- 13 joints per food (1 IP, 4 DIP, 4 PIP, 5 MTP)
- 8 joints on the body (elbow, shoulder, knee, ankle)
Here's an example from the desktop application (note: the distal phalangeal joints (DIP) are missing in this graphic but should be included).