WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

35
#%! ) !"& %# #!%!! $' ' % %!# ) (!!'% How a complex Healthcare Protocol can be Easily Handled by the WSO2 Platform Alberto Lagna CTO Biznology srl [email protected]

Transcript of WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

Page 1: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

How a complex Healthcare Protocol

can be Easily Handled by the WSO2 Platform

Alberto Lagna CTO Biznology srl

[email protected]

Page 2: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

>apropos alberto.lagna

•  Computer Science graduate, Telco master •  CTO of Biznology •  Working as software architect / team leader •  Consulting on design and development of enterprise systems mainly

based on JavaEE and mobile •  UML, XML, BPM expert •  20 years of working experience in Europe and USA •  JUGTorino member •  Promoting the use of free software and supporting the open source

movement

Page 3: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

>apropos biznology.it

•  Consulting Company •  Defined a SOA at 360° approach:

–  Methodology and tools –  Reference Architecture –  Communication –  Integration and Program Management –  Economical Goal and Result Measurement –  Organization Model and Training Plans

•  Because Applying the SOA approach is not ONLY using the right technology

Methodology and tools

Reference Architecture

Communication

Integration and Program Management

Economical Goal and

Result measurement

s

Organization Model and Training Plans

Page 4: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Agenda

•  Integration architecture •  Description of the SOAP services •  Same Business case on HL7 •  Demo 1 •  Need to have only 1 codeline •  Solution •  Demo2

Page 5: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Adapter b

Adapter b

Adapter a

Integration Architecture

•  Regional index for all the Health Record Systems of the hospitals

SOAP service A HL7 Service A

SOAP service B

SOAP service A

SOAP service B

Regional Index

Page 6: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

��� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Intro to wso2 ESB and HL7

•  Vanjikumaran Sivajothy of WSO2

Page 7: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

Glimpse of Modern Enterprises ๏  Disparate)Systems,)Services,)Protocols)

๏  Diverse)and)dynamic)business)requirements)

๏  No)single)vendor/solu;on))๏  On)premise/Cloud)solu;ons)))))

*"

Page 8: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

Point to Point/Spaghetti Integration

๏  Scalability,)maintainability,)troubleshoo;ng)nightmares.)))

*"

Page 9: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

ESB as the Integration Bus

๏  Conquering)integra;on)nightmares)with)WSO2)ESB)

*"

Page 10: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

Introducing WSO2 ESB

๏  A)lightweight,)high)performance)ESB)

๏  Comprehensive)REST,)SOAP,)WS+*)support))

๏  100%)compliant)with)all)EIPs)(Enterprise)Integra;on)PaJerns))))

๏  Connectors)(Salesforce,)Twilio)and)many)more)))

๏  SAP,"FIX,"HL7)M)Domain)specific)solu;ons)

๏  Zero)Code/Configura;on)driven)))๏  Extensible)and)Scalable))

*"

Page 11: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

ESB Functional Components

*"

Page 12: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

Mediators

*"

Page 13: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

Sequences

*"

Page 14: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

Endpoints

*"

A)logical)en;ty)to)which)messages)can)be)sent)from)the)ESB)A)service)endpoint)reference)(EPR))A)JMS)queue)A)FIX)session)

))Various)opera;onal)and)QoS)constraints)can)be)engaged)on)an)endpoint)SOAP)version)WSMSecurity)

Page 15: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

Proxy Services

*"

Page 16: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

APIs

*"

Page 17: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

*"

WSO2 ESB Architecture

*"

Page 18: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

๏  A)messaging)standard)for)the)exchange,)integra;on,)sharing)and)retrieval)of)electronic)health)informa;on))

๏  Non)XML)๏  Human)readable)(ASCII))๏  Uses)segments)and)one)character)delimiters)๏  Widely)adopted)in)the)Health)Care)Informa;on)Services)Industry)

around)the)World))๏  Minimum)Lower)Layer)Protocol)

)

HL7"Message"Format"

Page 19: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

๏  HL7)Feature)))๏  MLLP)based)Transport)))๏  HL7)Proxy)/)Endpoint))๏  Supports)HL7)2.x)Standard)Messages))๏  Transforma;on)

• HL7)EDI)(applica;on/ediMhl7))• XML)

)๏  HL7)Message)Valida;on)and)Conformance)Profile)Support)

HL7"Support"of"WSO2"ESB"

Page 20: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

๏  HL7)Proxy))• MLLP)Transport))• Capable)of)listening)for)HL7)messages)

)๏  Incoming)messages)converted)into)SOAP)equivalent)

• Can)manipulate)HL7)message)using)all)available)ESB)mediators))๏  HL7)Endpoint))

• Capable)of)sending)messages)to)HL7)receivers))๏  Processing)HL7)messages)from)file)system)(using)VFS))

Exchanging"HL7"Messages"

Page 21: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

��� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Complex Services

•  A lot of services –  Some of them deployed everywere –  Some of them deployed only in some hospitals

•  Some of them are really complex –  With a LOT of information to exchange –  With a LOT of (cross) check to be done

•  To be sure that in the index we keep the right information associated to the right people

•  To be sure that in the index we keep only right information

Page 22: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Complex Services

•  A lot of services

Page 23: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Complex Services

•  Some message payload is really complex

Page 24: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Complex Services

•  Some service business logic is really complex

Page 25: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Complex Services

•  Some service business logic is really complex

Page 26: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Same Service on SOAP and HL7

•  Some services need to be exposed using the SOAP or the HL7 protocol –  Depending on the hospital preferred API –  Carrying the same content –  Implementing the same checks and business logic

•  The solution: –  Keep checks and business logic in the SOAP service –  Keep only HL7 to SOAP (xsl) transformation in the HL7 service

Transformation logic Business logic

Page 27: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Same Service on SOAP and HL7

•  HL7 message

Page 28: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Same Service on SOAP and HL7

•  Equivalent SOAP message (automatically provided by wso2)

Page 29: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Same Service on SOAP and HL7

•  Transform HL7 XML into SOAP XML through XSL –  See xsl

•  Use xsl in proxy –  See proxy code

Page 30: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Demo

•  in HL7 message => show steps through log •  in soap message => show steps through log

Page 31: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Adapter b

Adapter b

Adapter a

Integration Architecture

•  Need to have only 1 codeline, 1 test env, regardless the deployment architecture

SOAP service A HL7 Service A

SOAP service B

SOAP service A

SOAP service B

Regional Index

Page 32: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Test Adapter

Test environment

•  Problem: –  Need to have only 1 codeline, 1 test env, regardless the deployment

architecture

SOAP service A HL7 Service A

SOAP service B

Regional Index

Page 33: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Test environment

•  Solution: –  Call ant script that does the replacements of placeholders

–  Call pom to generate CARs

•  1 pom for every environment

service'

service'

val'x'placeholder'

val'x'placeholder'

service service'

service'

val'x'placeholder'

val'x'placeholder'

service

Page 34: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Demo

•  Create 1 CAR for a specific environment

Page 35: WSO2 Guest Webinar: How a Complex Healthcare Protocol can be Easily Handled by the WSO2 Platform

����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��

Questions and Answers

Alberto Lagna CTO Biznology srl [email protected]

•  Thanks a lot