At LifeLabs, we are focused on our vision of building a healthier Canada! We are the largest community diagnostics laboratory in Canada with over 350 collection centers, 21 laboratories and service over 19 million patients each year. As the Software developer, you will be concerned with all facets of the software development process. You will be responsible for the design of application modules, maintain and deploy software applications to meet user and business needs.
Hi All, I'm in the process of trying to rollout the git version control system with our current code base within Atelier. We use Ensemble to develop interfaces but are looking to move to IRIS in the near future. Our code is structured similar to below:
Site
System1
Routers
Processes
Transformations
Data
Services
Operations
…
System2
Routers
Processes
Transformations
Services
Operations
Data
…
Productions
Routers
Operations
My initial thoughts are that we would have three repositories. One for DEV, TEST and PROD.
Is there a way to estimate compaction / truncation sizes? For a DB when trying to reclaim disk space.
Basically, is there some utility or CLI command that would allow us to estimate if it is worth the effort of compacting a large database or not.
Thanks
Hello again and welcome to the next tutorial on this series: Part 5 - Errors. Here we are going to learn how Frontier handles unexpected errors and how we can force them.
I know &SQL returns only one result but is
&SQL(SELECT ID FROM Cinema.Film ORDER BY ID DESC)
and
&SQL(SELECT TOP 1 ID FROM Cinema.Film ORDER BY ID DESC)
the same in terms of processing required?
Is there a way to create an alert through the Management portal to indicate the "iris" service has stopped?
One of my colleagues at InterSystems encountered an unexpected issue when running InterSystems IRIS on a Macintosh in a container using Docker for Mac. I’d like to share what we found, so you might avoid running into similar issues.
The Problem
The task at hand was running a Java application with XEP to do a large data load into IRIS. When running the data load, the write daemon hung soon after starting the job, with messages like these in messages.
Here is a digest of the Developer Community videos on InterSystems Developers YouTube Channel in September 2019:
| Top 10 Videos by Views | |||
| № | Video | Views | Watch Time (min) |
| 1 | Active Directory Integration with LDAP | 1 404 | 4 964 |
| 2 | Building Modern Web Applications | 647 | 2 987 |
| 3 | SMART on FHIR: The Basics | 542 | 5 016 |
| 4 | Developing with FHIR - REST APIs | 248 | 1 631 |
| 5 |
GitHub Repository Template To Develop and Debug ObjectScript in InterSystems IRIS |
148 | 516 |
| 6 |
JSON and XML persistent data serialization in InterSystems IRIS |
131 | 188 |
| 7 | 128 | 569 | |
| 8 |
Create Your First InterSystems ObjectScript Code with IRIS Community, Github, Docker and VSCode |
121 | 346 |
| 9 | Sizing and Capacity Planning | 120 | 499 |
| 10 | A SOLID Design in InterSystems ObjectScript | 119 | 648 |
%ToJson doesn't work in 2015 release of cache, How to transform a object to json in this release ?
When compiling in 2018.1.2 using $system.OBJ.CompileAllNamespaces() I am seeing the following errors on some of our Record Maps.
ERROR #5496: Inverse property, 'osuwmc.RQIRecordOut.Record:%ParentBatch', is not defined, 'RQIRecordOut.Record:Records'
ERROR #5496: Inverse property, 'osuwmc.RQIRecordIn.Record:%ParentBatch', is not defined, 'User.RQIRecordIn:Records'
ERROR #5496: Inverse property, 'osuwmc.RQIRecordOut.Record:%ParentBatch', is not defined, 'User.RQIRecordOut:Records'
ERROR #5496: Inverse property, 'osuwmc.EpicADTMergeCSV.RecordMap.Record:%ParentBatch', is not defined, 'osuwmc.
I have a scenario where I'm using a EnsLib.File.InboundAdapter to collect files from an external file system. The files require to meet a certain criteria before they are moved to another remote file system. If they don't, I would like them to stay where they are so that they can be collected again when the criteria has changed. I have set the adaptor property DeleteFromServer to false - which is fine - the file stays put in its original location, but the file is never collected again as I receive a "Skipping previously processed file " info message.
Hi Developers!
This is the digest of new solutions and applications submitted to InterSystems OpenExchange in September 2019!
New applications in September 2019
web HERALD is a Highly Extensible Rapid Application Development framework, the ultimate server-based platform for Caché Developers created by our inhouse Caché Developers.
objectscript-docker-template by Evgeny Shvarov
A simple template to start coding in InterSystems ObjectScript with preset dockerfile and settings for VSCode to start compiling and debugging.
angular-material-iris-starter by Sergey Shutov
A template project for Angular frontend with InterSystems IRIS. The main goal of this repository is to provide an up to date example of Angular application following all recent best practices
cache-iris-app-tools by Sergey Mikhailenko
Solution for technical support and DBMS administrator. View globals arrays, execute queries (including JDBC/ODBC), sending results to email as XLS files. Viewer class instances with СRUD editing. A few simple graphs on the protocols of the system.
IRIS OData Client by Sean Connelly
A simple IRIS client for connecting and consuming RESTful OData API services.
ObjectScript-Foreach by David Crawford
The beginnings of a foreach function equivalent in ObjectScript.
Kano MDM is an efficient Master Data Management software product with a complete set of features for successful implementation of interoperability solution.
Output-Capture by David Crawford
Captures the output of common objectscript terminal verbs, such as zwrite.
dasha-iris-adapter by Vladislav Chernyshov
Dasha.ai is a platform for designing human-like voice interactions to automate business processes.
This repository includes the first version of Dasha.ai IRIS Interoperability Adapter and demo Interoperability Production to show how to connect IRIS and Dasha.ai platform.
I am using Ensemble FTP adapter to monitor file directory for files that require SFTP transfer to remote server using public/private keys for remote server authentication.
This works great in my engineering development space where file protections are loose.
I want to apply "principle of least privilege" regarding the public and private key files specified in FTP Outbound adapter Business Operation.
Can anyone recommend (Linux) permissions that allow Ensemble to execute the SFTP operation but minimizing access to the key files?
I've tried variouse combinations without success.
Hello,
lets have two abstract %Persistent classes A,B with NoExtent keyword (storing data in separate globals for each subclass).
Class A Extends %Persistent [Abstract, NoExtent]
{
}
Class B Extends %Persistent [Abstract, NoExtent]
{
Property Aref As A;
}
Let B class reference the A class. Since the A class has no extent the reference wont work in subclasses. It wont be even usable in SQL. Is it possible to solve this problem? Whats the recommended way to deal with references/relationships using NoExtent?
Looking for pointers on how to create a file operation class that would use the HL7 Message Type in the file name
For example if the Message type was ADT^A31 the file name would be ZLOG_FILE_ADTA31_20190927.dat
Thank you for looking.
Hi Community!
We are pleased to invite you to the upcoming webinar in Spanish "Desarrollar y gestionar APIs con InterSystems IRIS Data Platform" / "Developing and managing APIs with InterSystems IRIS Data Platform" on October 15 at 16:00 CET!
Are you a backend developer? Or a Systems integration specialist? If so… this webinar is for you!
Hi Developers!
This a release post what we did and what are the new features on the Developers community.
- Editor enhancements: tables for markdown, source-WYSIWYG switcher, emoji
; - The email system is improved - better images, analytics, and tags;
- Bookmarks for comments and answers;
- A lot of minor enhancements.
Here is an ObjectScript snippet which lets to create database, namespace and a web application for InterSystems IRIS:
set currentNS = $namespace
zn "%SYS"
write "Create DB ...",!
set dbName="testDB"
set dbProperties("Directory") = "/InterSystems/IRIS/mgr/testDB"
set status=##Class(Config.Databases).Create(dbName,.dbProperties)
write:'status $system.Status.DisplayError(status)
write "DB """_dbName_""" was created!",!!
write "Create namespace ...",!
set nsName="testNS"
//DB for globals
set nsProperties("Globals") = dbName
//DB for routines
set nsProperties("Routines") = dbName
set status=##Class(Config.Namespaces).Create(nsName,.nsProperties)
write:'status $system.Status.DisplayError(status)
write "Namespace """_nsName_""" was created!",!!
write "Create web application ...",!
set webName = "/csp/testApplication"
set webProperties("NameSpace") = nsName
set webProperties("Enabled") = $$$YES
set webProperties("IsNameSpaceDefault") = $$$YES
set webProperties("CSPZENEnabled") = $$$YES
set webProperties("DeepSeeEnabled") = $$$YES
set webProperties("AutheEnabled") = $$$AutheCache
set status = ##class(Security.Applications).Create(webName, .webProperties)
write:'status $system.Status.DisplayError(status)
write "Web application """webName""" was created!",!
zn currentNS
HI,
I am a newbie so excuse my basic questions.
I have installed Caché on Mac Os High Sierra 10.13.6 and have started the ObjectScript tutorial but I cannot open Terminal in Caché.
The instructions provided on the tutorial don't appear to be for Mac OS as there is no cube icon:
n order to begin practicing using ObjectScript, you need to start the Terminal. Click the Caché cube icon
in the task bar and select Terminal from the menu. This brings up the terminal window, and you can see from the prompt that we are in the USER namespace.

WEB – HERALD – a Highly Extensible Rapid AppLication Development framework by myCTS
myCTS –WEB –HERALD
myCTS web client benefits:
Platform independent
Smartphone, tablet, laptop or desktop-computer, the myCTS web client, can be used on all devices with HTML5 compatible browsers. Adaptable designs allow all varieties of screen sizes to be featured.
State-of-the-art technology
myCTS web clients use, excellent frameworks for the development of client side components.
Hi Everyone!
New video, recorded by @Stefan Wittmann, is already on InterSystems Developers YouTube:
Is there any issue with setting the Pool Size > 1 on components using EnsLib.FTP.PassThroughOperation? I have a component that has 60,000 documents in the queue and looking for way to process this output quicker.
How do I manipulate a string in Ensemble DTL (X12 document) to extract a string starting from the right, or end, of the string?
I need to have 10 digit phone numbers, however some of the source data records include the "1" for the long distance dialing and I need to exclude this.
I have tried using Right(), SubStr(), and even SubString(string,*,-10) but it will not compile.
I find it hard to believe that Ensemble does not have the ability to read a string from the right.
Thank you for any assistance.
hi
A newbie question. I am trying to use Data Transformation Editor to transform NTE segments into additional OBX segments. At the moment I am getting both segments OBX and NTE trying to populate a single OBX. Can this be easily fixed?
I have been trying to pass a %Global character stream back on a Soap Response has anyone one out there done it before please help with guide lines on how to achieve this thanks in advance just some working sample code and will take it from there thanks again
I need to know the current rss memory consumption. On earlier Cache versions I used this method:
set sc = ##class(%Net.Remote.Utility).RunCommandViaZF("smem -u cacheusr | grep cacheusr | awk '{print $6}'",,.rss)It doesn't work because we use $zf(-100) on IRIS 2019.1.
New version:
ClassMethod Test()
{
set cmd = "smem"
set args = 8
set args(1)="-u"
set args(2)="irisusr"
set args(3)="|"
set args(4)="grep"
set args(5)="irisusr"
set args(6)="|"
set args(7)="awk"
set args(8)="'{print $6}'"
set sc = ##class(%Net.Remote.Utility).RunCommandViaZF(cmd,,.rss,,,.code,.Hi Community,
We are pleased to announce the Global Summit 2019 social media contest called "Twitter Rush"!
Help us share Global Summit 2019 with the world by tweeting live about the keynotes, breakout sessions, newest technologies and awesome moments as they happen! To participate in the contest, post your updates to Twitter with the hashtag #GlobalSummit19 between the dates September, 19 – September, 25 2019.
Our #1 social media Ambassador will win a 10.5-inch iPad Air Wi‑Fi 64GB!

🎉Check out the winner announcement below! 🎉
getting "The value of the property 'cspHttpServerMethod' is null or undefined, not a Function object" error while executing the csp page. All the server side methods stop working at this time although javascript functions still work but until the point where a server side method is getting called. Any clues why we get such error.

270