Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Technical stack (Front-end)

Patient mobile application

Proposed Tech Stack

Technologies

  • React Native

  • Component/theme are based on Google Material Design for Android and iOS style for iOS devices

Recommended End-user requirements

  • iOS 12 or newer

  • Android 6.1 or newer

Benefits

  • Chosen technologies are all rooted in free Open Source projects

  • The components are popular and widely used in Android and iOS

  • Support wide range of mobile versions, maximizing the reach and usability of the app

  • Choosing React Native means that the system can be developed and compiled for both iOS and Android instead of built separately

Mobile App Framework

Technologies

  • React Native

Benefits

  • Free Open Source

  • Proven success and long-term sustainability. React Native is being used world wide by many huge brands.

  • Created by Facebook, adopted and supported by huge community

  • Easy to learn for software developers meaning it is easy to find software companies to further develop and scale the solution

Third Party Applications

While the final list of 3rd-parties to be used will be finalized during the project planning phase, we can highlight a few below:

  • Commonly used NPM packages which adds more functionality to React Native. 

  • Rocket Chat for online messaging, audio and video conference 

Our approach is to speed up the development process, and avoid re-inventing the wheel. By using free open source projects like popular packages in NPM and messaging tool like Rocket Chat, the final product will be built with simple, easy to maintain code which doesn't have a risk to become obsolete in the short-term.

Therapist web application and Administrator web application

Client Side

The client side means to be the look and appearances of the app which will be seen and used by the users. This will be developed independent of the the server side and will be communicated via API. This is a part of micro-services as stated above. 

Technologies

  • ReactJS

  • Google Material Design 

Benefits

  • All are free open source

  • Modern (HTML5, CSS3, JSX support)

 Having loose coupling between client and server, the Therapist web application is interoperability ready. HI could add more clients such as a mobile app for therapists, or for exchanging data with with other partner organizations.

Server Side

As stated in the client side section, the server is to be developed as independent system and as part of the micro-services. This will make the Therapist web app a very versatile system which satisfies HI's requirements for scalability. For instance, HI can develop a mobile app for the Therapists which connects to the online system without further development work on the server side.

This will greatly reduce the risk of server failure if there is any bug/issue in the client side or vice versa.

Technologies

  • Laravel framework for API

  • Zuul for API Gateway

  • Keycloak for Identity and Access Management

  • Swagger for API documentation

Benefits

  • All are free open source and popular for enterprise-class software development 

  • Robust in terms of reliability and security 

  • Widely known by software developers and easy to find software suppliers for future maintenance or enhancements 

Technical stack (Back-end)

...

Item

...

Technology

...

Comment

...

Item

...

Technology

...

Comment

...

Hosting

...

Table of Contents
minLevel1
maxLevel7

Introduction

OpenTeleRehab was designed and implemented based on the following guiding principles:

  1. A future system must be conceptualized and implemented with the needs of the end-users in mind. This means actors have the chance to participate in the design phase, test early, providing valuable feedback for definition and refinement.

  2. The system should use a modular system design and micro-services architecture to make it easier to implement changes in the future

  3. A thorough and stable implementation and early piloting are achieved incrementally through agile development. It assures strict orientation at business value and improves quality through regular development, validation and learning cycles

  4. The information must be integrated and centralized ideally, in the cloud. This decreases vulnerability to local system failure, increases scalability and allows for wider access, process improvement and automation

Micro-Services Architecture

Micro-services, also known as micro-services architecture, is an architectural style that structures an application as a collection of services that are highly maintainable and testable, loosely coupled, independently deployable and organized around business capabilities. See https://hidsi.atlassian.net/wiki/spaces/OpenTeleRehab/pages/8718218/Architecture+Details+and+Diagrams#Micro-services-Architecture .

OpenTeleRehab Modules

