In the summer of 2018, we were approached by a client to develop a telemedicine product. The main idea of telemedicine is that it allows the use of modern computer technologies to exchange medical information between doctors and their patients, without actual physical presence and contact.
Norway was the first country who adopted this technology, as there are a lot of remote areas that do not use traditional medical care. Also, we could name some quite popular international telemedicine networks with multiple goals underlying them. For example, the Satellife network works remotely to raise the level of medical education and professional staff development. Another example is the Planet Heres, who coordinate global scientific programs that maintain digital medical records, hold video conferences during operations, and many other things.
Just imagine how it simplifies life when you do not need to physically go to a doctor to receive their consultation. It is not only a question about time-saving, but it’s also a huge improvement in the medical sphere with lots of benefits, such as a healthcare mentorship and sustainable development of specialists qualification level.
The customer’s aim was to create a workable prototype (MVP) of a telemedicine project called PixHealth. Plus, to get the proof of concept, and an additional service of discount coupon distribution for the purchase of medicine – PixRX. Also, PixRx provides information for which pharmacies you can find the necessary medicine in and where these pharmacies are located. Both services should be simple, similar in style, accessible and understandable.
- Investigation of the pain points;
- Creating a unique product that could separate this project from the similar ones;
- Choosing a platform with doctors to integrate it with our service;
- Choosing a payment system that could automatically transfer funds from the clients’ cards and at the same time would be suitable for the business concept of the product;
- Determining the most appropriate services for sending email and SMS notifications.
As client wanted to launch a marketing campaign as soon as possible, we started with the Landing first. It allows the receiving of subscriptions from potential customers and the spreading of information about the project. We decided to use time sustainably and integrated the SendGrid mailing platform, which gave us an opportunity to collect emails from users. This service is convenient because it allows making e-promotions for business campaigns. Also, it can be used to conduct two types of mailings – marketing and transactional. The application offers the set up automatic mailings according to specified parameters and embeds analytics in real time, which illustrates the results of Mail Merge.
The client gave us very little information for filling, that’s why we were developing the structure of the site and content blocks on our own. The main task was not to saturate the page, so we included the fact-finding information about the service, it’s functions and prices. As we are sharks at content-marketing and branding, we have undertaken this task, so they shouldn’t look for the experts in this field. That is pretty convenient, isn’t it?
Initially, we made the graphics more playful. When the site was operating in testing mode, the client examined the market and reported that the field of telemedicine in their vision is much more ambitious and serious, and their target audience is older and more extensive. The client asked to make a more formal version of the site and therefore we replaced all the illustrations with pictures and videos.
As soon as the prototype of the project was ready, we started to plan the development stages. We chose the technology stack, which we will use, it was React and NodeJS with PostgreSQL, after that we created the composition of the team, and assigned tasks. We decided that the back-end team would write up API contracts in Postman and both teams will move under these contracts. This allowed both teams to move in parallel and not wait for anyone, which helped to make the project quick enough. Subsequently, Postman contracts were also used in the development testing and debugging of both the back-end and front-end.
When the design for the dashboard was ready, we began to develop and began to impose other pages. The first task was to build a back-end and integrate with the back-end of the provider – MeMD. It is worth noting that the client asked us to launch MVP, and as quickly as possible, which is why we used MeMD. This platform is in contact with certified medics 24/7 and it is a key system that directly embodies the idea of the project. MeMD is also very easy to launch into a product and it is quite flexible.
We included the option with registration into the dashboard as it gives a possibility to go through the user’s personal account. There we located a notification window, which after registration and scheduling doctor’s appointment appears on the dashboard with information about your meeting.
We also came up with two features:
- Lifestyle score. Here the client describes his lifestyle, he is getting interviewed, talking about habits. Afterwards, he gets a total score and becomes happy or motivated to increase this indicator.
- Tip of the day. This column updates information with daily advice that will benefit the health of each person.
During the development of the back-end, we decided to use the express framework and the nginx web server on the Node.js platform. Put simply, express can be described as the most flexible, simple and fast framework for working with Node.js.
We chose React and MobX for the front-end development. The development team used React because it provides a template language and some callback functions, and it is also great for team development and makes UI code readable and simple. It was understood that we couldn’t build a fully functioning dynamic application only on React, that’s why we also used MobX. Regarding MobX, this is a library whose mechanism of operation is fairly simple and convenient. In general, it is better to use it when you want to link some objects on each other.
We also needed to choose a payment system. We found several, that could fit: Authorize.Net, Stripe and Chargebee.
We analyzed and obtained the following:
Based on our experience, Authorize does not have the best protection, which comes down to the integration process. It is either poorly tuned or simply deprived of security when using our own controls instead of the standard ones. For security, we used Jwt tokens, with a limited lifetime, which were implemented using a passport.
While Authorize has bad code examples and API descriptions, Stripe is better documented, not to mention that we have our most recent experience with Stripe integration.
The flow of development
Authorize.NET requires switching from URL-script to switch it between development and development environments that require an individual implementation. On the other hand, with Stripe, you just need the keys for the right environment.
As for Chargebee, this is a certified billing system for SaaS and subscription based on e-commerce businesses. A nice bonus is that it supports more than 30 of the world’s leading integrators of payment gateways and alternative payment methods, which allows you to make automated withdrawals.
After consulting with the client and discussing all the pros and cons, we chose the ChargeBee platform.
However, the most challenging stage was the integration of the MeMD and Chargebee systems. Unfortunately, in both systems, it was not possible to check if there is a user with this mail in their database. The difficulty was that when registering with PixHealth, we had to register users in the Chargebee and then into MemD, and if we could not register the user in MemD, we had to roll back the registration in Chargebee. Also, in both systems, the APIs are limited in their capabilities due to security concerns, which led to another problem that we had to solve – this is the synchronization of the databases. Since the user can log in to MeMD himself and in the Chargebee they have the opportunity to change anything in these services and PixHealth will not know about it. Therefore, once a month we synchronize the MeMD and Chargebee databases in order to be sure that all users have the current status in our database and to avoid collisions when the user has changed the subscription in MeMD or the settings in the Chargebee.
As a result, we have fully developed both products: PixHealth and PixRx, from scratch in six months. We will present you a case study of the second one, PixRx, in a while. So, as the client insisted on a quick MVP, we tried to find the most flexible solution and integrated the MeMD platform. This allowed us to use their prototype work and supplement it in the future. Also, one of the key stages of work was the choice of a payment system. We have been conducting research for quite a long time, choosing a payment system that satisfies our concept the most and settled on Chargebee.
Wanna grow as rapidly as Pix Health? We are always ready to be an engine of your startup. Feel free to contact us!