Management
Medical

Computer Aided Hospital Management System

Computer Aided Hospital Management System

INTRODUCTION

Hospital management and business processes in hospitals have changed considerably over the previous years, as did the use of Information Technology (IT) in their daily works. It was found in our analysis that the use of IS in the hospitals did not develop according to the needs and developments in the hospital organizations over the past decade.

Health care in Bangladesh, as in many other countries, is confronted with a growing demand for medical treatments and services, due to factors such as, a ‘growing’ population, and higher individual standards for quality of life.

This work is focused on the development of a computer aided Hospital Management System and specifically on hospital information systems (IS). An interesting question is how organisational, managerial and IT developments take place in hospitals, and how these developments influence each other, in terms of impact, alignment, and reinforcement.

Modern hospitals nowadays supply professional services, in stead of products. Hospitals had a high cost technological infrastructure in order to sell medical services. This organisational type is now under pressure, due to the changes in society, politics and population. Hospitals can respond to these pressures by transforming into ‘functional specialization’. In this way the organisation tries to reduce costs and to improve the quality of specialized medical services.

A more recent response of hospitals is to move into ‘network management’. A networked hospital tries to improve it’s ‘input-output’ or ‘market’ relations with primary care physicians

In our study, hospital management people have indicated that technology can substantially influence hospital activities and services. It is also expected that health care costs will depend significantly on sophisticated patient management and diagnosis operations. The use of IT in diagnostics and treatment processes will add to the development of networks of clinical, hospital and health care processes. Until recently, in Bangladesh, the focus of IT in health care was on personnel, logistics, and finance. In our proposed solution, we focused on the care processes, including electronic medical files and quality management of patients. It is expected that the older information systems will become more integrated with the new one, the primary process oriented applications of IT.

Objectives

The general objective is designing a Computer Aided Hospital Management System, an integrated Hospital Information System which addresses all the major functional areas of modern multi-specialty hospitals. Our specific objectives of the project are as follows –

  • To design a system for better patient care.
  • To reduce hospital operating costs.
  • To provide on demand MIS report to management for better decision making.
  • To streamline activities for better co-ordination among the different departments.
  • To provide top management a single point of control.
  • To learn the process of developing an Information System.
  • To explore new IS technologies and use them, if appropriate.

Methodology

We divided our tasks in eleven sections as following:

Task One:                 Collect data and information

Task Two:                 Analyse business processes

Task Three:               Define business process

Task Four:        Explore New Technology

Task Five:         Draw data flow diagram

Task Six:          Determine Entities

Task Seven:      Determine Identifier for each entity

Task Eight:               Draw E/R diagram

Task Nine:                Derive relational schema from E/R diagram

Task Ten:         Add anticipated attributes

Task Eleven:     Create Data Dictionary

Data and its source

We have collected data from IBN-Sina Hospital, Bangladesh Medical College and Hospital, Central Hospital and Holy Family Hospital.

Review of the literature and justification for this project.

Some hospitals in our country are using software for their management information systems, but we found that they have some limitations, like patient history is not stored in database, no online facility for appointments, scalability of user access is limited, etc. We have tried to introduce a new technology of Web based Services which is the most exciting technology in today’s market and is the most current tool for enabling distributed computing. In Chapter 4, we have discussed the history of distributed computing, the concepts and protocols of web services, and the main applications for web services.

Hospital management systems constitute an excellent area for MIS development. There are couple of reasons to use the hospital management system. We tried to develop a computer-aided system that enables better patient care, patient safety and helps to reduced management costs. Our solution provides easy access to critical information, thereby enabling management to take better decisions on time and it provides benefits of streamlining of operations, enhanced administration and control, improved response, cost control and improved profitability.

Limitation

A typical hospital management system, which covers all functional areas, is large enough. In our short project period it was difficult to develop all system components. Thus we decided to reduce the size of our systems in the design phase. We have designed only operational activities of a typical computer aided hospital management systems.

Organizational Chart

organizationall

Hospital Business Process

hospital business

Hospital Business Process: Patient Management

In the process of Patient Management, our observation found the following activities:

  • Pre-Admission Procedure
  • Admission
  • During Stay
  • Going Home
  • Financial Information

System Integrations

System integration is always an issue for any system, especially for systems developed for the hospital business. In our case, the system of the Hospital needs to communicate with different systems from different module, to collect information about the schedules and investigation reports.

In most cases, system developers need to customize the proxies applied to each other system, which evolves tremendously efforts on programming. It also dramatically raises the cost of integrations while we integrate systems case by case.

Scalability, Security, and Transaction Management

Security is important issue while developing an enterprise application. Traditionally, developers have been able to maintain a relatively high level of control over the environment of both servers and clients. However, for scalable web-accessible applications, information assets are projected into less-protected environments, and it becomes increasingly important to maintain tight security over the most sensitive assets, while allowing seemingly unencumbered access to others.

Transactions management is also a complicate, but necessary issue for any enterprise system. To maintain the integrity and consistency of the data, a system need to ensures that each unit fully completes without interference from other processes. If the unit can be completed in its entirety, it is committed. Otherwise, the system completely rolls back.

