I regret getting a late start in the InterSystems Analytics contest. I had tried a couple of times before to use Analytics, but I had not gotten too far. I have been recording financial transactions in Excel workbook ever since I had to retire Microsoft Money. Since my iris-for-money was not fully functional, I created a worksheet per account I was tracking. I had developed a CSP page in iris-for-money to import transactions by reading a CSV file. I realized this process requires escaping many characters that can cause the process to fail.
I have described my efforts to optimize IRIS Mirror deployment in AWS ElasticContainer Service (ECS) in my prior article.
IRIS Mirror in the cloud (AWS) | InterSystems Developer Community | AWS
I have come to the opinion that IRIS Mirror is not as reliable as needed when deployed in ECS. The root of the problem is the fact that ECS randomly assigns one of the available IP addresses to each EC2 host or Fargate task it starts.
These get stored in iris.cpf file in MapMirrors section as shown here:
[MapMirrors.IRISMIRROR]
FAILOVER1=10.2ab.1cd.146,2188,,10.2ab.1cd.
I have been working on redesigning a Health Connect production which runs on a mirrored instance of Healthshare 2019. We were told to take advantage of containers. We got to work on IRIS 2020.1 and split the database part from the Interoperability part. We had the IRIS mirror running on EC2 instances and used containers to run IRIS interoperability application. Eventually we decided to run the data tier in containers as well. Later we switched from using EC2 instances to Fargate “server-less” compute.
I heard about Message Bank when we started redesigning a Health Connect production to run in containers in the cloud. Since there will be multiple IRIS containers, we were directed to utilize Message Bank as one place to view messages and logs from all containers.
How does Message Bank work?
I added Message Bank operation to our Interoperability Production. It automatically sends messages and event logs to the Message Bank.
Resending Messages
The Message Bank provides an interface for portal user to resend messages from the Message Bank portal.
Report about what happened during a test - check Message Bank to see what happened on the instances that received test messages from Feeder
I developed Feeder on an IRIS instance while working in development VPC and I configured a Message Bank in a different namespace on the same IRIS instance. I added Feeder.csp and submitted Feeder app to Full Stack contest. I currently refactor the Feeder and Message Bank apps for Interoperability contest and to deploy in another VPC.
Below I show a sample report from development VPC:
NAMESPACE>DO ##class(UnitTest.TestReport).
My team is working on redesigning an Interoperability solution that currently runs on a HealthShare server that is part of a mirror. Most of the messages are delimited records processed using Complex Record Mapping. We were told to utilize cloud services available in AWS, use containers, autoscaling…
Once we figured out how to use Docker, we imported the Health Connect code in multiple containers with a shared Elastic File System with the directory structure we copied from the existing server.
IRIS Interoperability Productions formerly known as Ensemble are fun to work with. Yes, I really think my work is fun. I have seen File Passthrough Services and File Passthrough Operations come in handy. At one point we placed test messages in files, then we utilized a File Passthrough Service with Inbound File Adapter to send the contents of the file as a Stream to a File Passthrough Operation with Outbound TCP Adapter. The Operation pointed at a TCP service and sent the test messages.
Later I wanted to troubleshoot another service that received file contents as the body of HTTP requests.
I enjoy the challenge of being in a contest. Currently I participate in InterSystems IRIS with REST API Programming Contest. My idea for this contest was to create an app to help me keep track of tasks for my Status Reports. I started with the template provided by Evgeny Shvarov. I created a persistent class for Tasks and a REST Dispatch class. I defined my URL map and I even figured out how to test my REST app using Postman. I felt proud of myself for a little while.
Hello,
I got the idea for this application, because for my work we have a process that currently uses legacy Vista code called MailMan to transfer files using email. I thought I could create a process in HealthConnect (IRIS Interoperability) to replace the need for having the legacy code. I have seen File Passthrough and TCP Passthrough Operations that can transfer a stream (file content) into a file or through TCP connection. I did not find Email Passthrough Operation, so I decided to create it. It receives request with a stream that has the content of the file.