Announcement Anastasia Dyubaylo · Sep 29, 2022

Hello and welcome to the Developer Ecosystem Summer News!

This summer was full of exciting events and activities in the InterSystems Developer Ecosystem. In case you missed something, we've prepared for you a selection of the hottest news and topics to read!

For your convenience, here we gathered everything worth noting that happened this last season at a glance. Read on!

2
0 403
Article Alberto Fuentes · Sep 30, 2022 1m read

Hi developers!

Maybe you have to implement scenarios that don't require a FHIR repository, but forwarding FHIR requests, manage the responses and maybe run transformations or extract some values in between. Here you will find some examples that can be implemented using InterSystems IRIS For Health o HealthShare Health Connect.

In these examples I've used interoperability productions with FHIR Interoperability Adapter and HS.FHIRServer.Interop.Request messages.

First scenario build a FHIR requests from scratch (it could be from a file, or a SQL query) and then send it to an external FHIR service.

0
1 609
Article Guillaume Rongier · Sep 30, 2022 8m read

grpc-iris-interop

The aim of this proof of concept is to show how the gRPC protocl can be implemented with the IRIS ineroperabilty module.

architecture

image

On this schema, we can see that the gRPC Service is hosted by IRIS.

This service must invoke the IRIS interoperability module. For that it transforms the protobuf messages to IRIS messages.

The gRPC client is host by a Flask server for demo purpose, the gRPC client can also be invoke by the python script.

definition of each file

users.proto

syntax = "proto3";
package users;

service Users {
  rpc CreateUser (users.CreateUserRequest) returns (users.
0
1 712
Question Lionel Woods · Sep 12, 2022

Am trying to create a custom ACK to return to sending system as it does not accept standard 2.3:ACK, want to send the below:

Set pResponse=##class(EnsLib.HL7.Message).%New()
Set pResponse.DocType="2.4:ACK"
Set MSHStr="MSH|^~\&|EnsembleHL7|ISC|ARiM Server|ROWA|"_$REPLACE($REPLACE($ZDATETIME($HOROLOG,8,1),":",""), " ","")_"||ACK|"_pRequest.GetValueAt("MSH:10")_"|P|2.3"
Set MSHSeg=##class(EnsLib.HL7.Segment).ImportFromString(MSHStr,.tSC,pRequest.Separators)
Set MSAStr="MSA|AA|"_pRequest.GetValueAt("MSH:10")
Set MSASeg=##class(EnsLib.HL7.Segment).ImportFromString(MSAStr,.tSC,pRequest.

9
2 634
InterSystems Official Fabiano Sanches · Sep 29, 2022

This is the eighth in a series of releases that are part of the developer preview program for 2022.2 Future preview releases are expected to be updated biweekly and we will add features as they are ready.  Many updates, fixes and enhancements  have been added in 2022.2, in SQL management, cloud integration, Kafka and JMS adapters, the SQL Loader, and other areas. Please share your feedback through the Developer Community so we can build a better product together.

0
0 343
Question Yone Moreno · Sep 29, 2022

Good morning,

We would like to share with you a doubt, and we would appreciate if you could read and answer us.

Currently we have a file titled: "Imagen PatientID 9358340 PatientName Milagros ReasonForStudy 350290 InstitutionName 350290  StudyDate 20220927.xml" , in which we have the following InstitutionName:

    <DicomAttribute keyword="InstitutionName" tag="00080080" vr="LO">
        <Value number="1">350290</Value>
    </DicomAttribute>

Once we generate the DICOM file using the command  from the tool named "xml2dcm" inside the DICOM simulator package dcm4che:

.

0
0 274
Question prashanth ponugoti · Sep 28, 2022

Hi Firneds

I have few odscodes in Lookup table named "AllowLT" .

Now I need to continue if I found value in lookup table or stop it. For that I have colleting the value form lookup table for input HL7 message OBR:21  value.

I know if found in lookup table it will return 1 or 0 . If not found what it will return below line? to return 0 in case , given key not available in lookup table , what I need to write?

Set isallowed = ##CLASS(Ens.Util.FunctionSet).Lookup("AllowLT", pRequest.GetValueAt("OBR:21"))

if isallowed=1

{

}

else

{

}

3
0 454
Job Shiv Prasad Raas Infotek · Sep 28, 2022
Hi 
 
Hope You are doing well |

We have an urgent below position .If you are interested please share your updated resume with the rate expectation..

Job Title: Integration Developer OR  Business Analyst with IRIS/Ensemble (Intersystems) 

Location:Remote

Job Description:

Mandatory Skills HL7 (Health Level Standard), Intersystems IRIS/Ensemble, VISIO

The Role will be involved in health care applications Sysadmin & Break-fix, Minor Enhancements and Interface

0
0 578
Question Fabio Care · Sep 28, 2022

Hello, 

First the question then the background:

Can you increase the amount of read operations that are being performed simulatiously to the hard drive where the cache.dat file is located.

Alternatively: Can you increase the amount that is being read with every operation? 

Background:
The database is setup with 8k blocks of data that are being read. I'm currently struggeling with a bottleneck concerning the read operations from a disk.

I'm assuming this based on the fact that the same routines when run twice in row perform vastly different.

3
0 370
Question Julian Matthews · Sep 28, 2022

Hi all.

I have setup a HL7 Operation using the HTTP adapter, and I'm getting what seems to me as an unusual response. When sending a sample message to the operation, I am getting a nested ACK. For example:

MSH|^~\&|||xxx|xxx|202209230806||ACK^HTTP^200|00|D|2.1|1
MSA|AA|RWSD7V5iuEC5F6zscDWz|HTTP ACK 'HTTP/1.1 200 OK' : MSH|^~\&|yyy|yyyy|xxx|xxx|20220923080633||ACK^A01|1663916793965||2.3||||||
MSA|CR|RWSD7V5iuEC5F6zscDWz|Error Message Goes Here. 

The adapter is spotting the positive ACK in the first part of the message, but the second part is the actual response I need the adapter to be evaluating.

1
0 231
Question Terho Eskelinen · Sep 28, 2022

CSP Page prosessing;

Is there a way to flush temporary cache data to csp page while server is still prosessing the end of page ?

So, the whole page is a LOOP which gathers the data. It seems to reveal the output only after when whole thing has finished. Is it possible to flush data to screen on every loop ?

2
0 226
Question Thomas Kotze · Sep 27, 2022

Hello,

I am getting the following error , and not sure how to get passed this.
We have removed storage on the classes , did a clean compile and still we get the error below on some of the classes
 Compile FAILURE
ERROR! Storage on class [ MyClass] modified by storage compiler, developer should have run ^build to make sure all storage is updated correctly and saved to Perforce

Any Idea how to resolve this or what to look for ?

Regards

9
0 280
Article Robert Cemper · Sep 27, 2022 2m read

If one of your packages on OEX receives a review you get notified by OEX only own YOUR package.   
The rating reflects the experience of the reviewer with the status found at the time of review.   
It is kind of a snapshot and might have changed meanwhile.   
Reviews by other members of the community are marked by * in the last column.

I also placed a bunch of Pull Requests on Github when I found a problem I could fix.    
Some were accepted and merged, and some were just ignored.     
So if you did a major change and expect a changed review just let me know.

0
0 180
Question Lionel Woods · Sep 27, 2022

I am trying to split a HL7 message (RDE O11) into several messages depending on how many RXC segments there are in the message (Two RXC segments would need to two separate HL7 messages)

I have seen a couple of posts regarding this but am struggling with my BP using ObjectScript, the idea is to take the receiving message and split this before passing it onto another BP

Here is my code so far 

Class BDROWA.Transform.OVMO Extends Ens.BusinessProcess [ ClassType = persistent ]


{Method OnRequest(pRequest As EnsLib.HL7.Message, Output pResponse As Ens.Response) As %Status


{Set RXCCount = pRequest.

2
0 673
Question Ruslan K · May 23, 2017

In toolbar, by default, all items show on one line and when menu items do not fit on visible part of screen, invisible items hide and appear two buttons - last item and previous item.

I want, in that case, items, which do not fit on visible part of screen, go on second line. In other words, I want all items to be visible.

Is it possible to configure toolbar for behavior I want?

2
0 388
Article Guillaume Rongier · Sep 27, 2022 2m read


 

You may know it but IRIS is a database with the ability to execute code.

The code execution part is called an Application Server.

Today IRIS supports natively two languages: ObjectScript and Python.
Executing code is good, knowing how to organize it is better.


Organizing code is software architecture, not everyone has the desire or knowledge to create such a solution.
To do this, many programming languages offer what we call Frameworks.

0
0 313
Discussion Evgeny Shvarov · Sep 25, 2022

Hi folks!

We have a bunch of templates on OEX that provide a handy foundation for building a particular application with IRIS.  And the basic principle of each and every template is that we take vanilla IRIS images, load code, and files into the image using Dockerfile, and create a new docker image as a solution. And then we develop running this image and rebuilding it when returning to development.

Some developers ask me why we need to build the docker image to work with the code. Indeed, if at the end of the day I need to develop a ZPM package and not a docker image why don't run the vanilla image and load the code and everything in it? 

The problem I have with the building image approach is that often I can wait a lot to build an image and it fails on some Objectscript problem in the source that I cannot fix as the image is not building. and 

Any thoughts? How do you develop with docker?

4
1 521
Article Jimmy Xu · Sep 26, 2022 3m read

Hi Developers,

Python has a large and powerful ecosystem that contains thousands of libraries and packages available, especially in data science.

Therefore, I wanted to have a first try in using a recent feature of IRIS called Embedded Python, to simply import a python library called datetime, generate data with a timestamp component and persist it in InterSystems IRIS for Health Data Platform. The same will work on IRIS Data Platform as well.

5
1 495