Article
Dmitrii Kuznetsov · Feb 15, 2021 17m read
Four Database APIs

A concurrent session in IRIS:
SQL, Objects, REST, and GraphQL
 

Kazimir Malevich, "Athletes" (1932)
 

"But of course you don't understand! How can a person who has always traveled in a horse-drawn carriage understand the feelings and impressions of the express traveler or the pilot in the air?"

Kazimir Malevich (1916)

Introduction

We’ve already addressed the topic of why object/type representation is superior to SQL for implementing subject area models. And those conclusions and facts are as true now as they have ever been. So why should we take a step back and discuss technologies that drag abstractions back to the global level, where they had been in the pre-object and pre-type era? Why should we encourage the use of spaghetti code, which results in bugs that are hard to track down, and which relies only on virtuoso developer skills? 

There are several arguments in favor of transmitting data via SQL/REST/GraphQL-based APIs as opposed to representing them as types/objects:

40
1 1 164

Hi,

So I am a front end developer working with REST API with Cache database on the BE. The BE guys are currently using Cache through a Windows virtual machine and they claim it is not possible to have a development server to work with. All the work they are doing is directly on the production server and changes are immediate and I think this is a bad idea going forward and we most definitely need a development server that has access to the same code base and different version (through git) to be able to do development. We also do all the testing on this production server with test accounts, but we cannot do automated testing with this setup.

00
0 11 149
Article
Robert Cemper · Feb 16, 2021 2m read
FOREACH for ObjectScript

As you know ObjectScript has no FOREACH system command nor system function.
But it has a wide room for creativity.

The task is to loop over a global or local array and do something FOR EACH element.

There are 2 possible solutions:
- creating a macro that generates the required code sequences
- creating an Extended Command to perform the action.

10
0 3 136

Since some months ago we automatized source code analysis for projects on Github, so anyone with an open source project can have its code analyzed with no cost.

You only need to create the file ".github/workflows/objectscript-quality.yml" in your project with following contents:

10
1 5 125

We are a multi-state Health Information Network seeking experienced integration analysts for immediate, full time positions. Currently these positions are 100% remote. Excellent benefits.

Ideal candidates will have extensive experience with InterSystems HealthShare, experience with Amazon Web Services, HL7 v2 & v3, and IHE ITI profiles. Rhapsody or other integration engine experience is a plus. We are seeking confident, motivated individuals with strong communication skills and the ability to engage directly with a variety of healthcare stakeholders.

10
0 0 124

As a Belgian leader in developing and operating entertainment solutions in the sports betting and casino games sector, Bingoal is a dynamic and ambitious company looking for a passionate Back-End Software Engineer. Together with the IT team, you will be working to create scalable and easy to maintain software having an impact on the core of Bingoal’s activity.

20
0 0 117

Hi Developers, 

We are pleased to introduce new 🎁rewards on Global Masters available for advocates of the Specialist level and above:

➡️ PRE-ORDER for Raspberry Pi 4 8GB + InterSystems IRIS Community Image Set

The set includes: MicroSD Card 64GB with Ubuntu 18.04 64 bit + Docker + InterSystems IRIS Community Image, Raspberry Pi 4 8GB, Red-white case.

 

40
0 4 115
Article
Chris Stewart · Feb 18, 2021 2m read
Basic JSON Compare

Hi Dev Community

I thought i would share a little method I knocked together to traverse and compare 2 JSON objects for basic equivilance.   I'm currently working on some data migration, and wanted a basic sanity check to validate that the JSON output is basically equivliant between the old and new, excluding a few things like timestamps.  

It's a basic little recurvsive method, that will bubble up any differences over a nested structure.   It's very low tech, as that's all I need it to do, but I thought it might be useful for others?

10
0 5 113

Hi,

We a currently looking at a way of securing any future REST API's using OAuth2, where the Authorisation Server (OAuth2) and Resource Server would be on the same server.

However, as we have mirrored environment the Resource Server, and therefore the Authorisation Server, need work with a Virtual IP Address and be able to failover to either of the mirror member servers.

Is that possible with OAuth2 and if so what are the best practices for this?

Any advise or guidance much appreciated.

Thank you.

00
0 6 108

Hi Developers!

Here're the technology bonuses for the InterSystems Grand Prix Contest that will give you extra points in the voting.

Group Bonus Points
General Docker 2
ZPM 2
Unit Testing 2
API and languages REST API 2
ODBC/JDBC 2
Embedded Python usage 4
Native API in Java, Python, .NET, node.js 3
Multi-model Globals (key-value) 2
SQL 2
Object 2
New model 3
Analytics IRIS BI 2
IRIS NLP 2
InterSystems Reports 3
AI/ML Integrated ML 4
Python or Julia Gateway 3
Interoperability BPL 3
Custom Adapter 2
PEX 4
Workflow Engine 2
FHIR FHIR Server REST API 3
FHIR SQL Scheme usage 2
Healthcare Data Transformations 3
Total   58

Below are the details and useful links on all the technical bonuses.

10
0 1 107

Hi everybody,

Is there any functionality I could use that triggers real time user-defined code on certain audit events? Right now I am interested in triggering such code on a routine modification event, like the one below. I do know how to access this record programmatically, via %SYS.Audit.

Thanks in advance,
Anna

10
0 8 102

We are getting more and more request wondering if we could send/receive data via HTTPS to the outside world from within our Hospital Network. As you can imagine our Ensemble/Cache productions are not exposed to the DMZ or has access outside of the network. We only communicate with external vendors through a VPN, so communicating not using a VPN is rather new to us.

Currently there is a project to get rid of using Proxy, and instead of through a Load Balancer that can use rules to filter out traffic, which adds another layer of complexity.

10
0 3 100

Hello everyone,

I have an issue with using "Open" function.

My goal is to execute a shell script with parameters like as:

/trak/FRXX/config/shells/transportIDE.sh "login|password|NOMUSUEL|PRENOM|NOMDENAISSANCE|1234567891320|199999999999999999999999|09%2099%2099%2099%2099|31%2F12%2F1999|242%20IMPASSE%20DES%20MACHINCHOOOOOOOOSE%20||99999|SAINT%20BIDULETRUC%20DE%20MACHINCHOSE|isc%24jhu|123456|123456798"" 2>&1"

But when some parameters are too long, I have a <NAMEADD> error.

00
0 4 96

Hi,

When wanting to use VS-Code for server-side editing.. - In VS-code I can right click on a server item (eg a class) to see a set of menu options including 'Server Source Control... ' and 'Server Command Menu...' at the bottom.

I noticed that these options are somewhat connected to my server-side source control hooks class that inherits from %Studio.SourceControl.Base, however, I am seeing different behavior between my custom subclass of this, and, the provided %Atelier.SourceControl subclass.

10
0 1 95

Hi Community,

We're pleased to invite you to the online meetup with the winners of the InterSystems Multi-Model Contest!

Date & Time: Friday, Febraury 5, 2021 – 10:00 EDT

What awaits you at this virtual Meetup? 

  • Our winners' bios.
  • Short demos on their applications.
  • An open discussion about technologies being used, bonuses, questions. Plans for the next contests.

10
0 2 93

Hi developers!

Recently we announced the preview of Embedded Python technology in InterSystems IRIS.

Check the Sneak Peak video by @Bob Kuszewski.

Embedded python gives the option to load and run python code in the InterSystems IRIS server. You can either use library modules from Python pip, like numpy, pandas, etc, or you can write your own python modules in the form of standalone py files.

So once you are happy with the development phase of the IRIS Embedded Python solution there is another very important question of how the solution could be deployed.

One of the options you can consider is using the ZPM Package manager which is described in this article.

20
0 5 93

Hi,

I have a PV1 repeating field that can contain multiple or a single value. I'd like to always pull the last value in the field but am not sure how to configure this in my DTL.

The repeating field is in PV1:50().1

Could somebody shed some light on this?

 

Examples:

|15081942~15081951~15108961~15280550|

|15081947|

|15081939~15081940|

 

Thanks

00
0 5 90