The Solutions

Our proposed system is based on 3-Tier Client-Server Architecture. In this architecture, the presentation, the application processing and the data management are logically separate processes. A 3-tier architecture does not necessarily mean that there are three computer systems connected to the network. A single server computer can run both the application processing and the application data management as separate, logical servers.  However, if demand rise, it is relatively straightforward to separate the application processing and the data management and execute these on separate processes. The application processing is the most volatile part of the system and it can be easily updated because it is centrally located. Processing, in some cases, may be distributed between the application logic and the data management servers, thus leading to more rapid response to client requests.

J2EE and .NET are both based on the concept of 3-Tier Architecture. The goal is that the construction and delivery of the user interface is separate from the construction of the business logic, which in turn is separate from the backend data or infrastructure being accessed.  This type of architecture depends upon a middle tier container providing a number of services to enable scalability, reliability and availability. Depending on the implementation, the container typically offers a rich set of services for security, transactions and connectivity. Both J2EE and .NET architectures provide developers with this core infrastructure rather than requiring them to build it.

In our proposed systems we suggest to use .NET architecture with backend RDMBS Microsoft SQL Server.  But alternate option J2EE can be used, we leave this choice to user.

Web Services for System Integrations

This is the era of distributing computing. Before designing any enterprise application, interoperability should be considered. There will be a time come, when a hospital require to communicate with various systems such as internal financial data, international health care organization, association of health care, potential customer etc.  In that case we suggest to use Web Services.  Web Services are module applications that adopting some language natural protocols, which can be published, located, and invoked through the Internet. One of the reasons that web service is a solution for system integration is the broad acceptance of this technology. Major vendors in the market including Microsoft, IBM, BEA, Sun Microsoft, Oracle…. all agree with web service protocols and implement them in their products.

Another major reason for adopting web services is the simplicity of these protocols. These XML based protocols are easy to use, and easy to attach on existing system that sometimes businesses don’t even need to change a line of code for the existing system.

Hospital Management System

In our study, we tried to design a solution for hospital management which are capable to handling the activities of following major departments:

1. Outdoor patient’s Department

2. Indoor Patient’s Department

3. Investigative Labs

4. Billing

5. Medical Stores

6. Financial Accounting

7. Payroll

Hospital Management System – Patient Registration

The Patient Registration System, which captures complete and relevant patient information. The system automates the patient administration functions to have better and efficient patient care process.

  • Patient Registration Details
  • Inpatient and Outpatient Registration
  • Medical Alerts Details
  • Appointment Scheduling (Patient / Doctor wise)
  • Doctor’s Schedule Summary
  • Doctors Daily Schedule List
  • Patient Visit History
  • Appointments for Radiology tests and Operation Theatre

 It provides for enquiries about the patient, the patient’s location, admission, and appointment scheduling and discharge details. Furthermore, this system even takes care of package deals for a patient for a fixed cost. Medical Record keeps an abstract of clinical data about patients. It allows easy retrieval of medical records on patients.

Hospital Management System – Billing

The Patient Billing module handles all types of billing for long-term care. This module facilitates cashier and billing operations for different categories of patients like Outpatient and Inpatient. It provides automatic posting of charges related to different services like bed charges, lab tests conducted, medicines issued, consultant’s fee, food, beverage and telephone charges etc. The system is tuned to capture room and bed charges along with ancillary charges based on the sponsorship category. The Billing Screens is used for In-patient and Outpatient Billing and invoicing. Further more the charges for various services rendered can be recorded through service module and this can be used for billing purposes.

  • Payment Modes / Details
  • Patient Billing Details
  • Automatic Room and Board Charges
  • Extensive Third-party Billing

The system supports multiple reports utilizing various print options with user-defined parameters.

Hospital Management System – Financial Accounting

The Financial Accounting Module deals with Cash/Bank, Receipt/Payments, Journal Voucher and General Ledger etc. Books like Cashbook, Bankbook and Ledger book can be generated. This module generates reports like Trail Balance, Balance Sheet and Profit and Loss statement. The Financial Accounting Screens describe about the Account Payable, Account Receivable and General Ledger. Also describe the activities related to IP, OP, Bank related activities and provision to clearing the Supplier Invoice and keep track of the Account Receivable and Revenue related activities. The services that are covered by the sponsor companies, Insurance Agencies, Family Accounts, Individual Accounts, sponsorship details of the patient, Health Card Insurance are recorded in the system.  This module is not included in our current version

Hospital Management System – Payroll

The Payroll & Personnel module deals with Pay (and deduction) calculation, printing of salary slip, salary certificates, and PF statements, Gratuity Statement and provides a monthly analysis. It deals with the maintenance of employee bio-data, Attendance / Overtime details. It also reports on absenteeism, leave encasements etc. The Personnel & Payroll department is responsible Employee Related Activities like appointing the staff, maintaining the employee database, Fixing allowances and deductions, Leave entitlements, Leave sanctions, Loan, Termination Process, Maintenance of Hospital documents, Insurance details, Tenancy Contracts and Vehicle Registration etc. This module is not included in our current version.

