2009 Implementers Group Meeting Program MIRTH

Expectations

  • Overview of Mirth:

    • Mirth 101

    • Channels

    • Massaging Data

    • Input / Output

  • How Mirth is currently being used

  • Workshop / tutorial on data

  • Get a text file into OpenMRS through Mirth

Overview

  • Mirth - integration server developed by WebReach Inc.

  • Middle layer between 2 systems - e.g. OpenMRS & Lab/Pharmacy System

  • Allows you to send messages between systems and do custom transformations in the middle

  • Concept of channel:

    • Communicate through channel

    • Each channel has a single source, but can have multiple destinations

    • At the source, can have a set of filters and transformers:

      • Filter - can filter out messages

      • Transformer - get certain datatype in - can transform message slightly, custom porcessing

    • Each destination can have a set of filters and transformers

  • Supports multiple datatypes / inputs

    • File readers, database readers, HL7, DICOM, TCP sockets etc.

  • Custom javascript - e.g. using XML, can access tags easily

  • Dragging and dropping

  • Possibility of using web services

Application Demonstration

  • Creation of channels

  • Getting data into and out of channels

  • All server based - web base application

  • Dahsboard tab - current channels, queues, channel messages

  • Channels tab - displays existing channels

    • Creating a new channel:

      • On Channels tab, Right Click->Create New Channel

        • Choose input data type - HL7, XML etc

        • Connector Type - TCP Listener, File Reader, SOAP, Database Reader

        • On side panel

          • can define filters - create and edit filter rules

          • can define transformers - can define message templates, which builds a message tree

        • Choose destination / output data type - HL7, XML etc

        • Destination Connector Type - File Writer, SOAP, Database Writer
          Example XML message template:

          <patient> <name></name> <age></age> </patient>

Question: Can you pull out an XML with patient demographics and various encounters, and separate this into demographics and an HL7 message for each encounter

Answer: Possibility: split into multiple destinations, but not entirely sure. (Look at documentation)

TCP Socket vs. Web Services

  • Web services have not been implemented in OpenMRS yet

  • Ryan Crichton has been working on OpenMRS module:

    • Uses TCP Socket to act as interface

    • Runs through the OpenMRS API, so not direct to DB

    • Allows for validation and transformation before persisting to the DB

    • Better practice to run through the API

    • Opens up server on predefined port, and listens for messages

    • Module to do this exists, but is not yet generic or well documented

      • If module would be useful to others, can make these additions to the module

James Arbaugh's Use Case

  • CSV file of patient data

  • One patient per file, with multiple lab results

  • Create New Channel:

    • Source - File reader with .csv file extension

    • Destination - HL7 File Writer with destination directory

    • Transformer - to convert between the two formats

Future

Look at using Mirth in conjunction with Sync