About the app

XUND attempts to solve a really complex problem: they want to build an automated health assistant that can analyze your health issues in a few minutes. It is so effective, that by answering a couple directed questions, it can effectively narrow down on the potential illnesses and root causes and give you a diagnosis.

The process itself is really comfortable, you just have to answer the questions posed by the chatbot. In the background, all your answers help to rank and calculate the possibility of the potential causes and illnesses. This algorithm is based on millions of medical publications and machine learning to give you more and more accurate diagnoses.

The features we developed

At the heart of the chat application lies the complex flow that guides the users to gather all the information about their health issues. At the beginning of the project, we identified that the greatest challenge will be to implement this flow, so we decided to break it into building blocks. These blocks can be easily attached into the flow or swapped by another building block. This way we managed to keep the complexity as low as possible and have a readable, maintainable code base that could be handed over in a few days.

The flow consists of 7 main steps:

1, The chatbot asks the users about their gender, age and what their main symptom is.
2, The chatbot poses multiple questions based on the selected symptom to identify the root causes.
3, Based on the information collected so far, multiple connected symptoms are suggested, so that no symptoms are left out.
4, Further questions are posed to collect information about the connected symptoms as well.
5, We iterate through this loop until all the symptoms are detected.
6, At this stage we collected all the information about the symptoms. The medical system already has a few possible diagnoses, but in order to better quantify the possibilities of the health issues, we ask further questions about the possible illnesses.
7, If the medical system already knows everything about our illness, we ask the users to accept the terms and offer them to download their diagnosis.

This flow seems complicated, but the chatbot makes it so easy for the users to answer all the important questions and add symptoms that they didn’t even think of. I think we managed really well to tackle this problem and implemented a really efficient chatbot.

The admin page

Besides the chatbot, we developed an admin page that makes the chatbots highly customizable. The admin users can create new chatbots and customize existing ones to suit the needs of multiple partners.

Backend

Besides the chatbot, we developed the backend application as well, that acts as a security, data layer and middleware between the medical system and the chatbot. Furthermore, the backend makes it possible to highly customize the chatbot through the admin page.

Team work

The team consisted of two developers and a scrum master from SnapSoft side and we worked in agile. The specification was excellent from the beginning, and we had great support from XUND. We had daily standups and besides spring planning and demo every week.

Summary

The planning and execution were really great I think, so we managed to deliver a quality product that is easily extendable and maintainable. As the XUND and SnapSoft teams worked actively together during the whole project, the handover went smoothly. I hope the project will be of help for a lot of people.