RxRefund - Nilsu Bozan; Melis Atagun; Eylul Kadioglu; Buse Tosuner; Ahmet Ezdesir;
From CS486wiki
Week 1 (1.25.2024)
- Accomplishments:
- A quick summary of the previous semester was made
- The upload file, company, and user sections was reviewed
- The page on Notion was updated, and tasks were assigned
- To-do:
- Check if the database and code are up-to-date and working on AWS
- Distribute tasks for the analytics, database and frontend
- Create an architecture for users, including company admin, pharmacy admin, and super user
- Upload new TXT files without making any changes
Week 2 (2.1.2024)
- Problems:
- Archived transactions can not go to the archived_data table. We think that it is because new files contain a new column that we do not have in the archive_data table yet.
- ec2 instance was unable to connect to the database due to security reasons.
- Accomplishments:
- A quick summary of the previous semester was made
- Some of the TX files are tested and they were uploaded successfully.
- Tasks were assigned.
- Permissions of the database in ec2 instance changed and then successfuly connected to database.
- To-do:
- company users, access control, include permissions in menu items.
- Break archive tables by NPI.
- Implement tx_search for our current pharmacy (NPI) structure
- Confirm page for #rows and date range in intersection.
- Improve date range intersection algorithm
Week 3 (2.8.2024)
- Problems:
- The problem is that we need to divide the process_and_check_npi function in a way that modifies the database after the confirm button is clicked.
- We need something like “wait” until the button is clicked.
- Accomplishments:
- Frontend is done for confirming uploads.
- Buttons are placed (not effective right now).
- User can see the dates and affected rows.
- Created a separate archive table for each NPI
- Added entries for the newly created archive tables to the List Uploads
- Updated the delete function in the List Uploads section; it now removes entries from both the webpage and the database
- To-do:
- Improve the performance by analyzing the process_and_check_npi function.
- Make demos from the source code on the EC2 server.
- Admin should have a list of users for each functionality. It controls what the user can do or not.
- Admin should be a role, not a user.
- You are a user and you can be assigned to a role. you can be an admin for Newhard company, which will get you two pharmacies that Newhard company owns.
- Different forms for adding users and adding companies are required.
- Users can be company admins or not, pharmacy admins or not.
- System users should be Jamie and employees.
- Adjust delete functionality in the List Uploads section so that users are restricted to deleting only the files they have uploaded
Week 4 (2.15.2024)
- Problems:
- The server is overloaded when the process_and_check_npi function is running.
- "View Archived Transactions" does not list all the rows on the webpage(only displays 100 rows).
- Accomplishments:
- A new company form is created.
- Process_and_check_npi function is divided into two separate functions allowing us to commit and rollback database operations.
- Cancel and confirm transaction buttons are now functional.
- We updated the code in the server and it is running.
- We created the functionality of the "View Archived Transactions" page.
- Utils.py file modified due to reduce the time required to upload files - result is from 370 seconds to 329 seconds.
- To-do:
- A new pharmacy form will be created.
- The access control system will be improved.
- We will add a new filtering option to 'View Tx' and 'View Archived Transaction' page that enables user to apply filter to list transactions that has a certain # NPI number.
Week 5 (2.22.2024)
- Problems:
- The server is overloaded when the process_and_check_npi function is running (tried several things listed below).
- Accomplishments:
- Within the connection to the server, we defined ServerAliveInterval and ServerAliveCountMax to prevent the timeout error.
- A new pharmacy form is created but some improvements are required like dynamic selection.
- Removed the user section from the sidebar
- Updated the “create new” form in the company section
- When creating a company, the username and password are entered, and the company_admin role is added to the user table simultaneously
- Updated the menu sections for different roles
- To-do:
- Dynamic selection on the pharmacy form.
- Make Pharmacy state licence expiration selection a date field (It takes string now, ux bad).
- Change "NEWWEB" to "Rx Autonetics"
- Include the "pharmacies" section in the menu for the "pharmacy_admin" role
- Add a 'add user' button to the pharmacies section within the company to manage pharmacy users
Week 6 (2.29.2024)
- Problems:
- Server timeout error is still happening in the middle of process_and_check_npi function.
- Updated the server if it solves the timeout error. We got the database backup from ec2 and built it in a local machine to further test new solutions. We made this to prevent the server from being down in every attempt we made to solve the problem.
- We copied the backup file from the ec2 server into a local machine and set up the database to continue testing without causing the server go down again and again.
- Accomplishments:
- Made companyID selection dynamic - user doesn’t need to know companyID
- Made Pharmacy state licence expiration a date field (it was string, ux bad)
- view archived transaction checkbox added. - user is able to filter by npi number on view archived transactions page.
- To-do:
- Add edit pharmacy info section.
- Send Jamie an email that the file has 2 different NPI numbers.
- Delete unnecessary tables.
- Request more files from Jamie.
- Implement pharmacy-npi relation on pharmacy table.
Week 7 (3.7.2024) - Spring Break
- Problems:
- Server timeout error is still happening in the middle of process_and_check_npi function.
- Accomplishments:
- Deleted the faulted TX files
- Changed the View_Tx selections according to the true files.
- -
- To-do:
- Add edit pharmacy info section.
- Send Jamie an email that the file has 2 different NPI numbers.
- Delete unnecessary tables.
- Request more files from Jamie.
- Implement pharmacy-npi relation on pharmacy table.
Week 8 (3.14.2024)
- Problems:
- Accomplishments:
- Sent Jamie an email that the file has 2 different NPI numbers.
- Realized that one file can have more than one NPI.
- Will assume that one file has primary NPI and secondary NPI.
- Updated the server if it solves the timeout error.
- Got the backup of the database from ec2 and built it in a local machine to further test new solutions.
- To-do:
- Add edit pharmacy info section.
- Add secondary NPI to the pharmacy table.
- When npi2 comes, put it on the same table as npi1 table.
Week 9 (3.21.2024)
- Problems:
- Accomplishments:
- to_sql function is further tested on local machine (works without a problem)
- chunksize method is applied to improve the performance
- bulk method is thought but it is not suitable with our design
- Realized that to_sql function works with file ending with 31 and does not work with 96
- To consider, file ending with 31 has few thousands of line, file ending with 96 has more than 300,000
- To-do:
- Add edit pharmacy info section.
- Add secondary NPI to the pharmacy table.
- When npi2 comes, put it on the same table as npi1 table.
Week 10 (3.28.2024)
- Problems:
- Accomplishments:
- Added secondary NPI to the pharmacy table.
- Deleted unnecessary tables.
- Restrictions of 'List Uploads' for each user profile completed.
- To-do:
- Add edit pharmacy info section.
- When npi2 comes, put it on the same table as npi1 table.
- If pharmacy npi is not in the pharmacy table, don't add the file
- Check if current user NPI matches with the one from incoming file.