Code Monkey home page Code Monkey logo

kidney-exchange's Introduction

HTML5 PHP JavaScript Python CSS3 BootStrap

Kidney Exchange Program

What is a living donor kidney exchange problem?

Let's say a person wants to donate his/her kidney to a loved one but cannot do so because they have some medical incompatibility. This problem can be solved by curating similar patients and swapping the kidney within themselves. This problem is called the living donor kidney exchange problem. Only one donated kidney is needed to replace the two failed kidneys, which makes living-donor kidney transplant an alternative to deceased-donor kidney transplant.In India, this is often done manually and there's a need to automate the process.

illustration

Aim

This project aims to automate a part of this process. This project's primary focus is to provide a platform to facilitate automized inter-hospital kidney transplants.

Features

This platform allows interested hospitals to register. The doctors from the registered hospitals can create their accounts and add their patients' (having kidney problems) medical details to this platform.

After a doctor completes this process, this platform provides two main features.

  1. The first feature is an option to view only the essential details of a patient required for a kidney transplant.
  2. Secondly, for a given patient, all suitable matches from all the registered hospitals are displayed. These suitable matches are ranked from best to worst.

Documentation

First timers Guide: New Contributors follow this to create your first Pull Request.
Contributing Guide: Please follow the rules mention here while contributing to this project.
Build documentation: Follow this to setup the project in your local machine.
Scoring Functions: Parameters used for find the match score.
FAQs: Frequently asked questions

Get in Touch

Suggestions or Queries? Please feel free to join our Discord Group !

Code of Conduct

Please go through the CODE_OF_CONDUCT before contributing

License

Distributed under the GNU General Public License v3.0 License. See LICENSE for more information.

Maintainers โœจ


Sivaram D

๐Ÿ’ป

Ria Tyagi

๐Ÿ’ป

Priyanshu Agarwal

๐Ÿ’ป

Contributors โœจโœจ


Arpit Jain

๐Ÿ’ป ๐Ÿ“–

Madiha Mallick

๐Ÿ“– ๐Ÿ’ป

Sukriti Sood

๐Ÿ“– ๐Ÿ’ป

Spurthi7768

๐Ÿ“– ๐Ÿ’ป

Darpan Khanna

๐Ÿ“–

Subhangi Choudhary

๐Ÿ“–

6D-pixel

๐Ÿ’ป

Radhika

๐Ÿ’ป

Yash Khare

๐Ÿ“–

Thales Agapito

๐Ÿ’ป

Rohan Kulkarni

๐Ÿ“–

Ashutosh Verma

๐Ÿ“– ๐Ÿ’ป

Shania Mitra

๐Ÿ’ป

Itashamodi

๐Ÿ“–

kanchi12P

๐Ÿ“–

Jwala

๐Ÿ’ป

ADITI YADAV

๐Ÿ“–

Hardik Varshney

๐Ÿ“– ๐ŸŽจ

SwargaRajDutta

๐Ÿ’ป

Coder_Subhangini

๐Ÿ“–

Shaishav Rastogi

๐Ÿ“–

Yusuf

๐Ÿ’ป

Devanshi Mishra

๐Ÿ“–

Nisha Yadav

๐Ÿ“–

889-dj

๐Ÿ“–

Shobhit Kumar

๐Ÿ’ป

Nitin Shukla

๐Ÿ’ป

Umesh Singh

๐Ÿ“–

nityaak5

๐Ÿ“–

Ayush Seth

๐Ÿ’ป

M M Kishore

๐Ÿ“–

Nandini

๐Ÿ“–

kidney-exchange's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

kidney-exchange's Issues

Responsive Navbar

Navbar we have in our website is not responsive. So, I want to make navbar responsive in out website.

Deletion in the overview page not working properly

I can see pd-pair details on the summary page, but those are not displayed on the overview page (where deletion of a pair is possible).

Note: If the user encounters #35 during insertion. Then patient files and donor files will not be inserted into the database whereas other details will be inserted. Maybe no insertion happens in the pd_pairs table during this error?? ๐Ÿค”

Tech Stack Update ( LOGO add )

I will like to add tech stack logo used in our project this will make our project attractive !! Will start to work on this issue as soon as i get assigned !!

Add background color for invalid radio labels

Currently, there are no background colors for the radio button labels (i.e, positive, negative)

Example:
Screenshot from 2020-10-03 17-24-28 (1)

Instructions

  1. Do not create a new script file or CSS file
  2. Add the screenshots of the form after the fix in your pull request
  3. Add #fff0f4 as the background-color

Helpful Information

  1. In the css/form-styles.css you will find the below code which is used to style the custom error class added to invalid input fields.
.has-error{
  border: 1px solid #c51244;
  background-color: #fff0f4; 
}

.help-block{
  color: #c51244;
  font-size: 18px;
  display: inline-block;
  width: 60%;
}
  1. These classes are added to the invalid input fields by the validation() function present in scripts/reg-form.js

Landing Page

I would like to work on landing page with better design and responsive page. Could you pls assign this to me. @siv2r

Better documentation

This issue is for any documentation related to this project so, it will be open.
Possible Ideas:

  1. Inline documentation (similar to JSDoc)
  2. Few things to change in the README
    • Add License before the Contributors
    • Add Get in touch, remove the slack group point from Contributing Guidelines and add it here (take hints from here)
    • Replace the logo3.png in the images folder with this image (as it is cropped and centered)
    • Put the logo before the Kidney Exchange Program and change img width and height to 40
    • Add few badges (be creative ๐Ÿ˜‰)
    • Move CreatePr.md, CONTRIBUTING.md in the docs folder and update their links in the README
    • Add project screenshots in the README

More info about documentation ideas here
Other ideas are also welcomed :)

add guidelines.md

Hi! I would like to add contributing.md to the repo which states on how to clone and fork the repo,how to add ,create and push a repo,squash commits,rebase your feature branch ,how to update forked repo as well as local repo to the changes made in upstream.
I would like to work on this under GSSOC'21.

fix background of input fields after validation

The following input fields' background color does not change when the entered value is invalid.

  1. Comorbid conditions (in the patient registration form)
  2. Pre-existing illness (in the donor registration form)
  3. HLA Antigens: A, B, DR (in both patient and donor registration form)

Examples:

Screenshot from 2020-10-03 17-24-28

Helpful Information:

  1. All these input fields are multi-select type hence select2 plugin was used to beautify it.
  2. Select2 changes the default input HTML tag into two HTML tags hence the normal background color changes that are applied to other fields are not working here.

Fix the startsCapital jQuery method

Instructions

  1. Do not create a new script file or CSS file
  2. Add the screenshots of the form after the fix in your pull request

The code below is in scripts/reg-form.js. This is a custom jquery validation method that forces the user to start their name with a capital letter.

    $.validator.addMethod( "startsCapital", function( value, element ) {
      return this.optional( element ) || /^[A-Z]/i.test( value );
    }, "Please start your name with a capital letter" );

That method is called here (in scripts/reg-form.js)

        r_fname: {
          required: true,
          nowhitespace: true,
          lettersonly: true,
          startsCapital: true
        },

The is no error message shown in the form when the user enters a name starting with a small letter.

Example:
Screenshot from 2020-10-04 00-18-25

Adjust `show password` font size

The show password option in the login and signup page has a different font style and size compared to the other elements on the page. It will great if it has the same style and size as others.

Change permissions

  1. Allow writing permission for other users in the result folder (created by py)
  2. Allow writing permission for other users in the graph.json (created by php)

JSON import and export

[ ] option to import data to the database through JSON data file
[x] option to provide a JSON dump of the data available in the database
[x] option to download compatibility graph of data from database

Better architecture for easy code readability

Needs fixing:

  • Signup page
    - Footer.php [x]
    - Hospital IDs - not detected [x]
  • Register
    - Patient form display - CSS [x] ----> fix allowed_max_packet error
    - Hospital form display - CSS [x]
    - edit form - CSS [ ]
  • Match
    - CSS [ ]
    - database connect [ ]
  • Data
    - Overview - CSS [ ]
    - Summary - CSS [ ]
    - Search - CSS, Database connection [ ]

Create a step by step docs for new contributors

Many new contributors are unable to submit their first PR due to a lack of info. I want a document that a new contributor can follow exactly to submit his/her first PR.

I want this documentation to be of high quality so, do not take this issue for the sake of points in GSSoC.

Information that needs to be present

  1. Introduction in the discord group
  2. Find a new issue
  3. Get help from the community
  4. Fork the repo
  5. Make your changes
  6. Push your changes to the forked repo
  7. Create your first pull request
  8. Get feedback from the mentors
  9. Go to step 5 again

Change the url's path in the nav bar

Note: The changes must be implemented in the architecture branch, not on the master

[ ] remove subpagesNavBar.php and maintain a single file for the navbar.

Note: use '/' at the start for the relative root path

Find better approach for calculation global match

How is the global match calculated? (current scenario)

  • graph.json (using information stored in the database) file is created in the server
  • pipeline.py is called using file
  • The above step stores its output in a result folder in the server
  • Finally, the output.png is displayed from the created result folder

