I.G.C.S.E.
COMPUTER STUDIES
PROJECT REPORT
“SUMMER 2005”
CANDIDATE NUMBER: 0001
CANDIDATE NAME: SAMEH ABDEL RASOUL
CENTER: “RUWAIS PRIVATE SCHOOL”
CENTER NUMBER: “AE138”
1. Analysis a) Description of the problem b) Objectives c) Description of existing solution d) Evaluation of existing solution e) Description of other possible solutions f) Evaluation of other possible solutions 2. Design a) Plan b) Description of the method of solution c) Hardware d) Software 3. Implementation a) Methods of solution related to problem b) Accurate method of solution 4. Testing a) Test strategy b) Test results 5. Documentation a) Technical documentation b) User documentation 6. System Evaluation and Development a) Evaluation b) Developments
1. Analysis: a) Description of the problem:
Ruwais clinic center is a small clinic in a housing colon housing the employees of Ruwais Industrial Complex. The clinic is owned by the owners of the industrial complex and offer very cheap services to the residents of the housing complex. The current solution is very slow. Inputting new data is slow, searching, processing, deleting and amending current records is very slow. It also takes a lot of time to find files of uncommon patients so non-Ruwais-members disguise claim that they are Ruwais members but they rarely pay a visit. This causes a lot of disturbance for both people standing in a queue waiting to take an appointment and the clinic’s staff. This also sometimes causes non members to claim that they are members, so they pay the low member’s fee, and checking after them is both very slow, and time and labour consuming. b) Objectives: The objectives of the new system are: 1. Keeping a database of all RHC residence. 2. Keeping a database of all present and past patients. 3. Automatic updating and searching will take place easily and quickly. 4. Automatic transmission of files (preferably to be transferred as digital data through wires). 5. The new system must be more secure and fast. 6. The new system should reduce labour cost by allocating labour more efficiently. 7. Validation and verification checks will be applied for each and every data input, and thus improving the system’s accuracy. 8. Prevent data or money loss. 9. Improve accuracy of data input and prevent unclear (handwriting could be unclear but typed writing could never be so) or misspelled input.
c) Description of the existing solution:
Input:
Currently, a necessary and sufficient input requirement is the patients file number which is usually written on a card the patient should always carry. • If the patient doesn’t have his card with him, he can dictate his file number to the receptionist. • If he doesn’t remember it, he is asked for the company he works for, his or his guardian’s employee number and his telephone number; and here is where most of the cheating occurs. •
E.g.:
•
Please fill this form for every patient arriving without his attendance card or his file number:
Patients Name: Employee number: Phone Number: Reason for visit: Date :____________ Signature:
__________________ __________________ __________________ __________________ Time:_____________
__________________ *Please keep this form in the patients file for future reference.
The validity of this form is then checked by Ruwais’s administration, and the reply is usually sent after a few weeks, which is more than enough time for the patient to leave Ruwais. • The receptionist then asks the patient for the test, check or appointment type he needs and orders for the file carrying the patient’s number. •
Processing: • The file number is transferred to the database manually (a worker carries a list with the required file numbers to the database). • There a number of workers locate the file and it is then carried back to reception desk manually.
A detailed medical form is filled by the receptionist, where the patient’s visit’s reason, the specific doctor’s name, the date the time and other medical data are entered. • The patient then pays a small amount of money for the check (non-Ruwais members are charged higher fees). • The patient’s file, with the detailed medical form in it is transferred manually to the proposed doctor’s or physicist’s office. Otherwise if the patient demanded an appointment, an appointment sheet is filled, including the appointment’s date and time, and stamped the word: “PAID”. •
Output: • The receptionist fills a small pre-printed slip, which includes the check type, and number (the patient’s turn). • The patient is handed the slip and waits for his/her turn in a waiting room. • If the patient wanted an appointment, he/she is handed an appointment slip, which looks something like this:
Appointment Slip • • •
Patient’s File number: Appointment’s number: Doctor’s name:
____________________ ____________________ ____________________
*Please keep this slip in a safe place until the appointment’s date. The clinic is not responsible for loss or damage of this slip.
d) Evaluation of existing solution: Advantages of the existing solution: • The system is classical and familiar for most clinics’ experienced staff. • The system can’t be affected by a computer virus (It is made up of papers). • Data can be retrieved from damaged paper, but not from other storing devices such as a baking store. Disadvantages of the existing solution:
• • • •
It’s hard to update the existing system. Processing is slow. Searching for specific files is very slow, especially files barely used. Paper files are easy to lose or to get damaged. • Storing information in the form of paper requires large store rooms. • Management of large amounts of paper is hard and consumes a lot of time and effort. • The system employs extra staff which contributes to higher labour cost. Suggested improvements: A new database could be introduced, especially one that is faster and safer. • Storage of a data should be improved. • Staff should be re-organized, and the labour cost paid for workers in the storage room could be reduced. • A safe and quick way of checking whether the patient is a member of Ruwais or not should be introduced. •
e) Description of other possible solutions: 1) Creating an application using a general purpose database program (Content free
software). 2) Obtaining an application specific software (off-the-shelf program), these are software that has been designed to perform a specific function in terms of outcome, or for use within a particular industry. 3) Purchase a tailor made solution, which is done by employing a software house to write specialized software on its behalf. f) Evaluation of other possible solutions:
1) A general purpose database: • Advantages: User friendly Almost fits the problem exactly Fast to use Easy to input or delete data Fast to search or update data
Less use of paper Relatively cheap purchase and running cost Maintaining is easy and doesn’t require a lot of skill or training • Disadvantages: Not every requirement is met Requires new hardware and software which might be costly Implementation can be time consuming 2) An application specific software: • Advantages: Cheap and easy Available at most computer stores. • Disadvantages: Requires training of staff, which is time and money consuming Many requirements might not be met. Implementation is time consuming 3) A tailor made program: • Advantages: Each and every requirement is met Secure, unique and the output format could be exactly as desired. • Disadvantages: Very expensive Takes time to be prepared Requires training, which is time and money consuming. Implementation is time consuming Having a general purpose database is probably much better than having an application specific software because it meets more requirements, it is cheap and it is available at most computer stores. When comparing the general purpose solution we find out that the tailor made program meets each and every requirement of the system, but it takes a lot much more time to be prepared and is very costly. Since the clinic is a relatively small business, purchasing a tailor made solution will be a waste of time and money. Thus, it is clear that a general purpose solution fits our problem best.
2. Design a) Plan Analysis: ⇒ Starting: 15 June 2005 ⇒ Ending: 22 June 2005 ⇒ Predicted Achievements: Feasibility study carried out and feasibility report completed. Design: ⇒ Starting: 24 June 2005 ⇒ Ending: 14 July 2005 ⇒ Predicted Achievements: Input forms and screens designed and completed. Implementation: ⇒ Starting: 15 July 2005 ⇒ Ending: 21 July 2005 ⇒ Predicted Achievements: Installation of new database and records transferred to the new system. ⇒ Objectives Reached: 1,2,4 and 6. Testing: ⇒ Starting: 22 July 2005 ⇒ Ending: 31 July 2005 ⇒ Predicted Achievements: System monitoring after installation to correct any errors that may occur later. ⇒ Objectives Reached: 3,5,7,8 and 9. Documentation: ⇒ Starting: 1 August 2005 ⇒ Ending: 10 August 2005 ⇒ Predicted Achievements: Completing and presenting both the technical and user documentations. System Evaluation and Development: ⇒ Starting: 11 August 2005 ⇒ Ending: 17 August 2005 ⇒ Predicted Achievements: Completion of system evaluation and development. b) Description of the method of solution
A database program is to be made using a general purpose database program to replace the existing solution. The concept of file numbers will be cancelled out. Searching the history of an employee will be through his employee number. Four tables will make up the bases of the program, and those are: 1. A table including all RHC members. 2. A table of all the visits. 3. A table of all the appointments. And a table including all the emergency cases. The RHC members table is intended to be a reference for checking whether the visitor is an RHC member. Data is entered into it by the Ruwais administration only at the stage of implementation and data will need to be added to it in the rare event of having a new RHC member. It will contain the following fields with the following formats: Field Name Data Type
Required Length Additional comments:
Employee It is the primary key, and it will be Text Yes 4 Number assigned a field length of 4 First Name Text Yes 20 --Last Name Text Yes 20 --Industrial Should have a drop down menu with only Text Yes --Area 4 values. Nationality Text Yes 10 --Telephone Text Yes 10 Will have a phone number input mask. number Address Text Yes 20 --* A primary key is a unique field for each record used to identify the record. Notes: ⇒ Employee number will have a length of 4 only ⇒ Industrial area will have a combo box, and data entry will be restricted to only 4 values: Takreer, Fertil, Gasco and burouge. ⇒ Telephone number will have a telephone number mask. The second table will be the visit’s table, keeping track of each and every patient’s visit. It will have the following fields:
Field Name Visit Number
Data type Auto Number
Employee Text Number Visit’s Date Date/Time Visit’s Time Date/Time Doctor’s Name Text Diagnosis Text Assigned Text Medicine
Required Length Additional comments: Yes
--
Will be the table’s primary key
Yes
4
---
Yes Yes Yes No
6 6 20 100
---------
No
100
---
Notes: ⇒ Visit number is a unique field, and thus it’s chosen to act as the key field. ⇒ Fields like first name and last name are not added to avoid repetition; they are only present in the RHC members table and linked to this through their employee number. The third table is the appointments table: Field Name
Data Type
Required Length
Appointment’s Number AutoNumber
Yes
Employee Number Appointment’s Date Appointment’s Time Doctor’s Name
Yes Yes Yes Yes
Text Date/Time Date/Time Text
--4 6 6 20
Additional comments: This is the table’s primary key. ---------
Notes: ⇒ Little amount of info is entered for simplicity and to avoid repetition. The last table is the emergencies table. Like the appointments and visits table, it will have an emergency number field as the key field and no fields will be repeated.
Filed Name
Data type
Emergency number Employee Number Emergency Date Emergency Time Medical State Doctor
Auto Number Text Date/Time Date/Time Text Text
Required Length Additional comments: Yes Yes Yes Yes No Yes
--4 6 6 50 20
This is the table’s primary key -----------
Relationships: •
All the tables will be linked together through the field named employee number which is present in all of them and unique to every employee.
The employee number has been chosen to be the only link because it is the only field unique to each person, and therefore will be the best option to identify each record. The method of solution will include also six queries and will be used as follows: 1. 2. 3. 4. 5. 6.
Search for “today’s” appointments. Check the membership of a specific patient Search for information on a specific member Search for previous visits of a specific member Search for previous appointments of a specific member Search for previous emergency cases for a specific member
All the searching will be done through the employee number. This flowchart summarizes the way the system operates:
c) Hardware The new system will require the purchase of a number hardware which is to satisfy the following minimum specifications for optimum operation: Hardware
Reason
Objectives reached
Pentium III processors 800 Powerful processing is required to3 and 5 MHz avoid time wasting 40 GB hardisk for the server, 4To allow for storing a vastly 1 and 2 GB for terminals growing database, terminals don’t need space. 512 MB RAM A large RAM for fast searching --and reviewing records will be required 15” Screens For high quality display --A mouse and a standard Together the form the best 4 and 9 keyboard combination for the method for data input and other server and the terminals usages of the system d) Software Along with the previous list of hardware requirements the system will require several software to run properly. The following to table outlines the minimum software requirements for the new system. Software
Edition
Microsoft Access
XP
Microsoft Windows
XP or Millennium
Reason A relational very flexible general purpose database program User friendly, compatible with Microsoft Access well and most suitable for setting up small networks.
3. Implementation a) Method of solution related to the problem For simplicity, all the tables will be created through the same method, which is creating the table in design view. 1. Open your Microsoft access XP (or the version afforded) 2. Click on [Blank Database] under the new tray:
3. In your Database’s main window double click [Create table in design View]. Or simply click on the button: 4. Input the fields in the design view window as follows: Table 1: RHC Members
Table 2: Visits
Table 3: Appointments
Table 4: Emergencies
Only two queries are required for our program and they are: Query 1: Check Membership
This query is used to search for an employee’s record via his employee number. Query2: Check for today’s appointments This query is the one used for searching for the days appointments:
Seven forms will co-exist with these 4 tables and 2 queries to provide a friendly interface and easy usage. The easiest method for creating a form is by using the wizard. The wizard creates an appreciable form automatically which you can then edit using design view. The forms should be implemented and look like the following: Form 1: RHC Members This form is used to enter a new RHC member in the unlikely event of someone joining the complex.
All the members of Ruwais housing complex are then to be entered using this form and then the records should be right protected to add to the security of the system, e.g. the receptionist could add a fake member for a bribe. Form 2: Visits Once a patient comes for a visit, a record is added to this form. The check membership button runs the check membership query to verify the patient’s membership. The other button will be present in almost all of the forms and its function is to close the form.
Form 3: Appointments This form is used to assign appointments for patients.
Form 4: Emergencies In an emergency case, this form is used to add a record to the emergencies table.
Form 5: Check appointments query When you run the check appointments query, the results are displayed in the following form:
Form 6: Check membership query When you run the check membership query using any of the [check membership] buttons the results of the query will be displayed in this form.
Relationships: All four tables we used in this program will be linked together through the field “Employee Number”, since it is the only field unique for every patient. The relationships could be adjusted by going to the menu [Tools] – [Relationships…]. Set your relationships as follows:
Switchboard This is the program’s main form which leads you throughout.
Functions of the switchboard’s buttons: • • • • •
A new Emergency case: opens the emergencies form New Visit: Opens the visits form A new Appointment: opens the appointments form View today’s appointments: opens check appointments form A new RHC member: opens the RHC members form
Are all objectives reached?? •
• • • •
Objective 1: Table 1 keeps a database of all RHC members. Objective 2: Tables 2, 3 and 4 keeps a database of all present and past patients. Objective 3: Queries 1 and 2 perform quick searching. Objective 4: A network is set up and files transmission is automatic. Objective 5: The new system is more secure and faster than the existing system.
• Objective 6: Fewer workers are employed since there’s no more paper handling, and thus the system has reduced labor cost. • Objective 7: Validation and verification takes place every time a data item is entered (such as presence check, type check and length check) • Objective 8: Data is not lost, because the database is on a central computer away from most employees. • Objective 9: New input methods and input devices do improve the accuracy of input data. Yes, they are all reached.
4. Testing a) Test Strategy Test 1: Testing objectives 1, 7 and 9. We will test data entry in table: RHC members, in the employee number field. Input Type
Examples
Expected output
Normal data
0003
Accepted
Extreme data
9999
Accepted
Abnormal data
[leave it blank]
Not accepted
Test 2: Testing objective 5. The following test is for the RHC members table also, but with regard to speed, security and avoiding input errors in the Industry field. Input Type Normal data Extreme data Abnormal data
Examples Fertil
Expected output Accepted
[doesn’t exist] Sadafco
-----------Not accepted
Test 3: Testing objectives 2 and 5 Then the Visits table will be tested, specifically the visit’s date field.
Input Type Normal data
Examples 03/10/2005
Expected output Accepted
Extreme data
12/12/2005
Accepted
Abnormal data
14/35/87321
Not accepted
Test 4: Testing objective 3 Two tests will be carried out under this title. These tests are to examine the program’s searching abilities and accuracy. The first will test the Check membership query, and the second will examine the Check appointments query. i. ii.
For the first test an employee number of 0002 will be used. The second query is set up to check for today’s date automatically and doesn’t need any data entry.
b) Test Results Each test will be carried out by attempting to enter the normal, extreme and abnormal values for each test. The tests were carried out and the results can be summarized in the following: Test 1: • Normal Data: The form allowed you to carry on to the next field and this shows that the entered value was accepted:
• Extreme Data The form also accepted the extreme value.
• Abnormal Data The form will not accept the null value and will prompt an error message to the user:
Test 2: • Normal Data The form will allow you to move to next field and this shows that the data entered in the previous field was accepted.
• Extreme Data Extreme data doesn’t exist in this field since you only have four values in a drop down box from which you can choose your values • Abnormal Data The form will not accept any value not in the combo list and will respond by sending an error message to the user.
Test 3: • Normal Data The form will approve of your input and will allow you to move to the next field.
• Extreme Data The form will also accept the extreme value.
• Abnormal Data The form will not accept it and will ask you to change it.
Test 4: i.
Testing the query [Check Membership]
This test will be carried out to test the accuracy of the check membership query. The query will run and its results will be displayed in a form: • Run the query from any of the several “check membership buttons:
• Enter the requested employee’s number (0002 in this case):
•
The information of that member will be retrieved:
ii.
Testing the query[Check Appointments]
For this query, the user will not be required to enter any data since the criterion has been specified when the query has been made. This condition is when today’s date is the same as the date of the appointment. This query could be tested by running it from the main switchboard. The query is expected to give out something like this:
All the tests proved to be totally successful and the program accomplishes all the objectives that it was determined to achieve.
5. Documentation a) Technical Documentation This section aims at the maintenance programmer of the system. It is designed to aid him in the maintenance process, and keep him running the system properly. It will in include the systems hardware and a software requirements, a reference to all its tables, queries and forms; and the sql code of all the database items. • Hardware requirements Hardware
Reason
Objectives reached
Pentium III processors 800 Powerful processing is required to3 and 5 MHz avoid time wasting 40 GB hardisk for the server, 4To allow for storing a vastly 1 and 2 GB for terminals growing database, terminals don’t need space. 512 MB RAM A large RAM for fast searching --and reviewing records will be required 15” Screens For high quality display --A mouse and a standard Together the form the best 4 and 9 keyboard combination for the method for data input and other server and the terminals usages of the system • Software requirements Software
Edition
Microsoft Access
XP
Microsoft Windows
XP or Millennium
•
Reason A relational very flexible general purpose database program User friendly, compatible with Microsoft Access well and most suitable for setting up small networks.
The tables, queries, relationships and the main switchboard:
Table 1: RHC Members
Table 2: Visits
Table 3: Appointments
Table 4: Emergencies
Query 1: Check Membership
This query is used to search for an employee’s record via his employee number.
Query2: Check for today’s appointments
Form 1: RHC Members
Form 2: Visits
Form 3: Appointments
Form 4: Emergencies
Form 5: Check appointments query
Form 6: Check membership query
Relationships:
Switchboard
• The SQL Code:
1. The switchboard
Option Compare Database Private Sub Form_Open(Cancel As Integer) ' Minimize the database window and initialize the form. ' Move to the switchboard page that is marked as the default. Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' " Me.FilterOn = True End Sub Private Sub Form_Current() ' Update the caption and fill in the list of options. Me.Caption = Nz(Me![ItemText], "") FillOptions End Sub Private Sub FillOptions() ' Fill in the options for this switchboard page. ' The number of buttons on the form. Const conNumButtons = 5 Dim con As Object Dim rs As Object Dim stSql As String Dim intOption As Integer ' Set the focus to the first button on the form, ' and then hide all of the buttons on the form ' but the first. You can't hide the field with the focus. Me![Option1].SetFocus For intOption = 2 To conNumButtons Me("Option" & intOption).Visible = False Me("OptionLabel" & intOption).Visible = False Next intOption ' Open the table of Switchboard Items, and find ' the first item for this Switchboard Page. Set con = Application.CurrentProject.Connection stSql = "SELECT * FROM [Switchboard Items]" stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID] stSql = stSql & " ORDER BY [ItemNumber];" Set rs = CreateObject("ADODB.Recordset") rs.open stSql, con, 1 ' 1 = adOpenKeyset ' If there are no options for this Switchboard Page, ' display a message. Otherwise, fill the page with the items. If (rs.EOF) Then Me![OptionLabel1].Caption = "There are no items for this switchboard page" Else While (Not (rs.EOF)) Me("Option" & rs![ItemNumber]).Visible = True Me("OptionLabel" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText] rs.MoveNext Wend End If ' Close the recordset and the database. rs.CLOSE Set rs = Nothing Set con = Nothing End Sub Private Function HandleButtonClick(intBtn As Integer) ' This function is called when a button is clicked. ' intBtn indicates which button was clicked. ' Constants for the commands that can be executed. Const conCmdGotoSwitchboard = 1 Const conCmdOpenFormAdd = 2 Const conCmdOpenFormBrowse = 3 Const conCmdOpenReport = 4 Const conCmdCustomizeSwitchboard = 5 Const conCmdExitApplication = 6 Const conCmdRunMacro = 7 Const conCmdRunCode = 8 Const conCmdOpenPage = 9 ' An error that is special cased. Const conErrDoCmdCancelled = 2501 Dim con As Object Dim rs As Object Dim stSql As String On Error GoTo HandleButtonClick_Err ' Find the item in the Switchboard Items table ' that corresponds to the button that was clicked. Set con = Application.CurrentProject.Connection Set rs = CreateObject("ADODB.Recordset") stSql = "SELECT * FROM [Switchboard Items] " stSql = stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn rs.open stSql, con, 1 ' 1 = adOpenKeyset ' If no item matches, report the error and exit the function. If (rs.EOF) Then MsgBox "There was an error reading the Switchboard Items table." rs.CLOSE Set rs = Nothing Set con = Nothing Exit Function End If Select Case rs![Command] ' Go to another switchboard. Case conCmdGotoSwitchboard Me.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" & rs![Argument]
' Open a form in Add mode. Case conCmdOpenFormAdd DoCmd.OpenForm rs![Argument], , , , acAdd ' Open a form. Case conCmdOpenFormBrowse DoCmd.OpenForm rs![Argument] ' Open a report. Case conCmdOpenReport DoCmd.OpenReport rs![Argument], acPreview ' Customize the Switchboard. Case conCmdCustomizeSwitchboard ' Handle the case where the Switchboard Manager ' is not installed (e.g. Minimal Install). On Error Resume Next Application.Run "ACWZMAIN.sbm_Entry" If (Err <> 0) Then MsgBox "Command not available." On Error GoTo 0 ' Update the form. Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' " Me.Caption = Nz(Me![ItemText], "") FillOptions ' Exit the application. Case conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro DoCmd.RunMacro rs![Argument] ' Run code. Case conCmdRunCode Application.Run rs![Argument] ' Open a Data Access Page Case conCmdOpenPage DoCmd.OpenDataAccessPage rs![Argument] ' Any other command is unrecognized. Case Else MsgBox "Unknown option." End Select ' Close the recordset and the database. rs.CLOSE HandleButtonClick_Exit: On Error Resume Next Set rs = Nothing Set con = Nothing Exit Function HandleButtonClick_Err:
' If the action was cancelled by the user for ' some reason, don't display an error message. ' Instead, resume on the next line. If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox "There was an error executing the command.", vbCritical Resume HandleButtonClick_Exit End If End Function Private Sub Command22_Click() On Error GoTo Err_Command22_Click DoCmd.CLOSE Exit_Command22_Click: Exit Sub Err_Command22_Click: MsgBox Err.Description Resume Exit_Command22_Click End Sub Private Sub Command23_Click() On Error GoTo Err_Command23_Click DoCmd.Quit Exit_Command23_Click: Exit Sub Err_Command23_Click: MsgBox Err.Description Resume Exit_Command23_Click End Sub
2. Query check appointments Option Compare Database Private Sub Command36_Click() On Error GoTo Err_Command36_Click DoCmd.PrintOut Exit_Command36_Click: Exit Sub Err_Command36_Click: MsgBox Err.Description
Resume Exit_Command36_Click End Sub Private Sub Command37_Click() On Error GoTo Err_Command37_Click DoCmd.CLOSE Exit_Command37_Click: Exit Sub Err_Command37_Click: MsgBox Err.Description Resume Exit_Command37_Click End Sub
3. Query Check Member ship Option Compare Database Private Sub Command16_Click() On Error GoTo Err_Command16_Click DoCmd.PrintOut Exit_Command16_Click: Exit Sub Err_Command16_Click: MsgBox Err.Description Resume Exit_Command16_Click End Sub Private Sub Command17_Click() On Error GoTo Err_Command17_Click DoCmd.CLOSE Exit_Command17_Click: Exit Sub Err_Command17_Click: MsgBox Err.Description Resume Exit_Command17_Click End Sub
4. Form Visits Option Compare Database
Private Sub Command18_Click() On Error GoTo Err_Command18_Click DoCmd.PrintOut Exit_Command18_Click: Exit Sub Err_Command18_Click: MsgBox Err.Description Resume Exit_Command18_Click End Sub Private Sub Command19_Click() On Error GoTo Err_Command19_Click DoCmd.CLOSE Exit_Command19_Click: Exit Sub Err_Command19_Click: MsgBox Err.Description Resume Exit_Command19_Click End Sub
5. Form Emergencies Option Compare Database Private Sub Command12_Click() On Error GoTo Err_Command12_Click DoCmd.CLOSE Exit_Command12_Click: Exit Sub Err_Command12_Click: MsgBox Err.Description Resume Exit_Command12_Click End Sub Private Sub Command13_Click() On Error GoTo Err_Command13_Click DoCmd.PrintOut Exit_Command13_Click: Exit Sub Err_Command13_Click:
MsgBox Err.Description Resume Exit_Command13_Click End Sub
6. Form appointments Option Compare Database Private Sub close_Click() On Error GoTo Err_close_Click DoCmd.CLOSE Exit_close_Click: Exit Sub Err_close_Click: MsgBox Err.Description Resume Exit_close_Click End Sub Private Sub print_Click() On Error GoTo Err_print_Click DoCmd.PrintOut Exit_print_Click: Exit Sub Err_print_Click: MsgBox Err.Description Resume Exit_print_Click End Sub
7. Form RHC members Option Compare Database Private Sub Command16_Click() On Error GoTo Err_Command16_Click DoCmd.CLOSE Exit_Command16_Click: Exit Sub Err_Command16_Click: MsgBox Err.Description Resume Exit_Command16_Click End Sub
Private Sub Command17_Click() On Error GoTo Err_Command17_Click DoCmd.PrintOut Exit_Command17_Click: Exit Sub Err_Command17_Click: MsgBox Err.Description Resume Exit_Command17_Click Option Compare Database Private Sub Command18_Click() On Error GoTo Err_Command18_Click DoCmd.PrintOut Exit_Command18_Click: Exit Sub Err_Command18_Click: MsgBox Err.Description Resume Exit_Command18_Click End Sub Private Sub Command19_Click() On Error GoTo Err_Command19_Click DoCmd.CLOSE Exit_Command19_Click: Exit Sub Err_Command19_Click: MsgBox Err.Description Resume Exit_Command19_Click End Sub Private Sub Command22_Click() On Error GoTo Err_Command22_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Table 2" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command22_Click: Exit Sub Err_Command22_Click: MsgBox Err.Description
Resume Exit_Command22_Click End Sub Dim stDocName As String Dim stLinkCriteria As String stDocName = "wanted cars" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command9_Click: Exit Sub Err_Command9_Click: MsgBox Err.Description Resume Exit_Command9_Click End Sub
b) User Documentation 1. Getting started Open Microsoft Access. Go to the [file] menu on the left top of your program and choose [open]:
Choose the RHC clinic file, which is the database.
Once you have opened your database, the main switchboard should open directly, since its set in the startup:
Now you’re ready and just about to start. 2. A patient arrives The instant a patient arrives you wouldn’t like him to wait a lot, so immediately click on the “new visits” button:
Directly the visits form will open in add mode:
To ensure that the patient is an RHC member, do the following • Run the query from any of the several “check membership buttons:
• Enter the requested employee’s number (0002 for example):
• The information of that member will be retrieved, (if he’s not a member an empty form will appear):
You do not need to run the query for every patient, but it is advisable for suspicious patients. If the patient proved to be a member, fill the form with all the required fields:
3. Patient requests an appointment If a patient requests an appointment for a reason or an other click on the button labeled “New Appointment”
This will open up the appointments form in the add mode:
Again run the “check membership” query only if the patient looks suspicious. Fill in the form and close it. Note:
the
button closes the form.
4. An emergency case: When a casualty arrives through the emergency gate, he should first receive treatment then a record should be added to the emergencies table. Click on the button labeled “A new emergency case”:
The following form will open in add mode, fill it then close it.
5. Search for today’s appointments To create a list of the day’s appointments, click on the button labeled “View today’s appointments”.
The form will run and view all of the day’s appointments in a form. Here is an example:
6. Addition of a record to the RHC members table
The rite to take this action is reserved for only the clinic’s administration having taken orders from the head office of Ruwais Housing Division Department. This occurs only in the unlikely event of having a new employee joining. To add a member, on the main switchboard, click on the button labeled “A new RHC member (administration only”.
The RHC members form should open in the add mode.
Fill in the form and close the button Now, you have all the required knowledge to run and use the program completely
6. System Evaluation and Development a) System Evaluation o Objective 1: A complete database of RHC residence is kept. o Objective 2: A database of all the patients is kept. o Objective 3: Automatic searching is fast and accurate. o Objective 5: The new system is secure and fast. o Objective 6: The new system is of a low price and helps to allocate resources efficiently. o Objective 7: Data is validated and verified upon input. o Objective 8: Data loss is prevented o Objective 9: Data input is vastly improved In overall the system is good and it fits the problem and accomplishes the objectives. b) System Development ⇒ Security could be enhanced by adding a password to the RHC members
table. ⇒ A picture could be added to the RHC members to ensure the patient’s membership. ⇒ The database could be installed on a central computer and be used by many terminals to allow the doctor to fill fields as diagnosis, assigned medicine and medical state; for typing mistakes avoidance. ⇒ Further tests could be carried out to ensure that every little bit of the program performs as desired.