Over the last couple of weeks the Solution Architecture team has been working to finish off our 2019 workload: this included open-sourcing the Readmission Demo that was brought to HIMSS last year, so we could make it available to anyone looking for an interactive-way of exploring the tooling provided by IRIS.

11 2
1 1.1K

Hi Developers!

"objectscript.conn" :{
      "ns": "IRISAPP",
      "active": true,
      "docker-compose": {
        "service": "iris",
        "internalPort": 52773
      }

I want to share with you a nice new feature I came across in a new 0.8 release of VSCode ObjectScript plugin by @Dmitry Maslennikov and CaretDev.

The release comes with a new configuration setting "docker-compose" which solves the issue with ports you need to set up to make your VSCode Editor connect to IRIS. It was not very convenient if you had more than one docker container with IRIS running on the same machine. Now, this is solved!

Read below how it works now.

5 8
3 743

Hi Developers!

Recently we released the updated version 0.1.3 of ObjectScript Package Manager (ZPM) which comes with the support of simplified ObjectScript sources folder structure.

What 'simplified' does mean?

Before 0.1.3 ZPM expected the following structure:

/src

---/cls  - for ObjectScript classes

---/cls/package_name/class_name.cls

---/cls/package_name/class_name2.cls

---/mac - or Mac ObjectScript routines

---/mac/package_name/mac_routine.mac

---/mac/package_name/mac_routine2.mac

---/inc - for ObjectScript macro include files.

---/inc/package_name/include_file.inc

6 3
1 763

Hi Developers!

Many of you are looking for samples on how to work with InterSystems IRIS Analytics, formerly known as DeepSee.

There is a Samples BI module with Patients and Holefoods examples which is available on Github with source code. The installation steps are clear but take time.

Recently we added the option to run IRIS Community Edition containers with ObjectScript Package Manager (ZPM) on board. This simplifies the installation to the "run-one-command" step for the modules submitted to ZPM Community Registry. And thus we can benefit the Samples BI installation with ZPM.

And here is how you can run it on your laptop. Let's go!

1 1
0 343

Hi Developers!

Recently we published on Docker Hub images for InterSystems IRIS Community Edition and InterSystems IRIS Community for Health containers.

What is that?

There is a repository that publishes it, and in fact, it is the same container IRIS Community Edition containers you have on official InterSystems listing which have the pre-loaded ObjectScript Package Manager (ZPM) client.

So if you run this container with IRIS CE or IRIC CE for Health you can immediately start using ZPM and install packages from Community Registry or any others.

What does this mean for you?

It means, that anyone can deploy any of your InterSystems ObjectScript application in 3 commands:

  • run IRIS container;
  • open terminal;
  • install your application as ZPM package.

It is safe, fast and cross-platform.

It's really handy if you want to test a new interesting ZPM package and not harm any of your systems.

Suppose, you have docker-desktop installed. You can run the image, which wiil pull the latest container if you don't have it locally:

1 1
0 286

If you are seeing this error during import: ERROR #6301 Line: 2 Offset: 118 This does not appear to be a Cache exported file, unable to import.

This error is caused by exporting from InterSystems IRIS and trying to import into Caché. If you plan on exporting from IRIS to Caché, you can use the following qualifier to export your classes so that Caché does not throw an error on import:

w $SYSTEM.OBJ.Export(<items>,<filename>,"/exportversion=cache2018.1")

7 3
0 741
Article
· Jan 16, 2020 2m read
Python Gateway VI: Jupyter Notebook

This series of articles would cover Python Gateway for InterSystems Data Platforms. Execute Python code and more from InterSystems IRIS. This project brings you the power of Python right into your InterSystems IRIS environment:

  • Execute arbitrary Python code
  • Seamlessly transfer data from InterSystems IRIS into Python
  • Build intelligent Interoperability business processes with Python Interoperability Adapter
  • Save, examine, modify and restore Python context from InterSystems IRIS

Other articles

The plan for the series so far (subject to change).

Intro

The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.

This extension allows you to browse and edit InterSystems IRIS BPL processes as jupyter notebooks.

4 0
0 583

Hi Developers!

Often when we install a code package we want to make some post-install settings, e.g. call to a method, set up a configuration file.

This article describes how to do this with the ObjectScript Package Manager.

To make any post-install calls you need to add <Invoke> elements into <Invokes> tag to the module.xml. Each <Invoke> element can have nested <Arg> elements if you want to pass params to the method:

2 0
1 456

In the previous part of this series, we saw how to include data in a portlet from within DeepSee. This used the built in data controller. In this part, we are going to be pulling in data from outside of DeepSee. This will include both information from within InterSystems IRIS and from the OS.

Why use this?

This is useful if you would like to create a dashboard that only contains information about your system. It is also useful if you want to display data about your system along side data that you have stored in DeepSee.

2 0
0 316

Last time we launched an IRIS application in the Google Cloud using its GKE service.

And, although creating a cluster manually (or through gcloud) is easy, the modern Infrastructure-as-Code (IaC) approach advises that the description of the Kubernetes cluster should be stored in the repository as code as well. How to write this code is determined by the tool that’s used for IaC.

In the case of Google Cloud, there are several options, among them Deployment Manager and Terraform. Opinions are divided as to which is better: if you want to learn more, read this Reddit thread Opinions on Terraform vs. Deployment Manager? and the Medium article Comparing GCP Deployment Manager and Terraform.

5 1
2 1.3K
Article
· Jan 13, 2020 1m read
Difference between while and for

While and for are pretty similar, but sometimes you need to do a not recommended thing - change cycle boundaries.

In this situation while and for are different. For calculates boundaries once per run and while calculates boundaries on every iteration.

Consider this code sample:

set x = 5
for i=1:1:x {
     write "i: ", i,", x: ", x,!
     set x = x+1
}

You'll get this output:

2 7
0 398

Hi Developers!

Suppose you published your application on Open Exchange with version 1.00. And then you've added a new outstanding feature and you make a new release.

You can also make a new release of your application on Open Exchange.

Why make releases on Open Exchange?

This the way for you to highlight the new features of your application. When you publish a new release the following happens:

Release notes appear on the News page of Open Exchange

The version of your app changes

Version History tab is updated

0 0
0 198

Hi Developers!

This post describes how you could publish your InterSystems application on Open Exchange.

What is the InterSystems application?

It could be anything, which is built with InterSystems data platforms or to help work with InterSystems data platforms: InterSystems IRIS, InterSystems IRIS for Health, InterSystems HealthShare, InterSystems Ensemble and InterSystems Caché. This could be tools, frameworks, adapters, examples and business solutions.

Why publish on Open Exchange?

InterSystems Open Exchange is an "App Central" for the solutions in InterSystems. It's the first place where the developer goes to look for tools, frameworks, and examples on InterSystems IRIS. And Open Exchange brings the added traffic to your solution which could be converted into leads.

We are having a set of business development tools for published Open Exchange applications. This definitely makes your InterSystems application more noticed.

Submitting an application

Suppose you have a library with open source published on Github which you want to publish on Open Exchange. For the purpose of a demo, I'll fork this remarkable project of @Peter Steiwer ObjectScript-Math which I forked and renamed to object script-super-math.

1 2
0 293

When using Related Cubes in InterSystems IRIS BI, cubes must be built in the proper order. The One side must be built before the Many side. This is because during build time for the Many side, it looks up the record on the One side and creates a link. If the referenced record is not found on the One side, a Missing Relationship build error is generated. The One side is going to be the independent side of the relationship, AKA the side of the relationship that is referenced by the Many side or the Dependent cube. For example: Patients contain a reference to their Doctor.

3 0
0 461

Some readers of my previous article, Caché eXTreme for .NET - direct access to globals from C#, wondered if you could access information not just from the same instance in which you’re working, but also from another instance on the same computer, or from an instance located on another computer in the same local network. Some theorized, correctly, that this would be possible using the Enterprise Cache Protocol (ECP). In this article I’m going to show how it can be done.

1 0
0 668

I'm always on the lookout for tools that make the development and testing of my interfaces more efficient. A couple of years ago I came across HL7 Spy, from Inner Harbour Software. It quickly became my go-to tool for running message comparison reports for interface engine migrations, message statistics gathering, and troubleshooting message receipt and delivery. It also offered enhanced functionality for things like fetching messages via sftp that other tools don't provide.

I've recently been working with HL7 Spy's author, Jon Reis, to enable support for fetching messages directly from the Ensemble message store. Its SQL Loader feature now has native Caché/IRIS support, and I've contributed a small server-side class to support the extraction of messages using it.

1 5
1 1.1K

Have you ever needed a math function but could not find what you needed and ended up writing your own? Look no further! ObjectScript-Math is here to solve all your math related function needs.

ObjectScript-Math is an Open Source library for ObjectScript Math functions. It is now available on Open Exchange. This library contains a mix of new functions that are not currently available and functions that are available. The existing functions will be wrapped for use from ObjectScript-Math so that all Math functions can have a central location.

This library will continue to grow, so give it a try and give your feedback!

Don't see what you are looking for? Please feel free to submit requests for additional functions or contribute code yourself!

3 0
1 421

What is %SQLRESTRICT

%SQLRESTRICT is a special %FILTER clause for use in MDX queries in InterSystems IRIS Business Intelligence. Since this function begins with %, it means this is a special MDX extension created by InterSystems. It allows users to insert an SQL statement that will be used to restrict the returned records in the MDX Result Set. This SQL statement must return a set of Source Record IDs to limit the results by. Please see the documentation for more information.

Why is this useful?

This is useful because there are often times users want to restrict the results in their MDX Result Set based on information that is not in their cubes. It may be the case that this information may not make sense to be in the cube. Other times this can be useful when there is a large set of values you want to restrict. As mentioned before, this is not a standard MDX function, it was created by InterSystems to handle cases were queries were not performing well or cases that were not easily solved by existing functions.

6 0
1 546
Article
· Dec 31, 2019 3m read
Portlets that use data from DeepSee


In the previous part of this series, we saw how to reference a web page that will enhance our dashboard experience. Now we will look into referencing data that is already in our cubes.

In this example, we will be referencing the controller object and we will be extracting data from it. This data will then be displayed as text in our Dashboard. In Part 5, we will show how to incorporate this data into other charting libraries.

2 0
0 215

Last time we deployed a simple IRIS application to the Google Cloud. Now we’re going to deploy the same project to Amazon Web Services using its Elastic Kubernetes Service (EKS).

We assume you’ve already forked the IRIS project to your own private repository. It’s called <username>/my-objectscript-rest-docker-template in this article. <root_repo_dir> is its root directory.

Before getting started, install the AWS command-line interface and, for Kubernetes cluster creation, eksctl, a simple CLI utility. For AWS you can try to use aws2, but you’ll need to set aws2 usage in kube config file as described here.

3 1
2 1.4K