Day 2: Hands-on UML Using UML to put MITA to work to solve the immediate process improvement needs...

Post on 27-Mar-2015

214 views 1 download

Tags:

Transcript of Day 2: Hands-on UML Using UML to put MITA to work to solve the immediate process improvement needs...

Day 2: Hands-on UML

Using UML to put MITA to work to solve the immediate process improvement needs of states

MITA UML Training – Day 2Hands-on Training

• 8:30 – 10:00

• Hands-on Exercises: Business Processes

• Set up model structure• Simple business process (trigger, inputs,

output, activities, decisions, business objects

• Activity diagrams for Provider Enrollment

• 10:15 – 12:00

• Hands-on Exercises: System Integration• Sequence Diagrams (options, alternatives)• Capabilities as interface• Service specifications for business and

infrastructure processes

• 13:00 – 14:30

• Artifact Generation and Tools– Using the UML model to generate WSDL and

XSDs:• UML-to-WSDL configuration• Using hyperModel for constrained• Using MIF import to re-use HL7 models• Integration with Subversion for version

control

• 14:45 – 16:00

• Hands-on: Using the HL7 and Fox tools• MITA Project for MITA models• Version control with Subversion• HL7 information Model• Change Control • Fox Portal for project files

Tooling Overview

• IBM Rational Software Architect/Modeler • Websphere Business Modeler• Free plugins compatible with Eclipse 3.2

– hyperModel 3.0:http://download.xmlmodeling.com/hyperModel/updates/site.xml– HL7 MIF, HL7 UML Profile, Abstract Datatypeshttp://download.xmlmodeling.com/updates/hl7/site.xml– Version Control (SVN)http://polarion.org/projects/subversive/download/1.1/update-site/

• HL7 Web-based Tools– Wiki– MITA Project on HL7 Homebase

Rational Software Modeler/Architect

• Eclipse-based

• Uses the underlying EMF (Eclipse Modeling Framework)

Websphere Business Modeler

• Integrated with RSA/RSM

• Eclipse based

• Open-source alternatives available

UML vs. BPMN , BPEL WSDL

• WSDL is the target representation of MITA-based messages and tools are widely available

• Business Process Automation is a relatively new and very appropriate for new development Eclipse based tools are available to add business process automation as needed:– http://www.eclipse.org/bpel/– http://download.eclipse.org/technology/bpel/update-sit

e/

• Eclipse and Eclipse Modeling Framework provides integration

BPMN BPEL

<sequence name="main" xmlns:ns="http://eclipse.org/bpel/sample" xmlns:ns0="http://www.xmethods.net/sd/CATrafficService.wsdl"> <receive name="receiveInput" operation="initiate" partnerLink="client" portType="ns:Traffic2" variable="input"/> <assign name="Assign" validate="no"> <copy> <from part="payload" variable="input"> <query><![CDATA[/tns:input]]></query> </from> <to part="hwynums" variable="trafficRequest"/> </copy> </assign> <invoke inputVariable="trafficRequest" name="Invoke" operation="getTraffic" outputVariable="trafficResponse" partnerLink="traffic" portType="ns0:CATrafficPortType"/> <assign name="Assign1" validate="no"> <copy> <from part="return" variable="trafficResponse"/> <to part="return" variable="trafficResponse"/> </copy> </assign> <invoke inputVariable="output" name="callbackClient" operation="onResult" partnerLink="client" portType="ns:Traffic2Callback"/>

</sequence>

Eclipse Perspective

• Eclipse is a framework for IDEs (integrated development environments)

• In Eclipse, the layout of the user interface can be totally changed at the click of a button by changing “perspective”

• These layouts are called "perspectives" and they have various purposes. 

– RSM includes a “Modeling” perspective.

– To view the SVN repository you need the SVN perspective

• In order to open a perspective select WindowOpen Perspective Other... and then select the perspective.

• In order to modify a perspective WindowShow View

Plugins and Features

• Add-on tools, open-source– Help Software Updates

Find and Install Search for new features

– New Remote Site…

Getting Started…

• File New Project• File New UML

Model• Right-click in any tool

to open context-sensitive menu

… using the style guide

• RSA provides default projects– “Blank.emx”

• The MITA styleguide will provide a consistent structure for each project

Project Browser

• Model contents vs. Views• Diagrams• Packages

– Activity• Actions• Diagram• Structured Activities

• Select a package and right-click context-specific menu– Add– Delete– …

Model Elements

• Workspace– Project (NewProject

– Diagrams (by model)– Models (separate .emx files) (New

Model)

• Model– Packages: name space for the various

model elements (classes, interfaces, associations, actors)

– Diagrams• Structure• Behavior

– UML elements

Overview

• Reviewing the core modeling components

• Activity Diagrams

• Class Diagrams (and Packages)

• Sequence Diagrams

Model-driven Approach

• As requirements change, we change the UML model – re-generate user documentation – re-generated WSDL – re-generated XSD

• Diagrams provide views on the model– an element change is automatically reflected

in all diagrams that use the element

Tooling Capabilities

• Modeling– Includes WSDL and XSD generation

• Managed in MITA Project Repository– Configuration management portal– Developers check in / check out Model artifacts– Available to all as Read-Only with downloadable

viewer

• Wiki for brainstorming, co-editing documentations, collaboration

Summary of Project Artifacts

• Model Artifacts– Business Process (Activity diagram)

• MITA “to be”• Minnesota specific business rules• Business Triggers, system boundaries

– Information Model (Class Diagram )• HL7-based, standardized vocabulary

– Interactions (Sequence Diagram)• Operations expose business capabilities

• Modeling realization artifacts– Service Specifications

• Ports, interfaces, business rules– User documentation and runtime artifacts

• WSDL• XSD

Style Guide

• Pre-defined structure• Selected notation• Certain

diagrams/views• Default MITA

structure and local extensions

RSA: Create a new project

• Create new UML project– File New

Project UML Project

• Re-use style guide or start from “blank”

Enroll Provider Demo

Provider Registry

Manage Provider InfoInquire Provider Info

Enroll Provider System

Enroll Provider

Logical Model Overview(using Classes and Packages)

Sha

red

info

rmat

ion

Shared information

Detailed Information Model: Healthcare Provider (Role)

• Reuse reference HL7 class names, attributes, data types, code sets

• Reuse internal HL7 code sets, where appropriate• Reuse standard coding systems (ICD, SNOMED, X12,

NCPDP, etc.) as necessary• Additional Medicaid codes may be submitted to Standard

Development Organizations for adoption• Benefit: Industry-standard code sets can be used in place

of state-specific codes to enable semantic interoperability• The HL7 Reference Information Model is extensive and

includes a variety of contributions (industry, government, international) and it meets the needs of the Medicaid

Adding …

• Select package• Add UML model

element or a diagram– Context-sensitive

dialog

Business Triggers (state changes)

stm Prov ider Enrollment Application State Machine

New In progress/active

Approved

Initial

Cancelled

Final

[provider request]

add new

update

[applicati on valid]

Process description using activities

• Action & InformationInput

Output

Reference other process

• Control• Edges – information and

process control

RSA: Add a new diagram

Overview of business domains and areas

“Enroll Provider” Process

Trigger

Input Data

Result

MITA Business ProcessE

nrol

l Pro

vide

r

Item Details Links

Description A brief description of the complete business process Location in the Model

Trigger Event An occurrence that triggers a business process (e.g., receipt of a request, phone call, or a scheduled date)

The Trigger is a defined data set.

Sources of Trigger events

Result One or more outcomes from the execution of the Business Logic (results are defined as data in motion and are the immediate output from the business process, not the ultimate, downstream result)

The Result is a defined data set.

Business processes affected by the Result

Business Process Steps

A sequence of steps that execute the successful completion of the business process (steps start with a verb)

N/A

Shared Data Shared data is data at rest (i.e., data stores accessed to complete a step in the business process)

Shared data is a defined data set.

List of data sources

Predecessor The preceding business process, the Result of which becomes an input Trigger to this business process

Other BP

Successor The Results of this business process, which may become a Trigger for another business process

Other BP

Constraints Conditions that must be met for this generalized process to execute (e.g., enrolling institutional providers requires different information from enrolling pharmacies)

External rules

Failures An identification of the exit points throughout the business process where the Business Logic specifies that the process must terminate because of failure of one or more steps

Failure Notifications

Performance Measures

Measures that describe what can be measured but that are not specific measures in themselves, such as the following:

1. Time to complete process (e.g. real-time response = within ___ seconds; batch response = within ___ days)

2. Accuracy of decisions = ___%3. Consistency of decisions and disposition = ___%4. Error rate = ___% or lessThe MITA template specifies the type of measure but not the actual measure.

External source or performance measure rules

RSA: Add “Description”

Diagram(empty)

Activity Diagram of Business Process

Performance Measures

Failures

Constraints

Successor

Predecessor

Shared Data

Business Process Steps

Result

Trigger Event

Description

LinksDetailsItem

Tier 3: Enroll Provider

PM Enroll Provider

TriggerEvent Control flow[condition]

Reused Process

Decision

Result

Actions

Object flow[condition]

Failures

1

1

Shared Data

• Information Model– Class Diagrams

provide a view of the shared data

• HL7 as the starting point– Import MIF-based HL7

models into UML– Modify

• Input Messages

• Output Messages

Class Diagram

• Provides a view of Information and structure of message content or service performed

• Class diagrams are grouped into packages that represent a type of message or a service.– Class

• Message content (attributes)

– Interface• Implemented by components/services• Operations

– Enumeration• Define value sets• Coded literals

Information Model - Message

Share Information: Healthcare Provider (Role)

Default valueMultiplicity

Enumeration

Attribute/Property of the this type of object

HL7 Datatype

Primitive type

Detailed Information Model: Healthcare Provider (Role) Class

Object

Stereotype

Class Name

Name Section

Attribute Section Attribute Name

Attribute Name

Attribute Multiplicity

Attribute Value

Cardinality and Multiplicity

Multiplicities Meaning

0..1Basic notation - Zero or one instance. Note that “m” representing a

maximum number of instance may replace 1 and “n” representing a minimum number of instances may replace zero.

0..*  or  *Optionality - No limit on the number of instances and if zero then no

minimum either..

1 Cardinality of exactly one instance

1..*Cardinality of at least one instance. Note that * may be replaced by “m”

representing a maximum number of instances.

RSA: Add shared data

• Add diagrams– Class diagram

• Add classes– Root class of

input message

– Root class of the response

Activity Diagram – detailed notation

RSA: Create a simple activity

• Create information model package• Create activity diagram• Triggers• Drag-and-drop input message • Draw control flow• Draw object flow to object node

– If the object flow cannot be created, an input pin is missing

Object nodes

• Data store: data flow in which the data is persistent

• Central buffer: consolidates data from several sources and destinations. They do not connect directly to actions

• Input/Output pins

Edges/Connectors

• Control flow– Process control passed from one action to the

next

• Object flow– information “in”/”out”

Actions

• Simple actions• Fork/join process

flows• Re-used

activities/processes

Information Model• The information model is used to describe message content and structure.• Unlike a data model which is used to represent permanent information, the data model is

used to represent a snapshot of information at an instance in time for sharing information.• The structures in information models represent how a message is composed to share

information – not how data is stored within or retrieved from data structures.• The source of the data captured for a message may include several data structures and

data stores. The use of the data included in a message is various and can include parsing the information into one or more data stores.

• Data is manipulated from data stores for inclusion in messages, reports, or displays.• Data within data stores may be in any format required by the application. Data is extracted

from one or more data stores for composition of a message according to the schema for that message and will require transformation unless the data stores are XML representations of the schema. Conversely data is stored into one or more data stores from the message according to the usage requirements for that data beyond messaging – e.g. repositories for reporting and querying, updates to data stores based upon use of information in messages,

• It is important to note that only the source data for a message can be an authoritative source because data cannot be validated or verified for accuracy, authenticity, or authority after it has been put into a message. Message validation only ensures that data uses valid structures with valid values

HL7 Data Types

• Re-usable• Allows us to avoid

platform compatibility issues

Value Sets/Vocabulary

HL7 TerminologyIntended for Code Sets

Validation of messages

Allowed values

Use cases

• Use case diagram identifies the business actors

• Use cases elaborated using other views– Scenarios– Basic– Alternate– Error

Use case diagram

• Elaborate using – Interactions– Activities– Without narrative

• High-level use cases only– Focus on automation

and integration– Integration-related use

cases

Use Case Diagram

• Identifies the various ways in which a user interacts with a system or other users

• Actors, use cases, associations, inclusion– Enroll Provider

Information relies on• Add• Update • Inquire

Infrastructure Use case

Business Use case

ActorSystemActor

Service

• Define interfaces– Create a class diagram

• Interface• Operations based on use cases

• Create package– Namespace for service

• Create component– Add port of a certain type (interface)

Provider Registry Service

System

Port

Interface

System Interactions

• Based on the Service(s) defined

• Base on scenarios/use cases– Lifelines used to organize service calls– Each lifeline is an instance of interface or

service

• Each message corresponds to an operation invocation– Ad-hoc messages are not maintainable over

time

Sequence Diagram

Message/Request

System : Business Process

System : Service type

User role : Actor Type

Return

Asynchronous Notification

RSA: Sequence diagram

• New sequence diagram– Provider initiates the enrollment process– Add alternative – Add optional invocation

Sequence Diagram

• A sequence diagram is an interaction diagram that details how operations are carried out -what messages are sent and when. – Sequence diagrams are organized according to time. The time

progresses as you go down the page. – The objects involved in the operation are listed from left to right

according to when they take part in the message sequence.• A sequence diagram has two dimensions: The vertical dimension

shows the sequence of messages/calls in the time order that they occur; the horizontal dimension shows the object instances to which the messages are sent.

• A sequence diagram describes messages – each with a sender and receiver. In both cases the vertical lines represent the instances of the types indicated above them and the horizontal lines represent actions that involve the instances that they connect. Both dimensions can be expanded to refine the analysis and provide more detailed steps and a finer scale; each event can be expanded to more detailed sequences and each object to more detailed objects.

Use of Sequence Diagrams• Reading a sequence diagram is very simple. Start at the top left corner with the "driver"

instance that starts the sequence. Then follow each message down the diagram. Remember: Even though the example shows a return message for each sent message, this is optional.

• Sequence charts for scenarios help to identify the different participants in the action and their interactions and to show the sequence of events. This helps with the conceptualization of the role of time and with understanding dependencies between instances. Sequence charts assist the designer in allocating instances among distributed system components and are often useful during testing.

• A sequence diagram is very simple to draw. – Across the top of your diagram, identify the class instances (objects) by putting each class

instance inside a box. In the box, put the class instance name and class name separated by a space/colon/space " : " (e.g., provider : Provider).

– The vertical “lifelines” are dashed lines to the bottom of the sequence.– The activation bars are vertical oblong rectangles that begin when a message is received and

end at some point in time after message is sent – depending on the processing activities associated with the class.

– If a class instance sends a message to another class instance, draw a line with an arrowhead pointing to the receiving class instance; place the name of the message/method above the line.

– Optionally, for important messages, you can draw a dotted line with an arrowhead pointing back to the originating class instance; label the return value above the dotted line. It is a good practice to include the return value lines because the extra details make the diagram easier to read.

Message Flow Conventions

Symbol Meaning

Simple message which may be synchronous or asynchronous

Simple message return (optional but recommended)

A synchronous message

An asynchronous message

Elements of Sequence Diagram

Driver Sequenced

“life line”

Activation Bar

Message

Message Name

Message Return

Self-directed

Sequenced classes with “life lines” instead of “swim lanes” because represents action over time as differentiated from order of activities.

Alternate view: Communication diagram

Communication Diagram

• Entirely equivalent to the sequence diagram

• Provides another view, improves documentation

• With RSA, it is automatically created– Create a sequence diagram– Select “interaction”, add “communication

diagram”

HL7 Concepts

• Reference Information Model

• Patterns– Act-Participation-Role-Entity

• Observation – Author – Nurse - Person

– Act-ActRelationship• Prescription Allergy

– Role-RoleLink• PhysicianAssistant

HL7 Reference Information Model (RIM)

Model Management

• HL7 MITA Project– http://hl7projects.hl7.n

scee.edu/projects/mita/

• Version Control with Subversion– Model comparison

• SVN/SubversionPlugin– Help Software

updates Find and installhttp://polarion.org/projects/subversive/download/1.1/update-site/

New Remote Site…

http://download.xmlmodeling.com/hyperModel/updates/site.xml

HL7 import tool

WSDL and XSD generation

• UML-to-WSDL– Includes XSD generation

• Generate XSDs based on the content of a diagram – Using hyperModel

• File New Transformation– Source “services” package to the destination

WSDL directory

WSDL

Change Control Process Overview

act 7.4.1: Change Control Process

Re

vie

we

rM

od

ifi

er

Su

bm

itte

r (

Re

qu

es

ter)

Ev

alu

ato

r

login, selectproject Enter Defect/Bug

Report

Enter FeatureRequest

Triage Requests(periodically)

Assign change request toteam member

Prov ide Impactinformation

Approval

Request Rejected

Perform work to resolv ethe change as requested

Check in files Publi sh inGFo rge

Announcement

HL7 Home base SCM

(from 7.6 Tools)

GForge Cha nge Request Ticket

(from 7.7 Artifacts)

Task

(from 7.6 Tools)

Artifact Rev iew

Is the requestor interestedin reviewing the changedartifacts?

Rev iew thechanged artifacts

Additionalwork required

Refer to anothercommittee/project

Requirementsclarification

Clarifi cationnee ded

defect orenhancement

«structured,sub-process»7.4.2 Schedule work

Enter processchange request

[ye s]

[approved]

[ n o]

[ye s]

[n o][upd atestatus]

[enhancement]

[ye s]

[n o]

[defect]

[assign work]

HL7 MITA Project: Repositoryhl7projects.hl7.nscee.edu

Issue and change request tracker

Fox Portal