Presentation is loading. Please wait.

Presentation is loading. Please wait.

Prof. V. “Juggy” Jagannathan

Similar presentations


Presentation on theme: "Prof. V. “Juggy” Jagannathan"— Presentation transcript:

1 Net-based Technologies for Healthcare: Focus on Java, CORBA, DCOM and XML

2 Prof. V. “Juggy” Jagannathan
CSEE Department & Concurrent Engineering Research Center West Virginia University & CareFlow|Net, Inc. Prof. K. Srinivas CSEE Department & Concurrent Engineering Research Center West Virginia University

3 Agenda Objects and the Web Distributed Object Technologies
Internet and Extranets World Wide Web XML Architectural Alternatives Distributed Object Technologies CORBA DCOM Java Technology Java JavaBeans Lotus InfoBus JavaBlend Enterprise Java Beans Healthcare Security Aspects XML in Healthcare Object Healthcare Standards Baptist Case Study

4 Intranets and Extranets

5 Internet Internet is the largest network of networks.
These networks share a large number of protocols such as ftp, TCP/IP,NNTP,HTTP, IIOP and many others.

6 What are Intranets Use Internet technology (such as TCP/IP, NNTP, HTTP) for access to internal corporate data Usually intra-organization Some workflow such as forms routing.

7 Advantages Use of inexpensive Internet technologies
Client Server Computing with Browser Clients

8 Facilities Provided Usually Intranets provide facilities for browsing, searching, electronic mail and group collaboration tools such as those provided by current day browsers. Can also be linked to existing organizational databases to graphically retrieve data from backends.

9 What are Extranets A vast majority of commerce occurs through business-to-business transactions. However the information exchange in these transactions have to be done securely, so that competition is not aware of the details. Extranets allow companies to share sensitive information securely through internet channels producing large cost savings.

10 Extranets Use Internet technology to perform some transactions through secure public networks.

11 Examples Secure Access to Trading Partners
Global Ordering (Marshall, Dell) Shipment Tracking(Federal Express, UPS) Product Configuration(Cisco) Concurrent Engineering(Ford, Chrysler)

12 World Wide Web

13 The Common Gateway Interface
The purpose of the Common Gateway (CGI) Interface is to allow generation of HTML data from dynamic data sources. With CGI data can come from databases and/or be calculated at the moment the request for the document is made. CGI programs can be written in any language.

14 Common Gateway Interface (cont)
CGI is the generic interface between the server and server-side 'gateway' programs. CGI specifies how data are sent to the gateway program, and how data can be returned by the gateway program, through the server and back to the browser that originally sent the data. text from

15 WEB Problems

16 Static to Dynamic Increase in the number of systems that generate dynamic HTML documents on the fly. Primary mechanism for this is the CGI Leads to performance problems - http bottleneck Harder to integrate Harder to maintain - CGI Scripts KLUDGE

17 Whatever happened to “Session”
Unidirectional mechanisms geared for publishing rather than transactions. No direct mechanisms to support sessions, transactions support or for event notification

18 Side Effects Input consistency checking difficult. Javascript can alleviate the problem. Still a kludge. No drag and drop and other familiar controls Frame problem: When dealing with multiple frames, keeping them consistent is not easy.

19 The obvious conclusion
Web is great for publishing. It simply was not designed to support client-server interactions. But the overriding ease-of-use and ubiquity of access from multiple platforms has resulted in all sorts of unmaintainable kludges being deployed.

20 Evolution of Web Technologies*
Hyper-text Web Simple Forms Web Object Web JavaBeans/Applets ActiveX Controls Component Coordinators ORB-based interactions via CORBA or DCOM Function Dynamic HTML Scripts Cookies/Session Active Server Pages CORBA plug-ins Web Objects Servlets Forms CGI Tables ISAPI NSAPI URL-Based File Server Interactive Responsiveness * Adapted from Orafali and Harkey, Client Server Programming with Java and CORBA

21 XML Technology

22 Emerging Importance of XML
HTML-tagging is display oriented. XML-based content tagging has important uses: data mining role-oriented display customization intelligent searching and other value added elements Wide spread industry support for this new open standard Microsoft Netscape W3C is pushing the standardization efforts Complementary technology to HTML-based web browsers

23 Requirements best addressed by XML
Customizing front-end applications - easy presentation of what users want to see Data mining - ala altavista-type search Synthesis type applications - combining multiple information sources Electronic commerce-type applications

24 XML Markup Elements and attributes Entity References Comments
Processing Instructions Marked Sections Document Type Definitions (DTDs)

25 Elements Bounded by start and end tags Sample markup
<Patient> <FirstName> Frank</FirstName> <LastName> Foster</LastName> </Patient> Patient, LastName, FirstName are all entity tags.

26 Attributes Name-value pairs included as part of start tags.
Sample markup <APatient patientID=“123” FirstName=“Frank” LastName=“Foster”> <Insurance> Blue Cross </Insurance> <Insurance> HMO </Insurance> </APatient> FirstName and LastName in the example above are attribute declarations.

27 Document Type Definitions
Allows the expression of constraints on tags Defines sequencing and nesting of tags Defines attributes and values and defaults Allows specification of external file references Four kinds of declarations in XML Element declarations Attribute List declarations Entity declarations notation declarations

