Major Project - Images and Privacy (20%) (important for exam)Assignment
Due 29 October, Closs-Off Date 9th November.
Review 1: 3rd September - 7th September (Phase 1 to be submitted in a Turnitin assignment with a similarity check).
Review 2: 24th September - 28th September.
I devised this assignment so you could explore not only the technical requirements around image storage, but also the social and administration issues that will impact your choices in architecture and coding. There will be two project review milestones. You may also wish to have me review your work in the course of a tutorial.
You have been asked to undertake a review and prototype image management for a proposed medical records management system.
The ISO 15489-1: 2001 standard (-ISO 15489-1:2001-) defines records management as -[the] field of management responsible for the efficient and systematic control of the creation, receipt, maintenance, use and disposition of records, including the processes for capturing and maintaining evidence of and information about business activities and transactions in the form of records-. (https://en.wikipedia.org/wiki/Records_management)
There are two aspects to this project, firstly you must design and document an overall framework that meets the definition of records management but in the context of medical records and a need to ensure security and privacy of data. Secondly, you must prototype a method for capturing medical images; linking images with a patient's name and address; saving the captured information to a database environment and retrieving saved information for viewing by patients and/or authorised administrators. Medical images can range in size from 20k-30k for thumbnails of patients, 2-3mb for pictures and some documents, and up to 1+ gigabytes for MRI imaging and so on. You must accept the data -as is- and make no adjustments to fidelity, resolution and so on.
Guaranteeing privacy is of critical importance. You must show how you would protect the patient's data not only from hacking, but also from administrative errors, data mismanagement and poor system design. I will be looking for concise documentation with UML class diagrams, ER diagrams and where appropriate pseudo code. Prototype code must be well documented including version information.
Phase 1. Investigation and Documenting Approach (Bronze)
1. Review the Australian privacy requirements (see the course library learning pack) and devise the principles of privacy and security that will have to apply to this project.
2. Review the methods of capturing patient data and images. You must use Python. You can refer to libraries for the forms including Tkinter (https://docs.python.org/3/library/tk.html) and PyQT5 (https://pypi.python.org/pypi/PyQt5). You should make a pragmatic decision and explain what you can do for your prototype (given the time constraints) and what would be a recommended future direction.
3. Review SQLITE3 (distributed with Python), PostreSQL 10 (https://www.postgresql.org/about/news/1786/) , MySQL (https://dev.mysql.com/downloads/) and MS SQL Server 2017 (https://www.microsoft.com/en-us/download/details.aspx?id=55994) to recommend the process for saving data and retrieving data from the database. Show how your recommendation satisfies the privacy and security principles. Please note, you should see what ODBC drivers support what features in the database (particularly PostrgreSQL). Also contrast the free versions with the commercial versions to see if their are differences that will affect your recommendations.
4. Based on your investigations, provide the design/requirements for your prototype. You should include UML and ER diagrams, flow charts and where appropriate pseudo code for the front-end.
Phase 2. Part 1. Implementing the Prototype's Database (Bronze)
1. Use Python to code for creating an SQLITE3 database and create the data tables. Include primary keys, indexes (if they are required) and foreign keys.
2. Use Datagrip to generate a detailed ER diagram. You must also generate database creation scripts.
3. Take your own picture using your phone, save to your laptop and insert it to your database. Using Datagrip, write SQL to insert your details to the database. Now use Datagrip to link the image data to your personal data.
4. Document what you have done? What issues did you have?
Phase 2. Part 2. Implementing the Prototype's Data Management (Silver)
1. Install the server database of your choice onto your laptop. Link Datagrip to your database using the latest and recommended ODBC driver. Now create your database using the SQL script you developed for SQLITE3. Load your patient data and test image into the database.
2. Using Datagrip, compare the SQLITE3 and server database structures and SQL. Note the differences in languages and any differences in how the image is saved.
3. Use Datagrip to generate an ER diagram.
Phase 3. Part 1. Implementing the Prototype's GUI using SQLITE3 (Silver)
1. Using your choice of GUI library, write a Python form that will load your details and your saved picture. Think how you would benchmark this data transaction.
2. Enhance the application to enable you to edit and save changes to your patient records to the database.
3. Enhance the application to make changes to the images - delete existing or load new images using directory services or drag and drop,.
4. Document your work make a note of issues you have overcome and what issues could happen (e.g. timeouts).
Phase 3. Part 2. Reflection and testing enhancements (Gold)
1. Now using your experience, connect your application with your server database. Make a note of what you changed and why.
2. Benchmark transactions between the server database and the SQLITE database. What are your conclusions and what are your recommendations?
3. The server databases often come with their own administration software. How do these applications compare with Datagrip. Make sure you are objective and provide evidence.
4. Python is an interpretive language. Can you see any issues in using Python as your front-end programming tool? What about using Python as a programming language in the database server's stored procedures?
The marking is based around you demonstrating your understanding of the requirements, your capability to deliver a working prototype of image management and above all, you must give me the confidence, as your manager, that you will deliver and get -the job done-.