Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cloudron as a One-Click Platform for Your Own Digital Health Ecosystem #75

Open
7 tasks
mikepsinn opened this issue May 9, 2023 · 0 comments
Open
7 tasks

Comments

@mikepsinn
Copy link
Contributor

mikepsinn commented May 9, 2023

Problems

It's currently a pain to:

  1. get this mono-repo and other digital health projects running locally or on a cloud provider
  2. share data between applications
  3. set up a new API to make siloed data accessible

Cloudron solves these problems by automating most of the processes.

Why We Still Need Raw Data

LLMs are amazing. However, they can only be trained on existing public research papers, which suffer from many shortcomings.

Furthermore, there has only been thorough research on a small percentage of available data. The rest of the data exists as dark matter in silos. By creating an easily deployable local instance for sharing and deriving business value from health data, we can shine light on this dark matter data to produce valuable discoveries.

Solution: Cloudron as a One-Click Platform for Your Own Digital Health Ecosystem

  • Streamlined Installation and Management: Cloudron simplifies the installation and management of various web apps, such as Hospital Management Information Systems (HMIS), on a server 1
  • It automates tasks like provisioning databases, DNS management, and SSL certificate management 2
  • Integrated App and User Management: Cloudron provides a complete integrated solution for app and user management, allowing third-party app developers to iterate quickly and provide support via the Cloudron App Store 1
  • Built-in Backup Storage: Cloudron offers built-in support for backup storage, ensuring data safety and enabling individual apps to be rolled back, cloned, or migrated to another Cloudron installation2
  • Focus on App Usage: By simplifying app deployment and maintenance, Cloudron allows healthcare providers and developers to focus on using the apps and improving patient care, rather than worrying about system administration3

Currently, Cloudron is set up so that each application uses its own database, which is not accessible to other applications. This issue aims to create a Cloudron instance that makes it possible to automatically install any digital health application and allows them to share the same database or easily sync between databases. Relevant Links:

Some Existing Useful Cloudron Apps

Here are some Cloudron applications and their usefulness for a digital health platform:

  • Metabase: Useful for visualizing and analyzing health data, creating dashboards, and sharing insights with team members1
  • NocoDB: Helps manage health-related databases, providing instant APIs for data manipulation and analysis.
  • Wiki.js: Ideal for creating and managing knowledge bases and documentation related to digital health projects and research.
  • WordPress: Useful for creating and managing websites and blogs related to digital health, patient education, and health promotion.
  • Nextcloud: Provides secure file storage, sharing, and syncing for digital health data and collaboration.
  • Jupyter Notebooks: Enables data analysis and scientific computing for digital health research and development.

These applications can be installed and managed on Cloudron, providing a centralized platform for digital health data aggregation, storage, and analysis2

Project Scope:

The project aims to customize Cloudron (or create a setup script) to support shared databases and enable the automatic installation of open-source digital health applications. The goal is to improve integration and data sharing between digital health applications, enhancing the overall user experience and functionality of self-hosted solutions.

Required Resources:

  • A JavaScript/PHP developer with ability to perform Cloudron customization and database management.
  • A test environment (Github Actions or something) to validate the custom Cloudron instance's functionality and compatibility with various digital health applications.

Phase 1: Add This Mono-Repo To Cloudron

  1. Install Cloudron: Set up Cloudron on a server (e.g., AWS, Digital Ocean) by following the installation instructions provided in the Cloudron documentation . This will automate tasks like configuring databases, DNS setup, and certificate management.
  2. Develop App: Use the Cloudron CLI tool to develop your open-source app on your Cloudron instance. The CLI tool uses the REST API to manage all aspects of the Cloudron, such as adding users, configuring groups, and installing apps.
  3. App Store Submission: Submit your app to the Cloudron App Store for review. Once approved, your app will be available for easy installation and receive continuous updates.
  4. Automate Deployment: Create a script or use a continuous integration (CI) tool to automate the deployment of your app on Cloudron. This will ensure that the latest version of your app is always available on the Cloudron App Store.
  5. Documentation: Provide clear documentation on how to deploy and use your open-source app on Cloudron. Include instructions for setting up the app, configuring user access, and managing backups.
  6. Monitor and Maintain: Keep track of any issues or feature requests related to the Cloudron deployment of your open-source app. Address these issues promptly and provide regular updates to ensure a smooth user experience.

By following these steps, you can streamline the deployment and management of your open-source project on Cloudron, making it easier for users to install and maintain your app.

Phase 2: Automate Database Access for Other Cloudron Applications

  • Contact the creators of Cloudron to inquire about the possibility of creating a custom version that supports shared databases for digital health applications.
  • If the Cloudron creators are unable to assist, explore options for hiring a developer to create the custom version.
  • Modify the Cloudron instance to support the installation of digital health applications and ensure they can share the same database or easily sync between databases.
  • Test the custom Cloudron instance with various digital health applications to ensure seamless integration and data sharing.
  • Document the process and any necessary modifications for future reference and potential contributions to the Cloudron project.

This customization will enable better integration and data sharing between digital health applications, improving the overall user experience and functionality of self-hosted solutions.

Phase 3: Create Documentation, Reach Out, and Provide Support to Other Applications Wishing to Integrate

Some Potential Additional Applications

(I'm sure I'm missing a million, so please suggest any other valuable projects in the comments.)

  • Weavechain - Weavechain provides cross-industry solutions for verifiability, privacy-preserving data sharing, and monetization.
  • OpenHumans - A platform for sharing personal data and connecting with data-driven research projects.
  • OpenCures: A platform for sharing and analyzing personal health data, enabling individuals to contribute to medical research and improve their health.
  • Healome: A personalized health platform that uses AI and machine learning to analyze health data and provide personalized recommendations for improving health and wellness.
  • GNU Health - A free health and hospital information system with strong focus on public health and social medicine.
  • Tidepool - A modular monitoring platform for artificial pancreas research groups to visualize and monitor their patients during and after clinical studies
  • rPPG-Toolbox - Deep physiological sensing toolbox.
  • SMART ASCVD Risk Calculator - A web-based calculator for estimating the 10-year risk of atherosclerotic cardiovascular disease.
  • Medplum - A healthcare platform that helps you quickly develop high-quality compliant applications.
  • OpenMRS - Open source electronic health records and medical practice management solution.
  • Open Hospital - A free and open-source Electronic Health Record (EHR) software application.
  • Mining Minds - A collection of services, tools, and techniques working collaboratively to investigate human daily routines.

Phase 4: Federated Learning on Locally Stored Data

To run a Cloudron health instance locally in Vagrant instances and utilize federated learning to share synthetic analytical results while keeping raw data local, you can follow these steps:

  1. Local Cloudron Instance: Set up a local Cloudron instance using Vagrant, which allows you to create and configure lightweight, reproducible, and portable development environments. You can use the Cloudron CLI tool to develop apps on your local Cloudron instance1
  2. Federated Learning: Implement federated learning in your digital health ecosystem by training machine learning models on local data and sharing only the model updates, not the raw data. This approach ensures data privacy while still benefiting from collaborative learning.
  3. Synthetic Data Sharing: Share synthetic analytical results generated from the local data with other instances in the network. Synthetic data maintains the statistical properties of the original data without revealing sensitive information.
  4. Data Security: Ensure that raw data remains local and secure by configuring Cloudron to periodically save backups to a location external to the server2. This approach allows apps to be individually rolled back, cloned, and migrated to another Cloudron installation without compromising data privacy.

By following these steps, you can create a digital health ecosystem that leverages federated learning and synthetic data sharing while keeping raw data secure and local.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant