Nathan Ng · Sep 6, 2017 4m read
Polling an External REST API with Ensemble


Before we begin, I'd like to mention that I am by no means an Ensemble expert, so take this with a grain of salt and please feel free to offer any suggestions for improvement. That being said, I have enjoyed working with Ensemble and wanted to share the approach I took to poll an external REST API for patient data in the hopes that it might help others with a similar goal.

2 5
0 1,371
InterSystems Developer Community is a community of 12,212 amazing developers
We're a place where coders learn and share, stay up-to-date, grow together and have fun!


I'm developing an integration between Caché servers by ODBC conection, and I have the following problem.

In this call:

call COSClass_Methode('222169^^98^155^64530^06:30^021542987897458855441112877855^1^0^281992^GC')

the ODBC driver is truncating the string to 50 characters.

If I run this same command with $system.SQL.Shell(), this doesn't occur.
I did a test creating several parameters for COSClass_Methode, and they all have a 50 character limitation.

0 4
1 1,509
Sean Connelly · Apr 27, 2017 7m read
Level up your XDATA

XDATA is used for a whole host of ISC libraries to store things like Zen pages, BPL logic and DTL transformations.

XDATA is the equivalent of XML config files of the JAVA world and JSON config files of the JavaScript / NPM world.

Whilst Atelier looks to shift source code to the disk, XDATA will remain a key component to source control our projects config / meta data.

3 4
0 1,009

What are the pros and cons of developing a custom database driven routing engine vs. using the Ensemble standard routing engine. What I'm trying to accomplish with the custom routing engine is less manual intervention every time a new route is added. The con I can see with the custom engine is performance may lag behind the standard engine. My development vs. Intersystems essentially.

I appreciate feedback. Thanks!

0 3
0 377
Tom M · Sep 5, 2017
Create Patient via FHIR?


I've been trying to create a patient using FHIR, but all I seem to get back is:

{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"invalid","details":{"text":"FHIR create interaction invalid for this end point"},"diagnostics":"FHIR create interaction invalid for this end point"}]}

I've tried a variety of requests and read operations work, but create doesn't seem to. Has anyone run into this? Any ideas? Thanks.

0 10
0 1,954

I wanted to share a little tidbit which is in the Studio documentation ( but many people who have been using the InterSystems Studio for a long time missed the addition of this *very* useful feature, and every time I mention this to an audience I see at least one face light up because of how excited they are to learn about it!

Within Studio, the Output pane (View -> Output) is actually misnamed. It is actually an Input/Output window which can be used to run Caché ObjectScript commands!

10 7
0 1,150

Hi guys,

How do you deal with underscore characters when using jsonProvider and exporting or importing ?

for example:

USER>s jsonString="{""what"":""1"",""up"":""2"",""test_test"":""3""}"
USER>set status = ##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(jsonString,,.outputObj)
USER>w outputObj.what
USER>w outputObj.up
USER>w outputObj.test_test
W outputObj.test_test

we found out that we can access it like this, but not sure if it's the recommended method-

0 11
0 408

version 2016.2.1 on windows

I accidently clicked the mouse into the output window of studio (where you get the compile results etc) and typed soemthing in there (by mistake) and it came back with <SYNTAX>.

I've been playing with it further, and it's like a cut down version of terminal.

I can "s x=1" and the "w x" and sure enough, it will display "1" (ie the value of x)

when I call one of my utilities ie "d ^dev", my utility runs as expected, but when I try entering a value (my utility was waiting on a read *x) it generated a <SYNTAX> error.

0 7
0 368
Rob Tweed · Jul 31, 2017 5m read
Introduction to QEWD Micro-Services

In my previous posting about the new support in QEWD for JSON Web Token (JWT) support, I mentioned that it was a key step in enabling Micro-Service support in QEWD. In this post I'll give some background to how they work and the thinking behind them.

If you haven't heard about Micro-Services and/or want to learn more, there's lots of information available if you do a Google Search. Here's a good starting point:

3 3
0 575

When I go through the Atelier Cheat Sheet on the connection configuration, it talks about an Eclipse master password and asks for two hints to remember the master password. However, it does not specify the master password. I can only assume the master password is the same as the Cache instance password.

Can anyone shed some light on this master password, where or how it is used, and any other useful information?

3 3
0 347


Is there anyway to catch info/warnings into an Ens.Alert when the inbound adapter is skipping previously file (of any reason)?
Or any other way to pay attention to it.

In our log it usual have Warning or Info level and it stops there. We really want to create some kind of an alert when it happends.

All suggestions welcome



0 5
0 501
Robert Cemper · Sep 2, 2017 2m read
SPOOL - the forgotten device

Hi all,

In recent discussions, answers, comments IO redirection (with the famous code) was quite often seen
as the ultimate solution. It is definitely strong stuff and you can not only log your output but also do
key-grabbing in input.

But I think for simple logging it's quite a significant overhead.
If you just need to get some text or dump your variables or objects then SPOOL should be sufficient for your needs.

17 0
0 804
Sean Connelly · Aug 25, 2017
Runtime type detection


tl;dr how can you tell if a number is really a string

The original question has been updated/improved.

Equality comparisons on floating point numbers will produce different results...

"1.1"=1.1 //is true!

"0.1"=0.1 //is not true :(

This second comparison can be fixed with...

+"0.1"=+0.1 // is true!

0 31
0 1,074

I am trying to capture the write of a method to test the response in an unit test. I know everything works because one of my colleagues ran the code and did not froze on his machine.

I don't what is the cause of the freeze. I know that at line Use $io::("^"_$ZNAME) it stopes because i have put some write functions after every line in WriteCapture method and i only saw the first write function in terminal

I also used debug and in this case it didn't froze

0 7
0 371


Is it possible to save Cache code into a file and then run it via command line?

IE: csession [ini] -U [ini] /path/cacheCodeFile.?

What I need to do is run a Cache script from the Linux command line. The script will navigate data to produce a file and then it will exit back to the command line.

Thanks in advance for everyone's time.

1 2
0 3,177