#Open Exchange

3 Followers · 674 Posts

InterSystems Data Platform Solutions Open Exchange is a gallery of software solutions, tools, and frameworks which were developed with InterSystems Data Platform (Caché, Ensemble, HealthShare, InterSystems IRIS, InterSystems IRIS for Health) or are intended to help in development, deployment and support the solutions built with InterSystems Data Platform.

You can use any of the published assets or you can publish your own tool, technology example or solution.

Discover Open Exchange.

Article Evgeny Shvarov · Sep 14, 2019 1m read

Hi Developers!

Often I find questions on how to install IRIS, connect to IRIS from IDE, setup the environment, compile, debug, maintain the repository.

Here below possibly the shortest way to set up all the environment and start development with ObjectScript on InterSystems IRIS.

Prerequisites

Make sure you have Git, Docker, and VSCode installed

Install Docker and ObjectScript extensions into VSCode

Sign in or Create an account on Github

Here we go!

9
6 1582
Article Evgeny Shvarov · Oct 27, 2019 2m read

Hi Developers!

Those who use Dockerfile to work with InterSystems IRIS often need to execute several lines of ObjectScript.  For me, this was a game of "escaping this and that" every time just to shoot a few commands on ObjectScript to IRIS. Ideally, I'd prefer to code ObjectScript without any quotes and escaping.

Recently I found a nice "hack" on how this could be improved to exactly this state. I got this from @Dmitry Maslennikov's repo and this lets you use Objectscript in a way as you would type it in IRIS terminal.

Here is what you have in dockerfile:

///
COPY irissession.sh /
SHELL ["/irissession.sh"]
RUN \
  do $SYSTEM.OBJ.Load("Installer.cls", "ck") \
  set sc = ##class(App.Installer).setup()
# bringing the standard shell back
SHELL ["/bin/bash", "-c"]
CMD [ "-l", "/usr/irissys/mgr/messages.log" ]
///
12
1 827
Announcement Evgeny Shvarov · Nov 1, 2019

Hi Developers!

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

New applications in October 2019

simplemirror by Mario Sanchez Macias

This is a very simple docker-compose with a simple class that creates a mirror. It will create 2 folders (mirrorA and mirrorB) with the Iris installation files and mirror database MIRRORDB. Also creates a namespace MIRRORNS.

objectscript-rest-docker-template by Evgeny Shvarov

Very simple template to start development REST API with for persistent data in IRIS using  Docker.

IRIS OAuth example by Dmitrii Kuznetsov

This is a template for InterSystems ObjectScript Github repository. The template goes also with a few files which let you immedietly compile your ObjecScript files in InterSystems IRIS Community Edition in a docker container

vscode-multi-connection by Dmitry Maslennikov

Example project, how to configure and use multiple connections in one namespace with VSCode-ObjectScript

iris-datatransform-unittest by Alberto Fuentes

IRIS Data Transform UnitTest Sample

SetEnv by Eduard Lebedyuk

Set Environment Variables

DocumentTemplate by Zenkov Artem

DocumentTemplate allows you to use ODT and DOCX files as templates for rendering reports or letters.

msgpack by Maks Atygaev

Implementation of MessagePack protocol where you need something more compact and speed then JSON. https://msgpack.org

Twitter Sentiment Analysis with IRIS by Amir Samary

Use IRIS Natural Language Processing and its interoperability capabilities to fetch realtime tweets and analyze their sentiment as well as their metadata.

Apache POI by Eduard Lebedyuk

ObjectScript part for apache-poi integration. Allows reading xlsx.

RabbitMQ adapter by Eduard Lebedyuk

InterSystems IRIS adapter for RabbitMQ

0
0 209
Announcement Evgeny Shvarov · Oct 3, 2019

Hi Developers!

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

New applications in September 2019

web HERALD by Martin Weber

web HERALD is a Highly Extensible Rapid Application Development framework, the ultimate server-based platform for Caché Developers created by our inhouse Caché Developers.

objectscript-docker-template by Evgeny Shvarov

A simple template to start coding in InterSystems ObjectScript with preset dockerfile and settings for VSCode to start compiling and debugging.

angular-material-iris-starter by Sergey Shutov

A template project for Angular frontend with InterSystems IRIS.  The main goal of this repository is to provide an up to date example of Angular application following all recent best practices

cache-iris-app-tools by Sergey Mikhailenko

Solution for technical support and DBMS administrator. View globals arrays, execute queries (including JDBC/ODBC), sending results to email as XLS files. Viewer class instances with СRUD editing. A few simple graphs on the protocols of the system.

