Hi developers!

Suppose you have a Github repository with ObjectScript classes but without a Docker environment.

Recently I published a repository with a set of files that form a universal Docker and VSCode environment to let you either import and run your repository in InterSystems IRIS Community Edition on Docker or turn your repository into Docker and VSCode environment for InterSystems IRIS Community Edition.

So in one sentence:

Unpack these files in your folder and you have the Docker and VSCode environment for your InterSystems IRIS ObjectScript application!

See the details below.

3 0
1 608
Article
· Oct 24, 2022 10m read
PerfTools IO Test Suite

Purpose

This set of tools (RanRead, RanWrite, and the combined RanIO) is used to generate random read and write events within a database (or pair of databases) to test Input/Output operations per second (IOPS). They can be used either in conjunction or separately to test IO hardware capacity, validate target IOPS, and ensure acceptable disk response times are sustained. Results gathered from the IO tests will vary from configuration to configuration based on the IO sub-system. Before running these tests ensure corresponding operating system and storage level monitoring are configured to capture IO performance metrics for later analysis. The suggested method is by running the System Performance tool that comes bundled within IRIS. Please note that this is an update to a previous release, which can be found here.

5 1
0 578
Article
· Jul 12, 2019 2m read
Basic Database Metrics example

This is a self contained class that can be run from the Intersystems Task Scheduler which records peak usage details for databases and licenses built up throughout the day and retaining 30 days history.

To schedule the task to run every hour:

d ##class(Metrics.Task).Schedule()

You can also specify your own start time, stop time, and run interval:

d ##class(Metrics.Task).Schedule(startTime, stopTime, intervalMins)

Metrics are stored in ^Metrics in the namespace that the class resides in/is run from.

6 3
3 529

The data model of your solution based on InterSystems platforms constantly changes over time. But what do you do with the data that was entered before? Back then, the data was valid, but what’s happening to it now after a number of data model changes? The answer to this question can be provided by the IDP DV tool that checks the property data of persistent and serial classes according to the types of these properties. In case any discrepancies are found, the tool generates a detailed error report for the user.

4 2
0 541
Article
· Aug 22, 2020 2m read
An overview of iris-fhir-portal

I created the iris-fhir-portal as part of the current contest InterSystems IRIS for Health FHIR, and I'm writing this quick overview to introduce the features that my application offers.

The goal of iris-fhir-portal is to show how easy we can create a Patient Chart using FHIR capabilities in IRIS for Health and empower the user with their own data.

2 1
1 487

Hi Developers!

As discussed in previous parts of Package Manager stories to turn your IRIS application into a deployable package you just need to introduce the module.xml file into the root folder of the repository and describe all the resources.

I’m pleased to introduce you to a new project template on Open Exchange which contains examples of how to make different types of resources of your InterSystems IRIS application a part of the ObjectScript package and so make the deployable ObjectSctipt package.

Let's see how you can describe your application resources using this template project as an example.

See the details below.

4 2
7 463

Case description

Let’s imagine that you are a Python developer or have a well-trained team specialized in Python, but the deadline you got to analyze some data in IRIS is tight. Of course, InterSystems offers many tools for all kinds of analyses and treatments. However, in the given scenario, it is better to get the job done using the good old Pandas and leave the IRIS for another time.

4 3
2 433

Why log in to view pivot tables when you can have them delivered directly to your inbox? Are you in need of automated reporting for InterSystems IRIS Business Intelligence? Pivot Subscriptions is your solution: a tool for subscribing to scheduled email reports of pivot tables inside InterSystems IRIS Business Intelligence (previously known as DeepSee).

6 0
1 483
Article
· Dec 12, 2019 2m read
Creating Portlets in DeepSee

What is a portlet?

The simple answer is: a custom widget. A portlet can exist by itself on a DeepSee dashboard, it can be used along side standard DeepSee widgets, or along side other portlets. The rendering of the custom widget is completely user defined. This means you can embed a web page, create a form to perform any sort of action needed based on the data on your dashboard, use third party charting libraries, or simply display data from outside of a DeepSee cube.

How to get started

6 1
0 440

Index

Part 1

  • Introducing Flask: a quick review of the Flask Docs, where you will find all the information you need for this tutorial;
  • Connecting to InterSystems IRIS: a detailed step-by-step of how to use SQLAlchemy to connect to an IRIS instance;

Part 2

  • A discussion about this kind of implementation: why we should use it and situations where it is applicable.
6 2
0 416
Article
· Sep 29, 2021 4m read
6 Months Reviews on Open Exchange

I'm running reviews on Open Exchange since April 2021.
I have seen excellent packages, good ones, and some that made me feel just lost.
And I started to recognize contributors also by their style and organization of the submitted packages.

8 3
0 396

Brainstorming the project we would build to showcase in the current female health themed InterSystems FHIR Contest, our girl band decided that we need to do something practical for the ordinary user and to solve some burning issues of the modern life. This discussion led to the idea of creating a project that will help women not to forget their health in daily grind - FemTech Reminder.

8 2
0 415

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 455

As you probably know, InterSystems IRIS has a mechanism for auto-generating methods. So, when you create an index in a class, you create methods that make your work easier. There is also a good article on Community that describes such methods.

Take, for example, IndexNameOpen(val), where IndexName is the name of the corresponding index. This method returns an object in which the value of this index corresponds to the value of val.

But this method is available only for unique indexes.

2 0
0 438

Introduction

Despite the fact that InterSystems has long recommended using external backup tools, many users have opted to use the internal Online Backup facility, which is included in all distributions of InterSystems products (IRIS Data Platform, Caché, etc.). The reasons why are quite obvious:

11 0
2 438

A few months ago, I read this interesting article from MIT Technology Review, explaing how COVID-19 pandemic are issuing challenges to IT teams worldwide regarding their machine learning (ML) systems.

Such article inspire me to think about how to deal with performance issues after a ML model was deployed.

2 2
0 395

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 420
Article
· Feb 7, 2023 9m read
OpenAPI Suite - Part 2

Hi Community,

In the first part, we describe all packages, used libraries and REST services.

Now, I would like to add some details about converter and validator services.

By default, OpenAPI-Suite sends an HTTP request to converter.swagger.io if the specification version is less than 3.0 and another HTTP request to validator.swagger.io to simplify the structure of the specification document.

Although the usage of online utilities is convenient, in some cases it could be better to have our own instance of the converter and validator. For example, if OpenAPI-Suite is provided on a server in an organisation for ObjectScript developers, it may be preferable to avoid requests to external services (privacy, avoid request rate limits).

Just run:

docker run -d -p 8085:8080 --name swagger-converter swaggerapi/swagger-converter:latest
docker run -d -p 8086:8080 --name swagger-validator-v2 swaggerapi/swagger-validator-v2:latest

4 2
1 368
Article
· Aug 2, 2020 1m read
Application Errors Analytics

Hi Developers!

As you know the application errors live in ^ERRORS global. They appear there if you call:

d e.Log() 

in a Catch section of Try-Catch.

With @Robert Cemper's approach, you can now use SQL to examine it.

Inspired by Robert's module I introduced a simple IRIS Analytics module which shows these errors in a dashboard:

3 5
1 297