Services
Service Categories
- Client-side Classes: Represent the HDR public Java Applications Programming Interface, which includes an implementation of the HL7v3 Reference Information Model (RIM) and abstract data types specification.
- Foundation Services: Provide repositories for domain information. Enterprise Terminology Services (ETS) provide a centralized repository for storing coded medical terminologies. RIM Services provide a repository for storing any element of medical information that can be modeled in accordance with the RIM.
- Application Services: Provide higher level services based on the foundation
services. HDR supplies the following application services:
- Inbound Message Processor (IMP): Provides for the receipt of HL7v3 messages.
- Configuration Services: Provide Java APIs for configuring various HDR aspects.
- Audit Services: Provide auditing of critical HDR functions.
Service interfaces are not EJB interfaces by themselves; they are implemented by bean wrapper classes that wrap EJB Local and Remote bean interfaces. Similarly, the server-side EJB implementations delegate to core Java Persistence Layer. The EJBs themselves are stateless with container managed transactions.
This architecture provides several benefits:
- Bean Wrapper classes hide the differences between Remote and Local mode EJBs. This lets application developers switch deployment models with minimal impact on their own code.
- Container Managed Transactions (with some exceptions) let application developers use the Java Transaction API (JTA) to manage distributed transactions involving HDR and their own services.
- Stateless EJBs provide superior middle-tier scalability to stateful approaches.