INTEGRATION WITH PHARMACY ROBOT ROWA BY KLOUDSYS

Background & Overview

DoseInnovation invited KloudSys to develop integration solution to integrate ROWA with other pharmacy solution like POS, Dispense management system.

DoseInnovation could not offer any web services API to integrate with ROWA. KloudSys could only use WaWi asynchronous dialogue based message (stream) communication with ROWA. As part of the dialog, two types of messages have to be distinguished:

  • Asynchronous messages that can be sent
  • Messages based on request as response to an asynchronous message.

KloudSys designed &bdeveloped Input broker to enable medicine loading into ROWA. KloudSys also desigend & developed following SOAP based web services:

  • Dispense Web Service
  • Storage Information Web Service
  • Get Order Status
  • Get ROWA Status

Input Broker

KloudSys developed a multithreaded complex program to handle input process of ROWA.

input-broker

This diagram shows an overview of the Input broker solution that integrates pharmacy IT systems (POS, Dispense Management System) with ROWA to offer input capability. The core application is in the middle and ensures the seamless decoupled integration between DMS and ROWA VMAX over xml through our Input Broker. Input broker absorbs the complexity of socket communication with ROWA for ICmd and PCmd dialogs.

The following BPMN diagram shows the solution logics. In this process diagram we have used a sub process (Update Inventory). That sub process is shown after this diagram:

input broker process
input broker sub process

BUSINESS LOGICS

This solution performs following business logics:

  1. One core module listens to a specific port for input triggers from ROWA. It’s a socket communication module.
  2. Once this core module receives any input request from ROWA, it create another thread and that thread does the followings:
    • Create a new socket connection with ROWA.
    • Fetch barcode details from SOA DB
    • Decode IMsg through XML parsing process.
    • Prepare ICmd using barcode information and IMsg information
    • Log the ICmd into the SOA DB.
    • Send ICmd into ROWA over socket.
    • Receives the response from ROWA over socket.
    • If it receives the PMsg then it prepares the PCmd.
      • Log the PCmd into the SOA DB.
      • Send PCmd to ROWA over socket
      • Receives the IMsg and PMsg.
    • Else, Receive the IMsg and log into the SOA DB.
  3. If the stream is not an IMsg then it go back to the initial step and start listening again.

SOAP WEB SERVICES

These web services were developed so that other IT pharmacy system do not need to deal with ROWA’s complex low-level steaming messaging layer.

Picture 1

Using Dispense web service any application can ask ROWA to dispense available medicine in ROWA. IT System can also use the storage information service to get medicine availability count. For example, POS solution can directly check inventory count using Storage Information service. And then use dispense service to dispense once payment get confirmed.

Technologies and Tools used

  • Java
  • MySQL
  • Tomcat
  • Eclipse
  • XML, XSD, WSDL
  • Web Services
  • BPMN 2.0
  • ROWA XML API

HOW CAN WE CONNECT WITH YOU?