dsqscreen

First online research-backed screener for assessing multiple case definitions for ME/CFS. Easy-to-use and consumer friendly. Built in Flask and implementing PlotlyJS.

https://github.com/depaul-ccr/dsqscreen

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

chronicfatigue health me mecfs
Last synced: 6 months ago · JSON representation ·

Repository

First online research-backed screener for assessing multiple case definitions for ME/CFS. Easy-to-use and consumer friendly. Built in Flask and implementing PlotlyJS.

Basic Info
  • Host: GitHub
  • Owner: DePaul-CCR
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage: https://Dsqscreen.com
  • Size: 27.3 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 29
Topics
chronicfatigue health me mecfs
Created almost 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Dev Env Setup

->Need Python 3 installed w/ pip and virtualenv for dev env ~~and mysql~~
Install Python 3 w/ pip
MacOS: ~~brew install mysql~~
pip install virtualenv

->Clone this repo
gh repo clone DePaul-CCR/dsqscreen

->CD into repo

->Create an environment for packages
python3 -m venv ./env

->Activate the environment and install packages source ./env/bin/activate
pip install -r requirements.txt

->Add environment to path if needed
export PYTHONPATH=$PYTHONPATH:~/Github/Depaul_CCR/Screener/env/lib/python3.11/site-packages

~~-> Run database migrations if exist~~

-> To start dev server
python3 main.py dev

Dev pipeline:

featurebranch -> PR main -> PR production -> Create release on Github -> autodeploys to render.com

Production:

-> To start production server
gunicorn main:app prod

N.B. For Data Export and DSQ Question Changes:

-If you change the routes please update the route-order "pageflow" tuple in 'utils/backfunction.py' so the back button works correctly + the docs/dsqitemsandroutesmap.txt file, which shows the DSQ item var names mapped to routes, should be updated also. + dsqcolumns in utils/exportcolumnsutil.py are order-specific so will also be misaligned if the order of questions changes. (TODO: make the data export order-agnostic)

-If you change which items / questions are used, you also need to update the dsqcolumns in utils/exportcolumns_util.py +Also, you will need to update the columns in the export sheet if in use: depaulccrdev@gmail.com's "DSQScreen Output" +Manually, you can compare the data frame which holds the responses to the header row in the Google sheet via: ```

Debug breakpoint on ~line 22 in utils/exportcolumnsutil.py

import nump as np gsarr = np.array(#paste gsheet column headers in here formatted as a list ['x', 'y', 'z'...] ) np.array(df.columns.tolist()) == gs_arr ```

-To make changes to question pages there is one partial for all the F/S questions and then the single-question items are less templated so need to be modified directly (dsq/viral.html and short_form/reduction.html)

-The api key for our Google Sheet is accessed at /etc/secrets/<name of json file> in our Render.com environment

-To enable data retention to Google Sheets you must ensure the api key is in place and uncomment these lines in screenerutils.py, shortformutils.py, and dsqutils.py: ```

df = builddataframefor_export(session)

dumpcollecteddatatosheet(df)

```

Owner

  • Name: DePaul-CCR
  • Login: DePaul-CCR
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it using these metadata."
title: "DSQ Screen"
abstract: "First online research-backed screener for assessing multiple case definitions for ME/CFS. Easy-to-use and consumer friendly. Built in Flask and implementing PlotlyJS."
authors:
  - family-names: "Cathey"
    given-names: "Paul"
  - family-names: "Benner"
    given-names: "Sage"
  - family-names: "Arulmozhi Arasu"
    given-names: "Shanjali"
version: 0.85
date-released: 2024-07-26
license: GNU General Public License v3.0
repository-code: "https://github.com/DePaul-CCR/dsqscreen"

GitHub Events

Total
Last Year

Dependencies

requirements.txt pypi
  • Flask *
  • flask_session *
  • flask_wtf *
  • gunicorn *
  • imblearn *
  • matplotlib *
  • mysqlclient *
  • numpy *
  • pandas *
  • plotly *
  • seaborn *