Advanced Software Engineering
CSE870, Spring 2007
Homework 2 Due: January 25, 2007
Medical information systems are an integral part of any health center (e.g., private or
public clinics, hospitals). The objective of MISys is to manage patient records and
automate various record-keeping and notification tasks that are often needed in the day-to
operation of health centers.
Brief Description of MISys:
A health center comprises a set of medical doctors, a set of nurses, a receptionist, a
pharmacist, a lab technician, and a radiologist. A patient may make an appointment to see
a doctor. After checking in with the receptionist, patients should be prescreened by a
nurse before being examined by a doctor. Each patient is identified by a unique ID. In
addition, the MISys database maintains the following information for each patient: (1)
personal attributes such as name, age, sex, and allergies, (2) history of prescriptions,
(3) history of diagnoses, and (4) insurance company and plan. The receptionist, nurses,
lab technician, and doctors all have access to a patient’s records. The doctor may refer a
patient to the radiologist for X-rays or to the laboratory for one or more blood tests. At
the end of the appointment, the doctor sends the patient back to the receptionist to
schedule follow-up appointments as necessary and pay for the appointment.
1. (Database) Upon admission of a new patient, the receptionist adds a new patient
record to the database containing the above information (enumerated in bold
italics). Subsequently, a doctor, a nurse, the receptionist, radiologist, lab
technician (person who conducts the blood tests), and pharmacist should be able
to search, browse, and edit the records of the database. During the appointment,
the nurse and the doctor use MISys to record symptoms experienced by the
patient. At the end of the appointment, the doctor uses MISys to record the
diagnosis and may choose to prescribe medication, schedule follow-up procedures
(e.g., blood tests or X-rays), and/or schedule a follow-up visit.
2. (Appointments) No two patients should be scheduled for a doctor at the same time
slot. MISys should also send reminder email messages to patients for their
follow-up appointments and referral procedures (e.g., blood test or X-rays).
3. (Pharmacy) If a patient requires a prescription to be filled, the patient’s record is
edited to include the name of the medication and the dosage. When the patient
goes to the pharmacy, the pharmacist looks up the patients record and locates the
prescription order. The pharmacist should consult with an external reference (e.g.,
a PDR: Physicians Desk Reference) to ensure that prescriptions for new
medications do not conflict with a patient’s allergies, new and current
prescriptions. (A future extension might integrate MISys with a decision-support
system that checks for conflicts automatically.) For now, if the pharmacist detects
a conflict, the patient’s record is appropriately noted, and MISys notifies the
doctor with the conflict information.
4. (X-ray) Pregnant women should not have X-rays taken. MISys should, by
default, prevent any X-rays from being scheduled for pregnant women. For
extenuating circumstances, an explicit override from a doctor, approved by a
radiologist, is necessary before X-rays can be scheduled for pregnant women.
5. (Insurance) MISys should automatically bill the patient and patient’s insurance
company based on the patient’s insurance plan.
1. Using the UML modeling tool, ArgoML, create a use case diagram for the
specified requirements. You can download the latest stable version from
2. Specify the system boundary.
3. Document each use case by instantiating the use case template (below).
4. Identify 3 global invariants of the system. For instance, “each patient has a unique
ID” is a global invariant of the system. (Find 3 other invariants.)
Use Case Template:
Use Case: Name
Actors: Name of actors interacting with current use case
Description: Description of the goals, objective, services provided by
Type: Primary (essential) or secondary
Includes: Name of use cases that the current use case includes
(common goal shared by 2 or more use cases)
Extends: Name of use cases that the current use case extends (the
name of the normal scenario use case that the current
use case extends)
Cross-refs: Number of requirement that the current use case
Use cases: Enumerate use cases that are dependent upon the