Wisconsin State Laboratory of Hygiene Wisconsin State Laboratory
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 Who Are We? • Clinical, Environmental, and Industrial Hygiene analytical services • Reference Testing • Training, Technical Assistance, Consultation • UW Research and Instruction • http: //www. slh. wisc. edu WISCONSIN STATE LABORATORY OF HYGIENE
WSLH Partners – the “Players” • Wisconsin Dept. of Public Health • University of Wisconsin Dept. of Information Technology (Do. IT) • Wisconsin County Health Departments • Wisconsin Public and Private Hospitals and HMOs • Private Laboratories WISCONSIN STATE LABORATORY OF HYGIENE
Wisconsin ELR Architecture PHINMS of TB data WEDSS Host WEDSS Interactive Web Access County Health Departments, etc PHINMS to WEDSS Web Secure File access PHINMS to WSLH Hub Wisconsin DPH Hospitals And HMOs Lab of Hygiene ELR Hub Labs 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 eb. XML (SOAP) transport layer • Message Handler – manages payloads caught by the Receiver • Default Message Handler - built into the Receiver (Worker. Queue) • 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 2. 6. 0 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 WSLH PHINMS Server PHINMS Sender Message Handler Servlet WISCONSIN STATE LABORATORY OF HYGIENE Data Destinations File, Web, PHINMS, etc. Plug-in Helper Class
Installing the Handler – web. xml <servlet> <servlet-name>slhmsghandler</servlet-name> <servlet-class> edu. wisc. slh. phinms. Slh. Message. Handler </servlet-class> <init-param> <param-name>receiver. Config</param-name> <param-value> C: /Program Files/Phin. MS. 2. 8. 00/config/slhmsghandler. xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>slhmsghandler</servlet-name> <url-pattern>/slhmessage</url-pattern> </servlet-mapping> 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 <? xml version="1. 0" encoding="UTF-8"? > <Slh. Message> <log. Dir>C: /Program Files/Phin. MS. 2. 8. 00/logs/slhmsghandler/</log. Dir> <log. Level>detail</log. Level> <incoming. Dir>C: /Program Files/Phin. MS. 2. 8. 00/shared/labarc 3/in/</incoming. Dir> <key. Store>C: /Program Files/Phin. MS. 2. 8. 00/config/receiver/test. pfx</key. Store> <key. Store. Passwd>dummy_password</key. Store. Passwd> <password. File>C: /Program Files/Phin. MS. 2. 8. 00/config/receiverpasswds</password. File> <key>dummy_key</key><seed>99999999999</seed> <queue. Map>C: /Program Files/Phin. MS. 2. 8. 00/config/receiver/server. Queuemap. xml</queue. Map> <queue. Name>labarc 3</queue. Name> <database. Pool> <database> <database. Id>hsqldb 1</database. Id> <db. Type>hsqldb</db. Type> <pool. Size>5</pool. Size> <jdbc. Driver>org. hsqldb. jdbc. Driver</jdbc. Driver> <database. Url>jdbc: hsqldb: hsql: //slhw 0224: 6087/phinms_core</database. Url> <database. User>dummy_user</database. User> <database. Passwd>dummy_password</database. Passwd> </database> </database. Pool> </Slh. Message> WISCONSIN STATE LABORATORY OF HYGIENE
Pluggable Java Helper Classes • Plugs into Message Handler • Used for payload postprocessing (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 --> <helper> <classname>edu. wisc. slh. phinms. helper. HIVMessage. Helper</classname> <output. Directory>C: /Program Files/Phin. MS. 2. 8. 00/shared/labarc 3/out/</output. Directory> <fileshare> <url>www. slh. wisc. edu/fileshare</url> <user>dummy_user</user> <password>dummy_password</password> <file>HIV. xls</file> <trust>true</trust> <access>Thomas Dunnick, Joe Blow, Mary Doe</access> </fileshare> </helper> 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) - http: //www. eclipse. org/ohf • HL 7 v 2 Core Java Toolkits • Open Source, Free, Configurable, Conformant! • Delimited and XML HL 7 Formats supported • Fall ’ 08 Port of Code to new open source community OHT – http: //www. openhealthtools. org WISCONSIN STATE LABORATORY OF HYGIENE
Example 1 – Simple Delivery to Wisconsin Electronic Disease Surveillance System (WEDSS) WSLH PHINMS HUB PHINMS message Inbox folder Hospital, HMO, or Lab Vendor SNOMED/LOINC Transforms and Gateway Hosted by WSLH on PHINMS server WISCONSIN STATE LABORATORY OF HYGIENE PHINMS message Outbox folder WEDSS
Example 2 – HL 7 Phone Transforms WSLH PHINMS HUB PHINMS message Via PHINMS Message Handler WEDSS Hospital, HMO, or Lab Plug-in Helper Class Using OHF to transform Phone numbers from HL 7 Components 6 & 7 to 1 |^^^^^999^8675309^^| WISCONSIN STATE LABORATORY OF HYGIENE PHINMS Polled Folder |(999) 867 -5309^^^^^999^8675309^^|
Example 3 – HL 7 Converted to Spreadsheet, Delivered to WEB File Share WSLH PHINMS HUB WISCONSIN DPH PHINMS message HTTPS Interactive File Transfer Hospital, HMO, or Lab HTTPS REST (stateless interaction) HL 7 to CSV transform and HTTP delivery plug-in WISCONSIN STATE LABORATORY OF HYGIENE www. slh. wisc. edu
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 - HL 7 v 2, IHE components IHE Interoperability Showcase Participant 650 Harry Rd, San Jose, CA 95120 Email - srrenly@us. ibm. com Phone - (914) 945 -1076 WISCONSIN STATE LABORATORY OF HYGIENE
Questions? Thomas Dunnick (tld@slh. wisc. edu) 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 53718 608 -224 -6235 FAX 608 -221 -6297 WISCONSIN STATE LABORATORY OF HYGIENE
- Slides: 24