Hospital Management System – Outpatient Management

The Outpatient module serves as an entry point to schedule an appointment with the Hospital Resident Doctor or Consultant Doctor for Medical Consultations and diagnosis. This module supports doctors to take better and timely consultation decisions by providing instant access to comprehensive patient information. Patient visits are divided into various status. This module also handles requests and results of laboratory tests and other examinations. External Doctors visit to in patients can be defined as “Call on”. Some patients may avail only the hospital facilities like Lab, Radiology, Nuclear Medicine, and Physiotherapy and so on.

  • Medical Alerts Details
  • Consultation Duty Roster
  • Diagnosis Details
  • Patient’s Appointments
  • Daily / Weekly Schedule Summary
  • Appointment Scheduling / Rescheduling Facility
  • Outpatient Medical Observation Details
  • Investigation / Treatment History
  • Clinical Service Details
  • Doctor’s Diagnosis Statistics

Further more, Confidentiality of Doctors Observation, Previous History of Patients Visit, Online Prescription, Online Request for Investigations and so on, are the special features in Doctors Observation screen. This system calculates the cost for the services rendered to the patient and reflects in the billing module appropriately resulting in smooth billing process.

Hospital Management System – Inpatient Management

The inpatient module is designed to take care of all the activities and functions pertaining to Inpatient Management. This module automates the day-to-day administrative actives and provides instant access to other modules, which leads to a better patient care. It provides comprehensive data pertaining to Admission of Patients & Ward Management: Availability of beds, Estimation, Agreement preparation, Collection of advance, Planned admission, Emergency admission and so on. The Inpatient module also deals with Ward Management: Shifting from one ward to the other, Bed availability, Surgery, Administration of drugs, nursing notes, charge slip and so on.

  • Admission Cost Estimation
  • Doctor Transfer Details
  • Nursing Notes
  • Medical Observation
  • Pending Drug Request
  • Surgery Scheduling Details
  • Discharge Notification Summary
  • Expected Date and Time of Discharge

The module tracks every visit made by the patient and caters to follow-up visits of patients, along with multiple appointments.

Hospital Management System – Pharmacy Management

Pharmacy module deals with the automation of general workflow and administration management process of a pharmacy. The pharmacy module is equipped with bar coding facility, which makes the delivery of medical items to the patient more efficient. This module deals with the activities such as:

  • Enquiry
  • Purchase order
  • Pharmacy drug configuration
  • Pharmacy stores configuration
  • Drug issue to patients and billing
  • Supplier information
  • Maintenance of drug inventory
  • Purchase Requisitions
  • Return of items nearing expiry
  • Destruction of expired items
  • Physical stock verification and adjustment
  • Goods receipt
  • Stock Adjustment
  • Stock in Hand reports

In addition the Online prescription facility assists and facilitates the physicians to track the patient’s prescription details and as well reflects the medication billing details in the Billing module.

Hospital Management System – Laboratory Management

The Laboratory module automates the investigation request and the process involved in delivering the results to the concerned department/doctor of the hospital. Laboratory module starts with receiving the online request from doctors and also allows laboratory personnel to generate requests. The Laboratory module supports to perform various tests under the following disciplines: Biochemistry, Cytology, Hematology, Microbiology, Serology, Neurology and Radiology. Tests are grouped under various sections and sample type (specimen). Based on the request the user can input the sample and generate the sample number. Results can be entered based on the sample type either to one test or multiple tests. If the test result requires approval, the supervisor has to approve the result and it is made available to concerned doctors.

  • Sample Result Entry
  • Test Report Entry
  • Antibiotic Details
  • Result Range for Test
  • Investigation Request
  • Sample Details
  • Samples Received from External Laboratory
  • Samples Dispatch to External Reference Laboratory

Test report can be made confidential. Tests can be performed only after the billing is done. This rule is exempted when the case is declared as Urgent. In addition, this module facilitates investigations for referral patients.

Hospital Management System – User Manager

The User Manager module basically deals with security through controlling the access to the information available in the application. Any user associated with a user group can access only those screens for which the user group has rights. It also deals with the System Related Activity like User Monitor, Creating User Group Master, User Master and view the User Group Lookup of employee database, Maintenance of company documents, User defined error message, Generating Daily Statistical Summary.

Relational Schema – A typical hospital operations management system

USER (U_ID, U_NAME, U_GROUP, PASSWORD)

PATIENT (PATIENT_ID, TITLE, NAME, ADDRESS, EMERGENCY_CONTACT, SEX, MARITAL_STATUS, BLOOD_GROUP, DOB, AGE, PAYMENT_TYPE, RELIGION, REF_BY, ENTRY_DATE, ENTRY_TIME, HISTORY, MEDICINE_ALERT, DIS_DATE, DIS_TIME, DIS_COMMENTS, ADVANCE, U_ID)

BED (BED_ID, BED_TYPE, BED_DESC, BED_CHARGE)

OPERATION (O_ID, O_DESC, O_CHARGE)

DOCTOR (D_ID, D_NAME, D_CONTACT, D_QUALIFICATION)

