Develop an application that interviews a patient for general medical history data using a binary tree to drive the interview process. The data collect
Statement of Work (SOW)
(Single Team Member)
Final Project
ITS 340
1. Develop an application that interviews a patient for general medical history data using a binary tree to drive the interview process. The data collected from the interview must be stored in a mySQL database and a log file created to record the interview. Think of the interview as a digital physician that asks the user questions regarding their medical history. A graphical user-interface (GUI) must be developed to select a patient and display a patient’s demographic information and general medical history.
2. Implement the application using the Java programming language and the Java Swing library for building the graphical user interface. Use a MySQL database to store the data and a text file for logging the interview.
3. The scope of the interview will be limited to the following:
a. Interview for General Medical History
i. Blood Type
ii. Rh Factor
iii. Marital Status
iv. Alcohol Use – Type and Quantity, and Duration (e.g., wine twice a week)
v. Tobacco Use – Type and Quantity, and Duration (e.g., cigar once a week) vi. Drug Usage – Type and Duration
4. The following tables need to be built in the MySQL database:
a. GeneralMedicalHistoryTable
b. PatientTable
5. Create a graphical user-interface that includes forms for: 1) Patient Selection, 2) Patient Demographics, and 3) General Medical Histor.
a. The Patient Demographics and General Medical History forms must comply with the following:
i. The frame (form) must have fields to display all the data from each associated database table (patient, general history) The General Medical History form will must display one record from the associated table for a specific patient. ii. The form must have buttons for Edit, New, Save, Delete, and Close.
iii. The form should open in a “View” mode where the retrieved data can be viewed, but not edited (the fields should be locked). The background of the text fields should be a light gray color. When you click the Edit or New buttons, then the form changes to “Edit” mode where the fields can be editable. Change the text field background to white when in “Edit” mode.
iv. When the Save button is clicked, save changes to the database and restore the mode of the form to “View” mode.
v. The New button should set the form to “Edit” mode and all the fields must be cleared of any data so that a new record of data can be added.
vi. The Close button should close the screen and go back to the patient selection screen.
b. The following specific forms must also have a button to start the automated interview:
i. The General Medical History form must have a button to start the automated interview for specific general medical history data.
ii. The patient form must have a button that starts an interview for general medical history.
c. The GUI must include the functionality to select a patient. Patient selection can be done via a separate form or be included in the patient demographics form. Upon selection of a patient the patient demographics form must display the demographic information specific to the selected patient. Navigation from the patient demographics form to general medical history forms must also display the selected patient’s medical data.
d. The patient demographics form must have buttons to go to a:
1. General Medical History form.
2. Invoke the automated interview for all general medical history information.
6. Use a binary tree structure to implement the interview. Each node must include a question and depending on a YES/NO or TRUE/FALSE answer navigate to either the right or left branch of the tree to ask the next question. Suggestion: You may want to create many binary trees for specific interview subsets rather than one extremely large tree. For example, a tree specific to getting general medical history data or specific trees for asking questions regarding specific general medical history data such as blood type, another for specifically for questions on alcohol consumption, etc. You will have a lot of flexibility on how to implement this tree(s) but must show that the interview is driven by a binary tree(s).
7. Save the interview results to the respective database tables.
8. Database Table Fields
Patient Table (patient demographics)
CREATE TABLE `patienttable` (
`PatientID` int(11) NOT NULL AUTO_INCREMENT,
`PtLastName` varchar(128) DEFAULT NULL,
`PtFirstName` varchar(128) DEFAULT NULL,
`HomeAddress1` varchar(128) DEFAULT NULL,
`HomeAddress2` varchar(128) DEFAULT NULL,
`HomeCity` varchar(128) DEFAULT NULL,
`HomeState/Province/Region` varchar(50) DEFAULT NULL,
`HomeZip` varchar(15) DEFAULT NULL,
`Country` varchar(75) DEFAULT NULL,
`Citizenship` varchar(75) DEFAULT NULL,
`PtPhone` varchar(14) DEFAULT NULL,
`EmergencyPhoneNumber` varchar(14) DEFAULT NULL,
`EmailAddress` varchar(128) DEFAULT NULL,
`PtSS#` varchar(12) DEFAULT NULL,
`DOB` datetime DEFAULT NULL,
`Gender` varchar(50) DEFAULT NULL
`EthnicAssociation` varchar(75) DEFAULT NULL,
`MaritalStatus` varchar(25) DEFAULT NULL,
`CurrentPrimaryHCP` varchar(128) DEFAULT NULL,
`Active` tinyint(1) DEFAULT ‘1’,
`Comments` varchar(254) DEFAULT NULL, `NextOfKin` varchar(128) DEFAULT NULL,
`NextOfKinRelationshipToPatient` varchar(50) DEFAULT NULL,
PRIMARY KEY (`PatientID`),
KEY `I_PtLastFirstName` (`PtLastName`,`PtFirstName`),
KEY `I_HomePhone` (`PtHomePhone`),
KEY `I_SSN` (`PtSS#`)
) ;
General Medical History
CREATE TABLE `generalmedicalhistorytable` (
`GeneralMedicalHistoryID` int(11) NOT NULL AUTO_INCREMENT,
`PatientID` int(11) DEFAULT NULL,
`Tobacco` varchar(50) DEFAULT NULL,
`TobaccoQuantity` varchar(75) DEFAULT NULL,
`Tobaccoduraton` varchar(75) DEFAULT NULL,
`Alcohol` varchar(50) DEFAULT NULL,
`AlcoholQuantity` varchar(75) DEFAULT NULL,
`Alcoholduration` varchar(75) DEFAULT NULL,
`Drug` varchar(25) DEFAULT NULL,
`DrugType` varchar(254) DEFAULT NULL,
`Drugduration` varchar(75) DEFAULT NULL,
`BloodType` varchar(10) DEFAULT NULL,
`Rh` varchar(10) DEFAULT NULL,
`deleted` tinyint(1) DEFAULT ‘0’,
PRIMARY KEY (`GeneralMedicalHistoryID`),
KEY `GeneralMedHxPatientIDIndex` (`PatientID`)
) ;