Article Cristiano Silva · May 27, 2023 6m read

How many times do we find ourselves rebuilding, copy-pasting, adapting, Business Operations that make calls to REST services, and only adapting one or another part of the final code. This is annoying a lot. To resolve this our inconvenience, I present to you Interopway REST, a set of classes (a micro framework) that allows us to just add Business Operation to Production and use it.

The project is hosted on github, https://github.com/cristianojs/interopway_rest, it is open and we are accepting collaborations.

Let's understand how this works.

Transport Objects

The objects responsible for tra


0
1 394
Announcement Jacquie Clermont · May 26, 2023

 

Hi Community:

We're delighted to tell you that David Kwong, who creates crossword puzzles for the New York Times, Los Angeles Times, and The Wall Street Journal, will be one of our many distinguished speakers at Global Summit. Kwong's TED Talks on magic and puzzles have been viewed millions of times. He regularly consults on puzzles and illusions for Hollywood, where he was head magic consultant on the worldwide hit film, Now You See Me

Keynotes will happen from 9 to noon on June 5 - June 7. Other presentations include

"Building an Integrated Supply Chain for Competitive Advantage"

0
0 176
Announcement Olga Zavrazhnova · May 26, 2023

Hi Community, 

We invite you to take part in the Health Data De-Identifier Early Access Program. Sign up, tell us your feedback and grab some nice points: 2000 to all participants, 5000 extra for completing the survey.

If you are interested:

1️⃣ Join EAP group via this challenge

2️⃣ Follow these instructions

3️⃣ Complete the survey (leave your email so we could award the points on Global Masters; please note: you must be EAP participant in order to proceed with survey completion)

 

0
0 235
Article Murray Oldfield · May 25, 2023 12m read

I am often asked to review customers' IRIS application performance data to understand if system resources are under or over-provisioned.

This recent example is interesting because it involves an application that has done a "lift and shift" migration of a large IRIS database application to the Cloud. AWS, in this case.

A key takeaway is that once you move to the Cloud, resources can be right-sized over time as needed. You do not have to buy and provision on-premises infrastructure for many years in the future that you expect to grow into.

Continuous monitoring is required. Your application transaction rate will change as your business changes, the application use or the application itself changes. This will change the system resource requirements. Planners should also consider seasonal peaks in activity. Of course, an advantage of the Cloud is resources can be scaled up or down as needed.

For more background information, there are several in-depth posts on AWS and IRIS in the community. A search for "AWS reference" is an excellent place to start. I have also added some helpful links at the end of this post.

AWS services are like Lego blocks, different sizes and shapes can be combined. I have ignored networking, security, and standing up a VPC for this post. I have focused on two of the Lego block components;

  • Compute requirements.
  • Storage requirements.
1
3 1224
Article Iryna Mykhailova · Mar 15, 2023 7m read

In this tutorial, I’d like to talk about Class Queries. To be more precise, about the Queries based on user-written code:

A lot of people disregard this type of query just because they aren’t very comfortable with writing lots of ObjectScript code for the methods or they don’t see how they can use it in their relational apps. But to be honest, for me – it’s one of the coolest inventions for the relational model in IRIS! It lets you expose whatever information you want (not limited to tables of your database) as a relational resultset for a client. Thus, basically, you can wrap no matter wha

10
2 998
Announcement Developer Community Admin · May 16, 2023

It's time to announce the Winners for April! Please welcome our awesome Global Masters Heroes!

The storm of applause goes to these developers and their great contribution to DC in April:

🥇 @Muhammad WaseemHIS Team Lead, International Medical Center, Jeddah, Saudi Arabia
🥈  @Luis Angel Pérez RamosSales Engineer, InterSystems, Spain
🥉 @YURI MARX GOMESSoftware Architect, YM Services, Brazil  

 

 Learn more about the competition and our awesome winners below.

8
0 338
Question Thomas Kotze · May 25, 2023

Hi, 

I am trying to get the API Manager up and running. 

I have enabled the application and IAM user and changed password.

when we run the iam_setup.sh I get the following.

Getting IAM license using your inputs...
Internal server error when testing inputs

I have check on Iris management portal , but could see no errors.

