Article Mikhail Khomenko · Apr 20, 2020 14m read

This article is a continuation of Deploying InterSystems IRIS solution on GKE Using GitHub Actions, in which, with the help of GitHub Actions pipeline, our zpm-registry was deployed in a Google Kubernetes cluster created by Terraform. In order not to repeat, we’ll take as a starting point that:

1
1 754
Question Adrian Bourner · Jul 23, 2020

Until this week, my customer had Ensemble writing HL7 messages to my TCP listener, working fine on ageing physical servers (Windows Server 2003, Caché 2009). They had four app servers (app1, app2, app3 and app4) with an overarching DNS simply called "app".  Ensemble was connecting to "app:port", and it somehow found whichever of the four app servers my background listener was running on, and the interface worked fine for 10+ years.

They have now moved to shiny new virtual  servers (Windows Server 2016, Caché 2018) and now have only two app servers(appv1 and appv1), with an overarching DNS of

4
0 345
Question Lucas Bourré · Jul 16, 2020

Hello Community, 
I hope you're going well.

I am programming a daily reporting that will send by e-mail when people will add a dashboard as favorite by clicking on the star :

I asked Intersystems WRC on how to automatically generate a report with some line coding, but I heard there is no way to do this without a headless Browser.

I downloaded google-chrome to use the "--headless"  and "--print-to-pdf" function , to print the HTML content of my dashboard into a PDF.  ( I will use $ZF function to launch the generation ). 

I also created a delegated application "/userPortal"  to be able to use the

4
0 372
Question Ikara Ikliki · Jul 23, 2020

I have to implement a custom query result to be returned using the FHIR Bundle Resource.

I am a novice and not well versed in InterSystems yet so please excuse mistakes due to ignorance.

I have to take the query result and return in a bundle to achieve this I need to: 

  1. build the pages for the bundle from the query result according to the number of records per page configured or specified in the url
  2. store these query results using a state id
  3. when next page is request return records for the next page or according to the page number requested

Please, does anybody know how to achieve each of

2
0 345
InterSystems Official Luca Ravazzolo · Jul 2, 2020

GA releases are now available for the first version (v1.0) of InterSystems System Alerting and Monitoring (InterSystems SAM for short)
  
InterSystems SAM v1.0 provides a modern monitoring solution for InterSystems IRIS based products. It allows high-level views of clusters and single-node drilled down metrics-visualization together with alerts notifications.  This first version provides visualization for more than one hundred InterSystems IRIS kernel metrics, and users can extend the default-supplied Grafana template to their liking.
 
V1.0 is meant to be a simple and intuitive baseline.

2
0 533
Article Fabian Haupt · Jul 22, 2020 6m read

If you found your way here you’re one of the people who’ve been asked to work from home for the time being. At this point we don’t know how long the crisis is going to last or even how the situation is going to look in a few weeks. Nevertheless you need to get your work done. You rarely worked from home before and now you are faced with a number of challenges. Let’s talk a bit about what’s going to keep you sane on the home front.

Who am I and why should you care about what I have to say?

You shouldn’t.You can.Nobody is forcing you.

1
0 372
Question Yakov Berger · Jul 21, 2020

Hi,

 A device is sending me HL7 messages (ORM^O01)

the framing is set to "None"

and i get the following error:

3 Segments
Build Map Status = 'ERROR <EnsEDI>ErrMapRequired: Missing required PID element at segment 2 (PID)'
'ERROR <EnsEDI>ErrMapRequired: Missing required OBR element at segment 2 (PID)'
'ERROR <EnsEDI>ErrMapSegUnrecog: Unrecognized Segment 2:'PID' found after segment 1 (MSH)'

i seems that there framing chars in at the beginning and end of each segment

(in Hex)

 0b (MSH DATA HERE)  1c 0d  0b  (PID DATA HERE)  1c   0d   0b  (OBR DATA HERE)  1c 0d

i have tried all the Framing options of no

3
0 938
Question Yone Moreno · Jul 21, 2020

It would be interesting if there is some recommended documentation about best practices using Healthshare for interoperability.

Also, some how-tos or frequently asked questions about ObjectScript.

Or event better, if there are experienced developers who would like to share some common habits on their work with Studio / ObjectScript, which are valuable to do the developing work better.

For example, How to get the XML of a class and write it into a REST operation:

...

