Wisconsin State Laboratory of Hygiene
WISCONSIN STATE LABORATORY OF HYGIENE Extending PHINMS for use in a Messaging Hub Wisconsin State Laboratory of Hygiene
WISCONSIN STATE LABORATORY OF HYGIENE WISCONSIN STATE LABORATORY OF HYGIENE Who Are We? Clinical, Environmental, and Industrial Hygiene analytical services Reference Testing Training, Technical Assistance, Consultation UW Research and Instruction
WISCONSIN STATE LABORATORY OF HYGIENE WSLH Partners – the “Players” Wisconsin Dept. of Public Health University of Wisconsin Dept. of Information Technology (DoIT) Wisconsin County Health Departments Wisconsin Public and Private Hospitals and HMOs Private Laboratories
WISCONSIN STATE LABORATORY OF HYGIENE Wisconsin ELR Architecture PHINMS to WEDSS PHINMS to WSLH Hub Hospitals And HMOs Labs Wisconsin DPH County Health Departments, etc WEDSS Host Lab of Hygiene ELR Hub Web Secure File access WEDSS Interactive Web Access PHINMS of TB data
WISCONSIN STATE LABORATORY OF HYGIENE WSLH Hub Requirements Secure Audit and Logging Routing and Delivery Transforms
WISCONSIN STATE LABORATORY OF HYGIENE PHINMS Capabilities Security Audit and Logging Routing and Delivery Transforms
WISCONSIN STATE LABORATORY OF HYGIENE What’s Possible… A Peek at PHINMS Internals TOMCAT (JAVA) Web application Receiver – an ebXML (SOAP) transport layer Message Handler – manages payloads caught by the Receiver Default Message Handler - built into the Receiver (WorkerQueue) Optional Custom Message Handler (HTTP Servlet)
WISCONSIN STATE LABORATORY OF HYGIENE HTTP Servlet Message Handler A way to address Routing and Transform issues! Example code in the PHINMS Technical Reference. Provides access and control to Message queues and replies. Has direct synchronous access to the payload, OS, the universe and everything!
WISCONSIN STATE LABORATORY OF HYGIENE Building a Message Handler Servlet Use an IDE (Eclipse) Include appropriate PHINMS JARS from WEB-INF/lib Explore PHINMS JARS to leverage tested and approved PHINMS API’s for queue management, encryption, xml parsing, etc. Use XML configuration similar to sender/receiver. Provide dynamically pluggable class hook for payload post-processing. Incrementally test independent of PHINMS (e.g. call servlet on non-PHINMS app server within the IDE).
WISCONSIN STATE LABORATORY OF HYGIENE Message Handler Architecture PHINMS Sender WSLH PHINMS Server Message Handler Servlet Plug-in Helper Class Data Destinations File, Web, PHINMS, etc.
WISCONSIN STATE LABORATORY OF HYGIENE Installing the Handler – web.xml slhmsghandler edu.wisc.slh.phinms.SlhMessageHandler receiverConfig C:/Program Files/PhinMS /config/slhmsghandler/slhmsghandler.xml 1 slhmsghandler /slhmessage
WISCONSIN STATE LABORATORY OF HYGIENE Handler Receiver Configuration The Arguments consist of a path to the configuration file for this Service Map.
WISCONSIN STATE LABORATORY OF HYGIENE Example Handler Configuration C:/Program Files/PhinMS /logs/slhmsghandler/ detail C:/Program Files/PhinMS /shared/labarc3/in/ C:/Program Files/PhinMS /config/receiver/test.pfx dummy_password C:/Program Files/PhinMS /config/receiver/receiverpasswds dummy_key C:/Program Files/PhinMS /config/receiver/serverQueuemap.xml labarc3 hsqldb1 hsqldb 5 org.hsqldb.jdbcDriver jdbc:hsqldb:hsql://slhw0224:6087/phinms_core dummy_user dummy_password
WISCONSIN STATE LABORATORY OF HYGIENE Pluggable Java Helper Classes Plugs into Message Handler Used for payload post- processing (synchronous, not polled!) Single re-usable Message Handler Load and configure using Message Handler’s XML entry (properties). Can provide post-processing feedback to PHINMS sender using the Application status. Can perform ANY function within response window!
WISCONSIN STATE LABORATORY OF HYGIENE Example Plug-in Helper Configuration <!– The helper class is used for payload post processing. It can have arbitrary attributes, but the classname is required --> edu.wisc.slh.phinms.helper.HIVMessageHelper C:/Program Files/PhinMS /shared/labarc3/out/ dummy_user dummy_password HIV.xls true Thomas Dunnick,Joe Blow,Mary Doe
WISCONSIN STATE LABORATORY OF HYGIENE Typical Handler Queue Entries Application success and failure.
WISCONSIN STATE LABORATORY OF HYGIENE Transforms… Plugging In OHF! Eclipse Open Healthcare Framework (OHF) - HL7v2 Core Java Toolkits Open Source, Free, Configurable, Conformant! Delimited and XML HL7 Formats supported Fall ’08 Port of Code to new open source community OHT –
WISCONSIN STATE LABORATORY OF HYGIENE Example 1 – Simple Delivery to Wisconsin Electronic Disease Surveillance System (WEDSS) PHINMS message Inbox folder Outbox folder Vendor SNOMED/LOINC Transforms and Gateway Hosted by WSLH on PHINMS server Hospital, HMO, or Lab WEDSS WSLH PHINMS HUB
WISCONSIN STATE LABORATORY OF HYGIENE Example 2 – HL7 Phone Transforms PHINMS message Plug-in Helper Class Using OHF to transform Phone numbers from HL7 Components 6 & 7 to 1 Hospital, HMO, or Lab WEDSS WSLH PHINMS HUB PHINMS Polled Folder Via PHINMS Message Handler |^^^^^999^ ^^||(999) ^^^^^999^ ^^|
WISCONSIN STATE LABORATORY OF HYGIENE Example 3 – HL7 Converted to Spreadsheet, Delivered to WEB File Share PHINMS message Hospital, HMO, or Lab WSLH PHINMS HUB HL7 to CSV transform and HTTP delivery plug-in HTTPS REST (stateless interaction) HTTPS Interactive File Transfer WISCONSIN DPH
WISCONSIN STATE LABORATORY OF HYGIENE What Next? Open Source PHINMS – add GUI for configuring Message Handler and Plug-ins Add QA/Monitoring of PHINMS Queues (external to Console) Explore returning payloads to PHINMS senders.
WISCONSIN STATE LABORATORY OF HYGIENE OHF Resource and Co-Author Sondra Renly Advisory Software Engineer, IBM Research Healthcare Research - Standards, Interoperability, Public Health Eclipse OHF Committer - HL7v2, IHE components IHE Interoperability Showcase Participant 650 Harry Rd, San Jose, CA Phone - (914)
WISCONSIN STATE LABORATORY OF HYGIENE Questions? Thomas Dunnick University of Wisconsin - State Lab of Hygiene Division of Public Health Informatics and Surveillance Wisconsin State Hygiene Laboratory 2810 Walton Commons West, Suite 200 Madison, WI FAX