28 DTD Element Declarations
<!Element Patient (FirstName, LastName, Insurance?)> Says that Patient info is composed of FirstName, LastName and optionally Insurance information. <!Element Insurance (#PCDATA)> Says element Insurance is composed of parse-able character data.

29 DTD Attribute List Declaration
<!ATTLIST Apatient patientID ID #required FirstName CDATA LastName CDATA >

30 Other aspects of DTD Entity declarations (sort of macro capabilities)
DTDs can be included with the tagged document or referred to externally. Distinction between “well-formed” and “valid” documents Well-formed: satisfy XML markup constraints - no associated DTD. Valid documents: XML markup that adhere to the constraints specified in a DTD.

31 XML’s evolving family of standards
XML Linking Specification (XLL) Resource Directory Framework (RDF) Style sheets DSSSL - Document Style Semantics and Specification Language CSS Cascading Style sheets XSL XML Style Specification Language Domain Object Model Document Content Descriptors and Schemas

32 Objects on the Web

33 World Wide Web and Objects
How to combine Objects and the WWW What are the commercial solutions and directions Java-based ORBs

34 Aproaches to Combining Objects and the WWW
Web Browser Server HTTP Protocol

35 Web Server-based interfaces
Server API Web Browser Web Server ORB Clients HTTP Protocol CGI Scripts CORBA IIOP Protocol ORB Servers

36 Direct Support for IIOP
IOR://xyz Web Browser ORB Server IIOP Protocol

37 Java-based ORBs Two main players:
Iona’s OrbixWeb Inprise ’s Visibroker IDL to Java mappings have been standardized. Commercial implementations supporting the standardized mapping is being shipped by both Iona and Inprise .

38 Common Object Request Broker Architecture
Distributed Object Infrastructure

39 References Robert Orfali, Dan Harkey, “Client/Server Programming with Java and CORBA, Second Edition.” John Wiley and Sons, 1998. Andreas Vogel and Keith Duddy, “Java Programming with CORBA, Second Edition, Advanced Techniques for Building Distributed Applications,” John Wiles and Sons, 1998. John Siegal (written and edited by), “CORBA Fundamentals and Programming,” John Wiley and Sons, 1996.

40 Outline Overview CORBA 1.1, 2.0, 3.0 IDL and Interface Repository
CORBA services

41 Background* Not-for-profit company based in United States, with representation in Italy, United Kingdom, Germany, Japan, Australia & India. Founded April 1989. Small staff (35 full time); no internal development. Almost all technical work done by engineers in member companies Almost 800 members (4/98) .. * Viewfoil courtesy OMG:

42 Worldwide Scope * Andersen APM Alta AITECH AT&T BaaN Bull British Telecom Bankers Trust Data Access Eurocontrol EDS Ericsson FinSiel Fujitsu Genesis HP Harlequin ICL Informix Intel IBM IONA Tech. Microsoft MITRE Netscape Nortel Novell OHRA Insurances Oracle Open Group POSC Sodalia Siemens Nixdorf Software AG Sun Microsystems Sybase Thomson CSF Telecom Italia Telefonica Telia AB TRW Unisys Valtech……. * Viewfoil courtesy OMG:

43 Adoption Process * RFI (Request for Information) to establish range of commercially available software. RFP (Request for Proposals) to gather explicit descriptions of available software; Architecture Board approves. Letters of Intent to establish corporate direction. Task Force evaluation & recommendation; simultaneous evaluation by Business Committee. Architecture Board consideration for consistency. Board decision based on recommendations from the appropriate Technology Committee & Business Committee. Fast Track Process.. * Viewfoil courtesy OMG:

44 CORBA Architecture Clients Server Servers Client Requests IDL-based
Java Ada other C C++ Java Ada other C Client Requests IDL-based Service IDL-based ORB

45 Integration Technology - CORBA
The Common Object Request Broker Architecture is the standard adopted by OMG as a framework to provide common ORB services and interfaces to support portable clients and services. The Object Request Broker (ORB) provides the mechanisms by which clients transparently make requests and receive responses.

46 CORBA (continued) Advantages offered by CORBA:
architecture independence language independence location independence The standard specifies the Interface Definition Language (IDL) - language used to describe the interfaces that client objects call and object implementations provide.

47 De-facto Standards and products available*
CORBAdomains - Manufacturing: - Electronic Commerce: - Healthcare: -Telecommunications: - Finance -Transportation - ….. CORBAfacilities - Architecture guide and roadmap - Working on Internet facilities. CORBA applications CORBA 2 (IIOP) - ORBIX - IONA - Obj Broker BEA - VisiBroker Borland - Omni Orb Olivetti - Component Broker IBM CORBAservices - Naming - Security (...ICL) - Transactions (..Bull) - Query Service - Persistence - Lifecycle * Viewfoil courtesy OMG:

48 The Evolution of CORBA*
Basic ORB, IR, BOA, C Bindings, Naming, Events, Lifecycle etc. CORBA 2.0 (1995) IIOP, Federated IR, C++ Bindings, Transactions, Concurrency, Externalization, Relationships, Query, Licensing, Trader, Security, Collections, Time etc. CORBA 3.0 (1999) Messaging (MOM), Server Portability (POA), Business Objects (JavaBeans), Java Bindings, Objects-by-value, CORBA/DCOM, IIOP Firewall, Workflow, Domain-level Frameworks, Mobile Agents etc. * Adapted from Orafali and Harkey’s Book

49 ORB services Multiple language bindings - C, C++, Java, Smalltalk, Ada, Cobol Interface Repository stores the interface specifications of all services Transparency of object location

50 ORB services - Contd Object-oriented - provides for encapsulation, polymorphism and inheritance Can provide security for content and context-sensitive transactions

51 Client/Server Request Using the ORB 2.0
Object Implementations Client Implementation Repository Dyamic Invoc- ation Client IDL Stubs ORB Inter- face Static Skeletons Dynamic Object Adapter Interface Repository Object Request Broker

52 Client IDL Stubs Provides local proxies for remote services
Provides for marshaling of parameters into standard formats

53 Dynamic Invocation Interface
Late binding of method calls Run time discovery of service IDL interface

54 Interface Repository Runtime database of interfaces of all registered objects Supports the query of, registration of, and update of interfaces of objects mediated by the ORB Repository IDs - uniquely and globally identify interface repository across multivendor ORBs

55 Server IDL Stubs Also called skeletons
provide static interfaces to each service provided both client side and server side stubs are generated using IDL compilers

56 Dynamic Skeleton Interface (DSI)
to implement dynamic services or dynamically changing services run-time binding of new services using scripting languages and interpreters to redirect messages to objects for which a compiled idl-interface is not known

57 Object Adapter responsible for managing a collection of server objects
instantiates server objects when needed and provides them with object IDs called object references registers the classes and instances in the Implementation Repository All CORBA implementations must support a Basic Object Adapter

58 Implementation Repository
Keeps track of classes and run-time instances of server objects supported by the ORB Allows for mechanisms to support audit trails, trace information and security related infrastructure

59 Basic Object Adapter Must provide for the following functionality:
An implementation repository Manage instantiation and destruction of objects Manage object references and invoking methods Mechanism to authenticate clients

60 CORBA 2.0 Interoperability Standard
CORBA 1.1 allowed for portability CORBA 2.0 specifies the Internet Inter-ORB Protocol (IIOP) Public domain IIOPs are now available (from Sun for instance) Every CORBA-compliant ORB must implement IIOP or provide a half bridge to it

61 ORB-to-ORB Bridging Server Client DII DSI ORB From Vendor A
ORB From Vendor B

62 IDL and Interface Repository
Interface Definition Language (IDL): fundamental mechanism supported by all ORBs to separate interfaces and implementations Interface Repository is a queriable and updateable runtime information store of interface specification generated from IDL

63 IDL users Client programmers who want to access the services provided by an object - they need the IDL to determine how to call the services Server programmers who want to extend the service provided - they need the IDL to subclass and provide additional capabilities

64 IDL Structure Module: groups a collection of class definitions (interfaces) Interface: defines a class; attributes and exceptions Operation: defines a method; the arguments; argument types; in, out or in-out; exceptions; optional context description Data types: basic (short , float, char...) and constructed

65 IDL Example : type codes
typedef string Date_T; typedef string PersonID_T; typedef string Address_T; typedef char MaritalStatus_T; typedef char Sex_T; typedef long PolicyID_T;

66 IDL Example: Interfaces
interface FamilyMember; interface Employer; interface InsurancePolicy; interface InsuranceCompany;

67 IDL Example: Interface definition
interface Demographics: PRObject { readonly attribute PersonID_T personID; attribute string lastName; attribute string firstName; attribute long SSN; attribute Date_T DOB; attribute string birthPlace; attribute MaritalStatus_T maritalStatus; readonly attribute sequence<InsurancePolicy> insurancePolicies; readonly attribute sequence<FamilyMember> familyMembers; readonly attribute sequence<Employer> employers; };

68 IDL Example: Interface definition
interface InsurancePolicy: PRObject { readonly attribute PolicyID_T policyID; attribute string insuranceType; attribute string carrierProgram; attribute long groupNo; attribute long payorNo; attribute long controlNo; attribute string relationshipToPolicyHolder; readonly attribute Demographics policyHolder; readonly attribute InsuranceCompany insuranceCompany; };

69 Type Codes represent IDL-defined data types
provide for self-describing data Used by: DII, IIOP, Interface Repositories and any data type

70 Interface Repository - where used
Run-time type checking on method invocation parameters Connecting multi-vendor ORBs Support dynamic discovery of object interfaces and support for DII Provide for self-describing objects

71 CORBA 3.0 Trader Service POA Workflow Business Objects Facility
CORBA Component Model CORBA Scripting Language IIOP over firewall Java to IDL mapping Real-time CORBA Asynchronous Messaging Domain-specific frameworks Manufacturing, Transportation, Finance, Healthcare, Telecom, Electronic Commerce and more! See: for a press release on CORBA 3.0 by major vendors for an early 1999 commercial availability.

72 Trader Service Naming Service is like white pages
Trader is like yellow pages Trader ORB ORB Client “Importer” Server “Exporter” ORB Import Service Export Service Invoke Service

73 Portable Object Adapter (POA)
To quote Orafali & Harkey: “The POA is simply the BOA done right.” Similar to BOA, POA supports management of: separate process for each method separate process for each object shared process for multiple objects In addition, POA supports the notions of: servants and servant managers (instance managers) transient and persistent servants and instances Essentially addresses scalability and flexibility in server implementations

74 CORBA/Java Security Reference: Andreas Vogel & Keith Duddy, “Java Programming With CORBA,” Second Edition, John Wiley & Sons, 1998.

75 Applet Security Issues
Java Virtual Machine for applet execution are restricted in their ability to access local resources - referred to as “applet sandboxing.” Applets are only allowed to communicate with the server they are downloaded from CORBA clients can in principle communicate with any object for which there is an IOR reference. Two approaches have been identified to address applet security restrictions.

76 Working with Applet Security restrictions
Establish an IIOP gateway which serves as a proxy to the real server Use signed applets Browser Client Applet WWW Server IIOP Gateway Download Applet Server Implementation IIOP IIOP

77 Firewalls Firewalls restrict and filter network traffic
In a client-server environment, in the general case, there may be a client-side and a server-side firewall involved. Server side Client side

78 Types of firewalls Origin/Destination Filtering - router-based
filtering based on IP address of target and specific port numbers on that address filtering based on IP addresses of specific set of source machines Gateway firewall A machine with dual network cards - one connects to Internet and the other to Intranet. Only way for packet traffic to bridge the two networks is a protocol-specific bridge that forwards packets to the appropriate applications

79 Client-side firewalls
Gatekeeper Server Implementation Browser Client Applet HTTP IIOP Client-side Firewall HTTP Tunneling With Gatekeeper Proxy Browser Client-side Firewall Server Implementation Client Applet Port 80 HTTP Gatekeeper Proxy IIOP IIOP Gatekeeper with dual functionality

80 IIOP over Secure Socket Layer (SSL)
SSL is layered on top of TCP/IP It is the basis for secure electronic commerce over the Web - using Secure HTTP (SHTTP) SSL authentication is based on public key cryptography Authentication is based on digitally signed certificates.

81 Overview of CORBA Security Service

82 Goals of a security service
Confidentiality Integrity Accountability Availability

83 Sample threats to security
An authorized user accessing information they should not A user pretending to be someone else to access information Eavesdropping on others communication Modifying, deleting or maliciously tampering with information

84 Features of the Security Service
Identification and authentication Authorization and access control Auditing Communications security Non-repudiation Administration of security policy

85 Security Conformance Levels
Security Level 1 - targeted at securing security-unaware applications. Allows for client authentication, secure communications and method-level access control based on security policies. Security Level 2 - supports all of the above and supports integrity, trust and auditing. Targets security-aware application which may enforce their own policies.

86 CORBA World Players Netscape (bundle CORBA-clients with their web browser) Oracle has adopted CORBA/Java as their base platform JavaSoft - is layering RMI on top of CORBA IIOP. Sun has also adopted Visibroker as its ORB technology. IBM/Lotus: Adopted base infrastructure is CORBA/Java.

87 CORBA World Players - Others
Iona Visigenic/Inprise HP Tandem Novell I-Kinetics Expersoft BEA Symantec ParcPlace Penumra Inprise Sybase NetDynamics Vignette Allaire and 800 more!

88 Distributed Component Object Model (DCOM)*
Microsoft Version of Distributed Object Computing * Material for this tutorial is based on Orafali and Harkey book on Client Server Programming with Java and CORBA and Richard Grimes book on DCOM Programming.

89 DCOM and CORBA Like CORBA, DCOM adheres to separation of interface from implementation using Microsoft Interface Definition Language (IDL) based on DCE. Not compatible with CORBA IDL. Also provides an additional IDL for OLE automation called Object Definition Language (ODL).

90 DCOM Unlike CORBA, DCOM does not support multiple inheritance. It supports multiple interfaces and compositional architectures. Like CORBA, DCOM provides both static and dynamic bindings for methods Type Library in DCOM corresponds to Interface Repository in CORBA. DCOM registry corresponds to Implementation Repository.

91 DCOM Interface DCOM Interface is collection of method calls.
DCOM interface is language neutral Microsoft provides language bindings for Visual C++, Visual Basic, and Visual J++. Inprise ’s Delphi products provide bindings for Pascal.

92 DCOM Interface To access DCOM interface, clients use pointer to an array of function pointers - called virtual table or vtable. Object User Pointer Internal Data Interface Function Table Implementation of Member Functions Pointers to DCOM Object

93 DCOM Conventions Plug-in-jack pictorial representation of components.
Interface by convention is named with a letter beginning with capital “I” - e.g. IDispatch At run time, interfaces are known by their Interface Identifier (IID) IID is globally unique (GIID) bit IDs.

94 DCOM Object Also known as ActiveX object.
DCOM object implements all the interfaces the object supports. Identified by a unique 128-bit Class ID (CLSID) Implements IUnknown interface IUnknown Interface A DCOM Object Interface B Interface C

95 DCOM Server DCOM servers is a DLL or EXE or a Java Class.
Factory DCOM Object IClassFactory or IClassFactory2 Interfaces IUnknown DCOM servers is a DLL or EXE or a Java Class. Server must provide a class factory for instantiating new objects IClassFactory2 interface needs to be supported if object is instantiated only if a valid license file is present

96 DCOM Local/Remote Transparency
In-process servers: server DLLs that can be loaded in the same process as the client. Local servers: clients use DCOM’s Lightweight RPC (LRPC) to communicate with server running on a different process space in the same machine. Remote servers: clients use DCE RPC-like mechanisms to make method invocation.

97 DCOM IUnknown Interface
IUnknown Interface consists of: QueryInterface - for supporting interface negotiations AddRef - to support garbage collection Release - to support life cycle management

98 DCOM’s Dynamic Invocation Facilities
Create Object OLE Automation Controller OLE Automation Server Get Object Get/Set Properties Invoke Methods DCOM Services MIDL precompiler ITypeLib ODL Spec

99 Writing a Java Client/Server Application in DCOM
1. Create DCOM IDL 2. Generate GUIDs 3. MIDL Summary.txt 4. JavaTLB Interface Class Proxy Interface 5. Implement Server 8. Implement Client 9. jvc 6. jvc 10. JavaReg 7. JavaReg 11. jview Server Client

100 DCOM Conclusions DCOM is maturing rapidly
Java support is there, although it is for Microsoft version of Java Biggest differences with CORBA Support limited to Wintel platforms Range of services available limited (CORBA has from Workflow to security to vertical domain standardization efforts Biggest drivers Freely available with Windows NT MTS and MSMQ and other internet Microsoft technologies

101 Introduction to Programming in Java

102 Why Java Java is a simple, efficient, secure, portable high-performance programming language. It is similar to C++, easy to learn. It has no pointer arithmetic, no need to free memory which is a serious problem in C/C++. Very compact Runtime.

103 A Small Java Program class helloworld {
public static void main(String args[ ]) { System.out.println(“Hello World!”); } 5

104 Compilation Java files are created with extension .java.
java files are compiled using javac (the java compiler) which produces a filename with a .class extension. The .class file contains java bytecodes There are no header files in java. 8

105 Primitive Types boolean, byte, char, short, int, long, float and double Arrays and Strings are objects in Java Due to garbage collection, no need to free memory which eliminates the errors due to memory leaks etc.

106 Executing Java Java applications can be executed by the java runtime. i.e an application with a .class file can be run by typing “java <filename.class>“ Applets can be executed by embedding the class in an HTML file with the <applet code = <“classname”><param > </applet> tag. 9

107 Example Type Declarations
byte intvar; short noofChildren; long WorldPop; float pi; char c; boolean Day;

108 Declaring Arrays int i[]; //one dimensional array
char ca[][]; //two dimensional array float[] f;// optional placement of square brackets

109 Array Allocation use the new operator to instantiate the array
i = new i(10);

110 Control Flow If (expr) statement else statement
for (expr;expr;expr) statement while (expr) statement do statement while (expr); switch (expr) { ... } 11

111 If Statement if (a < b) { a=b;} else {b = a: }

112 for Statement a[] = new int[10]; for( int i =0; i< 10; i++) { }
a[i] = 0; }

113 Classes Single Implementation Inheritance
Multiple Interface Inheritance Runtime Type information available All methods are virtual or Static 12

114 Class Example Class Computer { void pc() {
System.out.println(“ Iam a PC”) } int processor_speed() { return 100; 13

115 Class Example (Contd) Class Dec_alpha extends Computer {
int processor_speed() { return 200; } 14

116 Class Example (Contd) Computer c = new Computer();
Dec_alpha d = new Dec_alpha(); c.pc(); d.pc(); int s1 = c.processor_speed(); int s2 = d.processor_speed(); 15

117 Interfaces Define an interface that a class must implement.
Interfaces support multiple inheritance, since a class can implement multiple interfaces Java interfaces are similar to IDL interfaces . 16

118 Interface Example interface Automobile{ void auto_type(); }
Class myclass implements Automobile{ void auto_type() { System.out.println( “ Truck”); 17

119 Access Modifiers public -- accessible to everyone
protected-- accessible only to its subclasses private -- accessible only to the class Default is access by any class in the same package. 18

120 Exceptions Exceptions similar to C++ try { int val = sum * count;
if (val > MAXINT) { throw new valTooLargeException; } return val; 19

121 Exceptions (Contd) catch ( valTooLargeException e) {
System.out.println (“ divide by 0”); return -1; } 20

122 Multithreading Supports high-performance by preemptive multithreading.
No explicit locking is necessary to ensure mutual exclusion. Synchronized methods automatically ensure mutual exclusion. 21

123 Native Methods Java allows C/C++ code to be embedded.
Shared libraries can be dynamically loaded . 22

124 Packages A package is a collection of classes and or interfaces.
A particular package is imported using the import statement. 23

125 Libraries java.lang contains language types, Threads, Exceptions etc
java.util contains Hash Tables, Vectors, Cache etc java.io contains input/output classes java.awt contains an abstract windowing toolkit for writing user-interfaces and such. java.network contains sockets etc. 24

126 Recent Java APIs Java Beans is a Component Architecture for Java. It provides an API for creating and assembling java components. JavaBeans is a component model similar to OLE/COM, OpenDoc and LiveConnect. Java Beans will also interoperate with these existing component models

127 JavaBeans (contd) JavaBeans component model services include
Runtime component publishing and Discovery Event handling persistence Layout Application Builder Support

128 JDBC (Database Connectivity)
JDBC is a “call level “ SQL interface from Java. This facilitates the execution of SQL statements and return the results. JDBC is an interface level specification. JDBC API is implemented on top of existing SQL level API -- ODBC.

129 JDBC (Contd) The most important JDBC interfaces are
java.sql.Environment provides support for creating new database connections java.sql.Connection to connect to a particular database java.sql.Statement for executing a SQL statement on a given Connection java.sql.ResultSet to access the resultset for a given SQL statement.

130 JDBC (Contd.) Furthermore java.sql.Statement has two additional interfaces java.sql.PreparedStatement for executing a pre-compiled SQL statement java.sql.CallableStatement for executing a database stored procedure

131 JDBC (Contd) A JDBC-ODBC Bridge driver currently sits between the ODBC Drivers (provided by database vendors) and the JDBC API.

132 Java Security API Provides a security framework for application designers. Provides Authentication, Data Encoding, Data Encryption, Key Management and related security features.

133 Other Java APIs Java Telephony API Java Wallet Java Server API

134 Remote Method Invocation
Java facilitates distributed computation through its RMI mechanism. Using RMI it is possible to invoke methods on remote objects. RMI supports object references within a Java VM and across multiple Java VMs. It includes rmigen(similar to rpcgen) which generates the Java as well as Transport classes

135 Bytecodes The bytecodes consituite the instruction set of the Java Virtual Machine (JVM) which implements the java runtime. It is Architecture neutral, easy to interpret and generate. Register based 39

136 Security Byte codes are verified by a bytecode verifier.
classes can have digital signatures which can be verified Strongly typed. Null pointer checking Array bounds checking 40

137 Performance Interpreted code 15--20 times slower than compiled C.
By using Just-in-Time (JIT) compiler, the performance is about the same as C. Small amount of extra overhead for null pointer and array bounds checking. 41

138 JavaAWT Java provides a package called the Abstract Windowing Toolkit (AWT) for performing windowing and Graphical functions. It is a platform independent Graphical User Interface (GUI) toolkit.

139 Java AWT It is abstract because it provides an interface between the Java Language and platform specific windowing systems such as Motif, Win32, and others.

140 Structure of AWT Component Label Button Container Canvas List Panel
Window Checkbox ScrollBar Applet Frame Choice TextComp Dialog

141 Containers Containers are used to group related components.
The components are laid out inside a container using a layout manager.

142 LayoutManagers LayoutManager is an abstract class, hence there one can implement their own LayoutManager. BorderLayout, CardLayout, GridLayout, FlowLayout, GridBagLayout are some of the managers that come with the implementation.

143 Events AWT generates Event Objects form these low-level events.
When a user interacts with a GUI, either through a mouse, a keyboard, audio or a video device, events are generated by the hardware and the Operating System.

144 Event Delegation Event Sources “fire “ Event Objects.
EventListeners listen to the events.

145 Event Delegation Events Event Source Event Listener

146 this and super In object-oriented programming, this is a reference to the object itself. In otherwords the class refers to itself using the this refernce. (similar to this in C++ and self in smalltalk) super refers to the superclass of the current class.

147 JavaBeans 1

148 JavaBeans JavaBeans is a software Component model for Java.
Facilitate third party ISVs to create and Ship Java Components that can be composed together by end -users (VB model) 3

149 JavaBeans JavaBeans provides a platform independent component architecture. Will bridge to ActiveX, OpenDoc and LiveConnect.

150 JavaBean A JavaBean is a Reusable Software Component that can be manipulated visually in a builder Tool.

151 Characteristics of a Bean
Support Introspection Support Customization Support Events using simple communication metaphors Support for properties Support for persistence through Java Serialization.

152 Bean Three important features of a Bean are
the set of properties it exposes the set of methods available externally the set of events it fires.

153 Events AWT generates Event Objects form these low-level events.
When a user interacts with a GUI, either through a mouse, a keyboard, audio or a video device, events are generated by the hardware and the Operating System.

154 Distributed Beans Database Server JDBC CORBA SERVER IIOP RMI JAVA

155 JAR Java Beans are packaged as JAR (Java Archive). (Beans come in a JAR :-)

156 Pragmatics How does one create a Bean??

157 Creating Beans Write the component in Java using the JDK 1.1 Event model (Event Delegation model) and implement the appropriate Listeners and add the listeners to the sources. Creating a BeanInfo class is highly recommended. Use Design Patterns for Creating the Java Beans

158 Design Patterns In very simplistic terms, design patterns are naming conventions. For example, if there is a property named Label, you would have public String getLabel() { } public void setLabel(String labelname) { }

159 Design Patterns Boolean Properties public boolean isRed() { }
public void setRed( Color red) { }

160 Design Patterns EventListeners
public void add<ListenerType> (<ListenerType> listener) public void remove<ListenerType> (<ListenerType> listener)

161 Example addSriniEventListener(SriniEventListener srevt)
removeSriniEventListener(SriniEventListener srevt)

162 Bean Analysis Introspection Java beans Bean Boxes Design Patterns
Reflection

163 Introspection Discovers Events, Properties and Methods when the Bean Designer provides a BeanInfo Class

164 Reflection Reads Events, Properties and Methods using Design Patterns

165 JAR Files is similar to Zip Archives and may optionally have a MANIFEST file with information describing the contents of the JAR file. JAR files are used to collect class files, serialized objects, images help files and similar resource files.

166 MANIFEST FILES A JAR file that wants to advertise its contents should have a MANIFESTS file. The MANIFEST file will indicate which of the potential beans in the JAR archive are actual beans. If there is no MANIFEST every potential class is regarded as a bean.

167 Authentication JAR files can be signed to provide authentication.

168 Lotus InfoBus

169 What is Infobus Component Architectures such as JavaBeans provide mechanisms to build reusable software components. But Applications consist of multiple components that need to communicate

170 Infobus Communication also implies data exchange and information sharing. The data exchange and information sharing can either be done in Java itself or by using Scripting languages such as Tcl/Tk, PERL and others

171 The Problem ... The problem with scripting or using the programming language itself may result in ad hoc solutions.

172 What is needed for Component Communication...
A standard for discovering the data to be exchanged. A standard for accessing and representing data. Preferably a dynamic mechanism with possible run-time discovery

173 Infobus Infobus provides mechanisms for discovery and data access amongst Java components. It works with applets, applications, JavaBeans and other Java Components

174 What Does Infobus Provide??
Provides standard interfaces to access internal data structures. Ability to provide data to other applications. It provides dynamic change notification

175 Infobus Standard It is an open, vendor independent, free standard.

176 Reduces Complexity The infobus provides a mechanism for inter-component communication while hiding the complexity of low-level issues such as synchronization Synchronization based on Rendezvous

177 Producer Infobus Consumers

178 Change Notification Producers and Consumers notify changes performed by each other to the shared data. An Event based mechanism. Supports security and access control

179 More Information Can be found including specs and such at

180 Java Blend

181 What is Java Blend Java Blend Integrates Objects in the Java Programming language with Enterprise Objects. Provides a single consistent, coherent object model for enterprise based on the Java object.

182 Java Blend Jointly developed by JavaSoft and Baan.
Currently the programmer must explicitly convert to and from Java objects and database objects. Current applications are split into Java part and SQL part and both interacting through JDBC or some similar mechanism.

183 Object-Relational Mapping
Currently done by the programmer. Decomposition of Objects into many tables or build objects from many tables. Mappings between foreign keys and Object references Mappings between field types and SQL types

184 Object Relational Mapping
Map and or Infer Inheritance Relationships from Foreign keys Perform Transactions and process the results of transactions.

185 Java Blend Java Blend provides automatic mapping between Java Objects and backend relational database tables. The programmer only deals with Java Objects and is unaware of the SQL. SQL translations, Database representations (relational) are transparent to the programmer.

186 Advantages Easy access to enterprise relational data from Java Programming Language. No need to know, SQL, DDL and other relational database specific ideas. Significant reduction in application development time.

187 Java Blend Environment
development environment supports automatic object<--> Relational Mapping. Runtime environment supports Transaction Management Caching Query Processing

188 Development Process A mapping tool is used to map business objects written in Java to database schema. Queries can be written in OQL (ODMG compliant)

189 Enterprise Application
Persistent Objects Java Blend Runtime JDBC JVM

190 Java Blend Runtime Architecture
Transaction Manager Run Time Cache Query Engine

191 Other Advantages Multiple threads for multiple user transactions
Multiple simultaneous transactions per application Upon commit stores objects in the database Rollback mechanisms

192 Performance Increases performance by optimistic concurrency control(i.e., does not hold read and write locks on server) Runtime caching Support for stored procedures

193 EJB and Java Blend Java Blend works with EJB APIs Extremely scalable.

194 Enterprise Java Beans

195 What is EJB It is a distributed Software Component Architecture.
It is a Framework for Creating Middleware. EJB is part of the Enterprise Java API

196 EJB It is a Server side Component model It focuses on Business Logic.

197 ENTERPRISE JAVABEANS COMPONENTS
HTML JavaBeans Servlets IIOP RMI and other Protocols ENTERPRISE JAVABEANS COMPONENTS Server Platform J T S J M A P I J N D I J I D L J M S J D B C

198 EJB server E EJB Client EJB Container EJB

199 Web Server database EJB Container Client Servlet Application Server

200 EJB Architecture EJB architecture consists of EJB Servers
EJB Containers EJB Clients EJB Auxiliary Systems such as JNDI, JTS and others. 8

201 The Various Players EJB Providers EJB Server Providers
Provide Enterprise Java Beans (Components) EJB Server Providers Creates and sells EJB servers EJB Container Providers sell EJB containers Usually the server provider will also provide containers 9

202 The Various Players EJB Application Assemblers
Will enable application building using EJB components, servers and Containers. 10

203 EJB Servers EJB Servers are similar to CORBA ORBs
It Provides Naming(JNDI) and Transaction Services (JTS) Makes containers visible to clients

204 EJB Containers Encapsulate the Bean
Client accesses Beans’ methods through the container methods Container methods map to Bean methods Client only knows about container methods.

205 EJB Clients First discover the services (ala CORBA ) using mechanisms such as JNI Request Bean Services through Container Services.

206 Types of Enterprise Java Beans
Usually categorized as Session Beans or Entity Beans

207 Session EJB Is associated with a Single Client.
It is created and destroyed by a client

208 Entity EJB Are Shared by multiple clients Persistence is supported.

209 Structure of an EJB Client
First Locate a EJB container using a directory service Allocate a bean Use the bean services Dispose the bean.

210 EJB Support IBM Oracle Lotus Novell Iona Netscape Inprise
and many many others

211 More on EJB can be found at

212 Internet Technologies in Healthcare

213 Security service use in Healthcare
CORBAmed Request for Proposals in Healthcare Resource Access Control (HRAC)

214 Healthcare Resource Access Control Policy Enforcement
Access policies that are general and are geared to the nature of care, role of care provider and rationale for a particular disclosure or access to patient confidential information. These types of access policies are patient non-specific. Access policies, which are based on the needs and requirements of a specific patient. These access policies may be based, in addition, on the actual information being accessed or disclosed.

215 Sample Policies Care providers in the emergency department are allowed to read preliminary radiology reports. A responsible party can "sign-off" on a document. A registration clerk can access patient home address or social security number. All patients can read their own information Peer review committee members can access patient record information for all patients.

216 Factors determining access
Type of access operation Principal id Principal role Principal group membership Relationship between a patient and a caregiver Method input argument values Return result values (returned data content) Time of service request Location of service requester

217 HRAC RFP Scope to de-couple access control decision logic from application logic, to provide a standard interface for the definition of access control rules, to provide a standard interface for requesting access control decisions.

218 HRAC Possible Use Scenario
Target Objects Target Objects Target Objects Access Decision Logic Decision Interface Admin Interface Client ORB Interceptors

219 For Additional Information

220 XML in Healthcare

221 XML in Healthcare Growing recognition of the role of XML in healthcare
HL7 SGML/XML SIG is standardizing the vocabulary for XML tags Strategic importance in a number of hospitals CORBAmed is in the process of developing a number of specifications in which XML plays a critical role ActiveX for Healthcare has specified an XML-transport of HL7 messages

222 XML and HL7

223 From HL7 SGML/XML Sig website:http://www. mcis. duke

224 XML and HL7 Conclusions Version 3.0 Reference Information Model - effort underway to specify it in XML Interoperability Demonstration planned using XML and HL7 RIM models during HIMSS 99. HL7 SGML/XML SIG are working on newer versions of the original KONA proposal. XML has had a huge impact on the HL7 standardization process.

225 XML|IT Public Domain Freeware from CareFlow|Net tool to bridge Java, CORBA and XML-based environments

226 XML|IT Tool Kit features:
Automatic generation of XML-tagged documents by invoking CORBA-based backend services Utilities to automatically convert well-formed XML-tagged documents to Java structures Utilities to convert automatically Java structures to XML-tagged documents

227 XML Tool Kit Automatic generation of XML-tagged documents by invoking CORBA-based backend services Utilities to automatically convert well-formed XML-tagged documents to Java structures Utilities to convert automatically Java structures to XML-tagged documents

228 Sample Use Assumes existence of CORBA-based backend services
Assumes the use of IDL-to-Java compilers to generate Java type libraries (IONA) Uses the Dynamic Invocation Interface standards specification of CORBA. Main client program routine (DIICall) can be embedded inside other Java-based clients or CGI-scripts or Java servelets.

229 Sample Service Definition

230 Mapping of getADTEvents method
<servicename>:\ :cfnadt:::IR:ADTService</servicename> <method>getADTEvents</method> <argument> <arg flag=in><String>450050</String></arg> <arg flag=in> <Date> <day>12</day><month>1</month><year>1997</year> <time>11:23:45</time><weekDay></weekDay> </Date></arg> </argument> <returntype>ADTEventSeq</returntype>

231 Making the call From, Windows 95/NT console type:
> java DIICall getADTEvents.xml Prints out Admit, Discharges and Transfer events for the patient identified in the call in XML format. The above assumes, that the getADTEvents.xml is a file with the information of the type shown in previous viewfoil.

232 XML From CORBA Services
Java Class XML Output public class Name { public String First; public String Last; public Name() { First = “John” ; Last = “Smith” ; } <Name> <First> John</First> <Last> Smith</Last> </Name> CFN’s JavaToXML() Acknowledgement: View foil courtesy of Philips Medical Systems

233 XML Demographics Acknowledgement: View foil courtesy of Philips Medical Systems

234 XML Labs Acknowledgement: View foil courtesy of Philips Medical Systems

235 XML Reference Material
Norman Walsh (editor),“A Guide to XML” M. Leventhal, D. Lewis, M. Fuchs, “Designing XML Internet Applications,” Prentice Hall, 1998 Simon St. Laurent, “XML - A Primer,” MIS Press, 1998.

236 XML tools and resources
HL7 SGML/XML Sig website: XML tools parsers editors - authoring tools display tools - dealing with XSL and CSS Ben Z. Gottesman, “Why XML matters,” PC Magazine, October 1998, pp Reviews 27 products that support XML-related processing.

237 Introduction to Object Healthcare Standards
Standards, standards everywhere and not one of any use - Anonymous

238 Messaging Standards and Interoperability Initiatives
HL7 ActiveX for Healthcare Andover Working Group Clinical Context Working Group CORBAmed

239 Interoperability Initiatives in a glance

240 Broad Themes Messaging Direct access to distributed objects
Necessary and appropriate for notification on events Useful to bridge existing legacy systems Direct access to distributed objects Requires underlying computational framework Promise of componentization and true interoperability

241 Messaging & Data Exchange
One Enterprise HL7/XML Vendor A Vendor B Redundant/Competing Data & Functionality

242 Distributed Object & Open Systems
One Enterprise Vendor A Vendor B Best of breed functionality Interoperable solutions True plug and play

243 Interoperability Initiatives in a glance
Clients Servers Vendor A Vendor B Vendor C CORBAmed focus - server end interoperability; any client can call any vendor services CCOW focus - client-end messaging; any client can call any other vendor’s client to set/reset clinical context. HL7/AHC/AWG focus - server end messaging; any server can send messages to any other vendor servers.

244 HL7 Standard

245 HL7 Messaging Established Standards Body (1987) ANSI accredited (1994)
Over 1700 members Key efforts from healthcare standardization perspective HL7 SIGOBT Effort HL7 XML/SGML Effort HL7 3.0 RIM Model

246 HL7 Philosophy Designed as a protocol for exchange of healthcare and related information Based on an event-based transactional model that mirrors real-life use-case scenarios

247 HL7 Version Evolution Produced Version 1.0 late in 1987
Version 2.1 in 1990 Version 2.2 in 1994 Version 2.3 in 1997 Version is in ballot cycle now. Version 3.0 effort underway. An XML-based version is slated for demonstration at HIMSS ‘99.

248 HL7 Message Structure Messages in HL7 are defined by:
A message ID (a 3 letter code - e.g.. ADT for Admit, Discharge, Transfer related messages) One or more segments (logical grouping - e.g. PID segment to represent patient identifying information) Nesting and repetition of segments as appropriate “Z” segments for custom use

249 HL7 SIGOBT Special Interest Group focussed on Object Brokering Technologies Specifications and efforts are the basis for the work done by Andover Working Group and ActiveX for Healthcare Committee Basis for HL7 Version 3.0 efforts

250 HL7 SGML/XML Special Interest Group
Have adapted current standardized version (2.3) and have developed a corresponding DTD for an XML-based message transmission. Also looking at similar model for Version 3.0. Investigating a RIM-based architecture for healthcare (also referred to as Kona) documents marked up with XML.

251 HL7 3.0 Effort Version 3 HL7 effort is based on formal, analytical, object-oriented methodology - based on a Message Definition Framework (MDF) Provide for consistent, sound semantic definitions by developing a comprehensive Reference Information Model (RIM) Incorporate XML technologies

252 HL7 References HL7: Health Level 7: Also, HL7 Quality Assurance/Data Modeling Committee, HL7 Version 3.0, “Message Development Framework,” V. 3.1, January 1998. HL7 SIGOBT: Special Interest Group on Object Brokering Technologies html . HL7 XML Special Interest Group: ml

253 ActiveX for Healthcare Committee (AHC)
MSHUG Committee

254 Mission ActiveX for Healthcare Committee
To promote the development of components necessary to support interoperability among compliant healthcare applications using Microsoft’s strategic architecture and to coordinate its activities with appropriate interoperability initiatives Acknowledgement: View foil courtesy AHC Committee

255 ActiveX for Healthcare
Focus on leveraging Microsoft’s enterprise middleware (WinDNA/COM+) infrastructure in healthcare. Leverage Microsoft Transaction Server (MTS), Microsoft Message Queue (MSMQ) and DCOM. Current focus on messaging components and infrastructure in healthcare.

256 ActiveX For Healthcare Messaging Architecture
AHC Messenger IHCApplicationConnect IHCMessageManager HCMessage Envelope HL7 2.3 Message Factory Vendor Specific Application IHCTransport TCP/IP Transport XML MSMQ DCOM Acknowledgement: View foil courtesy AHC Committee

257 Relationship to other initiatives
ActiveX component design based on HL7 SIGOBT effort Close working relationship with Andover Working Group to ensure interoperability of specifications New XML transport mechanisms are aligned with HL7 XML and HL7 V3.0 efforts

258 AHC Reference Information
ActiveX for Healthcare Committee

259 Andover Working Group

260 Andover Working Group Established in 1996 by Hewlett-Packard
More than 275 organizations involved The AWG is platform neutral, supporting ActiveX and CORBA, as well as NT and Unix

261 Andover Working Group - Technology
Have adapted the efforts of HL7 SIGOBT to produce a messaging framework and implementation - Enterprise Communication Framework. Have developed tighter specifications for HL7 messages (Message Profiles) to ensure plug-and-play interoperability. Currently uses HL7 2.2 standard.

262 AWG Relationships In addition to HL7, AWG also has ongoing relationships with: DICOM to explore interoperability dealing with images MIB standards group to provide interoperability with information managed by medical devices Working relationship with AHC

263 Andover Working Group:

264 Clinical Context Object Working Group

265 Clinical Context Object Working Group (CCOW)
The CCOW publishes standards for the visual integration of cooperative interaction among independently authored healthcare applications at the point of use. The term visual integration emphasizes the specific scope the workgroup chose to address: applications with graphical user interfaces operating together on a personal computer or workstation. * Acknowledgement: Retrieved from CCOW web-site

266 Clinical Context Object Working Group (CCOW)
Technology neutral specifications for healthcare applications to switch contexts seamlessly - oriented towards making multiple Graphical User Interface clients to work together Already have interoperable specifications and implementations Currently working on an interoperable single-sign-on specification

267 “Visual” Integration Visual Integration The Clinical Applications
Server “Data” Integration Visual Integration Server Server The Clinical Applications The Provider's Workstation The Provider * Acknowledgement: Slide provided by Wes Rishel

268 University Physicians
Context Manager Patient ID Mapper Context Manager Master Patient Index O'Donnell University Physicians General Hospital O’Donnell Furlow O’Donnell Crane 58233 * Acknowledgement: Slide provided by Wes Rishel

269 Current Work Single sign-on: Web-based applications
users do not have to memorize many user names and passwords authentication via password, badge swipe, biometrics Web-based applications * Acknowledgement: Slide provided by Wes Rishel

270 CCOW Reference Site

271 OMG’s Healthcare Domain Task Force
CORBAmed OMG’s Healthcare Domain Task Force

272 Membership Open to any OMG member
Can enroll as a Domain Contributing Member Can attend CORBAMed deliberations and working groups as Guests Current membership includes major players in the healthcare such as: Philips, HBOC, IDX and HP.

273 Working group status Standard specifications adopted in the following areas: Patient Identification Services (PIDS). Commonly referred to as the Master Patient Index (MPI) Lexicon Services Request for Proposals have been issued in the following areas Claims processing (along with the Electronic Commerce Task Force) Decision Support Clinical Observations Access Service Healthcare Resource Access Control Clinical Image Access Service

274 Working group status (Cont’d)
Pending RFPs in the following areas: HL7 interoperability Report Management Services Transcription Pharmacy Mumps Interoperability

275 Some CORBAMed Reference Sites
Baptist Health Systems of South Florida University of Michigan Hospitals Check out OMG CORBAMed web site at: for CORBA implementations and status

276 Closing Notes on CORBAMed
Proactive response to the explosion of Intranet technologies Benefits of standardization likely to begin to influence the marketplace over the next 18 months. EMPI (PIDS) first! Meets every two months all over the world! Next meeting in Burlingame, CA, November 9-13, 1998. Follow on meeting in Washington, D.C, January 11-15, 1999.

277 CORBAmed Reference Information
CORBAmed: OMG's Healthcare domain task force:

278 Conclusions Healthcare infrastructures will rapidly evolve to adopt:
Transaction services (ala OTS, JTS, MTS) Robust messaging (ala MOM, MSMQ) Web technologies (XML, Active Server Pages) Distributed Object Infrastructures (RMI, DCOM, CORBA) Various standards efforts are largely complementary.

279 Baptist Health Systems of South Florida
Technology Introduction Case Study

280 Baptist Hospital of Miami
South Miami Hospital Baptist Children’s Hospital Homestead Hospital Miami Cardiac & Vascular Institute Mariners Hospital

281 BHS Architecture Mission*
Support the BHS IT mission by evolving Enterprise Architecture “blueprints” that provide adaptable solutions for the efficient utilization of resources throughout the continuum of patient care * Acknowledgement: View foil courtesy Baptist Health Systems and 2AB, Inc.

282 Ultimate goal: Drive to common services *
* Acknowledgement: View foil courtesy Baptist Health Systems and 2AB, Inc.

283 Baptist Service Dependencies
* Acknowledgement: View foil courtesy Baptist Health Systems and 2AB, Inc.

284 Three Tiered Architecture
Back-end applications - persistent storage - legacy user interfaces - information sources RIS/ PACS Bedside LAB CORBA(med) Middleware Servers - dynamic generation of CPR views - “business rules” HTML/IIOP/Java Universal Client - “thin client” - user interface - platform independent . Acknowledgement: View foil courtesy of Philips Medical Systems 19

285 Distributed database, open-architecture environment
MedGRiD’s Approach HIS Generation of CPR Views Cardiology PACS Billing & Admin Distributed database, open-architecture environment Imaging Modalities RIS Lab Info. Sys Enterprise Scheduling Radiology PACS Master Patient Index Decision Support/ Outcomes Assessment Cardio Info Sys Ambulatory Care Sys Bedside Monitoring System Pharmacy Info Sys Acknowledgement: View foil courtesy of Philips Medical Systems 14

286 Miracle Architecture Demographics Reports, Transcriptions
Clinical-User Client Images Business Logic Labs Encounters User Profiles Bookmarks Messages ADT Acknowledgement: View foil courtesy of Philips Medical Systems

287 Enterprise Transcription Service

288 CTS: Documentation Dictation 1 Physicians and other professionals dictate notes, reports and other information by telephone, micro-recorder, hospital-wide dictation system, etc. using their choice of third-party dictation systems.

289 CTS: Notes Generation Integrated Delivery Network (IDN) 3 Dictation 1 Multiple providers (hospitals, outpatient clinics, physicians’ offices, imaging centers, home healthcare agencies, etc.) are electronically connected to enhance the quality and continuum of care for patients, regardless of their location within the IDN, through shared current and historical information. Transcription 2

290 CTS: Records Management
Dictation 1 Transcription 2 Integrated Delivery Network (IDN) 3 Archives/Data Storage 4 Document Router 5 CDK’s powerful routing engine delivers documents to multiple sites across the IDN in seconds. With CTS, senders and recipients can choose whether documents arrive at different addresses by fax, , paper and/or to be viewed through a web-browser.

291 CTS: Notes Delivery Dictation 1 Integrated Delivery Network (IDN) 3 Transcription 2 Archives/Data Storage 4 Document Router 5 Review & Sign-Off 6 The instant the transcriptionist completes a document, CTS makes it available to the dictator to review and, if necessary, edit before digital sign-off. Once signed off, the document becomes part of the patient’s EMR and is immediately accessible throughout the IDN.

292 CTS: Systems Management
Dictation 1 Transcription 2 Integrated Delivery Network (IDN) 3 Archives/Data Storage 4 Centralized Management of: Client applications Backend Server Security: audit trail, logging

293 Transcription Workflow
Process variations In house transcription in hospitals. Independent transcriptionist serving physician/physician groups. Transcription service providers with distributed transcriptionists. Transcription service through internet. The worst is not always certain but it’s very likely. French proverb.

294 Transcription Workflow
Process Questions What if the transcriptionist does not have patient demographics? What if the patient id is wrong? What if the back-end server goes down? What if the network goes down? What if the physician is unavailable for sign-off? What if ….. What if….. The simplest questions are the hardest to answer. Northrop Frye.

295 Technologies Oracle Java Sequel Server JavaBeans MTS ActiveX JDBC
SHTTP SSL LDAP TFLA Java JavaBeans ActiveX CORBA DCOM WWW HTTP HTML/SGML/XML My interest is in the future because I am going to spend the rest of my life there. Charles F. Kettering.

296 Component Strategies Summary
Legacy Strategy Legacy Clients Legacy Servers Middleware Strategy HL7 Gateway ORB Clients Security Infrastructure Information Source 1 Middleware Java Clients Information Source n Web Strategy Web Clients Enterprise HTTP Server HTML Warehouse

297 Client CORBA-based Information backend services Environment
Transcription System Client Information Environment CORBA-based backend services Report Mgmt XML/HTML Demographics Physician Profile Routing Order ADT List Mgmt Middle-tier software GUI Clients Image Access Component-based architecture for automating transcrprition process

298 Component Technology Interoperability
CTS (VB) ActiveX Proxy Orbix Orb Java Beans Visi COM Srvc Java Code DCOM ActiveX Bridge CORBA ActiveX Bridge DCOM / CORBA Bridge Write once and run inside every thing - not a Java slogan!

299 Careflow Transcription Suite
Transcriptionist Physician Transcriptionist Mgr Medical Records System Admin

300 Careflow Development Kit (CDKTM)
Under Deployment ADT Order Tran-scription Medication HL7 Gateways Routing Access Control Labs Encounter Demo- graphics Report Repository Phys. Profiling Log HTML Repository Metering Under Development

301 Transcriptionist Ready to Transcribe
HL7 Gateways HL7 Order Message Order Demo- graphics Dictation Transcriptionist

302 Physician Reviews Reports
Metering Tran-scription Report Repository Transcriptionist Submits Report HTML Repository Physician Reviews Reports

303 Reports get routed HTML Repository Signs off Reports Routing Fax Print
Physician Signs off Reports Routing Fax Print

304 Implementation Steps Crawl before you walk Walk before you run
Complete Concept of Operations documentation Phase in one transcriptionist, one manager, train system administration Walk before you run Additional transcriptionists added one every two weeks Customer is always right!

305 Concluding Remarks CORBA as an enterprise interoperability framework works! Java technology - particularly backend pieces perform well! ActiveX technologies works well with CORBA technologies XML technologies will have significant impact by providing complementary capabilities to object technologies Internet technologies is in your future!

306 Last Word.... Control your destiny or someone else will.
Face reality as it is, not as it was, or as you wish it were. Be candid with everyone. Don’t manage, lead. Change before you have to. -- Jack Welch, CEO of GE --


Download ppt "Prof. V. “Juggy” Jagannathan"

Similar presentations


Ads by Google