IRIS OData Client by Sean Connelly

A simple IRIS client for connecting and consuming RESTful OData API services.

ObjectScript-Foreach by David Crawford

The beginnings of a foreach function equivalent in ObjectScript.

Kano MDM by Liudmyla Valerko

Kano MDM is an efficient Master Data Management software product with a complete set of features for successful implementation of interoperability solution.

Output-Capture by David Crawford

Captures the output of common objectscript terminal verbs, such as zwrite.

dasha-iris-adapter by Vladislav Chernyshov

Dasha.ai is a platform for designing human-like voice interactions to automate business processes.

This repository includes the first version of Dasha.ai IRIS Interoperability Adapter and demo Interoperability Production to show how to connect IRIS and Dasha.ai platform.

0
0 203
Announcement Helmut Forstner · May 21, 2019

WEB HERALDa Highly Extensible Rapid AppLication Development framework by myCTS

myCTS WEB HERALD

myCTS web client benefits:

Platform independent

Smartphone, tablet, laptop or desktop-computer, the myCTS web client, can be used on all devices with HTML5 compatible browsers. Adaptable designs allow all varieties of screen sizes to be featured.

State-of-the-art technology

myCTS web clients use, excellent frameworks for the development of client side components.

Secure

2
1 841
Question Michael Gosselin · Sep 26, 2019

I learned about the Open Exchange tab here at Intersystems. I wanted to look at one of them, but when I clicked it, it tried to go to the site, then brought me back to openexchange.intersystems.com.  I then saw a "not secure" icon in the browser bar. I tried this on IE, Chrome, and Firefox, and could never seem to get into the site to look at the site https://openexchange.intersystems.com/package/Cach%25C3%25A9Quality.

NOTE: seems to affect only the link above.

Am I missing something? Is there a special setting I need to set to see these ideas?

Thanks,

4
0 217
Announcement Evgeny Shvarov · Sep 24, 2019

Hi Developers!

If you happen to visit Global Summit 2019 don't hesitate to stop by Developers Community Booth (table 9 on Tech Exchange, 3rd floor) - we can help to submit your Open Exchange solution to ZPM Package Manager.

One package Output Capture by @David Crawford is already packaged and can be installed with the following command:

zpm:USER>install output-capture

Also, come to chat on your dev experience and collect your GlobalMasters badge from @Anastasia Dyubaylo ;)

0
0 394
Question Kevin Furze · Aug 15, 2019

I've just been tempted to the option exchange (curiosity) and when browsing, I often right-click, and open links in a new tab, eventually ;-) I have enough interesting open tabs to go off and read the tabbed articles,

I can't do this in open exchange, it will only allow a direct click to open the url.

even worse, when I come back (to where I left off) It starts from the top of the page.

any chance of changing the url's to allow us to right click and open in a new tab

I'm guessing that this applies to may other URL's around the intersystems community, but it's the first time it annoyed me.

kev

3
0 242
Article Nikita Savchenko · Jan 5, 2019 6m read

This article introduces InterSystems iKnow Entity Browser, a web application which allows to visualize extracted and organized text data mined from a large number of texts, powered by InterSystems iKnow technology, which is also known as InterSystems Text Analytics in InterSystems IRIS. Feel free to play with the demo of this tool or learn more about it on InterSystems Open Exchange.

6
3 1339
Announcement Evgeny Shvarov · Sep 3, 2019

Hi Developers!

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

ToolBox-4-Iris by Richard Zimmermann

API for InterSystems IRIS with a collection of handy and useful tools

iris-history-monitor by Henrique Gonçalves Dias

IRIS History Monitor - monitoring visualization tool for InterSystems IRIS

Nested Set Model by Nikolay Soloviev

Nested Set Model implementation for ObjectScript

SOLID Design with ObjectScript by Sourabh Sethi

Training and Codeset of SOLID Design in ObjectScript

Samples-ObjectScript by Joel Solon

ObjectScript samples for use with the ObjectScript tutorial. Meant for use with InterSystems IRIS Data Platform.

Object Synchronization by Jose Tomas Salvador

Sample project to play with IRIS Object Synchronization feature

Https-Proxy-IRIS-Docker by Guillaume Rongier

Sample of an Https proxy for Intersystems Iris with docker

iris-webgateway-example by Dmitry Maslennikov

Example of containerised IRIS with separate Apache and WebGateway

iris-mirror-with-docker by Dmitry Maslennikov