CONSULTANT (C_ID, C_NAME, C_CONTACT, C_QUALIFICATION, C_CHARGE)

LAB (L_TEST_ID, L_NAME, L_CHARGE, L_TYPE)

RADIO_IMAGE (RI_TEST_ID, RI_NAME, RI_CHARGE, RI_TYPE)

OTHER (OTHER_ID, OTHER_NAME, OTHER_CHARGE)

BED_HISTORY (BED_ID, PATIENT_ID, MONEY_RECEIPT_NO, DATE, BED_CHARGE, NO_OF_DAY, BED_TOTAL, PAID)

OPS_HISTORY (O_ID, PETIENT_ID, MONEY_RECEIPT_NO, DATE, O_CHARGE, PAID)

DOCTOR_VISIT_HISTORY (D_ID, PETIENT_ID, VISIT_DATE, VISIT_TIME, PRESCRIPTION)

CONSULTANT_HISTORY (C_ID, PETIENT_ID, MONYE_RECEIPT_NO, DATE, C_CHARGE, PAID)

LAB_HISTORY (L_TEST_ID, PETIENT_ID, MONEY_RECEIPT_NO, DATE, L_CHARGE, DEL_DATE, PAID)

RADIO_IMAGE_HISTORY (RI_TEST_ID, PETIENT_ID, MONYE_RECEIPT_NO, DATE, RI_CHARGE, DEL_DATE, PAID)

PAYMENT (MONEY_RECEIPT_NO, P_AMOUNT, DISCOUNT, P_DATE, PETIENT_ID)

APPOINTMENT (A_ID, A_DATE, SL_NO, VISITED, D_ID, PETIENT_ID)

URINE_TEST (LAB_NO,…., PETIENT_ID)

STOOL_TEST (LAB_NO,….., PETIENT_ID)

BLOOD_TEST (LAB_NO,….., PETIENT_ID)

MEDICINE (MEDICINE_ID, MEDICINE_NAME, MEDICINE_DESC, UNIT_ID, STOCK, RATE)

MEDICINE_IN (MEDICINE_ID, SUPPLIER_ID, DATE_IN, UNIT_ID, UNIT, BATCH_NO, MFG_DATE, EXP_DATE)

MEDICINE_OUT (PETIENT_ID, MEDICINE_ID, DATE_OUT, UNIT_ID, QUANTITY, RATE, AMOUNT, MONEY_RECEIPT_NO, PAID)

SUPPLIER (SUPPLIER_ID, S_NAME, S_ADDRESS, S_TEL, S_FAX)

UNIT (UNIT_ID, UNIT_DESC)

Data Dictionary

Table . Data Dictionary of Entitie

SLEntityDefinitions
1PatientPatient comes hospital for treatment
2UserEmployee of hospital
3Lab TestThere are different types of Laboratory Test performed in a hospital. Patient may use these services.
4Radio/ImageThere are different types of Radio/Image Test performed in a hospital. Patient may use these services.
5BedThere are different types of Bed available in a hospital to be provided to Patient.
6OperationThere are different types of Operation performed in a hospital. Patient may use these services.
7DoctorVarious specialist doctors work in a hospital. They visit patients.
8MedicineMedicines are available in drug store.
9SupplierSupplier of medicine
10PaymentPatient pay for the services
11ConsultantOutside consultant also visit patients.
   

Table. Data Dictionary of Relationships

SLRelationshipsDefinitions
1Bed_HistoryIt represents relationship between Bed & Patient. A patient may occupy one or more bed. A bed may be provided to one or more patient.
2OPS_HistoryIt represents relationship between Operation and Patient. A patient may schedule one or more Operation. A operation may be scheduled to one or more patient.
3Doctor_visit_historyIt represents relationship between doctor visit & patient. A doctor may visit one or more patient. A patient may be visited by one or more doctor.
4Consultant_HistoryIt represents relationship between outside consultant & patient. A consultant may visit one or more patient. A patient may be visited by one or more consultant.
5Lab_HistoryIt represents relationship between patient and Laboratory test. A patient may schedule one or more Laboratory Test and A Test may be scheduled to one or more patient.
6Radio_Image_HistoryIt represents relationship between patient and Radiology & Imaging Test. A patient may schedule one or more Radio/Image Test and A Test may be scheduled to one or more patient.
7Medicine_InIt represent stock in
8Medicine_OutIt represent stock out
9AppointmentPatient makes appointment with doctor. A patient may make appointment with one or more doctor. A doctor may visit one or more out patient.

Table . Data Dictionary of Attributes

SL

DATA ELEMENT

DESCRIPTION

DATA TYPE

