- [x] Rerun Kit integrity if extraction kit changed in the form. - [x] Clean up db.functions. - [ ] Make kits easier to add. - [ ] Clean up & document code... again. - Including paring down the logging.debugs - Also including reducing number of functions in db.functions - [x] Fix Tests... again. - [x] Rebuild database - [x] Provide more generic names for reagenttypes in kits and move specific names to reagents. - ex. Instead of "omega_e-z_96_disruptor_plate_c_plus" in reagent types, have "omega_plate" and have "omega_e-z_96_disruptor_plate_c_plus" in reagent name. - Maybe rename to "ReagentRoles"? - If I'm doing this, since the forms have a different layout for each submission type I should rewrite the parser to use the locations given in database... Which I should do anyway - [x] Fix Wastewater/Artic double submission problem - [x] Fix tests. - [x] Reorganize wastewater artic parser. - [x] Streamline addition of new kits by moving as much into DB as possible. - [x] Large scale refactor (2023-07-24). - [x] Make plate details from html, same as export. - [x] Put in SN controls I guess. - [x] Code clean-up and refactor (2023-07). - [x] Migrate context settings to pydantic-settings model. - [x] Insert column into reagent type to indicate if reagent is required for kit. - Needed to keep interchangeable bead plates from being forced into forms. - [x] Migrate the parser.sub dictionary to pydantic models. - [x] Move type_decider to metadata based method rather than excel map. - [x] Solve bug for plate mapping when two samples of same name are in different rows. - Try importing "L:\Robotics Laboratory Support\Submissions\Wastewater\2023\2023-06-21\RSL-WW-20230621-1.xlsx" for example. - [x] Improve plate mapping by using layout in submission forms rather than PCR. - [x] Create a method for creation of hitpicking .csvs because of reasons that may or may not exist. - [x] Create a method for commenting submissions. - [x] Create barcode generator, because of reasons that may or may not exist. - [x] Move bulk of functions from frontend.__init__ to frontend.functions as __init__ is getting bloated.