· Oct 1, 2021

InterSystems Open Exchange September 2021 Digest

Hey Developers! Here is a digest of new solutions and applications submitted to the InterSystems Open Exchange in September 2021.
General stats:
21 new apps
507 published apps in total
603 downloads in September
1338 developers joined

New applications (21)
AlertDashboard by John Pan
Use DeepSee to create a dashboard to show abnormal conditions of Production operation.
pop-song-analytics by Henry Hamon Pereira
Pop Songs analytics from the last decades
This is an analytic app for OKR - Objective and Key Results
iris-analytics-for-money by Oliver Wilms
IRIS Analytics solution for money (not yet)
promjet-stats by Evgeniy Potapov
Statistics from site compared to Yandex.Metrika statistics
ERP Plenum by Jose Sampaio
Now have a unified information for managing your business!
iris-analytics-datastudio by Dmitry Maslennikov
Google DataStudio connector to InterSystems IRIS Analytics (DeepSee)
Med-Sync: HackMIT 2021 by Rohan Mehta
Revolutionizing blood glucose tracking
Beez-Woman-Menstrual-Tracker by Katie Le
A one-stop-shop for tracking women's reproductive health
FHIRDemoWithAPIKey by Patrick Jamieson
Simple FHIR application to retrieve patients and observations
FHIROktaIntegration by Patrick Jamieson
Example FHIR application that uses OAuth 2.0 and Okta.
MedTracker by Nicolas Camenisch
Medication tracking and drug identification
config-copy by Lorenzo Scalese
Helper to copy the config from an IRIS instance to another
Maternal Assistant by James Zhang
We built a solution for maternal physicians in South Africa to quickly and effectively conduct their examinations (5th place InterSystems winner)
OMNI-Lab by Alex Anderson
OMNI-Lab is a full featured multi-lab LIMS solution
csv2table by Evgeny Shvarov
Example on how to import CSV to any existing table
PKI-Script by Lorenzo Scalese
IRIS Public Key Infrastructure helper
Unqork by Elena G
No-code platform for enterprise
OncoSNIPER by Elena G
Discover new therapeutic targets and biomarkers
Contrast&Care by Elena G
Management solution for contrast product injections
Fhirgure by Joey Koh
Helping neurodiverse employees at book medical appointments.
New releases (14)
AnalyzeThis by Peter Steiwer

Fixing ZPM version