1U_IDUnique ID number of userCharacterr
2U_NAMEName of userCharacter
3U_GROUPDifferent user group are Administrator, Registration, Pharmacy, Lab, AccountsCharacter
4PASSWORDPassword of userCharacter
5PATIENT IDA unique ID number of patientCharacter
6TITLESalutation of patient such Mr., Mrs., Ms, Dr etc.Character
7NAMEName of patientCharacter
8ADDRESSAddress of patientCharacter
9EMERGENCY_CONTACTEmergency contact telephone number of patientCharacter
10SEXGender of patient either Male or FemaleCharacter
11MARITAL_STATUSMarital status of patient either Yes or NoLogical
12BLOOD_GROUPBlood group of patientCharacter
13DOBDate of Birth of patientDate
14AGEAge of patientNumeric
15PAYMENT_TYPEType of payment whether its Self or sponsorCharacter
16REF_BYPatient is referenced by whomCharacter
17ENTRY_DATEDate of entryDate
18ENTRY_TIMETime of entryTime
19HISTORYMedical history of patientCharacter
20DIS_DATEDischarge date of patientDate
21DIS_TIMEDischarge time of patientTime
22DIS_COMMENTSDischarge comments of patientCharacter
23ADVANCEPatient’s Advance moneyNumeric
24MEDICINE_ALERTMedicine alert of patientCharacter
25BED_IDID number of BedCharacter
26BED_TYPEType of BedCharacter
27BED_DESCDescription of BedCharacter
28BED_CHARGERate of particular BedNumeric
29O_IDID number of OperationCharacter
30O_DESCDescription of OperationCharacter
31O_CHARGECharge of the particular operationNumeric
32D_IDID number of doctorCharacter
33D_NAMEName of doctorCharacter
34D_QUALIFICATIONQualification of doctorCharacter
35D_CONTACTContact telephone number of doctorCharacter
36C_IDID number of consultantCharacter
37C_NAMEName of consultantCharacter
38C_QUALIFICATIONQualification of consultantCharacter
39C_CHARGECharge of consultantNumeric
40C_CONTACTContact number of consultantCharacter
41L_TEST_IDID number of LAB testCharacter
42L_NAMELAB test nameCharacter
43L_CHARGECharge of particular LAB testNumeric
44L_TYPECategory or type of LAB test.Character
45RI_TEST_IDID number of Radio/Image testCharacter
46RI_NAMEName of Radio/Image testCharacter
47RI_CHARGECost of particular Radio/Image testNumeric
48RI_TYPEType of Radio/Image testCharacter
49OTHER_IDID number of other servicesCharacter
50OTHER_NAMEName of other servicesCharacter
51OTHER_CHARGECost of particular other servicesNumeric
52MONEY_RECEIPT_NOMoney receipt Serial No.Character
53DATEDate of a particular service rendered.Date
54NO_OF_DAYNo of day(s) stayed at hospitalNumeric
55BED_TOTALTotal Bed ChargeNumeric
56PAIDStatus of payment whether it is paid or notLogical
57VISIT_DATEDoctor’s visit dateDate
58VISIT_TIMEDoctor’s visit timeTime
59PRESCRIPTIONDoctor’s prescriptionCharacter
60DEL_DATEDate of delivery for Lab testDate
61P_AMOUNTAmount paid by patient against a particular money receiptNumeric
62DISCOUNTDiscount on paymentNumeric
63P_DATEDate of paymentDate
64A_IDDoctors Appointment IDCharacter
65A_DATEDate of AppointmentDate
66SL_NOSerial Number of appointmentNumeric
67VISITEDA logical flag of visit. Whether doctors has visited patient or not.Logical
68MEDICINE_IDID number of a particular medicineCharacter
69MEDICINE_NAMEName of medicineCharacter
70UNIT_IDID number of UNIT of medicineCharacter
71STOCKCurrent stock of a particular medicineNumeric
72RATESelling Rate of a particular medicineNumeric
73MEDICINE_DESCDescription of a medicineCharacter
74SUPPLIER_IDID number of supplierCharacter
75UNITNumber of unit receive from supplierNumeric
76QUANTITYNo of quantity sold to patientNumeric
77DATE_INDate of medicine added in the stockDate
78DATE_OUTDate of medicine out in the stockDate
79BATCH_NOBatch No. of medicineCharacter
80MFG_DATEDate of ManufacturedDate
81EXP_DATEDate of ExpiredDate
82S_NAMEName of SupplierCharacter
83S_ADDRESSAddress of SupplierCharacter
84S_TELTelephone nbr of supplierCharacter
85S_FAXFax nbr of supplierCharacter
86UNIT_DESCDescription of Unit IDCharacter
    

WEB SERVICES

Our proposed system is based on 3-Tier Client-Server Architecture [we discussed detailed in Chapter 2]. In this architecture, the presentation, the application processing and the data management are logically separate processes.

In our proposed systems we suggest to use .NET architecture with backend RDMBS Microsoft SQL Server.  But alternate option J2EE can be used, we leave this choice to user.

This is the era of distributing computing. Before designing any enterprise application, interoperability should be considered. There will be a time come, when a hospital require to communicate with various systems such as internal financial data, international health care organization, association of health care, potential customer etc.  In that case we suggest to use Web Services.  Web Services are module applications that adopting some language natural protocols, which can be published, located, and invoked through the Internet. One of the reasons that web service is a solution for system integration is the broad acceptance of this technology. Major vendors in the market including Microsoft, IBM, BEA, Sun Microsoft, Oracle…. all agree with web service protocols and implement them in their products.

