WiFIS Connect is an application you can install in InterSystems Healthcare products to build your connection to WiFIS interoperability platform in SISCAT.
WiFIS Connect includes components you can include in your interoperability production to connect your application to WiFIS platform.
Run a quick test using a test docker environment and have a look at the examples. You can use VSCode, see some tutorials.
- Download the latest version:
git clone https://github.com/intersystems-ib/wifis-connect
- Build and run the sample environment. This will run an InterSystems IRIS For Health with WiFIS Connect installed
docker-compose build
docker-compose up
You can access now to the Management Portal using superuser
/ SYS
.
- Open an interactive session with IRIS
docker exec -it wifis-connect bash
iris session IRIS
- Start sample production and enable SAML Ticket generation feature
zn "WIFISCONNECT"
do ##class(Ens.Director).StartProduction("WiFIS.V202.Test.ProdSAML")
-
Send some sample messages. In the directory you downloaded the code, copy some files from /samples into /samples/input
-
See what's happened in the Production
WiFIS Connect can be installed in:
- InterSystems IRIS For Health
- InterSystems Health Connect
You can still find deprecated releases here.
-
Make sure you have HealthCare HL7 XML installed in your namespace.
-
If you want to generate SAML tickets using SAML-COS, make sure you have it installed in your namespace.
-
Download latest version into a temporary directory (e.g. /tmp):
git clone https://github.com/intersystems-ib/wifis-connect
- Load installer from an interactive session (terminal):
do $SYSTEM.OBJ.Load("/tmp/wifis-connect/src/WiFIS/V202/Utils/Installer.cls", "ck")
- If you want to use SAML-COS, run installer:
do ##class(WiFIS.V202.Utils.Installer).Run("/tmp/wifis-connect")
- If you don't want to use SAML-COS, run installer:
do ##class(WiFIS.V202.Utils.Installer).Run("/tmp/wifis-connect", "no")
For more complex installation options see Dockerfile example.
- You can use and extend WiFIS Connect components.
- Do not modify or overwrite WiFIS Connect components (in other case, you probably won't be able to update).
WiFIS is based on HL7 v.2.5 in XML version.
WiFIS Easy Connect use MHS.3 / HD.2
content on each message to identify workflow and action.
For instance, workflow Derivacions and action DemanarNova:
<MSH.3>
<HD.1>HOSPITAL</HD.1>
<HD.2>#Derivacions#DemanarNova</HD.2>
</MSH.3>
When sending messages, you must implement some components for your application and the plug-in WiFIS Connect components.
- Your app will send data to a Business Service (TCP, SQL, SOAP, REST, etc.).
- Transform your app data into an HL7 message (EnsLib.HL7.Message) following WiFIS requirements.
- Send the HL7 message you've created to the WiFIS Connect layer to deliver it to WIFIS.
- WiFIS Connect will convert your HL7 message into a WiFIS HL7 v.2.5 XML.
- Then, it will determine which operation should send the message using a SOAP Business Operation.
- Business Operation will deliver your message to WiFIS.
In order to receive messages from WiFIS you can use WiFIS Connect components and connect them to some of your application components.
- WiFIS Connect have a Business Service (SOAP) for each workflow that will receive messages from WiFIS.
- After receiving a message, WiFIS Connect will convert it an
EnsLib.HL7.Message
you can process.
- You receive the converted HL7 message and then you can transform it to whatever internal format you need.
- Finally, you can feed your processed message into your application through a Business Operation (SOAP, REST, SQL, HL7, etc.)
WiFIS Connect includes a sample production WiFIS.V202.Test.Prod
to let you explore how you can use the package.
Main components are:
Component | Description |
---|---|
Leer HL7 ER7 File | Reads Files HL7 in ER7 format from a directory and sends them to WiFIS Crear Msg |
Leer HL7 XML File | Reads Files HL7 in XML format from a directory and sends them to WiFIS Crear Msg |
WiFIS Crear Msg | Receives an HL7 message, transforms it to XML and build a WiFIS GenericReq. Sends WiFIS GenericReq to WiFIS Router. |
WiFIS Router | Receives a message WiFIS GenericReq and send it to the appropiate operation |
WiFIS X BO | Operation which is a WebService client and sends SOAP messages |
Component | Description |
---|---|
WIFIS.V.BS.X | WebService that receives WiFIS messages. Build a WiFIS GenericReq and sends it to WiFIS ProcesarMsg |
WiFIS Procesar Msg | Receives a WiFIS GenericReq, transforms it to ER7 and sends it to Escribir HL7 ER7 Fichero and Escribir HL7 XML Fichero. |
Escribir HL7 ER7 Fichero | Receives an EnsLib.HL7.Message and writes and HL7 file in ER7 format. |
Escribir HL7 XML Fichero | Receives an EnsLib.HL7.Message and writes and HL7 file in XML format. |
WiFIS requires a SAML ticket in the SOAP messages you send to the interoperability platform.
WiFIS Connect includes a utility to generate those SAML Tickets. You only need to set it up to use your own certificates.
You can find the sample production using the SAML feature in WiFIS.V202.Test.ProdSAML
.
WiFIS Connect has two different ways of generating the SAML ticket:
- You need SAML-COS installed in your namespace.
- Add the Business Operation
IBSP.CONN.SAML.BO.SAMLSigner
to your production and leave it with this same name. - Add the Business Operation
IBSP.CONN.SAML.BO.SAMLcos
to your production with nameSAMLcos
and add the SAML Attributes in JSON format - Add the Business Process
WiFIS.V202.BP.Router
and, in theGenerateSAML
setting of this Business Process, selectUsing ObjectScript
. - You can use the production
WiFIS.V202.Test.ProdSAML
as a starting point.
NOTE
This application is an open-source add-on for InterSystems HealthCare products and does not form part of the official release. InterSystems WRC technical assistance will not attend issues related with this application.