The design of traditional hospital information systems (HIS) usually only consider how to meet the requirements of medical operations of inpatient, outpatient and emergency departments. Patient safety had not been taken seriously. Some studies have thus pointed out that some of medical adverse incidents are caused by the errors of the information system in hospital. In this paper, we study how to improve the information system to enhance patient safety. The sources of information for patient safety usually located at different places where may be in the hospitals or outside. For example, the safety of a blood transfusion needs the correct patient data in hospital system, as well as the updated blood information on blood donation center. Therefore, the hospital information system must refer to distributed data sources. On the other hand, considering the compatibility problems of programming language and operating environment of information systems, it is often difficult to modify the original system architecture in order to enhance patient safety. In this paper, we propose a service-oriented architecture to address these two issues. The Service Oriented Architecture facilitates the development of such systems by supporting modular design, application integration and interoperation, and software reuse. It also supports interoperability between services operating on different platforms and between applications implemented in different programming languages. In this paper we design a patient safety information platform with a service-oriented architecture (SOA), which integrate different data sources for different medical services, such as medication administration and blood transfusion. Based on SOA, the services of our system play flexible roles to meet the need of patient safety independent of the types of devices and various programming languages.