DeepSeeWeb by Anton Gnibeda
  • added support for sharing linked widgets (#214)
  • fixed map popup positioning issue (#213)
  • fixed map popup drill up issue (#213)
  • fullscreen button hidden on shared widgets (#211)
  • added "noheader" URL parameter for shared widgets, eg. "&noheader=1" (#211)
  • added "datasource" URL parameter for shared widgets, parameter value should be escaped. eg. "&datasource=map%2Frayon_5weights.pivot" (#210)
  • added "drilldown" URL parameter for shared widgets, containing all paths separated by "~" character, parameter value should be escaped (#208)
  • added "variables" URL parameter for shared widgets, eg. "&variables=selectedPeriod.105~testVariable.100" (#212)
  • now "drilldown" url parameter changed while drilling on shared widget (#209)
  • now "FILTERS" url parameter changed while filtering on shared widget (#209)
  • fixed coloring of treemap and pie charts (#198)
  • fixed linked widget in samples-bi. actual issue was: "no overrides for combo chart" (#196)
  • added support for sharing drill levels sharing widget
  • added data property "popupProperty" for map, to define which value show in popup
  • fixed issue with linked inline widgets(widgets on tiles)
  • version bump (no changes)
  • added event passing to parent window via dsw object for shared widgets. Now shared widgets can pass drill and filter events to parent window
// Define dsw object in window using this interface:
export interface IDSW {
    onFilter: (e: IWidgetEvent) => void;
    onDrill: (e: IWidgetEvent) => void;
// Widget event
export interface IWidgetEvent {
    index: number;
    windget: IWidgetInfo;
    drills?: IWidgetDrill[];
    filters?: string;
// Example:
window.dsw = {
    onDrill: (data) => {
         // handle drill event here
    onFilter: (data) => {
         // handle filter event here
  • fixed issue with setting current value of choose data source control if running as shared widget
  • now datasource url parameter changed while changing datasource on shared widget
  • added tooltipProperty data property for map widget to define custom tooltips
  • added support for html in map tooltips
  • added communication with parent window using postMessage to avoid cross-domain restrictions:
// Extended interface for widget event
export interface IWidgetEvent {
    type: WidgetEventType;
    index: number;
    widget: IWidgetInfo;
    drills?: IWidgetDrill[];
    filters?: string;
    datasource?: string;

// Example
window.addEventListener('message', e => {
    const event = as IWidgetEvent;
    switch (event.type) {
        case 'drill':
            // code ... 
        case 'filter': 
            // code ... 
        case 'datasource': 
            // code ... 
  • fixed issue with double request of widgets with custom data source
  • for small shared widgets, mobile pager(from responsive design) now hidden
  • fixed issue with button icons on pie chart if DSW hosted not in root (#219)

Config-API by Lorenzo Scalese

Add mirroring configuration support.


Enhancement : export configuration.


Fix export config to file

Serenji by John Murray
  • Debugging
    • Option to break on error when a handler exists (Try/Catch, $ETRAP or $ZTRAP).
    • Display WRITE command output when debugging.
    • Support configurationless debugging. If your workspace root folders already contain a launch.json file in the .vscode folder you will be prompted to delete it on first use.
    • Support running without debugging.
    • Make the 'Pause' button work.
    • Offer 'Run' and 'Debug' CodeLenses above each classmethod. Settings (e.g. "serenji.codeLenses.debug.cls": false) allow these to be hidden per file type.
    • Contribute 'Run' and 'Debug' options to editor command button.
    • Use dynamic configurations to leverage VS Code's support for multiple concurrent debug sessions and consoles.
    • Improve prompting for entrypoint and arguments when starting to debug a classmethod / procedure / subroutine / extrinsic function.
    • Return focus to class or MAC document after debugging through its INT code.
    • Add helptext and commands to empty Debug view.
    • Pre-fill namespace selector where possible when launching debugging.
    • Include namespaces using remote databases in namespace selector.
    • Use server's connectTimeout setting during debug connect.
    • Add command for requesting a debug license.
    • Improve messages when debug license is needed.
    • Make 'Never' option on debug license dialog work properly.
    • Fix double-encoded debug license request email link bug.
  • Add walkthrough to Welcome page.
  • Add guidance to empty Explorer view.
  • Contribute commands to Remote Indicator (left end of status bar).
  • Coexist better with other ObjectScript extensions.
  • Add Serenji commands to InterSystems Server Manager tree's namespaces.
  • Add Explorer context menu option for adding Serenji folder to workspace.
  • Add new folder to end of workspace rather than start.
  • Use a different background for read-only documents when not debugging. Customizable as serenji.readonly.background, for example: json { "workbench.colorCustomizations": { "serenji.readonly.background": "#FF000020" } }
  • Improve how filepaths are displayed.
  • Respect other server-side source control classes as well as Deltanji's.
  • Fix error that reported an undefined 'folders' variable.
  • Fix rare issue that caused an ECONNREFUSED error.
  • Add dataTimeout setting and default it to 20 seconds.
  • Add option to ignore warning about mismatch between client and server versions.
  • Add dependency on the georgejames.gjlocate extension.
  • Update dependent packages.
  • Embedded Deltanji Solo changes:
    • Fix full-type Change Request diff in Beyond Compare fetching wrong versions for Previous folder.
    • Correct searching for all-numeric Change Requests.
    • Support simplified Locations & Routes diagrams.

JSON2Persistent by Michael Braam


Kano MDM by Ludmyla Valerko

New logo

CubeEventMonitor by Samuel Duncan
  • add email alert if cube registry fails validation
  • correct bug in BuildErrors class storage definition

DBeaver by Serge Rider
  • Forward engineering in entity diagrams (ERD) was added
  • Database tasks can be organised in folders now
  • Schema compare in DBeaver supports Liquibase Pro features
  • SSH jump servers support was added
  • Navigator mode “Show all tables in a single list” was added
  • Visual query builder: cross joins support and extra configuration options were added
  • SQL editor: output and log panels UI was improved, script variables panel was added
  • Data editor:
    • Multi-row record mode support was added
    • Row coloring supports LIKE and REGEX conditions now
    • A lot of minor interface improvements were added
  • Data transfer:
    • Data export from document databases to flat files was improved
    • Multiple improvements in column mappings
    • Configuration for performance tuning was added

Top 10 downloads of the month

Top 10 downloads of all time

Discussion (0)0
Log in or sign up to continue