Article Nick Zhokhov · Sep 16, 2017 7m read

Some key points are emphasized in this article in order to save your time to get linux ldap client in cache working with windows AD (active directory) LDAP server. The first thing to do is to get successful TLS connection to windows AD. Raw tcp case is beyond of this article, there is no problem with it, it is trivial. Windows ldap server uses port 636 for tls and this port can be used to get ldap certificate. As we will see later there is reason for this. linux ldap client uses STARTTLS special ldap extension to switch plain tcp to TLS only.
Hence, connection should use port 389.

2
1 2767
Question Jeffrey Drumm · Jan 22, 2018

I'm looking for a way to get the message header ID for the current message in a Request to a Business Process.

I've located some code that gives me what I need, but it runs the risk of violating the "abstraction layer" ISC has in place around such things. And while I very much appreciate their efforts at keeping things simple for me ... well, sometimes you just have to dig through the guts to get what you want.

Is there a documented, deprecation-resistant method for getting at %Ensemble("%Process").%PrimaryRequestHeader.%Id() from within a  BP?

6
0 1167
Article Yuri Marx · Feb 4, 2021 6m read

Gartner defined DataOps as: "A collaborative data management practice focused on improving the communication, integration and automation of data flows between data managers and data consumers across an organization. The goal of DataOps is to deliver value faster by creating predictable delivery and change management of data, data models and related artifacts. DataOps uses technology to automate the design, deployment and management of data delivery with appropriate levels of governance, and it uses metadata to improve the usability and value of data in a dynamic environment.

1
2 778
Article Dmitrii Kuznetsov · Feb 15, 2021 17m read

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:

2
4 1252
Question Sebastian Thiele · Jun 6, 2021

Hi,

is it possible to avoid the display of certain properties in a custom message class in the message viewer content section. The message class is a common Ens.Request with a bunch of properties alongside one property of Type enslib.dicom.document wich in Turn is Not extended By %XML.Adaptor so the content display of course displays an error. 

My idea is to avoid the display of That certain property When output is rendered (Text/XML). Using Ens.Util.MessageBodyMethods and method %OnShowContents could be a way to do this But i don‘t find a way to do so.

2
0 277
Question Lori Fassman · Jun 4, 2021