Another major reason for adopting web services is the simplicity of these protocols. These XML based protocols are easy to use, and easy to attach on existing system that sometimes businesses don’t even need to change a line of code for the existing system.

Web Service is one of the most exciting technologies in today’s market, which is the most current tool for enabling distributed computing. In this section, we’ll introduce the history of the distributed computing, the concepts and protocols of web services, and the mainly applications for web services.

History of Distributed Computing

Web Services are no more than agreements between different programmers while developing their applications, which is known as distributed computing. For two systems developing at the same time that both of the parties agree with some protocols for data exchanges, there is no pain to integrate them for developers.

However, system developers usually can not expect what systems they will communicate with, nor they have the ability to decide the implementation for the other party. Another problem in today’s software market is that systems are usually developed in some vendor specified platforms, which means most fundamental infrastructures are already built while companies start to develop their own systems.  The benefit of adopting a platform to develop the system is remarkable that programmers can focus on programming the business rules. However, it also draws the interpretable problems since vendors usually allow their platforms communicate with their own products, or even with the same operation systems. For example, the DCOM from Microsoft could not communicate with a system developed in the Java environment.

Programmers were the losers in this kind of software battles between vendors. Each vendor has its own implementation on how to enable a distributed system, and programmers loose the ability to communicate with other systems or they need to write some application-specified programs for exchanging data in a case-by-case basis.

The web services then emerged in a rapid pace after the major players in today’s market declare their supports on those web services related protocols, especially on the SOAP. While there are still some drawbacks in the web services model such as security issue, the low cost and simplicity have made a promise for a success for web services. Today, most vendors already have their implementations on web services that their platforms can talk with each other with only little effort.

Before we dig into the web services protocols, we’ll review some of the important history that evolves this technology.

DCOM

The Microsoft developed Component Object Model (COM) in early 1990’s as a components development model for windows platform. Later on, it introduced the Distributed COM (DCOM) that crossed the machines boundaries. However, the DCOM is a Microsoft protocol that it only allows programs developed under windows platform to communicate. DCOM is very solid in security implementation but also very complicate.

CORBA

The Common Object Request Broker Architecture (CORBA) was also introduced in early 1990’s as a cross-vendor initiative by the Object Management Group (OMG). The CORBA works in a stateful programming model that the program implement CORBA protocols need to maintain the status of the connection between the client and the server. Protocols of CORBA need to works with encapsulate binary code that makes the CORBA extremely complicate.

RMI

Sun Microsoft introduced the Remote Methods Invocation (RMI) in the Java class library that is embedded in the standard APIs. RMI played as proxies in between the two Java Virtual Machines and enable one of the JVM to use the resource in another machine like in it’s own JVM. The RMI crosses the boundaries of operation systems, but both sides need to be running JVM.

XML-RPC

It is fair to say that the SOAP is a descent of XML-RPC (XML Remote Procedure Call). The XML-RPC allows us to call procedures on remote machines without worrying about the operation system and language environment as long as they are connected with HTTP protocol. The main shortcoming of XML-RMI is that it lacks good data typing. For example, the XML-RPC does not handle advanced data structure even arrays well that most vendors did not fully embrace it. However, the experience of XML-RPC was used in the design of SOAP.

EAI

As SOAP, the Enterprise Application Integration (EAI) is an XML based protocol to connect applications. However, the EAI tends to be more specific to a particular business process, such as connecting a specific human resource application to a specific financial application. EAI was adopted by many applications but its implementation is more expensive and less flexible compare to the SOAP.

Introducing Web Services

The web services contain three main blocks that are known as discovery, description, and invocation. As shown in the figure, to use a web service, a client program needs first to find the web service the services available. Next, the client needs to learn what the service does and what the service need from the description of the web service. Finally, the client consumes the web service by invoking the service and receives the result. Base on these main blocks, the Web Services architecture comprises the following components

The Service Provider

The provider is generally responsible for providing the business logic and generating the description of the interface. From a business perspective, this is the owner of the service. From an architectural perspective, it is the platform that provides access to the service.

The Service Requester

The service requester is the service client that needs to request the service. The service requester is looking for a service through the broker and finally invoking the service of the service provider to acquire meaning information for it’s own business purposes.

The Service Broker

A Web Service Broker, or directory, plays the optional role of matchmaker in the enterprise Web services architecture. The broker function, while not strictly required, is widely assumed to be a critical component to facilitate dynamic discovery of desired Web services much like the yellow pages of today. While this is certainly a necessary function for building enterprise-class Web services that scale to support a large number of external, public partners, it is also a critical component when deploying web services within an enterprise or for use with private trading communities.

In short, the broker is a searchable repository of service descriptions where service providers publish their Web Services descriptions and service requesters find and obtain binding information for Web Services.

Web Service Protocols

There are some important web service related protocols such as SOAP, WSDL, UDDI protocols, which are used to enable web services. Some other fundamental protocols such as HTTP, SMTP, FTP, XML are protocols other protocols build on. Other emerging protocols such as WSDL (from IBM) and XLANG (from Microsoft) are protocols for workflow global models that built on the web services.

