soa4hl7: defining services based on hl7 messaging artifacts

16
03/25/22 22:36 SOA4HL7: Defining Services based on HL7 Messaging Artifacts Alan Honey, Kaiser Permanente Enterprise Architect (Based on material initially prepared by John Koisch, OCTL Consulting) HL7 Educational Summit, November 2007

Upload: wendy-cash

Post on 01-Jan-2016

30 views

Category:

Documents


3 download

DESCRIPTION

SOA4HL7: Defining Services based on HL7 Messaging Artifacts. HL7 Educational Summit, November 2007. Alan Honey , Kaiser Permanente Enterprise Architect (Based on material initially prepared by John Koisch, OCTL Consulting). Goals. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

04/20/23 01:40

SOA4HL7: Defining Services based on HL7 Messaging ArtifactsSOA4HL7: Defining Services based on HL7 Messaging Artifacts

Alan Honey, Kaiser Permanente Enterprise Architect

(Based on material initially prepared by John Koisch, OCTL Consulting)

Alan Honey, Kaiser Permanente Enterprise Architect

(Based on material initially prepared by John Koisch, OCTL Consulting)

HL7 Educational Summit, November 2007HL7 Educational Summit, November 2007

Page 2: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 2

GoalsGoals

• Show a (Phase 2) method for using messaging artifacts in HSSP Service Definition and Modeling (SOA4HL7)

• This is an interim methodology for defining more “SOA compatible” services based on existing messaging artifacts until a full set of standard services are defined

• Can also support migration activities

• This is not intended to supplant definition of Service Standards

Page 3: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 3

Problem StatementProblem Statement

There are not yet many standard services defined

Defining new ones takes time

What do we do with more urgent development or implementation needs?

– For software vendors: define services using custom methodology based on own database schema (most common current practice)?

– For consumers or in-house developers: create service definitions from scratch or from own legacy systems ?

Or apply some level of consistent methodology?

– What about existing v2 or v3 messaging artifacts?

Enter SOA4HL7

Page 4: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 4

Build or Re-Use Decision Tree• Use existing service

definition• Define a standard service -

Use the HSSP Service Specification Process

• Follow the SOA 4 HL7 Process

Service DefinitionApproachesService DefinitionApproaches

Page 5: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 5

SOA4HL7 Work Products and DeliverablesSOA4HL7 Work Products and Deliverables

Methodology (Balloted HL7 informative document)

– Methodology for creating service definitions and implementations. This offers a more consistent way to define and implement “interim” Services based on HL7 V3 content. NOT a replacement for standard HSSP Services

SOA Architecture Framework

– Leverage existing IT standards to enable services to be consistently described and used in healthcare environments. Includes a mapping of V3 Infrastructure a the SOA framework. Again an interim until HSSP Reference Architecture is complete. Note - This artifact was not balloted.

Focus here is on methodology

Page 6: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 6

SOA 4 HL7 - Overall MethodologySOA 4 HL7 - Overall Methodology

1. Functional Specification– Define Requirements– Define Process and Information

Capabilities– Id and Name Service Components– Map Requirements to Components– Produce Logical Specification

2. Solution Specification (PIM)– Refine Interaction Solution– Refine Component definitions– Define Detailed Dynamic Model– Specify Operations and Messages– Define QoS considerations– Produce PIM Specification

3. Technical Specification (PSM)– Platform Selection (e.g. WSDL)

– Identify Services (/consumers, interfaces, operations, parameters)

– Produce Interface Specification

– Define Technical Conformance Levels

Page 7: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 7

SOA 4 HL7 – Deliverable X-RefSOA 4 HL7 – Deliverable X-Ref

• Deliverables and their relation to HL7 components

Page 8: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 8

SOA 4 HL7 – Service DescriptionSOA 4 HL7 – Service Description

General SOA HL7 Artifact Based

Primary Top down Service Portfolio Planning, based on analysis of business processes and business information.Service name usually includes the name of the “focal” business object where there is one followed by a “passive” verb. Names should be meaningful to business.Granularity based on cohesion and completeness (see Section 5 below)Use abstraction where appropriate.Examples: Member Registration, Flight Reservation, Employee Recruitment, Order Fulfillment etc.

Use Whole Domains and/or Topics (where available) as basis, applying considerations of granularity and abstraction.Follow Service naming convention (see left hand column)Granularity based on cohesion and completeness (see Section 5 below)Use abstraction where topics and even domains are specific to one sub-type of a Domain model class (where a reusable service is viable) Examples: Eligibility Verification, Laboratory Order Management, Ambulatory Encounter Management (or Encounter Management), Scheduling.

Altern-atives

Based on Middle-in (Goal-Service Analysis)Based on existing legacy interfaces (bottom up) Based on “Meet-in-the-middle” combination of both top down and bottom up methods

Aggregate a set of related Application Roles and or Trigger Events, applying granularity and abstraction criteria as mentioned above.

Page 9: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 9

SOA 4 HL7 - Interface IdentificationSOA 4 HL7 - Interface Identification

General SOA HL7 Artifact Based

Primary If there is a natural split of business functionality into two or three areas, then define different interfaces. Questions of granularity are similar to that for the Service level.May split different interaction types/styles into different interfaces (particularly for data-oriented services), e.g. Query (read only) vs Update vs Notification (subscription based).

As general SOA in left hand column. Also consider different Topics for interfaces if more than one in the Service.Examples•Eligibility Verification (Service) -> Eligibility Query, Authorization (Interfaces)•(Laboratory) Order Management (Service) -> (Laboratory) Oder Maintenance, (Laboratory) Order Query (Interfaces)

Altern-atives

Define a single business interface for the Service with the same name.

Define a single business interface for the Service with the same name.

Page 10: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 10

SOA 4 HL7 – Operation IdentificationSOA 4 HL7 – Operation Identification

General SOA HL7 Artifact Based

Identify individual business actions within the service scope, often based on steps in the business process, particular those that cross domain or system boundaries.For data-oriented services, ensure major business objects within scope have create, read, update and delete capabilities defined.For services where deterministic outcomes are required, use explicit, directed instructions rather than deriving implicit instructions from generic messages where possible. (see discussion below)Capability Names are active verbs, usually with business object as subject. Names should be meaningful business actions rather than system actions such as “update record”.Defining Operations may also take specific interaction styles or performance implications into account, which may lead to splitting a Capability into multiple operations or occasionally aggregating Capabilities together.There are many approaches to defining queries, see the discussion below. Event-based or pub-sub issues will be considered in later versions of this document Granularity based on performance considerations and adaptability (see Section 5 below)Examples: Book Flight, Reserve Resource, Check Credit, Update Address, etc.

Identify individual actions from Storyboards, Use Cases, Activity Diagrams, Application Roles, Trigger EventsDIM/D-MIM – look at major classes in scope and ensure that main create, read, update, delete actions are supported. This applies to services which manage and control data.Follow naming and granularity guidelines as for General SOA. Consider defining and/or using CMETs for data content of appropriate granularity operationsExamples:•Authorization (I/f) -> Request Authorization, Nullify Authorization Request, Query Authorization Request Status (Operations).•Scheduling (I/f) -> Book Appointment, Cancel Appointment, Reschedule Appointment (Operations).

(Bottom-Up) Use existing legacy interface APIs or messages and re-define or wrap them as service operations.

Use individual Interactions and/or CIM/R-MIM/LIM/HMD/Message Types and define operations for each

Page 11: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 11

SOA 4 HL7 – Operation IdentificationSOA 4 HL7 – Operation Identification

In a messaging world, it is common practice to define large, multi-purpose messages and derive the appropriate instruction and meaning from them in “hidden” business logic.

This obscures the behavior from the service client and often leads to non-deterministic states of objects.

Wherever possible, explicit actions should be identified that take deterministic action.

This does NOT imply that the “how” should be exposed, but it is important that the “what” is made very clear.

Page 12: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 12

Example – Eligibility ServiceExample – Eligibility Service

Service, Interface and Operation Names

HL7 Artifact (if any relevant)

Comments

(Service) Eligibility Verification:

(I/F)Eligibility Query- Query Eligibility

(I/F)Authorization- Request Authorization- Request Immediate

Authorization- Nullify Authorization

Request- Query Authorization

Request Status

Eligibility Query Request (Trigger Event)

Authorization Request (Trigger Event)

Authorization Nullify Request (Trigger Event)

Authorization Query Request (Trigger Event)

These operations fairly closely match the HL7 Messaging Interactions, but there would probably not be separate operations defined for different Specialties, although it could be done that way too. This would be handled by an input parameter indicating the request type. This leaves a closer match with the Trigger Events rather than the interactions.Note – defining separate operations is one way to deal with situations where the service requestor can indicate whether an immediate response is required. Nullify and Query would only apply in the asynchronous response case.

Page 13: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 13

SOA 4 HL7 – Message ContentSOA 4 HL7 – Message Content

General SOA HL7 Artifact Based

Primary For data oriented services, this is normally complete business objects or sets of related objects For functional services, the appropriate parameters and return values are defined.It is important to consider extensibility, and use of more general document type approaches are now more common.Messages are normally named as a (qualified) noun describing the business content.Examples: Flight Reservation Details, Credit Card Verification Request, Reservation Confirmation.

If there is a matching CIM/R-MIM for the scope of the operation then this should be used. Otherwise start with DIM and identify appropriate classes in scope.Look for relevant reusable information structures (e.g. CMETs)May use aggregation of 1 or more CIMs / R-MIMs, LIMs, HMDs or message content.Data Types and Vocabulary should be based on existing V3 artifacts where they exist.Examples: Patient Demographics, Laboratory Order, Eligibility Authorization Request, Appointment Confirmation

Altern-atives

Bottom Up – Existing API content or message schema.

Use previously generated Message Schema

Page 14: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 14

SOA 4 HL7 – Design GuidanceSOA 4 HL7 – Design Guidance

Guidance is given on each of the following topics:– Modular Design

– Tolerance of Independent Invention (Scope and flexibility)

– Types of Functional Requirements

– Adaptability

– Granularity

– Abstraction Level and composition

– Cohesion / coupling / complexity

– Completeness

– Design for Reuse

– Security

– Process Management

– Technical Governance

Page 15: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 15

A Word on ImplementationA Word on Implementation

Use (or otherwise) of the H7 V3 wrappers.

– Transmission wrapper can be omitted (see SOA4HL7 Architecture document for initial suggested mappings)

– Include Control Act as payload or omit depending on need / circumstances

XML Schema

– Some suggestions included in document (based on work in Finland SerAPI project)

– Also see New ITS work in UK

Page 16: SOA4HL7: Defining Services based on HL7  Messaging Artifacts

Page 16

SOA 4 HL7 – Worked ExampleSOA 4 HL7 – Worked Example

A worked example is included (Appointment Scheduling). This includes:

– Storyboard definitions (taken from existing v3 material)

– Service, Interface, Operation, Message Definitions

– WSDL definitions (partial)