#Business Service

4 Followers · 214 Posts

A business service is part of InterSystems Ensemble interoperability production which is responsible for accepting requests from external applications.

Question Kevin Kindschuh · Mar 4, 2022

The Complex Recordmapper specify a map for headers, body, and trailers, but it expects all three to have fixed Leading Data to identify the record type. But what if the Header and Trailer have Leading Data, but not the body records? I can't seem to find a way to do this.  For example:

HEADER|194|2012|Fall|20
12345|Adams|John|Michael|2|john.michael.adams@example.com|617-999-9999
12347|Jones|Robert|Alfred|1|bobby.jones@example.com|
TRAILER|8|100

Ideas?

2
0 410
Question Felipe Quezada · Jan 26, 2022

Hello guys! I need some assistance with these problems I have.

The first one is that I need to execute a Python file, which is at /XY path. This PY is supposed to read an excel file and create a CSV version in /XZ path.

I am quite sure that the PY file is correct, but when using this function I get nothing but this error:

SET tSC = $ZF(-100,"/ASYNC /SHELL ", "python", "/data/InterSystems/IRIS/mgr/TEST01CODE/ExcelReading/ExcelToCSV.py")

ConfigItem 'FJ EXCEL READING' (FJ.BS.ExcelReading) started in job 3164

ERROR #00: (sin descripción de error)

Any ideas or suggestions?

2
1 684
Question Eduard Lebedyuk · Jan 24, 2022

I'm using this Dockerfile to build .Net Gateway with my PEX BS. It works fine. If I change the image reference here to store/intersystems/iris-community:2021.2.0.617.0 in line 8 (so update from 2020.2 to 2021.2) it fails to build with:

KafkaConsumer.cs(4,20): error CS0234: The type or namespace name 'EnsLib' does not exist in the namespace 'InterSystems' (are you missing an assembly reference?) [/source/KafkaConsumer.csproj]

