Your team is required to implement the following:
UC11 Document Office Visit
Note the crossed off parts that come from UC that are no longer implemented. You may choose to design your user interface for the eventual inclusion of these parts of office visit documentation, but this is not necessary.
At this point, we will assume that the patient can have any prescription you give them. UC37 (safe prescriptions) is not implemented.
UC15 Maintain Standards List (Use the LOINC subset linked here. You have to open in Google Sheets and then download it. Or right click and copy the link to a new tab.)
At this point, we will assume that the patient can have any prescription you give them. UC38 (drug interactions) is not implemented.
UC19 View Prescription Report
UC21 View Emergency Electronic Health Record
UC 26 Manage Lab Procedures
The following are a set of non-functional requirements. The first two are required, the next three are extra credit:
Level 1: Refactor the logging mechanism (UC5) such that logging is done in the controller for UC11, UC15, UC19, UC21, UC26, UC51, UC52, UC53. The logging must be used as input into the activity feed (UC43) for all appropriate and implemented UCs as specified in UC 43. The extent to which you leverage existing logging structures will depend on your design (you may not be able to use them at all, but if you are not proceeding to level 4 you should make sure the information is stored in the same place).
Level 2: Refactor all Connection and PreparedStatement objects in edu.ncsu.csc.itrust.model.old.dao.mysql.* to use try-with-resources instead of manually calling close().
The below engineering tasks are for extra credit. For Levels 5 and 6, you cannot receive credit for a higher level without completing all levels below it.
Level 3: Implement mocking for unit and cucumber tests using tools such as Mockito, EasyMock, and/or Powermock. You will at a minimum need to create a mock for FacesContext. You should also be able to mock HTTPSession, HTTPServletRequest, and ExternalContext (so that you can access data that is set in the older part of the system). You should then use your mocks as needed for the Unit tests for all controllers that are added or significantly modified as part of your project implementation, and for the cucumber/acceptance tests as appropriate. If you pursue this extra credit, we will expect you to be able to unit test all methods in your controller classes, and execute all acceptance tests without a webdriver (extra 3%)
Level 4: Refactor a logging mechanism (UC5) such that logging for every implemented UC that requires logging (check each implemented UC for the use of a logging format) in the UC and does so from the controller. The logging must be used as input into the activity feed (UC43) for all appropriate and implemented UCs as specified in UC 43. (extra 4%)
Level 5: Create a docker image for a running deployed version of iTrust: Java, MySql, Tomcat, iTrust war deployed to tomcat. (extra 4%)
Level 6: Create a single apt-get, homebrew, or choco package that auto installs everything needed to develop iTrust. Must be demonstrated on a clean VM. End the install pain, once and for all. (extra 5%)