Docker compose environment with demo IRIS configured with Mirroring

Fast & Informative WEB API/Proxy by Sourabh Sethi

Informative and Fast WEB API VIA ObjectScript and Ensemble/HealthShare

PivotSubscriptions by Peter Steiwer

Subscribe to Pivot Tables in InterSystems IRIS Business Intelligence to receive scheduled emails

ObjectScript Package Manager by Evgeny Shvarov

Package Manager for InterSystems IRIS

0
0 219
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 David Crawford · Jul 26, 2019 3m read

Hello community! I have to work with queries using all kinds of methods like embedded sql and class queries. But my favorite is dynamic sql, simply because of how easy it is to manipulate them at runtime. The downside to writing a lot of these is the maintenance of the code and interacting with the output in a meaningful way. In an effort to have as much dynamism as possible so that we're not rewriting code constantly, and so that we have as little code possible (while still making sense and getting the job done), I made a function that takes in any dynamic query and outputs a dynamic object.

7
2 1263
Article Rubens Silva · Jul 25, 2019 2m read

Hello everyone, it took some time but I'm finally getting things done again. Phew! But for now, allow me to introduce a tool that I've been using frequently.

I call it Forgery.

This description has been taken from my GitHub repository, also available on OpenExchange:

Forgery is a server-side utility that allows executing simulated HTTP request by forging calls to REST applications. This makes Forgery ideal for using together with test suites that need to call the API via HTTP but could face issues with license usage and its grace period.

0
2 469
Article Murray Oldfield · Jul 24, 2019 1m read

Available at:

https://hub.docker.com/r/yape/yape/

$ docker container run --rm -v "$(pwd)":/data yape/yape --version
yape 2.2.6

See the readme at:

https://github.com/murrayo/yape


Changes include:

  • Reinstate config file, make some more changes to smarter x and y axis.
  • Update line style choices in config file.
  • Solve for yyyy dates and yy dates or bail out. Make date string consistent for windows title (drop decimal places), add short day to title. 
  • Increase decimal precision for y axis less than 10, eg for windows sec/read is seconds not ms like linux
  • Some minor fixes after update python libraries.
0
0 574
Announcement John Murray · Apr 1, 2019

We at George James Software are pleased to announce that our acclaimed code debugger and editorSerenji is now available as a Visual Studio Code extension.

As well as supporting the latest InterSystems IRIS platform Serenji also works with earlier platforms, including versions lacking the server-side Atelier API support required by other VS Code extensions.

Serenji connects you directly to the code in your namespaces, resulting in an experience more familiar to existing Studio users. No need to export and import classes and routines.

We believe Serenji is the first extension to bring VS Code's powerful debugging features to ObjectScript developers.

13
3 1430
Announcement Evgeny Shvarov · Jul 7, 2019

Hi Community!

This is the update on what are the new applications submitted on OpenExchange in June 2019!

New Applications

Example Backup Task published by @Sergey Mikhailenko

Sample database backup copying task with prior deletion of outdated copies

A more useful Object Dump published by @Robert Cemper

This small helper class allows you to dump an object to terminal or
e.g in background to some stream for later review.

Samples BI published by @Evgeny Shvarov on behalf of InterSystems

This is a technology example of InterSystems Business Analytics tool with Cubes, Pivots, MDX Queries and Dashboards. The Sample is  formerly known as "Holefoods "

Interjob communication Demo published by @Robert Cemper

It's internal variant of PIPE

2
0 238
Article Guillaume Rongier · Jul 4, 2019 1m read

Has you may know, EnsDemo from Ensemble are not available anymore on IRIS.

This is a good thing, Iris is cloud oriented, it must be light, fast. Now the new way of sharing samples or modules is through git, continuous integration and OpenExchange.

But, in some cases you want to go back to your good old samples from EnsDemo to get inspiration or best practices.

Good news, there is a git for that :

How to use it ?

Clone this repository

git clone https://github.com/grongierisc/InstallEnsDemoLite.git

And run install.sh

1
3 1283
Announcement Evgeny Shvarov · Jun 6, 2019

Hi Community!

This is the update on what are the new applications submitted on OpenExchange in May 2019

New Applications

Background Jobs over ECP published by @Robert Cemper

An internal variant of a PIPE

Simple Remote Server Control published by @Robert Cemper

Simple monitoring of several servers at a lightweight level

iris-nodejs-101  published by @David Reche 

This application demo a REST API build in node.js able to receive HTTP GET, POST and DELETE of custom JSON 