(2021.1.0 isn't an option in the Product dropdown, but that's the version of HS I'm asking about!)

In the past I've used HS.Util.Installer.InstallBusDemo() to set up a local HealthShare environment (registry, edges, access gateway, etc.)  I don't see an equivalent in HealthShare 2021.1.  I tried importing the bits and pieces from a lower version but always seem to be missing something.  Is there an equivalent utility to do a local setup in HS 2021.1?

Thanks,

Lori

2
0 407
Announcement Anastasia Dyubaylo · May 31, 2021

Hey Developers,

We decided to extend the registration period for the InterSystems FHIR Accelerator Programming Contest and voting will start only on Thursday, June 3! The voting period will last until Sunday, June 6.

So, don't forget to support the best solutions built using the InterSystems IRIS FHIR Accelerator Service (FHIRaaS) on AWS.

➡️ Vote here from June 3rd to June 6th!

How to vote and what's new?

3
0 378
Article Dmitry Maslennikov · Jun 5, 2021 2m read

Google has one intersting tool named Data Studio. This tool allows creating some interactive dashboards, based on your data, available from the internet. It already offers hundreds of connectors to any sort of data developed by the community. As well as some amount of community developed visualizing. And most importantly, Google offers a way to develop your own connector to your data. 

FHIRaaS provides a REST API, and it's available from the internet. So I've decided to try to create some basic report on data stored there. And in the end, I got this.

0
2 390
Article José Pereira · Jun 5, 2021 6m read

Introduction

In the first article, a simple tutorial helped you to set up your FHIRaaS deployment.

Now, let's move forward and introduce a JS library to access the FHIR resource.

In the end, two examples of usage of this library will be presented, exploring the Appointment FHIR resource type.

SMART on FHIR JavaScript Library

FHIR is a REST API, so you can use any HTTP client in order to use it. But, it’s always a good idea to have help.

Furthermore, there is a cool initiative called SMART which aims to provide standards for easy access to health data stored over health systems.

0
0 1650
Article José Pereira · Jun 5, 2021 8m read

Introduction

This article aims to provide an overview of InterSystems IRIS FHIR Accelerator Service (FHIRaaS) driven by the implementation of application iris-on-fhir, available in OEX developed for the FHIRaaS contest.

A basic tutorial will guide you in configuring a function FHIRaaS deployment, including an API key and an OAuth 2.0 server.

A library to use FHIR resources through FHIRaaS also is briefly discussed.

Finally, some features of the iris-on-fhir application are shown in separted articles. You can check out the full code at the application’s github repository.

0
0 516
Question Tim Stowe · Jun 4, 2021

I'm probably missing something really basic here -

  • I spun up a copy of the Iris community edition AMI.  
  • Added Objectscript extension to vscode
  • Added objectscript extension pack to vscode
  • Added server manager to vscode
  • Connected to iris AWS instance using PuTTY
  • Changed password
  • in vscode, I used server tool to add the server

It seems to connect OK; I can see the %SYS and USER namespaces.  I clicked the "edit code in namespace" button and created a bit of hello world code.  However, when I try to save it, I get "failed to save file 'filename.mac' on the server.

1
0 403
Question Eduard Lebedyuk · Jun 4, 2021

Is there a way to add/substract from a pivot variable?

I have this MDX:

SELECT
  NON EMPTY [DateOfSale].[Actual].[YearSold].&[$variable.Year] ON 0,
  NON EMPTY [Product].[P1].[Product Name].Members ON 1
FROM [HOLEFOODS]

And with pivot variable Year equal to, say, 2016 it works:

 

Now I want to add previous year  first with one pivot variable and one explicit reference. It also works:

SELECT
  NON EMPTY
  {
    [DateOfSale].[Actual].[YearSold].&[$variable.Year],
    [DateOfSale].[Actual].[YearSold].&[2015]
  } ON 0,
  NON EMPTY [Product].[P1].[Product Name].
3
0 224
Article Eduard Lebedyuk · Aug 7, 2020 5m read

In this article, I will show how you can easily containerize  .Net/Java Gateways.

For our example, we will develop an Integration with Apache Kafka.

And to interoperate with Java/.Net code we will use PEX .

 

Architecture

Our solution will run completely in docker and look like this:

 

 

Java Gateway

First of all, let's develop Java Operation to send messages into Kafka. The code can be written in your IDE of choice and it can look like this.

In short:

  • To develop new PEX Business Operation we need to implement  abstract com.intersystems.enslib.pex.
7
1 1477
Article Jose-Tomas Salvador · Apr 8, 2020 6m read

This time I want to talk about something not specific to InterSystems IRIS, but that I think is important if you want to work with Docker and your server at work is a PC or laptop with Windows 10 Pro or Enterprise.

As you likely know, containers technology comes basically from Linux world and, nowadays, is on Linux hosts were it shows maximum potential. Those who use Windows on a normal basis see that both, Microsoft and Docker, have done important efforts during these last years that allow us to run containers based on Linux images on our Windows system in a really easy way... but it's something not supported for production systems and, this is the big problem, is not reliable if we want to keep persistent data outside of containers, in the host system,... mostly due to the big differences between Windows and Linux file systems. In the end, Docker for Windows itself uses a small linux virtual machine (MobiLinux) to run the containers... it does it transparently for the windows user... and it works perfectly well if, as I said, you don't require that your databases survive longer than the container...

Well,...let's get to the point,... the point is that many times, to avoid issues and simplify, we need a full Linux system and, if our server is based on Windows, the only way of having it is through a virtual machine. At least till WSL2 in Windows is released, but that will be another story and sure it'll take a bit of time to become robust enough.

In this article, I'll tell you, step by step, how to install an environment where you'll be able to work, if you need it, with Docker containers on an Ubuntu system in your Windows server. Let's go...

11
3 29884
Question Nicky Zhu · Jun 3, 2021

Hi guys,

How can we remove a business host from a running production?

I've read and tested how to add it to a production, while when I try to remove it from the production with the following codes:

 

   

Set tSC = $$$OK
    Set prodName = "CDRDemo.DemoProduction"
    Set confName = "TEST1"
    Set className = "Demo.LISClient.Operation.PatientOperation"
    #Dim prodConf As Ens.Config.Production = ##class(Ens.Config.Production).%OpenId(prodName)
    Set itemId = ""
    &SQL(Select ID into :itemId from Ens_Config.
1
0 301
Question Jeffrey Drumm · Jun 2, 2021

I've poked through the class documentation and globals and I can't seem to find what I'm looking for, namely a mechanism that will give me the PropName key and value for each of the Items in an EnsLib.HL7.SearchTable definition. Is there some sort of query that will turn the list of Items in the XData SearchSpec section into a key/value pair of some sort?

For example:

<Items>
<Item DocType=""  PropName="MSHTypeName" Unselective="true">{1:9.1}_"_"_{1:9.
1
0 325
Question Jeffrey Drumm · Jun 1, 2021

I've been tasked with an interface that needs to supply some additional metadata for the indexing of HL7v2 messages. After toying with a couple of ideas, I thought that it would be useful to subclass EnsLib.HL7.Message, add a %DynamicObject property, and store the metadata in it (it ends up getting sent to the target in JSON form anyway).

And, well, it seems to work just fine ... so far.

I seem to remember that %DynamicObjects are not persistent, and for that reason not something you would normally stuff into a database.

4
0 1166
Article Katherine Reid · Dec 6, 2016 7m read

When using Studio, ODBC or a terminal connection to Caché or Ensemble, you may have wondered how to secure the connection. One option is to add TLS (aka SSL) to your connection. The Caché client applications - TELNET, ODBC and Studio - all understand how to add TLS to the connection. They just need to be configured to do it.

Configuring these clients is easier in 2015.1 and later. I'm going to be discussing this new method. If you're already using the old, legacy method, it will continue to work, but I would recommend you consider switching to the new one.

7
4 6251