foundation29org / H29_Server

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

H29 server

Build Status MIT license

1. Overview

Health29 platform scenarios – main principles

Patient Data Platform

The goal of the platform is to store patient’s data from different conditions and serve as daily support tool for patients and families. Primary users are patients and patient organizations. Secondary users are physicians.

The data stored in Health29 are personal data, demographic data and clinical data (with special focus on phenotype and genotype). Health29 is designed with a patient focus approach, the patient is the ultimate owner of the data and has the last word regarding custody, access by third parties and access revocation.

The other main users of the platform are patient organizations. The patient organizations in Health29 are the aggregators of individual patient information and perform a custodial and advisory role on access to information. In other patient data platforms this role has been assumed by the physician but in Health29 this role can be done by patient organizations.

GDPR is a great opportunity to empower citizens. The possibility for patients to have their medical data is a new paradigm for the healthcare ecosystem. But patients need secure containers where to store that data because medical data is the data with the greatest impact on privacy. Health29 is Foundation 29's data platform that provides patients with that secure container in which to store their medical information.

Patient Data Platform is built with a set of modules to keep information of patients with a disease (*)1:

General data points module: Contains basic personal and clinical data from patients. Data will be accessed and viewed differently according to the type of user (i.e. patient/parent/caregiver, clinicians, researcher, patient manager (usually patient organizations).

Clinical data points module: Contains Patient Reported Outcome Measures (PROMs), they are data generated by patients. This data is stored a structured way and using current standards for capturing clinical data.

Phenotype information module: Assists the user to identify the symptoms of the patient and put together a clinical phenotype. Phenotyping has been done in the past using professionals reading clinical records and extracting symptoms manually or by physicians doing the physical examination and anamnesis (patient’s medical history) capturing process.

Genotype information module: NGS is the primary source of information for patient genomic data. If full NGS data is not available Health29 provide an alternative way to code patient genetic information.

You can consult the documentation on the architecture of the H29 project.

This project contains the core of the H29 platform, the webapp. In particular in this repository is the server code of the project.This project contains the methods to access the different services that the H29 client will need.

The project uses gitflow workflow. According to this it has implemented a branch-based system to work with three different environments. Thus, there are two permanent branches in the project:

  • The develop branch to work on the development environment.
  • The master branch to work on the production environment

And for the test environment, release branches will be created.

 

2. Configuration: Pre-requisites

This project uses external services.

As a minimun, for local develop it is mandatory to configure the file config.js.sample. So, to be able to compile and execute this project you have to modify the extension of the config.js.sample file, removing ".sample" (you have to modify config.js.sample by config.js) and here complete the information of the secret keys of the services.

If you want to deploy on production environment you must configure in the Azure App Service in Configuration/Aplication settings the variables defined in config.js file.

External services required

To execute the project it is necessary to implement or configure a list of external services according to what is explained in the H29 architecture document.

Thus, we will mainly need:

  • An Azure Blob storage for patient information.
  • Two Azure Cosmos DB: one for accounts information and the other one for data information.
  • F29 apis (api) -> TODO: URL to our opensource service

 

3. Download and installation

Download the repository code with git clone or use download button. Run npm install to install the dependencies. The project requires a current, active LTS, or maintenance LTS version of Node.js. In particular, we are using v12.13.0.

 

4. Deployment

Run npm run serve and the server will be deployed on http://localhost:<port>/ (port is configured in config.js file).

 

5. Other project links needed for deploy H29 platform

You can consult the documentation on the architecture of the H29 project.

 

 

Copyright © 2020 Foundation29

About

License:MIT License


Languages

Language:JavaScript 94.0%Language:HTML 2.9%Language:Handlebars 2.3%Language:CSS 0.8%