Git Product home page Git Product logo

linkr's Introduction

LinkR

Lifecycle experimental

License: GPL v3

version

Introduction

LinkR is a web application that allows for visualization and analysis of healthcare data.

The application is coded in R using the Shiny library. It uses the common data model OMOP.

Who is the application for?

The application is for:

  • healthcare professionals, an intuitive interface allows healthcare professionals to analyze data and conduct studies without advanced programming knowledge
  • data scientists and statisticians, LinkR provides access to a full R and Python environment, allowing data scientists and statisticians to exploit all the features of advanced data analysis
  • healthcare students, integrated tutorials in the application provide healthcare students with an opportunity to learn and practice data analysis in the healthcare field

Thus, LinkR facilitates collaborative work.

Quick overview

Use an intuitive graphical interface to visualize aggregated patient data. Generate and, if required, modify the corresponding R code directly from the figures you create.



Explore data on a patient-by-patient basis. As you switch between patients, the figures dynamically update to reflect each patient’s specific data.



Enhance team collaboration with our integrated messaging system. Exchange messages with team members for mutual assistance and streamlined communication.

Sharing and Open Science

LinkR is an open source application.

It contributes to open science by allowing the sharing of:

  • studies: import and export your studies in one click, reproduce studies with your own data
  • scripts: share interoperable scripts, thanks to the use of the common OMOP data model
  • plugins: help improve the application by creating plugins and sharing them

Installation

The remotes library must be installed, you can install it with:

install.packages("remotes")

You can install the development version from Framagit, with:

remotes::install_gitlab("interhop/linkr/linkr", host = "framagit.org")

Launch the app

To launch the Shiny app, run:

linkr::linkr(language = "en")

You can use the following arguments in the linkr function :

  • language: choose in which the application will be launched ; “en” and “fr” are available
  • app_folder: by default, application files are saved in the home folder (path.expand("~") to know which folder it is). You can change this folder by specifying the target folder in this argument.
  • local: TRUE or FALSE to allow the app to access the internet
  • show_home_page: TRUE or FALSE to show home pages (Overview, News, Tutorials… pages)

See ?linkr::linkr for more informations.

The first load may take a few minutes to create the application database and download the default data.

Use “admin” as ID & password for your first connection.

Contributions

LinkR needs help to evolve! You can contribute by creating plugins, or by helping to improve the application’s code.

Report a bug

Go here to report a bug.

Support us

LinkR is supported by the Interhop association, promoting open-source and interoperability in healthcare.

You can make a donation here.

Contact

Email: [email protected].

linkr's People

Contributors

borisdelange avatar youennmerel avatar

Watchers

 avatar

linkr's Issues

Create modules from patient_lvl page

Add a functionnality to create a module, a module element from the pages patient_lvl_data & aggregated_data.

Add the possibility to edit a module element, or delete a module element, from these pages.

Upload database

Currently, it is possible to download database (tar file containing csv for each table).
Create a function to upload database from a tar file (to restore database with a previous export).

Save database doesn't work on RStudio Server

Saving database from the app launched from a RStudio Server account may not work.
Need to create a temp dir with csv, before downloading tar file.
Maybe a user access that do not allow to create the temp file ?

Put age in r$stays var

Currently, age col is in r$patients variable.

We have to put it in r$stays variable, cause age is calculated with admission_age col.

Create a plugins catalog

Create a page inside the app to display existing plugins.

Connection to github content with markdown description, screenshots with minimal examples.

+/- add a video

Display dropdowns gradually

As an example, there are too much dropdowns in patient-level data page.

Display dropdowns gradually (datamart, then studies etc) would make it easier.

Share a project

To share a project, download a tar with only rows concerning current project.

Share a datamart or a study.

Download :

  • Plugins from plugins table with only used plugins for this projet.
  • Studies related to chosen datamart
  • Subsets related to chosen datamart or study
  • Datamart code
  • Thesaurus code & items
  • Modules families, modules & modules elements
  • Modules elements options
  • Patients options

Deploy on shinyapps.io

Deploy a version on shinyapps.io

With only patient-level data & aggregated data pages.

With 2 or 3 plugins (flowchart, table 1, report...)

Without the settings page.

Modules : add dropdown to filter datatable

Enhance UX with adding a dropdown to filter on module family, on patient-lvl & aggregated modules.

A better solution is to save column filter on datatable, but had some difficulties with that...

Working directory at initiation of the app

When we launch the app with

cdwtools::cdwtools()

If we havn't specified the wd with

setwd(find.package("cwdtools"))

All the functions run from inside the app doesn't work.

Need to setwd from inside the app, but I have a problem to run setwd to the global environment.

Time zones management

Consider choose time zone in settings...

Load dataframes with correct timezone...

Data model : change unit_name

In r$stays variable, change unit_name to item_id, and add thesaurus_name.

The unit should be a thesaurus item, then the user can change the name of the units.

Change local database file path

Change local database file path.
For now, it is on the library directory. So database is deleted when library is updated or when package is uninstalled.

Plugins versions

In app database, create a column 'version' in plugins table.

In plugins page, choose the version we want to use.

In import a plugin page, if we import a different version, do not erase old version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.