OpenTeleRehab is a combination of 3 different modules that interact with each other. The first module is a web application for Administrators to manage contents, users and system settings. The second module is a web application for Therapists to manage patient accounts, design treatment plans, set up appointments and organize communication. The third module is a mobile application for patients to access tailor-made treatment plans and get in contact with therapists.

A satellite open-access web app, OpenTeleRehab Library, allows the public to access, review and contribute to a global telerehabilitation clinical library of contents (Exercises, Information and Education Materials and Questionnaires)

Admin Portal and Therapist Portal

Are web applications for organizational administrators and therapists who manage other users of the system and provide the clinical content to support therapists to create treatment plans for patients. These portals enable administrators and therapists to manage all content related to other modules. The frontend is developed using ReactJS and Google Material Design following an initial Figma Design. See Initial Figma Designs. The backend of the portal is developed separately and follows the micro-services architecture mentioned above that allows all three modules to connect to these micro-services independently. These micro-services use technologies like Laravel framework, Restful APIs, Identity and Access Management systems and other open-sourced third-party systems that can easily be integrated as a micro-service using Restful APIs.

Patient Mobile App

The Patient Mobile App is designed to allow patients to access the treatment plan designed by the therapist(s). It displays the scheduled activities for the day. The activities are shown as easy-to-read cards that include exercises with pictures and instructions, questionnaires and feedback forms, and education and information materials that the patient can access. It also supports chat and call features that allow the patients to be in contact with their therapist(s). Patients can also manage their appointments with their therapist(s). The mobile app was developed using ReactNative and Google Material Design components that follow the initial Figma Design. See Initial Figma Designs. A kid-friendly theme for the mobile app was also developed.

Chosen technologies are all rooted in free Open Source projects and the components are popular and widely used in Android and iOS. Choosing ReactNative means that the system can be developed and compiled for both iOS and Android instead of being built separately.

OpenTeleRehab Library

The OpenTeleRehab Library is a satellite open-access platform where telerehabilitation clinical contents (Exercises, Education Materials and Questionnaires) are publicly available. Visitors of the Library can access, review and submit new clinical content. Submitted clinical content(s) (Exercises, Education Materials and Questionnaires) are reviewed by a team of moderators. Once approved, the submitted clinical content(s) can be seen on the website.

The resources are automatically translated to different languages available to the site using Google Translate. At the same time, visitors can also add or suggest proper translations of these resources and goes through the same review process by the moderators.

Admin and moderators can access the site’s backend platform. On this platform, they can add and/or remove user access, manage the resource categories, manage the available languages of the site, review and approve submitted resources and translations and manage the site’s other pages (home page, about us, terms and conditions and acknowledgment pages).

Technology Stack

Item

Technology

Comments

Hosting

Image Added

Amazon Web Services (AWS) provides a wide range of services with option to upscale the match with the peak demands. 

  • It supports Kubernetes and Docker which will use to implement the micro-services architecture.

  • It supports multi-region deployment which complies to GDPR and data protection requirements

  • It provides monitoring tools to manage and optimize your storage

Experience: Web Essentials has implemented AWS for both national projects in Cambodia and enterprise customers in Europe (cf. Case Study).

Operating system and webserver

Image Removed
Image Added

Many

operation services we proposed

microservices that were used (database, firewall, never-proxy, etc.

..

) are available as SaaS and an operating system is not needed.

Database

Maria DB

Image Removed

Our chosen database for this project is MariaDB, however we are flexible in the final choice.

A high-level comparison of the two solutions:

MariaDB:

In case we added extra services which requires an OS, our default and preferred OS is Ubuntu which has been used worldwide.

Programming language and framework

PHP Laravel Framework

Image Removed

We have implemented multiple successful Laravel projects for governments and NGOs, including the multilateral health-related solution IDPoor - please see the references in the "Qualifications of the Service Provider" as part of this proposal

Image Added

Laravel: open-source PHP web application framework

Databases

Image Added

MySQL: open-source, well-maintained by community, frequent security fixes

MySQL: open-source but maintained by Oracle which increases dependency