Return to Table of Contents

Services and Design

The system will comprise multiple services. A frontend application where it will be hosted on the user's phone and a web application for medical professionals to use that will be hosted on an edge platform for fast delivery. The remaining services will be containerized and hosted on a cloud platform. These services will be an Authentication Service, Image Processing Service, Communication Service, an API Gateway Service, and a form of persistent storage using an SQL Database.

Frontend Mobile Application: 

The app being designed will have multiple factors playing into its layout. The goal will be to keep it as simple as possible. For the image taking functionality it will appear the same as the phones Operating Systems camera application whether that be IOS or Android. For simplicity across development it would be best to use a framework like react-native that allows for development for both OS platforms as well. This aligns with the mobile app requirements one and two. The first screen the user will see will be a splash screen showing a welcoming logo. This will then transition to the login screen. there will be an option to sign up using an email and password. It will also require the user to have a minimum complexity on their password. The use of a 2nd factor authentication will be required. Commonly either being the biometrics found on most phones or the option to receive an email or text. This meets MOBAPP requirements three through six. Once the user has finished the authentication process, they will be brought to the homescreen which allows them to take a photo or select a photo. The app will examine the camera qualities presented by the OS to make sure they meet the requirements. If the camera does not sufficiently meet the needed resolution it will not allow the user to take a photo. Once a user either selects or takes a photo the application will verify that the quality of the photo is sufficient by simply showing two example photos and asking the user if the image meets this quality criteria or if it is blurry to retake. The backend will also verify quality before processing. The image is then sent over HTTPS tunnel so all data is encrypted. The backend will then send a verification message notifying the image was successfully received and is being processed.

Web Application:

The web application will be used for medical professionals to determine the images flagged as potentially cancerous. It will also be used as a place for the doctors to do live chats with the user. It will require the medical professional to authenticate themselves as well. It will allow the physician to submit their diagnosis to their given health information system. This application should be developed in a similar framework as the mobile app such as  react to make development smooth for the frontend engineers. It should also take on Progressive Web Application values by presenting the same splash screen as the user mobile app. This is all how it will meet the WEBPOR Requirements one through three.

“The Server”

The server in the client server architecture shall be broken up into microservices that fit a specific role. This allows for simplicity in development, and for the services to be hosted differently depending on their future features. Each service will be containerized and hosted on a cloud platform. The platform will make use of Virtual private clouds to isolate the communication of services outbound and inbound.

API Gateway:

This is a simple service that provides multiple benefits. The api gateway will handle rate limiting and token verification. It will also be the only way into the virtual private network. It will verify all requests contain an authorization token that is not expired. It will then forward the requests to the respective service. This service would be well suited for a language like node.js with an express  framework that can handle tens of thousands of api requests. It will be light weight, and can scale with containers that create more instances using kubernetes if the workload grows to an extraneous amount.

Authentication Service:

The authentication service will provide authentication and authorization for different features. A Medical professional will have a different account compared to a patient user. This service will validate if the user has an account based on the username and password sent from the frontend mobile or web application. It will then prompt either for them to receive a one time token or use another form of authentication such as biometrics embedded in the mobile device. Once authenticated it will give a token that the app will store and send on any future requests. This meets the requirements of SERENV-001.

Image Processing Service:

The Image processing service will receive images from the gateway received from the users mobile device. This service will contain a machine learning algorithm that will identify highly likely skin cancer cases. The algorithm will most likely be a supervised classification algorithm. With current Image recognition algorithms using deep learning convolutional neural networks, that would most likely be the current best course of action. CNN’s have reached an ability to be accurate 96% of the time. This of course is a major concern which will cause the need for an accuracy measurement to be associated with every photo. All photos with less than a certain threshold will be required to be reviewed by medical professionals. This service will also handle the storing and encryption of personal images on the database. These database images will be saved as blobs since the resolution will require too great of detail for a base64 string to be saved. It will also handle checking dates of images every month and deleting ones that are older than ten years. This service satisfies the requirements SERENV-02, 03, 04.

Communication Service:

The communication service will receive unique id and diagnosis from the image service. It will use this information to pull from the database and generate a diagnosis pdf that will be sent in email to a correct medical professional. This service will also allow for instant messaging between a medical professional on the web portal and route them to the correct mobile user. It will use web sockets for this feature. This allows patients to have to communicate concerns with care providers that might not be visible in an image and comfort from a more sympathetic answer than an A.I. solution for responses here. This service will also establish a connection with the HIS and will use common communication for health care systems such as HL7. This service will satisfy the SERENV-05 requirement.

Previous Next