Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sabaimran/disease-finder
A minimal web application which allows you to look up diseases based on symptoms.
https://github.com/sabaimran/disease-finder
disorder-prediction flask health healthtech python react
Last synced: 10 days ago
JSON representation
A minimal web application which allows you to look up diseases based on symptoms.
- Host: GitHub
- URL: https://github.com/sabaimran/disease-finder
- Owner: sabaimran
- Created: 2022-06-21T08:04:59.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-06-29T13:23:45.000Z (over 2 years ago)
- Last Synced: 2024-10-11T18:56:45.243Z (about 1 month ago)
- Topics: disorder-prediction, flask, health, healthtech, python, react
- Language: Python
- Homepage:
- Size: 284 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Probably Genetic - Coding Challenge
See [challenge.md](challenge.md) for the challenge description.## Solution
Hi! You can see the solution [here](http://ec2-52-88-42-74.us-west-2.compute.amazonaws.com:3000). Click on `symptoms` to see a page which allows you to search for symptoms, select them, and then compute the most likely diagnosis. Click on `disorders` to see a flat list of all the disorders available in the database.
### Edge Cases and Future Directions
- Add provisions around data quality issues
- Add more data sources (e.g. [SNOMED](http://snomed.info/sct))
- In the UI, make it more apparent why a particular disease was in the returned list, and give a probability estimate
- Use Machine Learning to build a better algorithm for computing the most likely diagnosis
- Use a proper database more suitable for large applications (Postgres, MySQL, etc.)
- Pull more descriptive data into the database from a third party API for each disorder
- Make the disorders and symptoms more searchable - use a search bar which leverages NLP for more approximate query matching
- Use caching to improve load times, especially since the data is relatively static
- Fix the favicon. Haven't figured out how to get it to refresh.
- Use a single `docker-compose` file for setup and deployment## Run Unit Tests
`python3 -m pytest`
## Local Development
### If using Docker Compose (preferred)
#### Prerequisites
- `sudo apt install docker-compose` ; Ensure you have docker-compose installed.Open two separate terminals, one to run the server and one to run the client.
#### Run the client
`cd disease-finder/client && docker-compose up`#### Run the server
`cd disease-finder/server && docker-compose up`### If using local development (for Ubuntu 22.04)
#### Prerequisites
- `node --version` > v16.15.1
- `yarn --version` > v1.22.15
- `sudo apt install python3.10-venv` # Ensure you have python3.10-venv installed to properly setup the virtual environment.#### Run the client
1. `yarn install`
2. `yarn start`#### Run the server
1. `chmod +x run.bash`
2. `./run.bash`If you're testing in this way and need to re-start the server, please comment out the db initialization step in `run.bash` to save yourself 30 minutes 😊.
## Stack
- React - frontend
- Flask - API
- sqlite - database
- SQLAlchemy - ORM