Interactive App for Genetic Reporting
I developed from scratch and maintained during +6 years an internal web application based on Ruby on Rails for Biocodices, a medical genomics laboratory.
The app serves as an online inventory of patients, clinics, doctors and DNA testing results, implements the CRUD operations through a user-friendly interface, automates the data entry of forms and bulk-editions of different types of data, as well as the generation and interactive edition of PDF reports to communicate the results.
This in house software has saved the laboratory thousands of dollars in proprietary LIMS (Laboratory Information Management Software).
IMPORTANT NOTE: All the patient, doctor and clinic names in the screenshots have been anonymised with fake names from the Ruby gem Faker for the purposes of this showcase. Sensitive data has also been blurred in the screenshots.
Interactive customization of PDF reports
Interactive edition and generation of PDF reports based on database data with user customizations thorough an easily editable YAML (black textarea on the right).
Interactive generation of stats for different subsets of data
jQuery-powered highly interactive generation of stats for internal reporting of the lab performance on different clinics, methods, periods, etc.
Inventory of cases, samples, patients, DNA test results, etc.
Easy creation, edition, deletion of several types of entities related to the lab daily work.
Inline edition of DNA library details, based on jQuery.
Billling index for sales people.
Bulk-edition of cases.
Workflows for the creation of cases, patients and samples
Beginning of a workflow with the creation of a new Case.
Creation of a new patient as continuation of the workflow.
User edition for admins
Edition of diferential access for types of users.
Complex design of a MySQL database
A quite complex design of a MySQL database was needed for this app. Centered around the entity of “Cases” (typically, a case is one order of genetic testing from one patient), it grew to have multiple samples per case/patient, patients, medical doctors, and clinics associated to each case, laboratory equipment used for each case (the reactives of the DNA sequencing), and different types of reports.
The UML diagram of the database is included as an illustration of this challenge: