#Ensemble

23 Followers · 2.4K Posts

InterSystems Ensemble is a complete and easy-to-use integration platform that enables users to connect people, processes, and applications in record

time.

Learn more

Documentation

Question Scott Beeson · Jan 14, 2016

I have a service named FTP_In that is of class EnsLib.HL7.Service.FTPService.   It picks up files from multiple subfolders and sends them to an EnsLib.HL7.MsgRouter.RoutingEngine.   What I want to do is somehow capture the subfolder as a variable for use in the routing rules.  Is this possible?

Let's say I have the following files and directory structure on my FTP Server

/incoming/green/apple.dat
/incoming/yellow/banana.dat

I want the Routing Rule to be able to send anything that came from the /green/ folder to one operation and from /yellow/ to another.

6
0 687
Question Lawrence Williams · Aug 23, 2019

I am putting together a new interface to take in a CSV file and output an HL7 message.

I have used the record mapper to create the source class and I am putting together the transform, but when trying to test it I am not seeing the data populate the HL7 as intended.

Also.... if I put a <DatofBirth> in the tester, it shows up in the HL7 as I would expect..... that's what really has me scratching my head here.

4
0 1171
Question Ewan Whyte · Aug 3, 2020

Hi, I want to INSERT a customerID and customerName to a table if the customerID does not exist. Or UPDATE if they've changed their name.
I've reviewed the documentation (https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=R…) and have confused myself with the INSERT OR UPDATE statement. Rather than using two individual statements , is there a way to get it in one?

What I have at the moment doesn't do anything. In fact it errors.

I intend to use this within a code block in a DTL.

 set customerName = ##class(BAB.Utils.ExternalSystem.TransformFunctions).

3
0 619
Question Jeff Harris · Jul 17, 2020

Hi, I'm still very much new at Ensemble DTL.  I am trying to set up an algorithm that requires loading fields from an OBX into an Array.  I don't think that I know how to iterate through the OBXs.  I know that there is a "for loop", that I will try to play with, but in the mean time, could someone tell me what is wrong with the following?

For example the code below works when I hard code the number 1 in OBXgrp(1)

 set addarray(1) = source.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp(1).OBX:ObservationValue(1)")
 
 write addarray(1)

 

I get the value that I expect.

9
0 648
Question Ray Harlequin · Jul 16, 2020

An error occured when HS.IHE.XDSb.Registry.Operations on the BUS sends query request to the registry. The error is 

Error 6242: HTTP request to SOAP webservice returned unexpected status: 403.

Any thoughts as to why? The settings on the components haven't changed. The process worked a few days ago. 

07/16/2020 14:54:07 *********************
Input to Web service with SOAP action = SOAP1.2
<env:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header><To xmlns="http://www.w3.org/2005/08/addressing">https://crispapitest.azure-api.

2
0 1122
Question Simon Barker · Aug 4, 2020

Hi,

