Skip to content
Snippets Groups Projects
Commit 3b49c533c718 authored by Cédric Krier's avatar Cédric Krier :atom:
Browse files

Add Pharmavax success story

parent a280a6b06cc2
No related tags found
1 merge request!131Add Pharmavax success story
Pipeline #97849 passed
......@@ -642,6 +642,14 @@
],
story=True),
Case(
title="Pharmavax",
description="Management of COVID-19 vaccines for pharmacies.",
taglines=[
"How Tryton helped pharmacies to prepare and deliver "
"COVID-19 vaccines",
],
story=True),
Case(
title="Revelle",
description="Consulting in developing countries and "
"emerging economies.",
......
static/images/success-stories/pharmavax.webp

4.71 KiB

static/images/success-stories/pharmavax/backend.webp

6.24 KiB

static/images/success-stories/pharmavax/banner-400px.webp

3.09 KiB

static/images/success-stories/pharmavax/banner-800px.webp

6.5 KiB

static/images/success-stories/pharmavax/banner.webp

18.1 KiB

static/images/success-stories/pharmavax/green-cross.webp

26.5 KiB

static/images/success-stories/pharmavax/website.webp

21.4 KiB

......@@ -2,7 +2,7 @@
{% set website = 'https://www.b2ck.com/' %}
{% set email = 'info@b2ck.com' %}
{% set phone = '+32472544659' %}
{% set stories = ['expertise-vision'] %}
{% set stories = ['expertise-vision', 'pharmavax'] %}
{% extends "service_providers/layout.html.jinja" %}
{% block description %}
The main driving force behind Tryton.
......
{% set title = "Pharmavax" %}
{% set description = "Success story on how Tryton was used to distribute COVID-19 vaccine" %}
{% set keywords = ["success story", "case study", "vaccine", "COVID-19"] %}
{% set banner = "pharmavax/banner" %}
{% set logo = "images/success-stories/pharmavax.webp" %}
{% extends "success_stories/layout.html.jinja" %}
{% block customer %}
{{ super() }}
<img src="{{ url_for('static', filename='images/success-stories/pharmavax/green-cross.webp') }}" class="img-fluid mx-auto my-4 d-block mx-md-4 my-md-4 float-md-end" alt="Green Medical Cross outside a Pharmacy" loading="lazy" width="300" height="450">
<p class="lead">In October 2021, some Belgian pharmacies were asked to prepare and deliver <a href="https://en.wikipedia.org/wiki/COVID-19_vaccine">COVID-19 vaccines</a> to doctors in their region.</p>
<div class="clearfix"></div>
{% endblock customer %}
{% block challenge %}
{{ super() }}
<p>
The difficulty for the pharmacists was to optimise the use of vaccine bottles.
A bottle of vaccine could be used to make between 5 and 7 injections for adults and between 10 and 12 injections for children.
<br/>
Of course, doctors could not always book a number of shots to match a round number of bottles.
So it was necessary to group shots between doctors to minimise the number of shots lost.
</p>
<p>
Pharmacists also had to report the name and national number of the patient who received the injection.
</p>
<p>
In addition, the distribution process was announced only a few weeks before the start of the vaccination campaign.
</p>
{% endblock challenge %}
{% block solution %}
{{ super() }}
<p>
<a href="https://www.b2ck.com/">B2CK</a> decided to quickly implement a backend using Tryton that could be deployed for each pharmacy, coupled with a <a href="https://flask.palletsprojects.com/">Flask</a> website for doctors to make their reservations.
</p>
<p>
The requirements for the backend were
</p>
<ul>
<li>Define the pharmacy details (such as opening hours, holidays etc.)</li>
<li>Define the stock per period</li>
<li>Invite doctors to the platform</li>
<li>Manage vaccinations</li>
<li>Daily reports</li>
<li>Forecast injections including second injections (1 month later)</li>
<li>Vaccination data to be purged after 90 days</li>
</ul>
<p>
Here are the requirements for the physician website
</p>
<ul>
<li>Easy access</li>
<li>Book shots for their patients</li>
<li>Display remaining shots to complete a bottle</li>
<li>Track injections per patient</li>
<li>Schedule a second shot for each patient</li>
</ul>
{% endblock solution %}
{% block implementation %}
{{ super() }}
<p>
The main implementation was done over a weekend due to the short time frame.
</p>
<p>
A Tryton module implemented all the requirements using only built-in modules
For ease of use, only 7 menu items were created, each providing only the necessary information.
A scheduled task was responsible for removing the booked vaccine after 90 days.
</p>
<img src="{{ url_for('static', filename='images/success-stories/pharmavax/backend.webp') }}" class="img-fluid mx-auto my-4 d-block" alt="Tryton screen with the pharmavax menu and vaccines tab open" loading="lazy" width="909" height="200">
<p>
For the website, a Flask application was developed using <a href="https://code.tryton.org/contrib/flask-tryton">flask-tryton</a> and <a href="https://getbootstrap.com/">Bootstrap</a>.
The doctors has access via a secret URL to avoid password management.
</p>
<img src="{{ url_for('static', filename='images/success-stories/pharmavax/website.webp') }}" class="img-fluid mx-auto my-4 d-block" alt="Pharmavax website opened to the vaccine booking tab" loading="lazy" width="916" height="800">
<p>
<a href="https://www.docker.com/">Docker</a> was used to deploy the solution using <code>docker-compose</code> file with an entry for each pharmacy.
</p>
{% endblock %}
{% block results %}
{{ super() }}
<p>
B2CK hosted the application for some pharmacies for 10 months.<br/>
Approximately 100 doctors used the website to book vaccine injections.<br/>
<i>Due to the automatic cleaning of the personal data, we do not know how many shots have been prepared.</i>
</p>
<p>
Using Tryton allowed B2CK to develop a solution quickly and to maintain it without too much effort.
</p>
{% endblock results %}
{% block provider %}
{{ super() }}
<p><a href="https://www.b2ck.com/">B2CK</a> provided its development experience with Tryton and Web application</p>
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment