Hello!

This article is a small overview of a tool that helps to understand classes and their structure inside the InterSystems products: from IRIS to Caché, Ensemble, HealthShare.

In short, it visualizes a class or an entire package, shows the relations between classes and provides all the possible information to developers and team leads without making them go to Studio and examine the code there.

If you are learning InterSystems products, reviewing projects a lot or just interested in something new in InterSystems Technology solutions — you are more than welcome to read the overview of ObjectScript Class Explorer!

19 35
2 4,819

GraphQL is a standard for declaring data structures and methods of data access that serves as a middleware layer between the client and the server. If you’ve never heard about GraphQL, here is a couple of useful online resources: here, here and here.

In this article, I will tell you how you can use GraphQL in your projects based on InterSystems technologies.

15 24
10 1,947

Mirroring 101

Caché mirroring is a reliable, inexpensive, and easy to implement high availability and disaster recovery solution for Caché and Ensemble-based applications. Mirroring provides automatic failover under a broad range of planned and unplanned outage scenarios, with application recovery time typically limited to seconds. Logical data replication eliminates storage as a single point of failure and a source of data corruption. Upgrades can be executed with little or no downtime.

9 21
2 5,874

I am getting the date 20201121090000 in the HL7 message, How do I convert it to 2020-11-21 09:00:00 in a easy way?

I am currently doing it by extracting the first 7 values and splitting as date and time and then adding a hyphen using substring.

Is there an easier way by using $ZDATE? or something like that?

0 20
0 681

Hi all, 

I am trying to create a method to count the number of entries in a global, including all subscripts. I am having a bit of trouble getting the code to make it to the second subscript. When I get to the position where my key is "Canada" and I add a comma and empty quotes to it, it returns USA as the new key when I do the order function. Is the $Order or the global not able to use a single string to represent multiple subscripts?

 

Here is my global structure:

2 20
0 434

Good morning,

Background to task: Shut down Ensemble from a task in Task Manager.

I have a batch file that shuts down Ensemble when run as administrator. I can confirm this works, as it brings up the shutdown/restart prompt for Ensemble, however I now need to plug this into Ensemble's Task Scheduler so it can be run on-demand.

At present I am trying to use: do ^execute: %windir%\system32\cmd.exe Z:\Scripts\shutdown.lnk

0 19
1 1,199

Hello,

as you can see in title my problem is with file ccontrol. I want to install whole Ensemble with Manifest if on machine wouldn't be any, or if I somehow find out instance of Ensemble I want to only use settings from included Manifest. I read that I can use file ccontrol to solve this task.

So can someone said me, how to work with ccontrol, is there some variable or function which returns me somethig? I have read some parts of documentation about ccontrol, but nothing help me so much, so you can give me link to part in documentation, where is this desribed.

0 19
0 442

Hi,

I am sending a request message to Business Process which has one property as Dynamic Object type. So i get the JSON in my REST service and convert that as a dynamic object and set that in the request message and calling the business process from the business service. But the request is not getting sent to the Business Process. Is it possible to send dynamic object input to the business process.

0 18
0 661

I am trying to determine the write-access to a windows-directory, using the method %File.Writeable(). But, this method always returns the boolean "true", even when I have revoked the write-access of Healthshare-user in this directory.

Note:
1) When the same ensemble-service tries to write a file in this directory (which it says is "writeable"), it fails.
2) The method %File.Writeable(...) works perfectly in the case of files.

Any help is appreciated.
Thanks in advance... :-)

1 17
0 689
Question
Zdeněk Bartušek · Jul 30, 2019
Working with $ZF function

Good morning,

I'm trying to understand $ZF function, but only documentation isn't enought in this way. So my question is is there any possibility to get enviroment variable by this function into ensemble?

I've tried this as example from ducumentation, but there is an error and  I don't know why...

Thanks for your solutions.

Zdenek

0 17
0 846

I would like to examine the contents of my OBX-5 field and not route the message if it contains alphabetic characters. I've tried various combinations of the Match and Contains functions, with no luck. Should I be using the COS ? operator or plaini regular expressions?

e.g.

OBX-5 Contains "\D"

OBX-5 Contains "?.A"

OBX-5 Contains "[A-Z]"

0 17
0 887
Question
Murillo Braga · Jun 21, 2016
Business rule doubt

Hello guys,

I've built a simple rule , as follows:

Thing is, in rule 2, the operation succeeds, the message reachs BO HL7, but in rule 1 it does not go through. In rule 1, I have two different conditions, but they are linked by an OR and one of the conditions is simply IF 1=1.

Do you guys have any clue on why rule 1 does not reach BO HL7?

Thanks

1 17
0 701

I'm working on a proposal for a deployment tool development project and I was wondering if anyone had any experience with such a thing.  

We use Healthshare and implementations for new clients are tedius and lengthy.  Lots of ensemble service, registry value, lookup tables, namespaces and other things have to be created and configured. 

I would like to create a Zen or CSP page based deployment tool that can do all this with a few parameters and some custom code.

1 15
0 817
Article
Paul Gomez · Apr 20, 2016 1m read
Feedback on Product Documentation?

We are in the process of putting a new UI on the existing product documentation, including a mobile-optimized view. We also plan on releasing additional "solution based" documentation that is targeted at common usage scenarios or important configuration tasks.

We are interested in your feedback on our current product documentation - what you like and dislike and especially what changes you would expect to see to make it as useful as possible.

3 15
0 759
Question
Paul Reesman · May 18, 2016
Ensemble HTTP OnProcessInput

I am just trying to make a quick hand off HTTP production. I have the class built and compiled onto the server and the production is running as a service. When the production is called (by an inbound job) I can see that the HTTP.InboundAdapter is being used successfully and the stack continues all the up to ProcessInput where OnProcessInput is called in Ens.BusinessService.

0 15
0 1,235

Hello,

I want to access the HL7 Router settings from within the HL7 rule. Goal is to create a New class by extending "EnsLib.HL7.MsgRouter.RoutingEngine".

Then create a PARAMETER ProcessMessage which can be set to an integer value for the HL7 Router.

Create a Rule class and based on the value of this setting ProcessMessage
process/not process the messages.

 

1 15
0 229

While reviewing our documentation for our ^pButtons (in IRIS renamed as ^SystemPerformance) performance monitoring utility, a customer told me: "I understand all of this, but I wish it could be simpler… easier to define profiles, manage them etc.".

After this session I thought it would be a nice exercise to try and provide some easier human interface for this.

The first step in this was to wrap a class-based API to the existing pButtons routine.

I was also able to add some more "features" like showing what profiles are currently running, their time remaining to run, previously running processes and more.

The next step was to add on top of this API, a REST API class.

With this artifact (a pButtons REST API) in hand, one can go ahead and build a modern UI on top of that.

For example -

6 15
4 639
Question
Scott Roth · Jun 19, 2017
Date Filtering Functionality

I have come across several cases where I need to set a Date filter to send only send any admit/scheduled date past a certain point. We have a couple different date comparison functions but none looking at the true date. Most of them are date + 15 or etc. Does anyone have a good date function they have written to say if x > 20170102 ?

Thanks

Scott

0 14
0 1,634
Question
Murillo Braga · Jul 17, 2018
Create studio project file

Hello guys,

I have been playing around with the deployment tools from Ensemble (mostly based on this article https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY...) , but so far the one thing I still couldn't figure out is how to group files into a single "Studio project file".

By using the deployment tool UI, supposing that I want to add a bunch of custom files to my deployment file (XML), it's practically impossible because I need to add one by one.

0 14
0 548

I have a vendor that is sending an HL7 message. But when I asked for more detail about their mapping tables, they told me they typically don't supply that but supply an API for customers to call so they don't have to define tables and it is more dynamic.

So with that being said I am creating my first REST operation. I understand the gist of how a REST operation works in working with other types out Non HL7 Operations (SOAP, SQL) before. You send a request and get a response back, that part I understand.

0 14
0 244
Question
Gary Koester · Nov 11, 2021
#5003 not implemented

I am trying to create a scheduled task but get not implemented error when I try to run it.

Class PICIS.Core.Tasks.CleanEntry Extends %RegisteredObject
{

ClassMethod ClearTasks(pBackupFile As %String = "d:\Temp\BackupTasks.xml", pDelete As %Boolean = 0)
{
    // Create backup file
    Set tBackup = ##class(%Stream.FileCharacter).%New()
    Set tBackup.Filename = pBackupFile
    Do tBackup.WriteLine("<?xml version=""1.0"" encoding=""UTF-8""?>")
    Do tBackup.WriteLine("<Tasks>")

0 14
0 223

It is with great pleasure that the CIUSSS de l'Estrie - CHUS is sharing the mocking framework it developed and presented at the InterSystems Summit 2017.  I will update this post with more detailed instructions in the next few weeks but I wanted to share the code and presentation quickly : 

https://gitlab.com/ciussse-drit-srd-public/Mocking-Framework

11 13
0 1,569