#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 Julian Samaroo · Mar 27, 2017

Hey all! I'd like to collect some feedback regarding searching for messages using the Message Viewer. I'd like to find out what things regarding the Message Viewer you all in the community have found difficult/confusing/poorly documented. This can of course include things that you don’t know how to do yet, but would like to learn about.

For an example, I’ve had issues searching through messages containing SDA for specific text fragments, because my searches always timeout or don’t return any matching messages.

4
0 600
Question Greg Arnold · Feb 6, 2017

I am looking for a way to deploy production changes (code and/or production configs) via script or some other systematic way other than the Ensemble/Deploy page in the Management Portal. My goal is to store these configurations in Subversion, then have a piece that can pull the XML from source control and deploy it to a given server. Is there some kind of script that I can run on a given server to perform this deployment? If so, I can tie it up with Subversion using another tool that I have access to.

If it helps, we are running Cache 2016.1 (HealthShare 15.01) on Red Hat Enterprise Linux 7.

Tha

6
0 1732
Question Steven LeBlanc · Apr 25, 2017

I'm asking this best-practices question on behalf of a customer.

They have a Caché-based application, and an Ensemble production deployed in front as an ESB to provide web service API access to the back end application. They're looking for a best practice approach for the scenario where the Caché back end is calling a third-party web service. Should that go through Ensemble too? It's sort of a philosophical design question/debate.

The current approach without going through Ensemble would be for Caché to import the service WSDL into proxy classes and invoke those directly from the application

3
0 519
Article Steve Brunner · May 1, 2017 1m read

InterSystems is pleased to announce the Field Test release of Caché and Ensemble 2017.2.0

The entire product team at InterSystems looks forward to hearing about your experiences with this latest version of our Data Platform products.

You can get this release from the Field Test portal.  It includes hundreds of bug fixes and new features, including:

  • DeepSee improvements to the Folder Manager and Dashboard Filters
  • iFind and iKnow improvements like coocurrence search, REST API extensions, and performance when building iKnow domains
  • Improved XML VDoc performance in Ensemble
  • Caché Nodejs now supports
0
0 636
Question Richard Housham · Apr 27, 2017

Hi I'm hoping the community will once more help me out with a question!

Right I have a production that takes an attachment from an email and processes it, sending out a hl7 message at the end. This works ok.

Now I just need to take the email and send it back out to a 'backup' email address, basically giving
a) A backup incase there is a problem with the email or something else further down the line.
b) A log of the emails receieved.

So I thought the best thing to do is have an operation with an email adapter and to send that my message.

That gave me some code that's basically like this.
Class eRefer

6
0 906
Question Andre Cerri · Apr 24, 2017

Folks

1) What's the correct way to check for an existence of a segment?  So far I have been doing this by checking to see if a required field is non-null, and this seems to work but is a bit clumsy. In this case, it’s an X12 message being checked in an IF action in BPL:

              request.GetValueAt("NTE(1):Description")'=""

Or in a DTL, to see if a Z segment exists:

              source.{ZEF:Counter}=1

2) I have a case where I need to change from an external date format (YYYYMMDD) to internal (+$H) for a DTL to create a new object (and then persist it later).

3
0 1681
Article John Murray · Apr 24, 2017 1m read

If your application is raising <PROTECT> errors and you're finding it hard to work out why, here's a way to get additional information.

First, if auditing is not already enabled, turn it on:

Then use "Configure System Events" (highlighted above) and locate the event named %System/%Security/Protect. In the screenshot below I used the Filter field to do this (type "protect" - highlighted below - and press TAB):

Notice that the Enabled column shows a value "No".By default <PROTECT> errors are not logged in the audit.

1
0 2890
Question Peter Kopp · Apr 20, 2017

I am attempting to do two things with the mime types.

 

Collect the mime type from a stream(%FileBinaryStream) using this syntax: myCONTENTTYPE=stream.GetAttribute("Content-Type")

However, myCONTENTTYPE always comes in empty.

Set the CONTENTTYPE PARAMETER in the OnPage ClassMethod of a ZEN page, using this syntax: s ..#CONTENTTYPE=myCONTENTTYPE

However, I cannot seem to get the correct syntax.

 

I would appreciate any and all help. Thank you.

4
0 849
Question Tom Philippi · Apr 18, 2017

