Satakunnan sairaanhoitopiirin kuntayhtymä Business Processes and Business Services Case Satakunta Timo Itälä
Agenda Departmental applications, need for integration Business processes and business services Web services Enterprise service bus Discussion Timo Itälä, Aino Virtanen, Jari Ukkola 2
Satakunta health district, project Satakunta Health District Specialized care services Owned by the municipalities Area: 275 000 inhabitants SerAPI Tekes Finnwell research project Oct 2006 - Aug 2007 Timo Itälä, Aino Virtanen, Jari Ukkola 3
The research question A generic model for integrating the departmental applications What are deparmental applications? What is the problem? What are the objectives for a generic integration solution and what are the constraints? Timo Itälä, Aino Virtanen, Jari Ukkola 4
The application map Timo Itälä, Aino Virtanen, Jari Ukkola 5
Functions, processes and applications Pkl Pkl Outpatient Clinic Vos Inpatient Vos ward Archive Lab Patient Care Process RadiologyOperating theatre MaternityPharmacy. Care Patient Admin: MUSTI, Seniori EPR: WebKert, Seniori Resourcing Process Scheduling Personnell Material Management, Planning and Control Process Reporting, BI UPO, Juvo, YKert Departmental Departmental applications applications MLII WebLAb Samba QPAti Radu TOTI WinRadu HAIKARA Jne. Timo Itälä, Aino Virtanen, Jari Ukkola 6
Need for a generig integration of a departmental application The number of departmental applications is growing Patient demographic data is re-entered Results are printed out and not recorded in electronic patient record (EPR) Results include also images and other digital data Timo Itälä, Aino Virtanen, Jari Ukkola 7
The objectives for a generig integration of a departmental application Collect the results in one place for use Avoid re-entering patiend demographic data Support for the care processes Hide the differences of the departmental applications A unified integration: Savings in time and cost Timo Itälä, Aino Virtanen, Jari Ukkola 8
Considerations Departmental applications are "black boxes", very little possibilities for modifications Departmental applications come with some interfaces, normally HL7 Differences in data format User identification and acces control outside the scope of this research project Timo Itälä, Aino Virtanen, Jari Ukkola 9
Service Oriented Architecture? Care Processes Diagnostic services Generic services Enterprise service bus Applications with interfaces Timo Itälä, Aino Virtanen, Jari Ukkola 10
Business process of Endoscopy An example of a departmental application within a care process Take and store images Redord findings as notes Print images and notes Timo Itälä, Aino Virtanen, Jari Ukkola 11
Other deparpmental applications Capsule camera Retinal image screening Video and still imaging in operating theatre Audiogram Dermatology EKG etc... Departmental applications produce data in different formats about the patients Timo Itälä, Aino Virtanen, Jari Ukkola 12
The care process within specialized care Care process: tasks related to the care itself A generic model: all different cases are covered The model of the care process Process consist of tasks and their sequence Process is triggered by an event The customer of the process is the patient The owner of the process: The doctor in charge The instance of the care process: An episode of a patient
The care process and services The care process plans, executes and assesses the care The care process is a consumer of several services
The care process and services Service requests are made by the doctor Lab tests, radiology tests, endoscopy tests etc... Medication orders, therapies etc are requested services Visit to outpatient clinic can be seen as a service which is requested by the receiving doctor himself Inpatient episode can be seen as a service A care process consists of multiple services
A care process, a service process and a task Orders: Referral, test orders Assesment: Results, Dictation Delivery of care Bookings, Work lists, Registration, Procedures, Recording the results, Transcription Tasks Capture an image, Record findings Example: Endoscopy Timo Itälä, Aino Virtanen, Jari Ukkola 16
Task: An examination Examinations: Endoscopy Capsule camera Retinal image screening Video and still imaging in operating theatre Audiogram Dermatology EKG etc... Timo Itälä, Aino Virtanen, Jari Ukkola 17
An examination task: Endoscopy Timo Itälä, Aino Virtanen, Jari Ukkola 18
SERVICE ORIENTATION (SOA) Can we use SOA for integration of the departmental applications? Timo Itälä, Aino Virtanen, Jari Ukkola 19
Identifying candidate services How do we identify services? What services are provided by the departmental applications? Would an endoskopy examination be a service? How could we reuse services? How do we model web services? Timo Itälä, Aino Virtanen, Jari Ukkola 20
Identifying services Task outpatient visit service service capture image and record findings Thomas Erl: Service-Oriented Architecture Process Sub-process service a care process of a patient A service can be a task, a sub-process or a process 21
Modeling web services A service consists of one or multiple operations A Message Exchange Pattern (MEP) is related to an operation Request-Response operation A service receives a request message and sends a reply message Solicit-Response operation A service sends a request message and waits for a reply message One-way operation A service receives a message Notification operation A service sends a message A fault message can be replied(fault) Synchronous - Asynchronous 22
Identifying web services Service: RequestExamination Operation: SendRequestMessage Service: ExecuteExamination Operations: ReceiveRequestMessage SendEndoscopyRequestMessage ReceiveEndoscopyResultMessage SendExaminationResultMessage Service: ExecuteEndoscopyExamination Operations: ReceiveEndoscopyRequestMessge SendEndoscopyResultMessage Service: PatientRecord Operations: ReceiveExaminationResultMessage... Timo Itälä, Aino Virtanen, Jari Ukkola 23
Classification of web services Notification Control Action Entity Request Examination Execute Examination Execute Endoscopy Examination Patient Record RequestMessage SendRequestMessage ReceiveRequestMessage EndoscopyRequestMessage SendEndoscopyRequestMessage ReceiveEndoscopyRequestMessage EndoscopyResultMessage ReceiveEndoscopyResultMessage SendEndoscopyResultMessage SendExaminationResultMessage ExaminationResultMessage ReceiveExaminationResultMessage Patient Administration Orchestration Endoscopy PatientRecord Timo Itälä, Aino Virtanen, Jari Ukkola 24
Description of web services WSDL Web Service Description Language Data Types Messages Services (porttype) and their operations Binding: Transmission Location of services(endpoint) Timo Itälä, Aino Virtanen, Jari Ukkola 25
Request Examination: WSDL Data Types Messages Services and operations Binding Location PartnerLink Timo Itälä, Aino Virtanen, Jari Ukkola 26
Visual WSDL Timo Itälä, Aino Virtanen, Jari Ukkola 27
Implementing web services Notification Control Action Entity WSDL WSDL WSDL WSDL Patient Administration Orchestration Endoscopy PatientRecord BPEL BPEL Engine Timo Itälä, Aino Virtanen, Jari Ukkola 28
BPEL (Business Process Execution Language) BPEL orchestrates the services used by the process BPEL Process Model Partners and roles Variables Fault handlers Process Execution Logic BPEL Process Engine Timo Itälä, Aino Virtanen, Jari Ukkola 29
Execute Examination -service <?xml version="1.0" encoding="utf-8"?> <!-- edited with XMLSpy v2007 rel. 3 sp1 (http://www.altova.com) by timo itala (Conceptia Oy) --> <process name="teetutkimus" xmlns:tutkimus="http://satshp.namespace/tutkimus/schema" xmlns:tns="http://satshp.namespace" targetnamespace="http://satshp.namespace" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xsi:schemalocation="http://docs.oasis-open.org/wsbpel/2.0/process/executable ws-bpel_executable.xsd" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <partnerlinks> <partnerlink name="tutkimus" partnerlinktype="tns:teetutkimustype" myrole="teetutkimusserviceprovider"/> <partnerlink name="tahystystutkimus" partnerlinktype="tns:teetahystystutkimustype" partnerrole="teetahystystutkimusserviceprovider" myrole="teetutkimusserviceprovider"/> <partnerlink name="potilaskertomus" partnerlinktype="tns:potilaskertomustype" partnerrole="potilaskertomusserviceprovider"/> </partnerlinks> <variables> <variable name="input" messagetype="tns:tutkimuspyyntosanoma"/> <variable name="tahystystutkimuspyynto" messagetype="tns:tahystystutkimuspyyntosanoma"/> <variable name="tahystystutkimustulos" messagetype="tns:tahystystutkimustulossanoma"/> <variable name="output" messagetype="tns:tutkimustulossanoma"/> </variables> <faulthandlers> <catchall> <sequence> <exit/> </sequence> </catchall> </faulthandlers> <sequence name="main"> <receive xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" name="receiveinput" partnerlink="tutkimus" porttype="tns:teetutkimus" operation="luetutkimuspyynto" variable="input" createinstance="yes"/> <sequence name="teetahystystutkimus"> <assign name="muodosta_tahystystutkimuspyynto"> <copy> <from variable="input" part="tutkimuspyyntosanoma"> </from> <to variable="tahystystutkimuspyynto" part="tahystystutkimustulossanoma"/> </copy> </assign> <invoke name="teetahystystutkimus" partnerlink="tahystystutkimus" porttype="tns:teetahystystutkimus" operation="luetahystystutkimuspyynto" inputvariable="tahystystutkimuspyynto"/> <receive name="vastaanotatahystystutkimustulos" partnerlink="tahystystutkimus" porttype="tns:teetahystystutkimus" operation="lahetatahystystutkimustulos" variable="tahystystutkimustulos"/> <assign name="muodosta_tahystystutkimuspyynto"> <copy> <from variable="tahystystutkimustulos" part="tutkimuspyyntosanoma"/> <to variable="output" part="tutkimustulossanoma"/> </copy> </assign> </sequence> <invoke name="lahetatutkimustulos" partnerlink="potilaskertomus" porttype="tns:potilaskertomus" operation="luetutkimustulos" inputvariable="tutkimustulos"/> Timo Itälä, Aino Virtanen, Jari Ukkola 30 </sequence> </process>
Properties of web services Loosely coupled - minimize dependencies Autonomy - encapsulation Abstraction - hide logic Reusability - generic services Composability - services are composed of services Stateless - stateful Synchronous - asynchronous Service contract - service description Service role: requestor or provider WSDL BPEL WSDL Notification Control WSDL Action WSDL Entity Timo Itälä, Aino Virtanen, Jari Ukkola 31
Service instances and unique identifiers Which service assigns the identifiers? Are all services using the same identifiers? Include identifiers within messages Notification WSDL Control BPEL WSDL WSDL Action WSDL Entity Examination document: HL7 CDA R2 Timo Itälä, Aino Virtanen, Jari Ukkola 32
Directory of examination services What service is used for certain examination? Directory of examinations is also a service Execute Examination -service is using directory to find out the proper examination service BPEL code has a service call for directory service Timo Itälä, Aino Virtanen, Jari Ukkola 33
Directory of examination services What service is used for certain examination? Directory of examinations is also a service Execute Examination -service is using directory to find out the proper examination service BPEL code has a service call for directory service Timo Itälä, Aino Virtanen, Jari Ukkola 34
ENTERPRISE SERVICE BUS (ESB) Timo Itälä, Aino Virtanen, Jari Ukkola 35
Transport layer Ensemble All departmental applications are connedted to LAN Message broker (Ensemble) Patient Adminis tration Endobase Toti Aida WebKert EPR Documents Images ATJ Timo Itälä, Aino Virtanen, Jari Ukkola 36
Enterprise Service Bus ESB (Enterprise Service Bus) (Gartner) Message Oriented Middleware Web Services Intelligent Routing based on Content XML Data transformation Timo Itälä, Aino Virtanen, Jari Ukkola 37
Generic ESB Endpoint Enterprise Service Bus Services Container WSDL Invocation and Management Framework Endpoint Interface ESB Endpoint Endpoint = WSDL Port:Operation Timo Itälä, Aino Virtanen, Jari Ukkola 38
Application as an endpoint WSDL Endobase application can act as an endpoint Timo Itälä, Aino Virtanen, Jari Ukkola 39
FTP - potilaat FTP - henkilökunta STAKES AKTIV KAPITAL puhelinvaihde henkilöstöh. palkanmaksu FTP - palkat TERVEYSKESKUS VÄESTÖREKISTERI KESKUS FTP - sairaslomat TT2000+ Työter veysh. -Pyynnöt tehdääm ML2:een työpäytäintegraation kautta CD postitus - hilmotiedot FTP - perintä FTP - kyselyt FTP - viitesuor FTP - puh.maksut FTP - viitesuor FTP - todist.palkkiot - eml palkkiot SANOMAT HL7/OVT - M-gate - Datagate Peräkkäistiedostot Luettelo järjestelmistä johon on liittymät Muut liittymät CD postitus (OVT) - synt.lapset CD postitus - hilmotiedot FT P (OVT) - vastasyntyneen tiedot - kuolintiedot FT P (OVT) - henkilötiedot - potilasrekisteri - käynti- ja hoitotiedot (Mynla) - potilasmaksut - potilasmaksut LÄÄKITYS Lähete-Palaute Kuva-arkisto Anestesia Teho AROMI/ tilauks et - henkilötiedot sairaskertomukset - s airask ertomus tek stit - laskutustietoja HL7 - tulos (v er iry hmän s opivuus ) HL7 - pyyntö HL7 - tulos HL7 - pyyntö HL7 - tulos - henkilötiedot HL7 - laus unto OVT - lähete OVT - laus unto - pyy ntö (veriryhmän sopivuus) - Verituotteet - tilaukset - verikeskuksen sisäinen osuus FTP - veritilaukset / varaukset SPR / Vok - POTILASREKISTERI (kaikki käyttävät, paitsi Seniori) - KÄYNTITIEDOT (Mynla, Infekt., Maksuli, Haikara ) - lähetetiedot - ajanvaraus - k äy ntitiedot - rtg-upo rtg ajanvaraus - lähetteet, lausunnot - röntgenin sisäinen osuus - ilmoittautumiset ja käyntitiedot - ajanvaraus - kuljetuslista FTP - HETU, nimi, tutk KUVANTAMISLAITTEET - pyynnöt, tulokset - laboratorion sisäinen osuus - verikortisto HL7 - vastaus - RTG, KLF, KNF ajanvaraus - patologian laboratorion sisäinen osuus FTP - syöpäilmoitus SYÖPÄREKISTERI HL7 - tilaus - ilmoittautumiset HL7 Ajanvaraukset - vastasyntyneen tiedot FTP - tulokset - tulokset - tilaus - laboratorion sisäinen osuus FTP - tartuntatauti ilmoitus KANS.TERV.LAIT. - fysiatrian käynnit Sosiaalityöntekijät - sosiaalityöntekijöiden käynnit MEDREC Dialyysi OVT - vastaus NOS ksilp - esitiedot - raskaus - synnytys - vastasyntynyt - äidin tiedot - veriryhmä, vasta-aineet - tulokset - leikk auss aliv ar auks et - leikk auslis tat - tehdy t leikk auks et - päivystysilmoitus - pkl toimenpiteet - toimenpiteet FTP - avohoito tiedot - hoitojaksotiedot -tuotepäätös nro:t - E-osto laskut - määrärahaseuranta - kuntoutuspäätökset - OST OPALVELUT - päätökset - APUVÄLINEET - välineiden vuokraus - väl. luokitusrekisteri - lääketilaukset - materiaalitilaukset - infektioiden seuranta - SIJAINTITIEDOT (Radu, Upo,Juvo, - sairaskertomusten sijainnit (paperit) -hoitojakso - diagnoosit - SIJAINTITIEDOT (ML 2, Radu, Upo, Toti, Puh.kesk.) - HOITOJAKSOT (Hoit.luok.,Infekt.,Maksuli,Mama,Mynla) - sis./ulos kirj. - REIPAS jonot - HILMO hoitoilmoitukset - hoitojaksotiedot FTP - Potilaslista hoitojaksojen perusteella - Potilaslista ajanvarauste perusteella FTP Radu,ML2,Toti,Fysis,Vertti,Maksuli,My nla CD-postitus - E-ostot FTP - E-ostot - tilaukset - saldot -nimikk eet FTP Radu, ML2, Toti, Fysis, Upo, Juvo, Mama, Hoit.luok., Seniori, Fina Adapterit -UPO, JUVO, Webkert,ML2, Seniori, miten uudet tiedot? - luokitustiedot - hinnoittelu Taloushallinto - laskurivit HYS TYKS SAMPO varasto / apteekki Materiaalihallinto POWERPLAY Tilastot / Raportit ATJ (kaikki käyttävät) - yksikkö-, osasto-, erikoisala-, laitos- - kunta-, postinumerorekisterit - lääkäri-, diagnoosirekisterit-, toimenpiderekisteri... - käyttäjähallinta - k äy ttäjien v alik ot - TaskMan tausta-ajojen hallinta SoberIT Bottom-Up, Transport: Message broker SATSHP:n POTILASTIETOJÄRJESTELMIEN LIITTYMÄT JOISSA TIETO SIIRTYY FYYSISESTI 21.3.2005/T Seppänen LII potilaspuhelut DNA SENIORI Psykiatria VRK SatSHP WEBKERT UPO Poliklinikat RADU Rtg, Klf, Knf FYSIS Fysiatria SOSIS TOTI Toimenpideyksiköt NordDRG JUVO Vuodeosastot Hoit.luokitus Kuntosoft Fysotools FINA Ensemble message broker CASH MANAGER PRIMA MD-TITANIA MAKSULI Maksuliikenne ML 2 Kliin.kemian lab. Haikara Äitiyshuolto AHA - KUNTOUTUS ORDER Tilauks et MYNLA Sovellukset Korvattavat Epäselvät Säilytettävät SELITYKSET Liittymät Toteutumattomat osajärjestelmät VERTTI Verikeskus QPATI Patologian lab. SAMBA Mikrobiologian lab. SAIRAALAINFEKTIOT YKERT Sairaskertomusten hallinta YLEISET REKISTERIT Kehitetään/ poistetaan Ulkopuoliste KERNEL WSDL HL7 Endoskopia HL7 Timo Itälä, Aino Virtanen, Jari Ukkola 40
Satakunta ESB Enterprise Service Bus will connect all applications together and hide the technical details Orchestration service will execute the processes Patient Adminis tration Orchestration Depart mental app Depart mental app Depart mental app Patient Record Public services WSDL BPEL WSDL WSDL WSDL WSDL WSDL
Generic integration of departmental applications Service Oriented Architecture: Integrating a departmental application Departmental applications are integrated using their native interfaces Departmental applications are described as web services using WSDL descriptions Directory of examination services is updated BPEL code is updated and tested GoLive Benefits Standardization of the integration of departmental applications Reusable processes are created Standardization of processes Timo Itälä, Aino Virtanen, Jari Ukkola 42
Future research Data model ESB confirmed data, unique identifiers Service Directories How to build, use and maintain? Naming standards Services, operations, messages, data items Testing procedures Services and processes Faults, exeptions and recovery routines Load and stress testing Versioning Version control Environment control Agreements, SLAs Timo Itälä, Aino Virtanen, Jari Ukkola 43
Questions? Timo Itälä, Aino Virtanen, Jari Ukkola 44