On the cspgateway I see
HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache
Date: Thu, 25 May 2023 11:03:05 GMT
Expires: Thu, 29 Oct 1998 17:04:19 GMT
Pragma: no-cache
Content-Length: 202 {
"errors":[ {
"code":6220,
"domain":"%

5
0 380
Question Alexey Maslov · May 25, 2023

In elder versions of IRIS/Cache numeric overflow was detected during the syntax check: 

USER>w$p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")"zwritesw !,$compile(s,0,e),!! zwrite e
2021.1.1

s(0)=1s(1)=" if (-123.45E6789)"W$P($P($ZV,") ",2)," ("),!! S txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")"ZW
RITE sW$COMPILE(s,0,e),!! ZWRITE e
       ^
<MAXNUMBER>

while in IRIS 2022.1 it is not:

USER>w$p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")"zwritesw !,$compile(s,0,e),!! zwrite e
2022.1.3
 
s(0)=1s(1)=" if (-123
5
0 264
Question Nezla · May 25, 2023

Hi Guys,

is there any sample I can use for Images, I'm just looking for a very simple one where I can have an upload control to upload images & image control to show them?

Thanks

12
0 330
Article Luis Angel Pérez Ramos · May 25, 2023 4m read

You may have already heard that, starting with IRIS and HealthShare HealthConnect 2023.2 versions, the internal Apache Server will be removed from the default installation, so it will be necessary to have an external application server such as Apache Server or NGINX.


In this article I am going to proceed to install a HealthShare HealthConnect 2023.1 so that it works with a pre-installed Apache Server. For this I will use a virtual machine on which I have installed an Ubuntu 22.04.

Installing Apache Server

As we have indicated, we must previously install our Apache Server and we will do so f

0
2 702
Article Robert Cemper · May 25, 2023 2m read

If one of your packages on OEX receives a review you get notified by OEX only of YOUR own 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.
<--break->

# Package Review Star
0
0 135
Question Brendan Blackford · May 17, 2023

Hi,

I'm trying out VS Code with IRIS for Health 2023.2 (not available in above dropdown) in a local container.  I can open read-only files in the Objectscript viewer and have a local folder connected to the correct namespace.  However, when I make changes and try the "import and compile" option, I get:

ERROR #16006: Document <filepath> name is invalid

The first four chars of <filepath> appear to have been truncated

Here is my settings.json

{

    "security.workspace.trust.untrustedFiles": "open",

    "workbench.colorTheme": "InterSystems Default Dark",

    "intersystems.servers": {

4
0 556
Article Heloisa Paiva · May 3, 2023 10m read

Programming and languages

Being a programmer nowadays is basically the geek version of being a polyglot. Of course, most of us here, in the InterSystems Community, “speak ObjectScript”. Howeever, I believe this wasn’t the first language for many people. For instance, I had never heard about it prior to getting the appropriate training at Innovatium.

The most fascinating part of this is that even though we are able to learn any language and become fluent in it, we will always have our favorites – the ones we feel more comfortable and familiar with, and, as a rule, it has a lot to do with the

8
3 969
Article Joel Solon · May 23, 2023 5m read

Methods written in ObjectScript can use pass-by-reference arguments to return information to the caller. Python doesn’t support pass-by-reference arguments, so Embedded Python in IRIS doesn’t support them either. That's it, that's the end of the post, hope you liked it. 😉 But wait, what about the Classic Rock & Roll?

Actually, since returning values in method arguments can be useful, this post demonstrates several ways to do this, between ObjectScript and Embedded Python. So let’s start with the simplest example: calling an ObjectScript method that already has a pass-by-reference argument fro

1
1 636
Question Yone Moreno · May 22, 2023

Good afternoon,

first thank you from heart and mind, mind and heart; for reading, thinking, reflecting, responding, and above all explaining a possible solution and/or documentation to address this doubt.

We would need a way to get inside a SOAP Web Service the SAML Assertion, and then, send it directly to the endpoint throught a SOAP Operation.

Currently we have researched and developed how to get the SAML Assertion with the following code:

Class Servicios.RESNS.ConsultaRecetas Extends EnsLib.SOAP.Service [ ProcedureBlock ]
{

/// This is the namespace used by the ServiceParameter NA

1
0 442
Article Eduard Lebedyuk · May 23, 2023 1m read

When developing interoperability productions, it might be useful to have settings outside of a Business Host. The primary reason is when you need a setting to affect several different Business Hosts and want to guarantee that the value is the same. While System Default Settings can be used to propagate settings for Business Hosts, they can be changed by overriding the value on a BH level (although the advantage of Business Host settings set via SDS is that they don't need custom code which our current approach requires).
Another reason is when you need to affect non-setting parts of the Business Host configuration (PoolSize, Enabled, etc.)

We will be adding an env setting to a production.

1
1 442
Article Henry Pereira · Jan 16, 2023 14m read

In this article, I will show you how one can easily create and read Microsoft Word documents using InterSystems IRIS with the leverage power of embedded Python.

Setup

First things first, let’s install the Python module called python-docx. There are a lot of modules to write MS Word files in Python. However, this one is the easiest one to use.

Just execute the following command on the terminal:

!pip3 install python-docx

If you are working with Docker, like I do, just add the following line to a Dockerfile

ENV PIP_TARGET=${ISC_PACKAGE_INSTALLDIR}/mgr/python RUN pip3 install python-docx

Let’s

template finished

7
7 1383
Article Eduard Lebedyuk · May 18, 2023 2m read

Let's have a round of Code Golf!

String rotation is when you take a word and move some of its letters to the end of the word, so the first letter becomes the second letter, the second letter becomes the third, and so on. Last letter becomes first. Rotation can happen only in one direction →. Your task is to write a method that will receive two strings. It then must return an integer value of how many times needed to rotate the strings to be equal. As usual shortest solution wins.

Input

"hello", "llohe"

Output

3

  ​

Note

Rules

  1. The signature of th

14
0 526
Question Minoru Horita · May 19, 2023

I have a problem with connecting to IRIS via ODBC on Apple Silicon.

I installed unixodbc with brew, and downloaded ODBC-2023.1.0.229.0-macos.tar.gz from the community github repo.

After setting up odbc.ini so that libirisodbcur6435.so that was just downloaded is used as the driver,  isql fails as follows:

$ isql -v sampleodbc
[08S01][unixODBC][Iris ODBC][State : 08S01][Native Code 459]
[libirisodbcur6435.so]
Connection via irisconnect failed:
getaddrinfo(, , 0, 0) failed in s_TCPConnect, reason = nodename nor servname provided, or not known.
 
[ISQL]ERROR: Could not SQLConnect

Can

4
0 785
Question Phillip Wu · May 17, 2023

Hi,

I trying to find out the procedure to kill off a currently printing Cache job.

The user wants to cancel the job as they put the wrong start date. The start date was set to be generated from the default date of 1 Jan 1900.

As the start date was such a long time ago, the report generation would take a long time.

I think the printing uses this "production" on the print server:

Report.Print.Service.CachePrintService

  -> Report.Print.Process.Request

  -> Report.Print.Operation.PrintCacheReport

I think the printing part is  "production" "Operations",  Report.Print.Operation.PrintCacheR



2
0 368
Question Prashant Sonnaik · Apr 29, 2023

Have just deployed IRIS in Azure and when accessing the filesystem through SSH I just can't see the ISC folder through the WSL ubuntu user, what am I missing here?

As I want to create new folders and use the same in test productions.
the needed directories are created in /home/azureuser but the same is not visible in IRIS file system

4
0 375
Question Dmitrii Baranov · May 19, 2023

Example:

Method Execute (args...) As %Status {
...
 #dim statement as %SQL.Statement
 set statement = ##class(%SQL.Statement).%New(2)
 set statement.%Dialect = "CACHE"
 do statement.prepare(query)
    
 #dim rs as %SQL.StatementResult
 set rs = statement.execute(args...)

My questions are: 1) how do I get the size of **args **2) how to get all values of **args **3) is it possible to modify the args?

6
0 462
Question Andrea Levesque · Feb 9, 2023

Any suggestions on a way to indicate when a patient encounter is in an ‘Observation’ status** in Clinical Viewer? Clients would like to be able to distinguish between true ‘Inpatient’ or ‘Emergency’ status and ‘Observation,’ especially given that encounters often cycle between various statuses.

HealthShare only allows for the following ‘encounter type’ values, and anything that does not match will be translated to Outpatient by HealthShare

  • I = Inpatient
  • O = Outpatient
  • E = Emergency patient
  • C = Community
  • N = Not applicable or New born
  • P = PreAdmit
  • G = Generated
  • S = Silent

**CMS d

1
2 300