This approach seems good, right? ๐Ÿค”

Problem
If two people try to find a global match simultaneously, the graph.json and result folders will be overwritten.

Possible solutions

  • allow pipline.py to create multiple result folders instead of one.
    • This will become an issue if many users run this at the same time.
    • Should we delete the result folder after the user sees the info??
    • Can we store the result data in the user session?
  • Instead of creating graph.json, we can pass this info through a variable in PHP and similarly store the pipeline.py output in a variable?

Improving the home page

The home page is just a simple image. I would like to improve it by adding something about the inspiration behind the project or something more about the project's usage etc. Can I work on it as a part of GSSoC?

signup not working as expected

gives hospital is not registered with us error even though the enter hospital is registered :(
Try with hosp id = 10011

`maximize total weight` optimality criteria not working

Steps to replicate this issue

  • command used python3 pipeline.py -f ./cmpGraph1.json -s 3 -o 4

Error Message

Traceback (most recent call last):
  File "pipeline.py", line 128, in <module>
    pipeline(json_file,option,max_size,altruistic_donors,ilp)
  File "pipeline.py", line 93, in pipeline
    solution_values = maximize_total_weight(cyclesAndChains,names + altruistic_donors,cycleandchain_wt,dirName,ilp)
  File "/home/siv2r/Projects/ke-global-match/kidney_exchange.py", line 192, in maximize_total_weight
    solution_values = optimize_weight(cycles,vertices,cycle_wt,dirname, ilp)
  File "/home/siv2r/Projects/ke-global-match/kidney_exchange.py", line 145, in optimize_weight
    prob.linear_constraints.add(lin_expr=[cplex.SparsePair(constraint, [1] * len(constraint))],senses=['L'],rhs=[1],names=constraint_names)
NameError: name 'constraint_names' is not defined

Modularize the codebase

This can be worked on once the issue #24 is resolved.

Soln idea:

  • separate ccs code in PHP files to a new file.
  • use a single validation js file instead of two js files performing the same validation (reg-form.js and editPairForm.js)
  • maybe separate each form element??

Take look at the architecture branch for more info.

Reduce the age input in patient and donor form

While filling the patient form under the register menu, the user can enter any date of birth for the patient and donor. For Example, he can 01/01/1920, which is not recommended since having a donor of age 102 is impossible ๐Ÿ˜…

Note Do not add an error msg for this. Just limit the input which the user can enter for the date of birth field.

Changes required

  • Restrict the patient age (0 <= age <= 80)
  • Restrict the donor age (18 <= age <= 80)

update readme

I would like to add some graphics in the readme file to make it more attractive and graphics that convey the project moto
And will try to modify the font and colors
and add some small icons
please assign it to me.

Remove brand logo from README.md

It seems unnecessary that there is a section in readme for the brand logo. It would be more appropriate if is just a smaller IMG beside the project title (in the readme) instead of in a separate subsection.

Make the nav bar interactive (Mobile friendly)

This required CSS for this implemented partially.

To be implemented:

  • displaying dropdown when all options are aligned vertically (I have no idea how to do this ๐Ÿ˜ž).

We need a CSS god to complete this task ๐Ÿ’ช ๐Ÿ’ช

Make validation of address on forms loose

Changes Required

  • allow any character for addr line 1
  • allow spaces for city

The validations applied during patient registration can be found here
The validations applied during editing the patient data can be found here

Max allowed packet bytes error

Users can upload file size up to 2MB but the default SQL insertions for BLOB type is 1MB.
Therefore error occurs when the user uploads a filesize between 1 MB - 2 MB.

Possible soln:
Limit the file size to 1MB instead of 2MB in jQuery form validation.

Move session_start() to the top

Necessary Changes:

  • loginUser() function (in include/functions.inc.php) has a session_start() inside it. This could be moved to the top of the file(or files) which calls this function.
  • deleteData.inc.php - moving to the top of this file will suffice (Implemented)
  • getHosp.inc.php - moving to the top of this file will suffice (Implemented)
  • form-process.php - moving to the top of this file will suffice (Implemented)
  • updatePair.inc.php - moving to the top of this file will suffice (Implemented)

You are amazing if you could implement these:

  • check to ensure the session is not started already before starting a new session.
  • maybe a single session_start after user login that persists until the user logs out?

Note: there is a session_start inside the file templates/nav-bar-indexpg.php. This file is included in all other pages. Hence, it starts a new session when the user moves between pages. Currently, this is avoided with a simple check (using the if statement). I think we can do better than this :)

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.