SOAP

Based on the specifications from W3C, SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined data types, and a convention for representing remote procedure calls and responses. SOAP can potentially be used in combination with a variety of other protocols.

From a programming perspective, SOAP defines a messaging protocol between requestor and provider objects, such that the requesting objects can perform a remote method invocation on the providing objects in an object-oriented programming fashion.

The SOAP specification was co-authored by Microsoft, IBM, Lotus, UserLand, and DevelopMentor. The beauty of SOAP is that it is completely vendor-neutral, allowing for independent implementations relative to platform, operating system, object model, and programming language. Additionally, transport and language bindings as well as data-encoding preferences are all implementation dependent.

WSDL

The Web Services Description Language is an XML vocabulary that provides a standard way of describing service IDLs. It provides a simple way for service providers to describe the format of requests and response messages for remote method invocations, or remote procedure call. In general, WSDL provides an abstract language for defining the published operations of a service with their respective parameters and data types. The language also addresses the definition of the location and binding details of the service.

UDDI

The Universal Description, Discovery, and Integration specification provides a common set of SOAP APIs that enable the implementation of a service broker.  The UDDI specification was outlined by IBM, Microsoft, and Ariba to help facilitate the creation, description, discovery, and integration of Web based services. The motivation behind UDDI.org, a partnership and cooperation between more than 70 industry and business leaders, is to define a standard for B2B interoperability.

WSFL/ XLANG4

The Web Services Flow Language is an XML language for the description of Web Services compositions proposed by IBM. The attempt of WSFL is to treat web services as components and put them into applications. From the perspective of workflow, the WSFL combine all web services as activities the business process need, and route the process based on these activities to different roles to accomplish the process.

WSFL considers two types of Web Services compositions:

The first type specifies the appropriate usage pattern of a collection of Web Services, in such a way that the resulting composition describes how to achieve a particular business goal; typically, the result is a description of a business process.

The second type specifies the interaction pattern of a collection of Web Services; in this case, the result is a description of the overall partner interactions

The same idea of WSFL can be applied to the XLANG. XLANG is an early implementation provided by Microsoft for automation of business processes based on web services. This specification provides details about the message exchange behavior among participating web services.

A workflow engine would have to be created to use XLANG or WSFL to actually track the state of process instances and help enforce protocol correctness in message flow. Both protocols can be implemented in any programming language and environment.

Applications of Web Services

System Integration

Web services are highly suited to integration since they offer a platform and technology-agnostic vehicle for creating interoperability between systems that were never designed to work together simply by adding a SOAP interface. Web services are easy to learn and they are backed by a rapidly evolving and broadly accepted set of industry standards.

Usually, applications can locate web services using UDDI and determine the interface definition of the service using WSDL. In essence, Web services technology can be thought of as an evolution of function integration technology such as CORBA, as depicted in the following diagram:

 heattt

Figure : Common Methods of Integrating Applications

A major advantage of Web services over CORBA is that Web services technology is much less complicate. For example, web services do not require integration of an ORB (Object Request Broker), a task that is not for the faint of heart. Also because the underlying transport protocol behind Web services is based on XML over HTTP, it is fully compatible with firewalls and the Internet.

With Web services, applications can be quickly and easily integrated into a portal or syndicated to a third-party business. However, as we can see from the figure, web services fall squarely in the function integration bucket. In order for Web services to be used for presentation layers integration, several extensions will needed to be made to the collection of Web services specifications.

J2EE and .NET

J2EE and .NET are the most common choices in today’s market for enterprise application development. We’ll have some discussions on both of these technologies.

J2EE

J2EE was the earliest platform designed for enterprise application development. The Sun Microsoft published the specifications for J2EE that vendors can implement them in their platforms, which are often called application servers.

The only absence among big players is Microsoft, which uses the .NET framework. Other vendors like IBM (Web Sphere), BEA (Web Logic), Oracle (9i Application Server), SONY, HP, IONA… all stick with the J2EE technology.

Architecture

Based on the blueprint from Sun Microsoft, The J2EE platform is designed to provide server-side and client-side support for developing distributed, multi-tier applications. Such applications are typically con-figured as a client tier to provide the user interface, one or more middle-tier modules that provide client services and business logic for an application, and back-end enterprise information systems providing data management. The above figure illustrates the various components and services that make up a typical J2EE environment.

One of the most important components in the J2EE is the Enterprise Java Bean running in the EJB Container. We’ll discuss the EJB in the next session.

A Web component in the web container is an entity that provides a response to a request. A Web component typically generates the user interface for an application. The J2EE platform specifies two types of Web components: servlets and JavaServer Pages.

The EIS tier is the backbone for the J2EE application that connects to other systems or persistent data storage.

EJB

