Skip to content

Optimize the patients waiting list for PET Scan using a limited Radiopharmaceuticals supply.

License

Notifications You must be signed in to change notification settings

ansnoussi/Radiopharmaceuticals-Optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rp Optimizer

Description

Description : Rp Optimizer (short for Radiopharmaceuticals Optimizer) is an open source web app used to make the use of Radioactive pharmaceuticals used in the detection of cancerous cells more efficient during PET scans.

Case Study

The Sahloul University Hospital ,being the first Hospital to make use of this app, had a great deal of impact on the development process. In fact this app was built solely for Sahloul University Hospital but then I decided to open source it.

At said hospital, the PET (Positron Emission Tomography) unit used fluor 18 marked fluorodeoxyglucose who's radioactivity allowed the PET camera to visualise the cancerous cells during the scan.

This pharmaceutical is both expensive and his radioactivity decrease rapidly (half life of 110 min).

On the scan day, the PET unit receives the pharmaceutical and it has to decide on an optimal way to divide it between several patients (each with different needs in term of : scan time & required radioactivity needed for the scan).

In comes our app whose purpose is to effectively and efficiently order patients during a PET scan given an initial state, and also to show usefull statistics and predictions that are crucial for the PET machine operator.

Screenshot

Screenshot

Project setup

The current project is using the following toolkit:

  • Email.js : for sending user feedback via email.
  • Sentry : for monitoring app health in the production environment and loggig errors.
  • Amplitude : for collecting business metrics and displaying them in a nice comprehensive dashboard (example : number of patients / day).
  • Vercel : for deploying the app to main domain in the production environment, and each commit to a temporary url in the preview environment.
  • Cypress Dashboard : for running e2e tests in the CI pipeline and uploading video of the tests to an online dashboard.

Installation

Use the node package manager npm to install the RP-Optimizer project and run it.

cd app && npm install;

Usage

npm start

Run tests

npm run test

🏝️ Codesandbox

This is a codesandbox to test the sorting / prediction logic in isolation : Link

🤝 Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.

Typical contributing process

  1. A change is commited to the dev branch.
  2. Vercel detects the commit and deploys to a temporary url that is accessible to test the changes live.
  3. I create a PR to merge with master branch
  4. Cypress detects the PR, runs the e2e tests and uploads a video of the execution the Cypress dashboard, and then replies to the PR with the test results.
  5. Now, that Branch protection rules are satisfied, I can successfully merge the PR.
  6. Vercel detects the merge and deploys the project to main url.

PS: Branch protection rules are :

  1. Require a pull request before merging to master
  2. Require status checks to pass before merging (the Cypress e2e tests)

📝 License

Apache License

About

Optimize the patients waiting list for PET Scan using a limited Radiopharmaceuticals supply.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published