I have built an Ensemble SOAP service (EnsLib.SoapService.Service) as a business service which accepts soap requests from another application.To secure the traffic between the SOAP service and the application i'd like to enable SSL.I see that in the management portal I can upload the certificates, chains and keys and save them as an SSL / TLS configuration.However, it is not clear to me how I apply this SSL / TLS configurtion to the soap service I am running.

2
0 1854
InterSystems Official Steve Brunner · Apr 19, 2017

InterSystems is pleased to announce the availability of the following maintenance releases:

  • Caché and Ensemble 2016.2.2
  • HealthShare Health Connect v15.021 on two core technology releases, 2016.2.2 and 2017.1.0

Caché and Ensemble 2016.2.2 are available on the same platforms as 2016.2.1

HealthShare Health Connect v15.021 for core technology 2016.2.2.853.0 contains the following HealthShare

0
0 576
Question Paul Riker · Apr 18, 2017

I have a client sending us data MLLP in base64 format. I'm using the EnsLib.HL7.Adapter.TCPInboundAdapter adapter. What setting do I change to accept the base64?

2
0 621
Article John Murray · Apr 13, 2017 1m read

I only recently noticed the presence of a local database named CACHE alongside the more familiar CACHESYS, CACHELIB, CACHETEMP and CACHEAUDIT.

A bit of digging through the documentation archive led me to conclude that the CACHE database arrived in 2010.2, where the release notes say:

 

Note the lack of an accent on the words I have highlighted.

The above documentation is incorrect when it says "this database is mounted as read-only".In fact it is mounted RW.But the %DB_CACHE security resource that controls access to it only grants R as its public permission.

1
0 580
Question Scott Roth · Apr 11, 2017

With help from others here I had developed some code to take a Base64 PDF within a OBX.5 and save it locally to the file structure on the server.

I had to make a change to the code to return me a String so I can pass the Path back into Ensemble to use it in the message. When I made this change I am getting " ERROR #5034: Invalid status code structure ("/ensemble/data/transfer/AncillaryPDF/TMSAUDIO/Apr-11-1/980512729TMSAUDIO1046784936436537800.pdf")"

Here is the code...

ClassMethod DecodeBase64HL7ToFile(base64 As %Stream.GlobalBinary, Ancillary As %String, FileName As %String) As %String{set
3
0 1344
Question Graham Uricchio · Apr 4, 2017

I created a DTL to do HL7 mapping. The test function in the tools works the DTL perfectly but when used by the rule in my business process, the OBX segments are stripped and the MRN is gone. The assigning authority and ID type are added into the PID but the actual patient MRN is blank (3.1 value).

Here is the source code. 

<transform sourceClass='EnsLib.HL7.Message' targetClass='EnsLib.HL7.Message' sourceDocType='2.3:MDM_T02' targetDocType='2.5:MDM_T02' create='new' language='objectscript' >
<code>
<![CDATA[ //MSH SEGMENT]]></code>
<assign value='source.{MSH}' property='target.{MSH}' action='set

8
0 845
Question Paul Riker · Apr 4, 2017

I have an EMR sending double quotes "" as the value. How do I write criteria to find this match in a DTL?

PV1|1|A|||||1111111111^Doctor^MR|||||||||||||||||||||||||||||||||||||20170331|""

source.{PV1:DischargeDateTime()}="""" didn't work

2
0 789
Question Tom McDevitt · Apr 3, 2017

I am working on creating a DTL that can replace OBX segment with a string formatted NTE segment .  There is a class ImportFromString but it looks like that is not replacing the target message with the new formatted NTE. I do see  target.setvalueat class but I wanted the transformer to not be scheme base.  

ClassMethod Transform(source As EnsLib.HL7.Message, target As EnsLib.HL7.Message) As %Status
{
  set target = source.%ConstructClone(1)
  s idx=1
  s pSegCount=target.SegCount
  s pObservationValue=""
  s pObservationIdentifier=""
  s pOBXSegment=""
  FOR idx = pSegCount {
          s

5
0 1038
Question David Reche · Apr 3, 2016

Usually I recommend to set the global buffer (GB) as large as possible in order to maintain in memory more globals as possible. I don't know if this is a standard recommendation, but I want to discuss what should be the best buffer size for a Ensemble instance that only process messages. 

I mean, if the instance only runs productions that pass messages then the 90% of the global access is used for persist the messages.

6
0 2339