Organ Procurement Transplant System for "We, The People" developed using publicly available information about Organ Transplant & cutting edge medical research.
OCaml will block on read on incoming queue (named organ-intake-request-01) in Redis and will process requests via Matcher on CLI and then respond by writing to queue (named organ-tracking-cache-01) in Redis by organ-tracking-id which is a UUID.
Another scheduled program reads from organ-tracking-cache-01 and writes to Postgres by row-key UUID that is the organ-tracking-id... but no idea at this point what the naming for the Postgres table needs to be or the document name to insert.
Over time, we are going to want to have potentially hundreds of triggers and feeds from EHRs and custom medical feed subscriptions (like, Data at the Point of Care - Medicare, in the USA, for example) and have that recalibrate matches and decorate organ and patient data with new tests and disease information, as well as reweigh them in the system as being more or less close to death without a transplant.
I cobbled together a quick UI mock (below). I can translate this into a functional frontend or rework it if necessary. It uses tailwind css because I think material makes everything look like google.
I already partially implemented this in react/typescript, but want to make sure you're all good with that choice before I get too far into it. It's hard to tell if React's the right tool or if it's overkill.
Given I am an Organ Procurement Organization,
And I am logged in to the OpenTransplant Network,
Then I should be able to submit an Organ via the Intake User Interface,
And get a success message with a tracking number
(Boss bonus feature would be average wait-time for that given organ or likelihood of match)
List out what technologies the project uses and why we made the decisions we did. Mention the tradeoffs.
Mention failure scenarios here and how we will avoid them or how disaster recovery works.
Create a section of the document: Security & Privacy. Edit to include an assessment of how you'd benchmark and audit the security health of the application at various points in user experience.
Given I am an Organ Procurement Organization,
And I am logged into OpenTransplant,
And I go to upload an Organ Intake Submission,
And I enter in a ....
...
Then I should see my organ successfully submitted
And a tracking identifier for my organ as receipt
Create a template for the algorithmic specifications referenced in #57
Tasks
Create an algorithm-specs/ directory
Create algorithm-specs/README.md which provides the instructions for creating an algorithm spec
Create algorithm-specs/TEMPLATE.md which will be used as the foundation of future algorithm specifications
Create .github/ISSUE_TEMPLATE/algorithm-spec.md which will be the issue type used for new algorithms
Definition of Done
An algorithmic advisor can follow the instructions in algorithm-specs/README.md to create a specification for each of the algorithms listed in #57
After creating a specification using the algorithm-spec/TEMPLATE.md, an algorithmic advisor can signal that the algorithm is ready for a contribution by creating an issue using the .github/ISSUE_TEMPLATE/algorithm-spec.md issue type
A contributor who wants to develop an algorithm for the project has access to all of the information they need, including sample inputs and outputs to validate the accuracy of their algorithm, by referencing a specification created using the algorithm-spec/TEMPLATE.md and the issue created using the .github/ISSUE_TEMPLATE/algorithm-spec.md issue template
โ๏ธ this one is over SSL and we can just use the UUIDs on the organs as the only piece of data stored in them alongside an app for 3rd party testing companies (for outsourced HLA analysis). We could even do something creative like pick custom colors for the different organ types so OPOs and Surgeons more effectively process and manage: