A hospital service bus is the middleware between service requestors and the services providers. Since the requestors need to access various services to get comprehensive information from the hospital, the hospital service bus performs the task of determining what service to access and the order they are accessed. In other words, the hospital service bus performs service orchestration.
In a Service Oriented Architecture development paradigm, functionality is exposed as services thereby enabling service requesters and providers interact through messages (XML, HL7, DICOM, FHIR, etc.). Services are built to be autonomous but can also be combined to form even larger services and applications. Service orientation provides guidelines and principles that govern the creation, implementation and management of services.
In the above figure, the services of the hospital are connected via a central service bus to enable information exchange and effective data communication between software applications. This also enables interoperability for heterogeneous applications where multiple systems can share information. This further makes data migration and usage easy from one system to another. The database technologies and business logic implementations vary across service providers. As a result of the service-oriented architecture being implemented, external access to these databases is provided via services.
This choice of architecture is effective because it provides access to a wide range of consumers and devices as a result of the ubiquitous technologies employed in the presentation layer while also providing a high level of separation of concern. However, the consumers are loosely coupled to the individual services. This provides flexibility because the service providers can switch database technologies or business logic implementation without affecting the consumer as long as the exposed services conform to a predefined contract that the consumer is accustomed to. Implementation of services by providers is also relatively cheap as services can be built on existing infrastructures without restructuring the whole system.