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) b) Obje Object ctiv ives es c) Description of existing solution d) Evaluation of existing solution e) Descriptio Description n of other possible possible solutions solutions f) Evalua Evaluatio tion n of other other possib possible le soluti solutions ons 2. Design a) Plan b) Description of the method of solution c) Hardw rdware d) Soft Softwa ware re 3. Implementation a) Methods Methods of of solution solution related related to problem problem b) Accura Accurate te method method of of solutio solution n 4. Testing a) Test Test stra strate tegy gy b) b) Test Test res resul ults ts 5. Documentation a) Techni Technical cal docume documenta ntatio tion n b) User User docume documenta ntatio tion n 6. System Evaluation and Development a) Eva Evaluat luatio ion n b) b) Deve Develo lopm pmen ents ts
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) Ob Obje ject ctiv ives es::
The objectives of the new system are: 1. Keeping Keeping a database database of of all RHC reside residence. nce. 2. Keeping Keeping a database database of of all present present and and past patien patients. ts. 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 system should should reduce reduce labour labour cost by allocati allocating ng labour labour more efficiently. 7. Validation Validation and and verification verification checks checks will will be applied applied for each and every every data input, and thus improving the system’s accuracy. 8. Prevent Prevent data data or money money loss 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 f illed 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 transferr ed manually to the proposed doctor’s or physicist’s office. off ice. 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 r esponsible for loss or damage of this slip.
d) Evaluatio Evaluation n of existing existing solut solution: ion:
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 f aster 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) Descripti Description on of other other p poss ossible ible solut solutions ions:: 1) Creating an application using a general purpose database program ( Content free
software). 2) Obtaining an application specific software (off-the-shelf program), these ar e 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 genera generall purpose purpose datab database ase:: • 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 applicatio application n specific specific software: 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 tail tailor or made made progra program: m: • 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)
Desc escrip riptio tion of of the the metho ethod d of of so solut lution ion
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 Te 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; r epetition; they ⇒ are only present in the RHC members m embers table and linked to this through their employee em ployee 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 emer gencies 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 f ield 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 fo for “t “today’s” ’s” ap appointments. Chec heck the the memb member ersship hip of of a spec speciific fic pat patie ien nt Sear Search ch for for inf info ormat rmatio ion n on on a spec speciific fic me member mber Sear Search ch for for prev previo ious us visi visits ts of a spec specif ific ic memb member er Sear Search ch for for pre previ viou ouss app appoi oint ntme ment ntss of of a spe speci cifi ficc mem membe ber r Sear Search ch for for prev previo ious us eme emerg rgen ency cy cas cases es fo for a spec specif ific ic mem membe ber r
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 Wi Windows
XP or or Mi Millennium
Reason
A relational very flexible general purpose database program User fr friendly, co compatible wi with Microsoft Access well and most suitable for setting up small networks.
3. Implementation a)
Metho ethod d of of so solut lution ion re relat lated to the the pr pro oblem blem
For simplicity, all the tables will be created through the same method, which is creating the table in design view. 1. 2.
Open Open your your Micr Micros osof oftt acc acces esss XP (or (or the the vers versio ion n aff affo orded rded)) Click lick on [Bl [Blaank Data Datab base] ase] unde nder th the new new tray ray:
3. In you yourr Data Databa base se’s ’s main main win windo dow w doub double le cli click ck [Cre [Creat atee tabl tablee in des desig ign n View View]. ]. Or Or simply click on the button: 4.
Inpu Inputt the the fiel fields ds in the the des desig ign n vie view w win windo dow w as as fol follo lows ws::
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 r ight 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 “Emp “Emplo loye yeee Numb Number” er”,, sinc sincee it is the the only only fiel field d uniq unique ue for for every every pati patien ent. t. The 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. Obje Object ctiv ivee 9: New New inpu inputt meth method odss and and inpu inputt devi device cess do impr improv ovee the 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 I ndustry 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 Two test testss will will be carr carrie ied d out out unde underr this this titl title. e. Thes Thesee test testss are are to exam examin inee the the program’s searching abilities and accuracy. The first fir st 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 se second qu query is is se set up up to to ch check fo for to today’s da date au automatically an 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 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 Wi Windows
XP or or Mi Millennium
•
Reason
A relational very flexible general purpose database program User fr friendly, co compatible wi 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() 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 field with the focus. Me![Option1].SetFocus For intOption = 2 To conNumButtons Me("Option" & intOption).Visible = False Me("OptionLabel" Me("OptionLabel" & intOption).Visible intOption).Visible = False Next intOption ' Open the table of Switchboard Items, and find ' the first item for this Switchboard Page. Set con = Application.CurrentProject Application.CurrentProject.Connection .Connection stSql = "SELECT * FROM [Switchboard Items]" stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" [SwitchboardID]=" & Me![SwitchboardID] Me![SwitchboardID] stSql = stSql & " ORDER BY [ItemNumber];" Set rs = CreateObject("ADODB.R CreateObject("ADODB.Recordset") ecordset") rs.open stSql, stSql, con, 1 ' 1 = adOpenKeyset adOpenKeyset ' If there are no options for this Switchboard Page, ' display a message. Otherwise, fill the the page with the items. If (rs.EOF) Then Me![OptionLabel1].Caption Me![OptionLabel1].Caption = "There are no items for this switchboard page" Else While (Not (rs.EOF)) Me("Option" & rs![ItemNumber]).Visible rs![ItemNumber]).Visible = True Me("OptionLabel" Me("OptionLabel" & rs![ItemNumber]).Visible rs![ItemNumber]).Visible = True
Me("OptionLabel" Me("OptionLabel" & rs![ItemNumber]).Caption rs![ItemNumber]).Caption = rs![ItemText] 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 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 conCmdGotoSwitchboard = 1 Const conCmdOpenFormAdd conCmdOpenFormAdd = 2 Const conCmdOpenFormBrowse conCmdOpenFormBrowse = 3 Const conCmdOpenReport = 4 Const conCmdCustomizeSwitchboard conCmdCustomizeSwitchboard = 5 Const conCmdExitApplication conCmdExitApplication = 6 Const conCmdRunMacro = 7 Const conCmdRunCode = 8 Const conCmdOpenPage = 9 ' An error that is special cased. Const conErrDoCmdCancelled 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 Application.CurrentProject.Connection .Connection Set rs = CreateObject("ADODB.R CreateObject("ADODB.Recordset") ecordset") stSql = "SELECT * FROM [Switchboard Items] " stSql = stSql & "WHERE [SwitchboardID]=" [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" [ItemNumber]=" & intBtn rs.open stSql, con, 1 ' 1 = adOpenKeyset 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 conCmdGotoSwitchboard Me.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" [SwitchboardID]=" & rs![Argument]
' Open a form in Add mode. Case conCmdOpenFormAdd conCmdOpenFormAdd DoCmd.OpenForm rs![Argument], , , , acAdd ' Open a form. Case conCmdOpenFormBrowse conCmdOpenFormBrowse DoCmd.OpenForm DoCmd.OpenForm rs![Argument] ' Open a report. Case conCmdOpenReport conCmdOpenReport DoCmd.OpenReport DoCmd.OpenReport rs![Argument], rs![Argument], acPreview ' Customize the Switchboard. Switchboard. Case conCmdCustomizeSwitchboar conCmdCustomizeSwitchboard d ' 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] "[ItemNumber] = 0 AND [Argument] = 'Default' " Me.Caption = Nz(Me![ItemText], "") FillOptions ' Exit the application. Case conCmdExitApplication conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro conCmdRunMacro DoCmd.RunMacro DoCmd.RunMacro rs![Argument] ' Run code. Case conCmdRunCode Application.Run Application.Run rs![Argument] rs![Argument] ' Open a Data Access Page Case conCmdOpenPage DoCmd.OpenDataAccessPage DoCmd.OpenDataAccessPage rs![Argument] 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) conErrDoCmdCancelled) Then Resume Next Else MsgBox "There was an error executing the command.", vbCritical Resume HandleButtonClick_Exit HandleButtonClick_Exit End If End Function Private Sub Command22_Click() Command22_Click() On Error GoTo Err_Command22_Click
DoCmd.CLOSE Exit_Command22_Click: Exit Sub Err_Command22_Click: MsgBox Err.Description Err.Description Resume Exit_Command22_Click Exit_Command22_Click End Sub Private Sub Command23_Click() Command23_Click() On Error GoTo Err_Command23_Click
DoCmd.Quit Exit_Command23_Click: Exit Sub Err_Command23_Click: MsgBox Err.Description Err.Description Resume Exit_Command23_Click Exit_Command23_Click End Sub
2. Query check appointments Option Compare Database Private Sub Command36_Click() Command36_Click() On Error GoTo Err_Command36_Click
DoCmd.PrintOut Exit_Command36_Click: Exit Sub Err_Command36_Click: MsgBox Err.Description Err.Description
Resume Exit_Command36_Click Exit_Command36_Click End Sub Private Sub Command37_Click() Command37_Click() On Error GoTo Err_Command37_Click
DoCmd.CLOSE Exit_Command37_Click: Exit Sub Err_Command37_Click: MsgBox Err.Description Err.Description Resume Exit_Command37_Click Exit_Command37_Click End Sub
3. Query Check Member ship Option Compare Database Private Sub Command16_Click() Command16_Click() On Error GoTo Err_Command16_Click
DoCmd.PrintOut Exit_Command16_Click: Exit Sub Err_Command16_Click: MsgBox Err.Description Err.Description Resume Exit_Command16_Click Exit_Command16_Click End Sub Private Sub Command17_Click() Command17_Click() On Error GoTo Err_Command17_Click
DoCmd.CLOSE Exit_Command17_Click: Exit Sub Err_Command17_Click: MsgBox Err.Description Err.Description Resume Exit_Command17_Click Exit_Command17_Click End Sub
4. Form Visits Option Compare Database
Private Sub Command18_Click() Command18_Click() On Error GoTo Err_Command18_Click
DoCmd.PrintOut Exit_Command18_Click: Exit Sub Err_Command18_Click: MsgBox Err.Description Err.Description Resume Exit_Command18_Click Exit_Command18_Click End Sub Private Sub Command19_Click() Command19_Click() On Error GoTo Err_Command19_Click
DoCmd.CLOSE Exit_Command19_Click: Exit Sub Err_Command19_Click: MsgBox Err.Description Err.Description Resume Exit_Command19_Click Exit_Command19_Click End Sub
5. Form Emergencies Option Compare Database Private Sub Command12_Click() Command12_Click() On Error GoTo Err_Command12_Click
DoCmd.CLOSE Exit_Command12_Click: Exit Sub Err_Command12_Click: MsgBox Err.Description Err.Description Resume Exit_Command12_Click Exit_Command12_Click End Sub Private Sub Command13_Click() Command13_Click() On Error GoTo Err_Command13_Click
DoCmd.PrintOut Exit_Command13_Click: Exit Sub Err_Command13_Click:
MsgBox Err.Description Err.Description Resume Exit_Command13_Click 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 Err.Description Resume Exit_close_Click Exit_close_Click End Sub Private Sub print_Click() print_Click() On Error GoTo Err_print_Click
DoCmd.PrintOut Exit_print_Click: Exit Sub Err_print_Click: MsgBox Err.Description Err.Description Resume Exit_print_Click Exit_print_Click End Sub
7. Form RHC members Option Compare Database Private Sub Command16_Click() Command16_Click() On Error GoTo Err_Command16_Click
DoCmd.CLOSE Exit_Command16_Click: Exit Sub Err_Command16_Click: MsgBox Err.Description Err.Description Resume Exit_Command16_Click Exit_Command16_Click End Sub
Private Sub Command17_Click() Command17_Click() On Error GoTo Err_Command17_Click
DoCmd.PrintOut Exit_Command17_Click: Exit Sub Err_Command17_Click: MsgBox Err.Description Err.Description Resume Exit_Command17_Click Exit_Command17_Click Option Compare Database Private Sub Command18_Click() Command18_Click() On Error GoTo Err_Command18_Click
DoCmd.PrintOut Exit_Command18_Click: Exit Sub Err_Command18_Click: MsgBox Err.Description Err.Description Resume Exit_Command18_Click Exit_Command18_Click End Sub Private Sub Command19_Click() Command19_Click() On Error GoTo Err_Command19_Click
DoCmd.CLOSE Exit_Command19_Click: Exit Sub Err_Command19_Click: MsgBox Err.Description Err.Description Resume Exit_Command19_Click Exit_Command19_Click End Sub Private Sub Command22_Click() Command22_Click() On Error GoTo Err_Command22_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Table 2" DoCmd.OpenForm DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command22_Click: Exit Sub Err_Command22_Click: MsgBox Err.Description Err.Description
Resume Exit_Command22_Click Exit_Command22_Click End Sub Dim stDocName As String Dim stLinkCriteria As String stDocName = "wanted cars" DoCmd.OpenForm DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command9_Click: Exit Sub Err_Command9_Click: MsgBox Err.Description Err.Description Resume Exit_Command9_Click Exit_Command9_Click End Sub
b) User User Docume Documenta ntatio tion n 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 System Evalua Evaluatio tion n o
o
o
o
o
o
o
o
Objective 1: A complete database of RHC residence is kept. Objective 2: A database of all the patients is kept. Objective 3: Automatic searching is fast and accurate. Objective 5: The new system is secure and fast. Objective 6: The new system is of a low price and helps to allocate resources efficiently. Objective 7: Data is validated and verified upon input. Objective 8: Data loss is prevented Objective 9: Data input is vastly improved
In overall the system is good and it fits the problem and accomplishes the objectives. b) System System Deve Develop lopmen mentt
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. ⇒