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.