Download presentation
Presentation is loading. Please wait.
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 --
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.