#InterSystems Package Manager (IPM)

13 Followers · 145 Posts

InterSystems Package Manager (IPM) is a tool to deploy the packages and solutions into InterSystems IRIS with dependencies.

Download Package Manager client.

InterSystems staff + admins Hide everywhere
Hidden post for admin
Article Evgeny Shvarov · Aug 29, 2019 4m read

Hi Developers!

Often when we develop some library, tool, package, whatever on InterSystems ObjectScript we have a question, how we deploy this package on the target machine?

Also, we often expect that some other libraries already installed, so our package depends on them, and often on some particular version of it.

When you code on javascript, python, etc the role of packages deployment with dependency management takes package manager.

So, I'm pleased to announce that InterSystems ObjectScript Package Manager available!

19
4 3661
New
Article David Hockenbroch · Feb 25 2m read

Inspired by @Ashok Kumar T's post on the ideas portal here as well as my own wishes for a solution to this problem, I have come up with a simple way to allow more complete and consistent JSON queries without having to specify every desired field. I have created a class that extends the built-in %JSON.Adaptor class and makes its %JSONExportToString and %JSONExportToStream methods accessible through SQL with just a couple of simple SqlProc Methods.

Class DH.JSONAdaptor Extends %JSON.Adaptor [ Abstract ]
{
ClassMethod jsonstring(id, map = "") [ SqlProc ]
{
	try{
		set myobj = .
3
0 117
Article Evgeny Shvarov · Jul 14, 2022 2m read

Hi Community!

@Joan Pérez published a review that it is not very clear what applications are available for InterSystems Package Manager. Thanks Joan! Indeed it deserves a post.

There at least two ways I know to showcase them:

1. Run find command in zpm:

IRISAPP>zpm

=============================================================================
|| Welcome to the Package Manager Shell (ZPM).                             ||
|| Enter q/quit to exit the shell. Enter ?
0
0 300
Article Luis Angel Pérez Ramos · Sep 30, 2025 11m read

Welcome, dear members of the Community!

In this article, we will present an example of a project implementing a FHIR-based solution. This project will be based on the national project (Spanish national project), known as ÚNICAS.

What is ÚNICAS?

In his own words:

A project whose objective is to create an ecosystem of partnerships to improve healthcare for pediatric patients with complex rare diseases (RMDs). This project is being implemented through the network within the National Health System (NHS) to improve the diagnosis and care of patients with rare diseases.

2
0 145
Article Evgeny Shvarov · Feb 15, 2020 5m read

Hi Developers!

As you know the concept of ObjectScript Package Manager consists of ZPM client - client application for IRIS which helps you to install packages from the registry. And the code which works "on the other side" is  ZPM Registry - server which hosts packages and exposes API to submit, list and install it. Now when you install the ZPM client it installs packages from community package registry, which si hosted on pm.community.intersystems.com

But what if you want your own registry? E.g. you produce different software packages for your clients and you want to distribute it via private registry?  Also, you may want to use your own registry to deploy solutions with different combinations of packages.

Is it possible? The answer is YES! You can have it if you deploy ZPM registry on your server with InterSystems IRIS.

To make it happen you would need to set up your own registry server.

How to do that?

2
1 1263
Article Kunal Pandey · May 12, 2025 1m read

Introducing Smart Clinical Sidechick — the intelligent, no-drama partner your EHR wishes it could be. She reads FHIR data in real time, interprets lab results without ghosting, and explains clinical alerts like she actually cares. Built with GPT-4 brains and YAML sass, she’s not here to replace your main EHR—just to make it look bad. Tired of irrelevant alerts and cryptic warnings? Sidechick serves up real, explainable insights, not vague “elevated risk” vibes. And when your backend crashes, she doesn’t panic—she self-heals.

0
1 206
Article janzai renato · Apr 1, 2025 1m read

# IRIS-Intelligent Butler
IRIS Intelligent Butler is an AI intelligent butler system built on the InterSystems IRIS data platform, aimed at providing users with comprehensive intelligent life and work assistance through data intelligence, automated decision-making, and natural interaction.
## Application scenarios
 adding services, initializing configurations, etc.

1
1 217
Article lando miller · Mar 31, 2025 2m read

Prompt

Firstly, we need to understand what prompt words are and what their functions are.

Prompt Engineering

Hint word engineering is a method specifically designed for optimizing language models.
Its goal is to guide these models to generate more accurate and targeted output text by designing and adjusting the input prompt words.

0
6 186
Article John McBride · Jul 10, 2024 2m read

Overview

After having some discussions at Global Summit and using a lot of package managers in my day to day development (npm,nuget,Chocolatey, etc) in addition to recently using the InterSystems Package Manager for some CICD process I'm building using Intersystems IRIS and IRIS 4 Health, I wanted an easy and integrated way to search/view/install packages related to the Intersystems tech stack.

I recently built a VSCode extension for IPM repositories that I will be open sourcing and publishing to the marketplace but wanted create this post to get some feedback from the community.

5
2 547
Article sara aplin · Dec 20, 2024 2m read

Monitor incremental changes in the database through scheduled tasks, display change trends through charts, set alarm thresholds, and write information to messages.log

How to use it

You can install it through Docker or ZPM

Deploying with Docker Prerequisites

Make sure you have git and Docker desktop installed.

Installation

1.Clone/git pull the repo into any local directory

git clone https://github.com/Sara771dev/Database-Size-Monitoring.
0
1 284
Article Evgeny Shvarov · Apr 22, 2024 3m read

Hi folks!

Often, when we develop commercial solutions, there is a necessity to deploy solutions without source code, e.g., in order to preserve the IP.

One of the ways how this can be achieved is to use InterSystems Package Manager.

Here I asked Midjourney to paint an intellectual property of software:

How this can be achieved with IPM?

In fact, this is very simple; just add the Deploy="true" clause in the Resource element in your module.xml manifest. Documentation.

I decided to provide the simplest possible example to illustrate how it works and also to give you a development environment template to let start building and deploying your own modules without source code. He we go!

2
2 436
Article Dylan Cole · Sep 29, 2024 1m read

The test data generator is mainly used to generate test data, which can be used to generate test data for tables and fields to meet the needs of different fields according to different types, currently supports Text, Number, Enum, UUID, regular expression, Multiple date and time formats, and Time Seven different types
 

How to use:

1. Select a namespace, you can see all the tables under the namespace,

2. Select the table we want to generate test data from, click on the field, and select the type on the right

3.

0
0 174
Article Samuel Thomas · Sep 23, 2024 1m read

<> <> # IRIS-API-Template

This is a REST template that can send REST messages to production and control interfaces through Servicer, processes, and operations

How to use it

zpm "install iris-rest-template"

Prerequisites

Make sure you have git and Docker desktop installed.

Installation

1.Clone/git pull the repo into any local directory

git clone https://github.com/samuelxabc/IRIS-API-Template.git

Open the terminal in this directory and run

docker-compose build

Run the IRIS container

docker-compose up -d
3
0 237
Article Evgeny Shvarov · Sep 19, 2019 6m read

Hi Developers!

Recently we launched InterSystems Package Manager - ZPM. And one of the intentions of the ZPM is to let you package your solution and submit into the ZPM registry to make its deployment as simple as "install your-package" command.

To do that you need to introduce module.xml file into your repository which describes what is your InterSystems IRIS package consists of.

This article describes different parts of module.xml and will help you to craft your own.

I will start from samples-objectscript package, which installs into IRIS the Sample ObjectScript application and could be installed with:

zpm: USER>install samples-objectscript

It is probably the simplest package ever and here is the module.xml which describes the package:

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
  <Document name="samples-objectscript.ZPM">
    <Module>
      <Name>samples-objectscript</Name>
      <Version>1.0.0</Version>
      <Packaging>module</Packaging>
      <SourcesRoot>src</SourcesRoot>
      <Resource Name="ObjectScript.PKG"/>
    </Module>
  </Document>
</Export>
16
6 2048
Article Timothy Leavitt · Mar 24, 2020 5m read

This article will describe processes for running unit tests via the InterSystems Package Manager (aka IPM - see https://openexchange.intersystems.com/package/InterSystems-Package-Manager-1), including test coverage measurement (via https://openexchange.intersystems.com/package/Test-Coverage-Tool).

Unit testing in ObjectScript

There's already great documentation about writing unit tests in ObjectScript, so I won't repeat any of that. You can find the Unit Test tutorial here: https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?

23
2 2164
Article Evgeny Shvarov · May 7, 2020 4m read

Hi Developers!

I want to share with you the approach you can use working with Unit Testing which I personally find very convenient and robust.

Will not talk much here about Unit Testing, we have documentation, enough good articles on the topic not only on the Internet but here on Developers Community too,  e.g. this one.

How can you manage the Unit Testing of your ZPM module?

This is pretty handy with ZPM. It has a special command "test" which runs all the tests you mentioned in the module. You can execute it as shown below:

zpm:USER>module-name test

And this command runs all the tests you mentioned in module.xml.

Let's see how it works.

5
3 836
Article Nikolay Solovyev · Jun 24, 2020 2m read

ZPM is a package manager designed for convenient deployment of applications and modules on the IRIS platform.

Module developers, in order for their module to be installed using ZPM, need to follow a series of simple steps.

  • Write module code
  • Create a module.xml file that contains the meta description of the module
  • Using the test registry, publish the module, verify that it is published
  • Install the module from the test registry
  • Publish the module. To publish in the public registry pm.community.intersystems.com, you need to publish the module in https://openexchange.intersystems.
2
2 642
Article Evgeny Shvarov · Mar 27, 2023 1m read

Hi folks!

Recently I was in need to setup a local FHIR server using IRIS For Health and I think I found the easiest and simplest way ever.

Just run in terminal these two lines below :

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community

and

docker exec -it my-iris iris session iris -U "USER" '##class(%ZPM.PackageManager).Shell("install fhir-server")'

And you'll have FHIR server running locally at http://localhost:9092/fhir/r4.

That's it!

The FHIR server will use the latest build of InterSystems IRIS for Health Community Edition and will deploy FHIR server from this app via IPM package in  FHIRSERVER namespace.

This is for Mac, so please add in comments how it works in Windows.

This is a very short article as it is really easy to setup a local FHIR server with InterSystems IRIS for Health and IPM Package Manager.

6
0 928
Article Sergey Mikhailenko · Jul 4, 2023 1m read

image This project is implemented as a tool for viewing temperature data taken from a temperature sensor installed in Rasperry PI and located in a remote place where there is Internet, for example, in dacha.

The module for regular reading and sending information is implemented in python and is built in the same project. If the temperature in the country house becomes lower or higher than the threshold values, then a notification will be sent to the telegram channel.

0
1 202
Article Jimmy Xu · Oct 11, 2022 2m read

ZPM is designed to work with applications and modules for InterSystems IRIS Data Platform. It consists of two components, the ZPN Client which is a CLI to manage modules, and The Registry which is a database of modules and meta-information. We can use ZPM to search, install, upgrade, remove and publish modules. With ZPM you can install ObjectScript classes, Frontend applications, Interoperability productions, IRIS BI solutions, IRIS Datasets or any files such as Embedded Python wheels.

10
11 1509
Article Evgeny Shvarov · Jun 8, 2023 2m read

Hi Community!

Just want to share with you an exercise I made to create "my own" chat with GPT in Telegram.

It became possible because of two components on Open Exchange: Telegram Adapter by @Nikolay Solovyev and IRIS Open-AI by  @Kurro Lopez 

So with this example you can setup your own chat with ChatGPT in Telegram. 

Let's see how to make it work!

8
1 737
Article Evgeny Shvarov · May 16, 2023 1m read

Hi folks!

Just want to introduce you a new util to import CSV into IRIS - csvgenpy!

Install

USER>zpm "install csvgenpy"

Use:

do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")

Example:

USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")

This will create table and class data.titanic in IRIS and will load the data.  you can proof it with:

USER>:sql

[SQL]USER>>select * from data.titanic

[SQL]USER>>select * from data.titanic

1. select * from data.
0
1 340
Article Evgeny Shvarov · Jun 24, 2020 3m read

Hi Developers!

Suppose you have a persistent class with data and you want to have a simple Angular UI for it to view the data and make CRUD operations.

Recently @Alberto Fuentes described how to build Angular UI for your InterSystems IRIS application using RESTForms2. 

In this article, I want to tell you how you can get a simple Angular UI to CRUD and view your InterSystems IRIS class data automatically in less than 5 minutes.

Let's go!

3
4 1372
Article Sergey Mikhailenko · Jan 24, 2023 8m read

image

Introduction

There are many entities in IRIS which are extremely difficult to transfer to another system.They usually contain important system-stored objects: users, roles, privileges, mappings, and applications. The exception to this list is for resources, which are facilitated by the ability to select and save them from the management portal interface [System > Security Management > Resources] Yet, things are not as good with other system objects.

2
0 704
Article Evgeny Shvarov · Aug 14, 2022 2m read

Hello fellow developers!

When developing with ObjectScript Package Manager, one crucial thing is the package version, which we place in the module.xml file. When we add changes to the package and are ready to publish a new version of the package in the registry, we also need to increase the version number. This is clear, but it is annoying, and we can often forget to do that. 

This small article will help you to automate such a process.

Probot logo

1
0 809
Article Nikolay Solovyev · Nov 23, 2021 1m read

A new release of ZPM has been published - ZPM 0.3.2.

New in this release:

  • Various changes in the output command of help
  • Changes in colors in the outputs
  • Added an ability to add more repo types
  • Added an ability to specify a post-installation message, with AfterInstallMessage tag in module.xml
  • Added variable ${webroot}, which refers to url with host and port where the internal web-server is available
  • Fixed issue when during install if no module was specified (issue #243)
  • Fixed issue with uppercased FileCopy resource
  • Some other minor bugfixes
2
0 436
Article Evgeny Shvarov · May 30, 2020 2m read

Hi Developers!

Sometimes we need to import CSV data programmatically to InterSystems IRIS either from CSV or from URL. And we expect the class with proper datatypes to be created and the data to be imported.

I published a module csvgen on Open Exchange which does exactly that.

If you just need the CSV file be imported into IRIS you can do the following:

USER>do ##class(community.csvgen).Generate("/usr/data/titanic.csv",,"Data.Titanic")

Class name: Data.Titanic
Header: PassengerId INTEGER,Survived INTEGER,Pclass INTEGER,Name VARCHAR(250),Sex VARCHAR(250),Age INTEGER,SibSp INTEGER,Parch INTEGER,Ticket VARCHAR(250),Fare MONEY,Cabin VARCHAR(250),Embarked VARCHAR(250)
Records imported: 891
USER>

Or if you have the CSV on the internet, e.g. COVID-19 Data on Github you can get the data in the following way:

USER>d ##class(community.csvgen).GenerateFromURL("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/05-29-2020.csv",",","Data.Covid19")

Class name: Data.Covid19
Header: FIPS INTEGER,Admin2 VARCHAR(250),Province_State VARCHAR(250),Country_Region VARCHAR(250),Last_Update DATE,Lat MONEY,Long_ DOUBLE,Confirmed INTEGER,Deaths INTEGER,Recovered INTEGER,Active INTEGER,Combined_Key VARCHAR(250),Incidence_Rate DOUBLE,Case-Fatality_Ratio DOUBLE
Records imported: 3522
USER>
16
1 1484
Article Muhammad Waseem · May 30, 2022 3m read

Hi Community,

This post is a introduction of my open exchange iris-fhir-client application.

 iris-fhir-client can connect to any open FHIR Server by using embedded python with the help of fhirpy Library.
Get Resource information by terminal and by using CSP web application.

2
0 1029