D1: Specifications

We will be upgrading a database that is being used by the sterilization monitoring service offered by the Dental School at UNC. We have been given a list of preferred upgrades that includes adding functionality to add or remove a user that is able to access the database, the ability to look up a dental office in multiple different ways, and much more.

User Stories

  • User 1
    • As someone working in the lab, I want to be able to use the system to sign in and sign out up to hundreds of samples each day, as well as create barcode labels, reports, and invoices so that testing can be done efficiently and properly for dental offices.
  • User 2
    • As an admin, I want to be able to edit the list of personnel so that I can easily add or delete them as needed.
  • User 3
    • As someone working in the lab, I want to be able to query the database so that I can look up a dental office by ID, dentist, address, phone number, or practice name, in addition to searching by check number for billing,
  • User 4
    • As someone working in the lab, I want to be able to mark dental offices as active or not so that offices that no longer use the service can be identified.
  • User 5
    • As someone working in the lab, I want to be able to send a letter to active clients only so that I can confirm that their information is up to date, as well as their active sterilizers (make/model and serial number).
  • User 6
    • As someone working in the lab, I want to be able to select which lots go to which sterilizer based on what kind of sterilizer it is because different sterilizers are tested differently.
  • User 7
    • As someone working in the lab, I want to be able to check the type of sterilizer in the sterilizer tab so that we can remove some from the renewal list.
  • User 8
    • As someone working in the lab, I want to select which practices receive a yearly compliance letter so that only those that have met the standard receive one.
  • User 9
    • As someone working in the lab, I want to be able to send both all invoices and all the yearly compliance letters for a single office as one letter with a single address label so that the practices don’t receive an individual letter for each sterilizer.
  • User 10
    • As the lab director, I want the letter sent for yearly compliance to have my name and contact info so that the information is updated for practices.
  • User 11
    • As the lab director, I want the invoices to also have updated information, such as for email and mailing, so that the correct information can be sent to practices.
  • User 12
    • As the lab director, I want an email to be auto-generated (along with the late fee policy information) when a shipment goes out so that the practice can let us know sooner if it is not received.
  • User 13
    • As the lab director, I also want a daily past-due letter to be auto-generated so that clients who are past-due on payments can be reminded daily until they pay.
  • User 14
    • As someone working in the lab, I want to export an Excel file of only active clients and their emails and fax that can be sorted so that we can send out notifications to them.
  • User 15
    • As someone working in the lab, I want to fax (or email if on file) an updated letter with correct individual names to practices so that they can be notified when one of their sterilizers tests positive.
  • User 16
    • As someone working in the lab, I want to be able to build in comments for tests so that we can write custom comments beyond what is default in the system.
  • User 17
    • As someone working in the lab, I want to be able to separate comments from tags on tests so that comments can remain private while tags show up on the reports sent to offices.
  • User 18
    • As an admin, I want to have a login system so that users can use the system under their own names.
  • User 19
    • As someone working in the lab, I want to add custom comments to billing as a whole, not just per test, so that the bills look neater/less messy.
  • User 20
    • As someone working in the lab, I want the balance to be shown on the renewal page and total payment received on a “daily payment report” so that this information can easily be located.
  • User 21
    • As someone working in the lab, I want to be able to check if a lot is approved for chemical vapor by the FDA so that I can determine if this requirement changes how the testing is conducted.
  • User 22
    • As someone working in the lab, I want the application to launch as an executable file so that I can easily install and use the system on my computer.

Requirements

  • Functional requirements
    • Definite:
      • Advanced Lookup: system needs the ability to look up an office by address, phone number, practice name, as it only has the ability to search by ID or dentist name (query the database) – also need the ability to search by check number in billing
      • Login: while protected access is not necessarily needed, perhaps a login system with a password can be added to use the system as a specific user, or to login as an admin to add and delete personnel, at least
      • Personnel: an admin needs the ability to add and delete users to the system, and users need to be able to select themselves while using the system once added
      • Active clients: system needs the ability to identify and track which clients are active and which clients are inactive so that only active clients can be targeted (add as a field/checkbox)
      • Test comments: users need the ability to add custom comments to tests that are separate from tags so that both private comments can be added as well as tags what will show up on reports to offices
      • Perhaps:
        • Sterilizer type: system needs a checkbox in the Sterilizers section to select type for auto, dry, or chem for each sterilizer type, and users should be able to remove some sterilizers from the renewal list as well as select which lots go to which sterilizer based on this sterilizer type that was selected (in the Lots section)
        • Approved for vapor: there also needs to be a checkbox in the Lots section that users can select to check if a lot is “FDA approved for chemical vapor”
        • Excel file: system needs the ability to export an Excel file of the email and fax of only the active clients
        • Yearly compliance standard: users should be able to select which practices receive a yearly compliance letter (letter should go only to those that have met the standard)
        • Auto-generated emails: an email should be auto-generated once a renewal goes out that lets clients know of the shipment (and this email should contain late fee policy information, etc.), and a daily past-due letter should also be auto-generated to clients who are past-due until they complete the payment
        • Contact info letter: system should have the ability to send a letter to active clients only to confirm their information is up-to-date, along with their active sterilizers (make/model and serial number)
      • Improbable:
        • System rewrite: system can potentially be rewritten entirely and data imported from there (but it is a large amount of data)
  • Non-functional requirements
    • Definite:
      • Database upgrades: original code was written in Python 2.7 – need to go through the system and switch everything to Python 3.10 or 3.11, as well as upgrading the interface to PyQt version 5 or 6
    • Perhaps:
      • Updated information: the yearly compliance letter sent needs to be updated with the name of the new lab director and correct contact information, and invoices also need updated information (email, mailing address, etc.), as well as the positive tests letter (as well as the ability to change in the future if information changes)
      • Billing system rework: every line in the report sent to offices is currently an individual test with comments placed underneath – system should show the balance on the renewal page, show total payment received on a “Daily Payment Report,” and make the comments look less messy (customizable, or all comments at the bottom)
      • Invoices: instead of a separate invoice being sent for each sterilizer, invoices should be sent by office where all sterilizers belonging to an office are on a single invoice for that single office, and all of their sterilizers are on that invoice
      • Yearly compliance letter: all of the yearly compliance letters for a single office should print and be sent as a single letter for each office with a single address label instead of an individual letter for each sterilizer
      • Positive tests letter: prints as a letter that can be sent via fax – in addition to updating, there could also be an ability to email this letter instead if the email is on file and/or confirmed
      • Executable: the application could use the ability to launch as an executable file that can be easily installed on a computer
    • Improbable:
      • New user interface: the UI is also fairly old and, while it is totally functional and works as it is, it could use an update to “look prettier”