Method X(pRequest As Mensajes.ServiciosGeneralRequest, ...){

set writer=##class(%XML.Writer).%New()
set status=writer.OutputToString

1
0 271
Article Robert Cemper · Jul 21, 2020 1m read

This is a sample to use %JSON.Adaptor class available in IRIS to produce a snapshot of your object.

The sample consists of 2 classes that are variations of what was known in Caché/SAMPLES as Sample.Person.
Be aware that the possibilities are limited by %JSON.Adapter and how you make use of it.

Once in place, you create some test data by Populate().
You select an object and take a snapshot.
You apply changes to your object and take another snapshot.
And see the difference.

BINGO!

GitHub

0
0 775
Article Robert Cemper · Jul 21, 2020 1m read

It's also an example of a customized SystemFunction extension (ZZISJSON) in Caché & IRIS
This time it is to be included in %ZLANGF00.mac

A JSON string is mostly imported from a file or over REST
You rely on a clean and compatible structure. This is the check.

required: ZPretty.mac

demo

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
0
0 885
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.","SSN":"323-13-7437","DOB":"1943-03-27","Home":{"Street":"196 Main
0
0 553
Question Amiram Kasos · Jul 21, 2020

Hi,

Recently I have encountered a new issue, more and more 3rd party applications move to the cloud.

Web-hooks incoming from their sites can no longer be identified using a known and fixed IP address, so our customer's security department blocks them.

In past similar cases we use to grant access in the customer's Fire-Wall to the specified IP address - this is no longer applicable.

Has anyone else encountered this problem ? do you have any ideas ?

Thanks

1
0 309
Article Robert Cemper · Jul 20, 2020 1m read

t's also an example for a customized command extension (ZZJSON) in IRIS

IRIS has a nice %JSON.Formatter class.
But for debugging it is not really handy.
see:

ZWRITE js1  
js1="{""Name"":""Cunningham,John C."",""SSN"":""294-11-9150"",""DOB"":""1933-01-08"",""Home"":{""Street"":""4249 Ash Street"",""City"":""Tampa"",""State"":""MD"",""Zip"":""30176""},""FavoriteColors"":\[""White"",""Red"",""Green""]}"   

so you proceed for the most simple case

set formatter=##class(%JSON.Formatter).%New()   
do formatter.Format(js1)  
{   
  "Name":"Cunningham,John C.",  
  "SSN":"294-11-9150",
0
0 657
Job Mary Pion · Jul 20, 2020

Henry Elliott is currently recruiting for Sr. Developers with InterSystems technology stack experience including Cache, IRIS for Health, HealthShare, Ensemble. Experience in any of the following preferred: FHIR, AWS, VA VistA, APIs, RPCs. These are remote opportunities. Please send resume to Mary Pion- mpion@henrye.com or call me at 781-416-9915 to discuss further.

0
0 279
Article Robert Cemper · Jul 20, 2020 2m read

It is a classic Global Mapping exercise presenting ^SPOOL as Class / Table

Background

Device #2 named SPOOL dates back to the predecessors of Caché and IRIS
It was the first "%Stream" like option to buffer output before printing.
It is also the first and till today the most simple way of output redirection.

Solution

This is also an example of a mapped Global.
USE 2 redirects the output into the Global ^SPOOL

You can read the global manually or with some ancient utilities
or use this mapping to access it as class or a SQL table.

The structure of Spool

  • the global ^SPOOL is local to your namespace
  • fist
0
0 485
Question Mathew Lambert · Jul 20, 2020
We are using the mentioned password function and we need to know if is in line with the NIST recommendations regarding strength, https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
 
Reading interystems docummentation is not 100% clear for me as it states "(See RSA Laboratories Public-Key Cryptography Standards #5 and Federal Information Processing Standards Publications 180-4 and 198-1 for more information.)"
1
0 1417
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?

Thanks in advance,

Carl

Edit:

Just in case it is of any future use to anybody; adding R permission on %DB_CACHESYS and %DB_HSSYS solved the problem of not being able to navigate to the production from the

8
0 1057
Article Renato Banzai · Jul 14, 2020 5m read

This is my introduction to a series of posts explaining how to create an end-to-end Machine Learning system.

Starting with one problem

Our IRIS Development Community has several posts without tags or wrong tagged. As the posts keep growing the organization of each tag and the experience of any community member browsing the subjects tends to decrease.

First solutions in mind

We can think some usual solutions for this scenario, like:

  • Take a volunteer to read all posts and fix the mistakes.
  • Pay a company to fix all mistakes.
  • Send an email to each post writer to review the texts from past.

My Solution

picture

11
2 599
Article Robert Cemper · Jul 19, 2020 1m read

The guide “Extending Languages with %ZLANG Routines”
Tells you all details you need to know to extend your programming language.
EXCEPT: How to do it in a clean way.

This example of a %ZLANGC00.mac may show a possible approach
to get an easy to overview and to manage setup.
With less than 50 lines of code you might not be affected.
But if your Studio shows close to 1000 rows or more you may get in troubles.

My recommendation is simple.
Instead of adding line-by-line commands and it's code
you isolate each command and its code into a separate Include file.

And what is left in your %ZLANG* Routines is a

0
0 342
Announcement Anastasia Dyubaylo · Jul 13, 2020

Hey Developers!

This week is a voting week for the InterSystems IRIS AI Programming Contest!

So, it's time to give your vote to the best AI- and ML-enabled solution on InterSystems IRIS!

🔥 You decide: VOTING IS HERE 🔥

 

How to vote? This is easy: you will have one vote, and your vote goes either in Experts Nomination or in Community Nomination.

5
0 448