I've added a REST service which worked fine on our test system but failed on the production environment because UnknownUser does not have %All set and I really don't want it set on production (in fact I've also switched it off on test).

Is there a way to allow a single REST service to have unauthorised access?

I was thinking adding a resource/role to UnknownUser specifically for that service but I've never touched on Users/Roles/Resources so I'm struggling to work out what needs adding where.

Thanks

2
0 396
Question Tey Kitthajaroenchai · Jun 28, 2020

My custom Business Operation typically creates a Ens.StringResponse with StringValue which is sent back to my custom Business Service.  Is there a way I can use the assign, or some way, in Rule Editor in a Business Process (EnsLib.MsgRouter.RoutingEngine) so that it can send back a Ens.StringResponse with a StringValue to the Business Service when not routing the message to any operation?

1
0 324
Question Warren Grob · Jul 29, 2020

I am having difficulties with using the ..Strip() function in my DTL to strip the slash ( / ) from the phone number portion of an x12 834.  There are very few records that have the slash in the phone number, so I am trying to filter out any characters other than numbers so that all phone numbers are formatted 1112223333.

Here is the code portion of the strip:

       Set           HomePhone             ..Strip(source.{loop2000(k1).loop2100A.PER:CommunicationNumber},"*AW","-()/").

I am then checking the length of HomePhone.

4
0 488
Question Ewan Whyte · Feb 21, 2018

I'm trying to get a count of specific message type with a specific entry and thought I could build the query in Message Viewer but  this does not provide counts (as far as I am aware). So when I take the SQL from 'Show Query' it omits the segment criteria as the code shows below. 

 I have attached the criteria that has been excluded. Is this possible?

Thank you

SELECT head.ID AS ID, 
       {fn RIGHT(%EXTERNAL(head.TimeCreated),12)} AS TimeCreated,
       head.SessionId AS SESSION,
       head.Status AS Status,
       COUNT (*) AS messages,
       CASE head.
2
0 1642
Question Jeff Harris · Jul 27, 2020

I want to write the values that are stored in an array into the OBX 5 field.  The text in MyArray(1) will go in the the first OBX 5 field.  Then the text in MyArray(2) will populate the next OBX 5 field. 

My question is how do you format the Set > Action Tab > Value entry so that it pulls the data from MyArray(source.{PIDgrpgrp().ORCgrp().OBXgrp().OBX:SetIDOBX})

I know the array is ok, because when I hard code MyArray(2) in the Set > Action Tab > Value, then the OBX lines contain the correct element in MyArray(2).  When I drop source.{PIDgrpgrp().ORCgrp().OBXgrp().

1
0 388
Question Tim Miller · Jul 24, 2020

Good morning all,

Could we please get some insight on what is possible (or what other organizations may be using) for tracking uptime for our HL7 engine?  We can use Activity Tracking to show how many messages went through, but are there any good canned reports (or queries) about the number of message failures or the amount of time that an interface was down?

We are using alerting to the team to know about not getting messages or if messages failed.  Has anyone created a report or dashboard against the Ens.Alert table or would you recommend elsewhere?

3
0 344
Question Stephen De Gabrielle · Apr 20, 2017

Hi,

Can anyone  point me to an example of a DTL & Class method that can pull a base64 encoded PDF out of a MDMT02 message?

This is really asking for two things;

- how to make a DTL that extracts a specific subfield of an HL7 2.3 message into a message of its own,

and

- how to transform an base64 encoded document into its original binary form for writing to a file.

I'd also love to see an example of an HL7 2.n MDM^T02 ==> HL73.ITK2 non-coded CDA

I've seen some snippets in the community Q&A, but I've not been able to find any examples either here, or in the documentation or training materials.

3
1 4084
Article Robert Cemper · Jul 21, 2020 2m read

t's also an example for a customized command extension (ZZJSN) in Caché & IRIS

This is the Caché version for fast JSON formatting but it also works in IRIS.
Requires package ZPretty
To allow parallel existence in IRIS this is named ZZJSN

see:

USER>ZWRITE jsn  
jsn="{"Name":"Li,Robert K.","SSN":"672-92-9664","DOB":"1975-01-12","Home":{"Street":"986 Washington Blvd","City":"Boston","State":"PA","Zip":"95802"},"Office":{"Street":"6012 First Place","City":"Reston","State":"MT","Zip":"77739"},"Spouse":{"Name":"Avery,Zelda H.
0
0 554
Question Carl Tawn · Jul 16, 2020

Hi,

I am attempting to set up a security role for our support team so they can have read access to the production and messages.

I have given the role RW rights on the resource associated with the database. However, when I log into Management Portal and select "Ensemble", the "Available Ensemble namespaces" list is empty.

What permissions do i need to set to be able to navigate to the production?

8
0 1059
Question Vivek Nayak · Jul 6, 2020

Hi Team,

When I tried to open ensemble in my system I got bellow error.

I have done lots of code in my local system but now not able to open the ensemble.

8
0 819
Question Thembelani Mlalazi · Jul 15, 2020

Lets say I have a serial Class A ,Serial Class B,Serial C and Persistent Class Ens.Request

Class SerialA Extends (%SerialObject, %XML.Adaptor) [ ProcedureBlock ]
{
      Property SerialB as SerialB  
     Property SerialC as SerialC
}
     Class SerialB Extends (%SerialObject, %XML.Adaptor) [ ProcedureBlock ]
{
    Property SerialB as %String
}

Class SerialC Extends (%SerialObject, %XML.Adaptor) [ ProcedureBlock ]
{
     Property SerialC as %String
}

Class PersistantClass Extends Ens.
4
0 388
Question Yone Moreno · Jul 15, 2020

Hello,

We would need to know the Ens.Response SourceConfigName to identify which Operation has raised an exception.

We have tried:

$$$LOGINFO("..%Process.%PrimaryResponseHeader.SourceConfigName..: "_..%Process.%PrimaryResponseHeader.SourceConfigName) //It outputs an empty string
 
$$$LOGINFO("response.SourceConfigName: "_response.SourceConfigName) //It generates an exception

 

We would need to get from an Ens.Response which body is null, its SourceConfigName:

How could we know it? 📛

2
0 493
Question Stephen De Gabrielle · Jun 29, 2020

Been cleaning up our production 2017.1 instance of Health Connect in preparation to a move to Health Connect 2020.1 (on IRIS!)

One thing I have found I we have built up a number of old classes and other configuration files.

It would be nice to start on the new server with a clean slate.

Is there any way to identify classes that haven't been used for a long time so they can be reviewed and removed?

Kind regards, 

Stephen

4
1 490
Question Steve Pisani · Jul 15, 2020

Hi,

Business Rules can define a context object,  whose properties are exposed and used in the expressions of the rules. For example, my context object is an object with 3 properties. PropA, PropB and PropC.

When constructing my rules, I can call a custom function, and I have one I built myself called 'myFunction' which takes arguments and I pass in properties of my context object. (I can pass in the value of the context object's PropA, B or C).

6
0 456
Question Julian Matthews · Jul 7, 2020

Hey everyone.

I have a use case where I need to write files to a handful of locations, and 2-3 subfolders in each location.

My plan was to extend EnsLib.File.PassthroughOperation and then pass  that operation the file and the subfolder details, and then have an operation per destination.

Has anyone done anything similar and can highlight any pitfalls I may be about to make?

3
0 369
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 Goran Stefanovic · Jul 6, 2020

I need to set and use some context variables in a transformation (written in DTL), but the code is manually written.

When writing the same as BPL I define context variables and they are visible in transformations called by that process.

In something like this my.DTLtransform sets HL7 message fields to values in context variables:

Set dtl = ##class(my.DTLtransform).%New()
Set qStatus = dtl.Transform(pRequest, .msg)
 

However, when I create a business process using custom code option, I don't see an obvious option, as well as documentation covering that area.

11
1 986
Question Hansel Rudy Stange Gaete · Dec 20, 2017

Hi,

I create a WebService in Machine One, with some process, i tested this webservice with SOAPUI, worked.

After that i create a simple Business Operation, SOAP Adapter, based on WebClient created with SOAP Wizzard, the problem with that is on response var, i have empty var on my operation, somebody have some Ideas ? 

11
0 779
Question Hansel Rudy Stange Gaete · Feb 12, 2019

Hi, a client have a installed enviroment with mirror activated, but when you test SSL on webservices you can get an error, not SSL access correctly from browser because certificate problem apparently with TLS Version, someone have a suggestion to reinstall SSL Certificates on mirrors ?

Chrome : something wrong, no details or diagnostic
Firefox : SSL_ERROR_HANDSHAKE_FAILURE_ALERT

We try simple regenerate Authority an regenerate all certificates, but not worked. Same results.

4
0 272