Sea Battle  published by @Evgeny Shvarov

Simple terminal game an approach to "Sea Battle". Example of simple ObjectScript method calls and terminal interaction The code is an ObjectScript remake of Python example in CodeAcademy

PHP-module for Caché published by @Sergey Kamenev 

This is PHP-module for InterSystems Caché. In current moment module works only locally, on same server where running Caché. Module has excelence speed because uses c-callin interface for access to DB.

PHP-module for IRIS published by  @Sergey Kamenev 

This is PHP-module for InterSystems IRIS. In current moment module works only locally, on same server where running IRIS or Caché. Module has excelence speed because uses c-callin interface for access to DB.

TSQL Checkers v.1.0.0 published by @Anton Umnikov 

Demonstration of TSQL support in InterSystems IRIS. Checkers game

isclib v.2.1.0 published by @Kyle Michel 

Go library for interacting with InterSystems Corporation products like Cache and Ensemble<--break->

0
0 324
Article Sergey Kamenev · May 23, 2019 9m read

PHP, from the beginning of its time, is renowned (and criticized) for supporting integration with a lot of libraries, as well as with almost all the DB existing on the market. However, for some mysterious reasons, it did not support hierarchical databases on the globals.

Globals are structures for storing hierarchical information. They are somewhat similar to key-value database with the only difference being that the key can be multi-level:

1
3 1042
Question Stephen De Gabrielle · May 22, 2019

Hi, 

The app of the week is the 'ObjectScript Visual Editor'. 

It looks interesting but the GitHub ownload link[1] given on the InterSystems ObjectScript Visual Editor Open Exchange page[2] fails. 

[1] https://github.com/intersystems-ru/objectscript-visual-editor/releases 

[2] https://openexchange.intersystems.com/package/ObjectScript-Visual-Editor

Does anyone know the github url for download?

@Nikita Savchenko 

4
0 403
Announcement Evgeny Shvarov · May 6, 2019

Hi Community!

This is the update on what are the new applications submitted on OpenExchange in April 2019

New Applications

Arduino Snippets published by @Eduard Lebedyuk 

Connect your Arduino to InterSystems IRIS or Caché via com port (or usb<->com)

Japanese Calendar published by @Hiroshi Sato 

Japanese Calendar Converter for InterSystems products

Cache Quality for Atelier published by @Daniel Tamajon 

IDE extension that helps you detect and fix quality issues as you write code. Like a spell checker, this extension squiggles flaws so they can be fixed before committing code. You can install it directly from Atelier and it will then detect new bugs and quality issues as you code (ObjectScript and JavaScript).

ETL Interoperability Adapter published by @Guillaume Rongier

Extend EnsLib.SQL.OutboundAdapter to add batch batch and fetch support on JDBC connection for Ensemble and IRIS.

R Gateway published by Shiao Bing Sung

Use R language with InterSystems IRIS

The Folding Staff published by  @John Murray 

'The Folding Stuff' is a simple VSCode extension that adds Visual Studio Code's existing code folding / unfolding features to the editor context menu.<--break->

0
0 254
Announcement Evgeny Shvarov · Apr 6, 2019

Hi Community!

This is the update on what are the new applications submitted on OpenExchange in March 2019

New Applications

isc-tar  published by @Dmitry Maslennikov 

Compact files as TAR or Extract files from TAR files

Light weight EXCEL download v.1.0 published by @Robert Cemper 

This is the working example of a light weight export to EXCEL based on data in SAMPLES namespace. Good old CSP is well equipped to produce HTML tables accepted from EXCEL as input. With modern Browsers you don't even need and tags. So the required code around your SQL result set is really slim. And you are free to add any formatting you need either by HTML or in SQL.

PythonGateway v.0.7 published by @Eduard Lebedyuk 

Python Gateway for InterSystems Data Platforms.

Adopted Bitmaps v.1.0 published by @Robert Cemper 

This is a running example of the Bitmap Adoption

WebSockets Tutorial v.1.0 published by @Lily Taub 

A short tutorial on WebSockets in InterSystems IRIS 2018.1+ and Caché 2016.2+

Sync Data with DSTIME v.1.0.0 published by @Robert Cemper

Other Sync-Tools just work from Caché/IRIS to Caché/IRIS. Synchronizing your data to some external DB you requires some other solution. DSTIME can do it.

HL7 and SMS Interoperability Demo v.1.3 published by @Amir Samary 

This demo shows how easy it is to integrate an Electronic Medical Record system that is sending HL7 messages with AWS.

0
0 257