Announcement Sourabh Sethi · Aug 4, 2019

 Pre-requisite - Basic knowledge of ENSEMBLE and ObjectScript

My both previous sessions were related to OBJECTSCRIPT.
This time, we are going to add a flavour Ensemble/Healthshare,
to be informative and fast.

In this session we are going to discuss about - 
"Informative and Fast WEB API VIA ObjectScript and Ensemble/HealthShare"

Web API can be REST or SOAP. We will taking example of SOAP in this session.
However, whatever I demonstrate today, will also be applicable for REST.

In today's Session, we will creating 2 versions of same API and will Compare there performance using tool called SOAP U

0
0 376
Announcement Evgeny Shvarov · Aug 4, 2019

Hi Developers!

This is the digest of new solutions and applications submitted to InterSystems OpenExchange in July 2019!

New Applications

Metrics example published by David Underhill

A simple example of collating database and license metrics

Dynamic SQL to Dynamic Object published by David Crawford

ObjectScript function to convert any SQL query into a dynamic object

Cogs JSON Class published by Sean Connelly

Convert JSON to and from InterSystems ObjectScipt classes

Objectscript Roman Numeral Converter published by David Crawford

Converts numbers into roman numerals using ObjectScript

Random Read IO Storage Performance Tool published by Tony Pepper

Random Read IO Performance Tool for InterSystems IRIS Database

Port published by Rubens Silva

Port is a VCS-agnostic Caché Studio utility to export or import Caché files based on projects instead of namespaces

Forgery published by Rubens Silva

An auxiliary tool used to mimic requests to %CSP.REST and Frontier Router-based classes.

Log Production Queue Counts published by Robert Hanna

A simple scheduled task and persistent table for logging production queue counts.

EnsDemo Iris installer published by Guillaume Rongier

ENSDEMO port to IRIS without HL7 and DICOM examples

Anti CSRF CSP published by David Crawford

A method for mitigating anti CSRF attacks on CSP derived API calls

Frontier published by Rubens Silva

%CSP.REST on steroids. Frontier is a REST framework made with the purpose of reducing boilerplate code and imposing a clean coding style 

Python Gateway Samples published by Eduard Lebedyuk

Examples of PythonGateway Usage. Python Gateway for InterSystems Data Platforms

0
0 190
Article Sean Connelly · May 31, 2017 28m read

Cogs Library

Over the next few months I will be releasing a number of open source libraries and tools to the Caché community.

Most of the code has evolved from previous production grade solutions over the years and I am collating it together under a single overarching library package that I am calling Cogs.

38
4 1661
Question Evgeny Shvarov · Aug 3, 2019

Hi developers!

Every day coding with IRIS and docker I call the following 3 commands in VSCode terminal. Always the same for any projects:

docker-compose build   ; to build the container

docker-compose up -d   ; to run the IRIS in container

docker-compose exec iris iris session iris ; to open the IRIS terminal

Is there any way to map the key sequence which will type me the rest? 

e.g.

irisb for docker-compose build,

irisup for docker-compose up -d,

irist for docker-compose exec iris iris session iris

I know and use keyboard sequences for mac, but it doesn't work in VS

2
0 574
InterSystems Official Andreas Dieckow · Jul 23, 2019

Preview releases are now available for the 2019.3 version of InterSystems IRIS and IRIS for Health!

 

Container images are available via the WRC's preview download site.

The version number for these releases is 2019.3.0.302.0

 

Public announcements will be made shortly, with separate announcements for each product.

 

InterSystems IRIS Data Platform 2019.3 is a CD (continuous delivery) release of InterSystems IRIS.  It has many new capabilities including:

Continuous Delivery Releases of InterSystems IRIS

InterSystems API Manager

Node-level Architecture for Sharding and SQL Support

Infrastructure and Cloud Deployment Improvements

Port Authority for Monitoring Port Usage in Interoperability Productions

X12 Element Validation in Interoperability Productions

New Framework for Coding Business Hosts in Java

Java and .NET Gateway Reentrancy

1
4 535
Article Nikolay Solovyev · Aug 1, 2019 3m read

In many projects I was faced with storing hierarchical data (tree) in classes.
By tree, I mean such data, where each node has a parent node — an object of the same class.
Many examples of such data can be given. For example, a catalog in the online store. Suppose that this online store sells books, in this case, the category tree might look like this:

The number in front of the name is the category ID.
For storage, you can create classes:

The MyApp.Category class  is used to store the category tree and contains the property “Parent” - reference to the same class.

But it’s not convenient to work wit




1
1 1260
Article Alexander Koblov · Jul 29, 2016 10m read

In this article we are going to compare $Increment and $Sequence functions.

First of all, a note for readers who have never heard of $Increment. $Increment is a Caché ObjectScript function which performs an atomic operation to increment its argument by 1 and return the resulting value. You can only pass a global or local variable node as a parameter to $Increment, not an arbitrary expression. $Increment is heavily used when assigning sequential IDs. In such cases parameter of $Increment is usually a global node. $Increment guarantees that each process using it gets a unique ID.

for i=1:1:10000
11
5 1967
Discussion Eduard Lebedyuk · Jul 31, 2019

Let's have a round of CodeGolf!

As usual the goal is to write the shortest solution for a specified problem.

Today we have one of the classics: FizzBuzz.

Write a program that prints the numbers from 1 to 100.

But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”.

For numbers which are multiples of both three and five print “FizzBuzz”

22
1 799
Announcement Alex Anderson · Aug 1, 2019

​​​​​​We have Full time or Part Time Cache\ENSEMBLE\IRIS programmer positions available with our UK and US/North American teams.

For details on what we do and our products please see our web site intsoftsol.com  

Interested persons should email reply to admin@intsoftsol.com

JOB DESCRIPTION
Looking for Support Developer with experience in Ensemble,CACHE, IRIS.  You will be responsible to assist in application software support and development including our Application Integration to various 3rd part systems.  Our software is in use in a number of NHS Trust and North American State Health Depar

0
0 625
Question Erin Dolson · Jul 16, 2019

Hi all,

I'm looking to set up monitoring for several interfaces. I understand that I can set an Inactivity Timeout. However, obviously there are messages coming through more frequently during certain hours than other hours. 

Is there a way to set an Inactivity Timeout for each hour of the day instead of one value that is used all day long? 

Best,

Erin

12
3 909
Question Marcus West · Aug 1, 2019

I've setup ODBC connection so I can access Cache data within SQL Server.

I want to be able to write SQL queries for internal monitoring purposes, similar to what's possible with SQL Server.  Specifically I want to be able to check mirroring status (i.e. check which is the current primary mirror member), check the status of any Ensemble productions (started/stopped), check the status of business hosts etc.  I want to do all of this from SQL Server to go with our other system monitoring solutions.

Does anybody know if this is possible, and if so the names of tables/namespaces which might store the

1
0 342
Announcement Anastasia Dyubaylo · Aug 1, 2019
0
0 241
Question Rodolfo Santos · Jun 12, 2019

Hello Everyone

I'm trying to open an XML that I get inside a GZIP file.
However, I can only open the contents when I save the file to a folder.
I would like to know if there is a way to get the contents of XML without saving the GZIP in a folder.

The code below is functional, however, you are saving GZIP before you can get the contents of the XML.

SET tGZIP = $System.Encryption.Base64Decode("############")
SET tFile= ##class(%File).%New("####")
SET tSC = tFile.Open("WSN")
SET tSC = tFile.Write(tGZIP)
DO tFile.%Save()
DO tFile.Close()
SET tSC = tFile.Open("RUK:::/GZIP=1:/NOXY=1")
WHILE 'tFi
2
0 547
Question Julian Matthews · Jul 31, 2019

Has anyone had any success receiving a DICOM TCP in, and then using a process to write to a file while responding to the sender correctly? I'm pulling my hair out, and would love to know where I'm going wrong. 

2
0 351
Question Margaret Parker · Sep 21, 2016

I was just watching a video - Clinical Document Architecture and Document Creation - Videos An Introduction to CDA - from Australia (browser, Firefox). The video started and played fine for 8m 49s, then stopped with the following message: Could not download the video Error code: PLAYER_ERR_TIMEOUT.

3
0 774
Announcement Jacquie Clermont · Jul 31, 2019

Hi Community,

If you're interested in containers, take a look at what we got planned for Global Summit, September 22-25, Boston Marriott Copley Place. Register now to take advantage of our early bird pricing.

SESSIONS ON CONTAINERS

Introduction to Kubernetes 
Basics and Benefits of Cloud Deployment
InterSystems IRIS Containers for Developers 
InterSystems IRIS KubernetesOperator
InterSystems IRIS Cloud Roadmap 
A Skeptic’s Guide to Containers
Diving into InterSystems Cloud Technology 
Leveraging Containers for DevOps 
Resilient Deployments in the Cloud 
The Value of Developing with Containers
Auto


0
0 286
Announcement Evgeny Shvarov · Jul 31, 2019

Hi Developers!

This is an anniversary announcement to celebrate 6,000 members on InterSystems Developers!

There are some other good figures came: 

  • we have more than 5,000 posts with almost 1,000 articles. (956 to the moment).
  • Also, we are close to having 20,000 answers and comments and 2,000,000 reads for DC postings.

And we have the Spanish Community for 2 months running! Join Spanish DC!

0
1 286
Question Zdeněk Bartušek · Jul 31, 2019

Hello community,

I need to know if there is any method which can me say specified imported files or namespaces in Cache.

To better specification of my problem, I've got two installer manifests. Firts one did some resource changing and import some files and classes, second one must be started after the first one, because it's only his update, which creates some nemaspaces. So i need to check if the first manifest ran succesful and I can start the second one.

Is it good way trying to do this by some method or are there some other, better ways maybe by ccontrol, I don't know?

Thanks so much f

1
0 255
Question James Hipp · Jul 29, 2019

Hello,

Is it possible to write global output values to STDOUT, in a similar way to how csession can take routine intput, like below:

(In Cache Terminal)

%SYS>d ##class(%SYSTEM.License).ShowSummary()

License Server summary view of active key.

     Distributed license use:

Current License Units Used =        1

Maximum License Units Used =        1

License Units   Authorized =      200

     Local license use:

Current Connections =      1  Maximum Connections =      1

Current Users       =      1  Maximum Users       =      2

(From Linux OS Terminal)

[jhipp@test-sbox ~]# csession TEST "##class(%SYSTEM.Lic


5
0 671
Question Zdeněk Bartušek · Jul 30, 2019

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

17
0 1435
Question Jimmy Christian · Jul 30, 2019

Hello Community,

How do i disable an operation explicitly based on a value in a variable?

I set the ReplyCodeAction to E=D.

In the Operation Code i am throwing an explicit ERROR

THROW ##class(%Exception.General).%New("Shutting Down Operation",999,,"My own special exception")

But my operation still remains up.

Any suggestions please will be appreciated.

Thanks,

Jimmy Christian.

6
0 388
Announcement Anastasia Dyubaylo · Jul 23, 2019

Hi Everyone!

InterSystems HealthShare is nominated for the Computable Awards 2019! The Unified Health Record that we implemented together with our partner Itzos in the St. Maartens Clinic has a chance to become the "ICT Project of the Year in Healthcare". 

A great honour, but of course we also want to win. We need 4,000 votes! Therefore we'd like to ask you to vote!

 

7
0 594
Article Jeffrey Drumm · Jul 25, 2019 1m read

I'm not saying that this is in anyway "best practices," but I'm in a peculiar situation where I need to restrict users from starting a "retired" Ensemble Production in a namespace that's been renamed. It's still an "Ensemble-activated" namespace; we need to keep it available for Ensemble Message Viewer access ... fortunately, only for a little while.

It's a bit of a hack ...

Open the Production class in Studio and add the following classmethod:

ClassMethod OnStart() As %Status
{
    Return $system.Status.Error(5001,"THIS PRODUCTION IS DISABLED.")
}

A Production won't start if its OnStarlaugh

6
1 543