The Enterprise Java Beans architecture is a server-side technology for developing and deploying components containing the business logic of an enterprise application. Enterprise Java Beans components, also referred to as enterprise beans, are scalable, transactional, and multi-user secure. There are three types of enterprise beans: session beans, entity beans, and message-driven beans. Session and entity beans have two types of interfaces: a component interface and a home interface. The home interface defines methods to create, find, remove, and access metadata for the bean. The component interfaces define the bean’s business logic methods. Message-driven beans do not have component and home interfaces.

An enterprise bean’s component and home interfaces are required to be either local or remote. Remote interfaces are RMI interfaces provided to allow the clients of a bean to be location independent. Regardless of whether the client of a bean that implements a remote interface is located on the same VM or a different VM, the client uses the same API to access the bean’s methods. Arguments and return results are passed by value between a client and a remote enterprise bean, and thus there is a serialization overhead.

A client of an enterprise bean that implements a local interface must be located in the same VM as the bean. Because object arguments and return results are passed by reference between a client and a local enterprise bean, there is no serialization overhead.

.NET

The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet. The .NET Framework has two main components: the common language runtime (CLR) and the .NET Framework class library. The CRL is the foundation of the .NET Framework that provides core services such as memory management, thread management, and remotely computing management. The class library is a comprehensive, object-oriented collection of reusable types that programmers can use to develop applications from command-line or windows applications to web applications based on the ASP.NET, such as Web Forms and web services.

In the following, we’ll have an introduction to the ASP.NET and the new C# language, VB.NET.

ASP.NET

ASP.NET is more than the new version of Active Server Pages (ASP). It is Microsoft’s platform for developers to build enterprise-class web applications. While ASP.NET is largely syntax compatible with ASP, it also provides a new programming model and infrastructure to work with the .NET platform that programmers can develop the applications in any .NET compatible language such as Visual Basic .NET, C#, and Jscript .NET, and access the entire .NET Framework class libraries. This is illustrated in the figure below.

There are two different kinds of pages in ASP.NET, Web Forms and Web services. Web Forms are the new developing tools to generate forms-based Web pages. When building these pages, programmers use ASP.NET server controls to create common UI elements, and program them for common tasks. These controls release web developers from combining HTML codes with codes of other languages such as C#, VB.NET in a certain degree, and therefore, simply the developing process and increase the reusability of built-in or custom components.

Web service provides the means to access server functionality remotely which contains the implementations for web services protocols such as SOAP and WSDL. The implementation in ASP.NET for web services is extremely easy that developer practically don’t need to understand all these protocols.

C# Language

Microsoft C# is a new programming language that runs on the .NET Framework. Microsoft declares that C# is an evolution of Microsoft C and Microsoft C++ which is simple, modern, type safe, and object oriented. However, most programmers consider that C# is the strategy from Microsoft that help programmers to migrate to .NET from the Java platform.

Base on Microsoft, C# is a simple but powerful programming language intended for writing enterprise applications. The C# language uses many C++ features in the areas of statements, expressions, and operators. However, C# introduces considerable improvement and innovations in areas such as type safety, versioning, events, and garbage collection.

The most powerful characteristic of C# is that it provides access to the common API styles which includes .NET Framework, COM, Automation, and C-style APIs. It also supports unsafe mode, which means programmers can use pointers to manipulate memory that is not under the control of the garbage collector.

Visual Basic.Net

Just as the computing landscape has transformed itself over the last decade, so too has Microsoft Visual Basic. For more than ten years, Visual Basic has fueled the growth of client/server applications, 32-bit programming, and component development. It is the backbone of thousands if not millions of critical business systems throughout the world. Now, as the computing industry looks to address a new set of challenges focusing on Internet, mobile, and Web service development, a new version of Visual Basic—Visual Basic .NET—is once again at the forefront of technology, ready to fuel the growth of the next generation of application development.

Like Visual Basic 1, Visual Basic .NET is both evolutionary and revolutionary. It builds on the key strengths of previous versions of Visual Basic and extends rapid application development to the server and to the Web with XML Web services, Web Forms, trickle-down deployment of Windows applications, and the ability to write Windows services. Visual Basic .NET also delivers some of the most asked-for features: real inheritance and the ability to cleanly implement object-oriented designs, better integration with other languages, seamless deployment, and versioning.

Conclusion:

Working on this Hospital Management Systems project has exposed our project group to a variety of technologies and taught us many lessons that have applicability far beyond the process of simply making hospital management systems.

From a technology viewpoint, we have discussed the most current J2EE and .NET framework as well as Web Services technology.

The structured approach to information systems development has been found to be still most popular among the information systems and database developers. The methodology thus determined have then been followed to design a relational database for a typical hospital. The design thus produced can be implemented in most popular Relational Database Microsoft SQL Server.

The success of an information system in an organisation lies in its use by the decision makers in the desired manner. A system may be developed using a highly sophisticated methodology. But if it becomes a right system for the wrong persons, there lies the high possibility that the system will not be used in the desired manner. In Bangladesh, most of the hospitals don’t have comprehensive IS/IT facility. Effective use of IS within an organization depend on many things, among them senior management leadership and commitment, the skills of IS staff and management, the selection and use of technologies and the planning and implementation process, etc. So, it is imperative to have MIS setups for effective use of Information Systems.

Hospital Management