KafkaConsumer.cs(9,34): error CS0246: The type or namespace name 'BusinessService' could not be found (are you missing a using directive or an assembly reference?
1
0 265
Question James Westley-Farrell · Dec 9, 2021

I've experienced this problem several times recently. I go to a production in my development instance and click on the (+) to add a new service. A pop-up appears with the message "An error occurred with the CSP application and has been logged to system error log (^ERRORand nothing else. Examining ^ERRORS is of no help. There's a lot of gibberish there that isn't informative in the least.

I can add processes and operations just fine.

The last two times this happened I had to re-install HealthShare from scratch.

5
0 448
Question Omar Ali Ateen · Nov 9, 2021

Dear All

I am trying to interface LAB instruments with LAB System using ASTM over TCP. I read the documentation here . But I can't understand how to connect instrument and LAB system in same port, please see the screenshot of interface below. Please help.

Details:

  • For Servece I use "EnsLib.EDI.ASTM.Service.TCPService" class.
  • For Proccess I use "EnsLib.MsgRouter.VDocRoutingEngine" class.
  • For Operation I use "EnsLib.EDI.ASTM.Operation.TCPOperation" class.

 

4
0 403
Question Nicky Zhu · Jun 3, 2021

Hi guys,

How can we remove a business host from a running production?

I've read and tested how to add it to a production, while when I try to remove it from the production with the following codes:

Set tSC = $$$OK
    Set prodName = "CDRDemo.DemoProduction"
    Set confName = "TEST1"
    Set className = "Demo.LISClient.Operation.PatientOperation"
    #Dim prodConf As Ens.Config.Production = ##class(Ens.Config.Production).%OpenId(prodName)
    Set itemId = ""
    &SQL(Select ID into :itemId from Ens_Config.
1
0 301
Question Purushothaman Thirugnanasambandam · May 11, 2021

I have a requirement to update the Ensemble Host Settings Programmatically.  Mainly the "AlertOnError,QueueCountAlert,QueueWaitAlert,InactivityTimeout" settings.
I used Ens_Config.Item (persistent) class to get the settings (list object) and then update it. But for some of the Business Host's, I dont see the above settings in the table, but present in Settings of that particular Host in Ensemble Management Portal. So my logic is not working.

Why is that and how to write a code to update the above settings for all the hosts ?

Please let me know the way to achieve my requirement.

My code.

11
0 782
Question Scott Roth · Feb 4, 2021

We are getting more and more request wondering if we could send/receive data via HTTPS to the outside world from within our Hospital Network. As you can imagine our Ensemble/Cache productions are not exposed to the DMZ or has access outside of the network. We only communicate with external vendors through a VPN, so communicating not using a VPN is rather new to us.

Currently there is a project to get rid of using Proxy, and instead of through a Load Balancer that can use rules to filter out traffic, which adds another layer of complexity.

3
0 326
Question Scott Roth · Jan 14, 2021

In the Inbound SQL Adapter settings, is it possible to specify more than 1 field as the Key Field Name? 

Because of the way the Query is being index in Ensemble by the Key Field Name, sometimes transactions get missed and I would like to see if we can add an additional key to the mix to ensure all the transactions are picked up. In this case the InterfaceTrigger is an ID that is auto generated by the table, and I would like to use that as well to ensure we don't miss transactions, and it does not throw any warning messages when it executes the Delete Query.

Thanks

Scott

1
0 377
Question Purushothaman T · Dec 30, 2020

We have a custom FTP Service , and custom FTP adapter . Customization is just to find a duplicate file and for giving specific dynamic file spec pattern.
While running and polling for files, we are getting this error. Could you please help ? What's the issue and how to resolve it ?
ERROR <Ens>ErrFTPListFailed: FTP: Failed List for <FileName> (msg='Cache error in 'readResponse': <READ>zreadResponse+4^%Net.FtpSession.1',code=426)    

1
0 486
Question Oliver Wilms · Dec 7, 2020

Hello,

I like to know if we need to have the message in a file to process a Record Map?

I am working with Interoperability Production that processes files /messages using Record Maps. My team was asked to redesign the solution for deployment in AWS. We use containers. We had problems with having multiple containers processing files from the same directory. We are considering Amazon Simple Queue Service instead of having files on a shared file system.

Has anybody migrated a Record Map to a Schema Definition to validate a message as a Virtual Document as I have seen with X12 messages?

1
0 318
Question Mary George · Dec 3, 2020

What is the best way to create an HL7 message from JSON input file?

We have JSON file available with data required for building the HL7 message . I am trying to use a standard file/FTP Business service to pick up the file and convert the input %FileCharacterStream into a dynamic Object and use the stand JSON features to read /process the data and build the HL7 message. 

Is there any other better way to do this? or any standard built-in functionality available in HealthShare? 

Thanks you for your help

Mary

2
0 959
Question Anthony Breen · Nov 19, 2020

Hi,

I'm processing POP3 emails using the standard EnsLib.EMail.InboundAdapter adapter and %Net.MailMessage. I'm basically processing documents that are attached to received emails. This works fine if the document is simply attached to the email itself. But some systems are sending documents that are attached to an attached email which has content-type = message/rfc822.

How do I get the attached file from the attached email?

I'm using the following code to iterate through the email parts.

3
0 884
Question Mikael Toivonen · Oct 12, 2020

I have a file passthrough service that should check for new new files every 10 minutes, process them and then wait again for 10 minutes, even if there are new files waiting in the source directory. The "CallInterval" value feels like a wrong tool for this need since it would keep the service "locked" for a maximun of 10 minutes before releasin resources.  Is there a better way than CallInterval to schedule the service to poll for files every 10 minutes?

2
0 364
Question Mikael Toivonen · Sep 29, 2020

I'm not sure how to go about building this scenario:

  1. I FTP PUT a file "data.txt" to external directory
  2. 3rd party processes that file
  3. 3rd party creates a log file "errors.txt" into the same directory
  4. My integration build should now 
    1. notice that there is a "errors.txt" file
    2. FTP GET that log file, delete it from server and process it 
    3. but we should also delete the "data.txt" from the server as it is "used" and should no longer be there. It is essential that "data.txt" must only be deleted if there is an "errors.txt" file and we have downloaded it

Can steps 4.1 - 4.

2
0 462
Question Bukhtiar Ahmad · Sep 7, 2020

Getting routingrules compiling error message. same code works fine for IRIS For Health

/// 
Class Training.HL7Validation.RoutingRule Extends Ens.Rule.Definition
{
Parameter RuleAssistClass = "EnsLib.HL7.MsgRouter.RuleAssist";
XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule]
{
<ruleDefinition alias="" context="EnsLib.HL7.MsgRouter.RoutingEngine" production="Training.HL7Validation">
<ruleSet name="" effectiveBegin="" effectiveEnd="">
<rule name="Valid Sending Facility Code Required">
<when condition="Lookup(&quot;OnboardedFacilities&quot;,HL7.{MSH:SendingFacility.

5
0 315
Question Scott Roth · Aug 12, 2020

We have a vendor that every couple of days will just stop transmitting messages, but still hold the TCP/IP connection open. No matter how many times we troubleshoot and talk with them, they don't seem to think its an issue with system.  Normally if I just restart the service it will get the data flowing again.

I know ideal is for them to fix the issue, but in the meantime I have setup an Inactivity time out alert.  I was wondering with the correct filtering if there was a way to say if the Inactivity Alert is triggered during the business day, to have the Alert trigger a restart of the service?

3
0 326
Question Melyssa St-Hilaire · Jul 10, 2020

We have a bunch of CSV files of a few different types, which contain patient and medication data, among other things, which we need to load into Healthshare, so the information can be compiled together and then viewed from the Clinical Viewer/reports made on the data as well.

I cannot find a straightforward example or any documentation about this particular case, which I would expect to be fairly common.

3
0 728
Question Yone Moreno · Jun 24, 2020

Hello,

We wonder how could we send an HL7 message to a service to test it.

For example, we have a service, at localhost port 19111

We have tried to use SoapUI to send a REST POST request as follows:

At the event log we see the following trace:

Then, if we try with POSTMAN as follows:

We observe:

Would it be the only way to test services, pointing a TCP HL7 operation to the service, and send messages using the Test Action?

We mean that we are testing manually sending messages from the operation "ProbarADTs" to "Servicios.TCP.GeneralHospitalADT":

How could we do it from SoapUI or Postman?

3
0 3642
Question Stuart Byrne · Jun 23, 2020

Dear Community,

I need to collect a file from an FTP server over FTPS.

I have the :

  • credentials saved correctly
  • correct host and port informatoin
  • correct filepath I am trying to collect from
  • I have setup the SSL configuration in  System > Security Management > SSL/TLS Configurations and this tests sucessfully

When I run the business service to connect it connects, but soon after connecting it fails to open the directory:

Type Time Text  ID
Error 2020-06-23 14:42:06.542 ERROR <Ens>ErrFTPListFailed: FTP: Failed List for *.
4
0 517
Question Oliver Wilms · Jun 11, 2020

Hello,

I want to deploy Iris Interoperability Production in multiple containers . The production has File Services that process files from EFS location. All the files being processed by multiple containers are in the same directory. The standard Adapter class does not have Check Complete option to lock a file so that other containers File Services looking in the same file path cannot process the same file.

I updated the Inbound File Adapter class to offer another Check Complete option LOCK that will lock the file until it is processed and archived.

2
0 331