Article Evgeny Shvarov · May 16, 2023 1m read

Hi folks!

Just want to introduce you a new util to import CSV into IRIS - csvgenpy!

Install

USER>zpm "install csvgenpy"

Use:

do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")

Example:

USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")

This will create table and class data.titanic in IRIS and will load the data.  you can proof it with:

USER>:sql

[SQL]USER>>select * from data.titanic

[SQL]USER>>select * from data.titanic

1. select * from data.titanic


passen
0
1 334
Question Stella Ticker · May 12, 2023

Has anyone had success with passing in a collections  property within a SOAP request to a Soap Service in Ensemble? Please reply with how you set up that collections property. I am able to successfully send a SOAP request correctly containing the elements of the collection property to Cache, as seen in a custom soap log file which I am using to troubleshoot. But the collection property in the  Ensemble request is not getting serialized, meaning MyContainers has nothing.

My.Request consists of a property, MyContainers, which can have 0 or more Containers (My.Container)

When MyContainers  is o

1
0 223
Announcement Renan Lourenco · May 15, 2023

Health Data De-Identifier is available through InterSystems' Early Access Program as a way to give you a sneak peek of what we are working on. This document will walk you through how to sign up.

To know more: Health Data De-ID Early Access Program

  1. Access evaluation.intersystems.com. If you already have credentials skip to step 7.

  2. Create an new account by clicking on Register for a new account.

  3. Fill in all the required information and save.

  4. You will receive an email with the confirmation and the access token.

  5. Provide the access token received via email.

  6. Choose a password.

  7. Sen

  8. image

0
0 507
Question Christine Nyamu · May 12, 2023

Hello,

I am quite new to the InterSystems world. I have one of my OBX 5 fields having this value "blood work was done<>tested positive for anemia<>tested negative for hepatitis". I have a lookup table "AnemiaResults" with a key of TESTED POSITIVE FOR ANEMIA. My issue is that since OBX 5 has other characters/text  (and OBX is a repeating segment) , I am unable to use the Exists function. Any idea how to tackle this? Any assistance will be greatly appreciated. 

8
0 777
Question Marlin Mixon · May 10, 2023

I am having a difficult time trying to get DEBUGGING tags working in my xslt transform.

Here are snippets of the xslt I am using:

namespace declaration:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:isc="http://extension-functions.intersystems.com" xmlns:hl7="urn:hl7-org:v3" xmlns:sdtc="urn:hl7-org:sdtc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:exsl="http://exslt.org/common" exclude-result-prefixes="isc hl7 sdtc xsi xsl">

template:


        <xsl:template match="hl7:representedOrganization/hl7:id" mode="CHRISTUSPreProcessor">
       

3
0 329
Article Anton Umnikov · Jan 21, 2021 26m read

In this article, we’ll build a highly available IRIS configuration using Kubernetes Deployments with distributed persistent storage instead of the “traditional” IRIS mirror pair. This deployment would be able to tolerate infrastructure-related failures, such as node, storage and Availability Zone failures. The described approach greatly reduces the complexity of the deployment at the expense of slightly extended RTO.

16
8 3978
Article Robert Cemper · May 11, 2023 1m read

During my repeated testing with Docker Desktop, I'm often short on disk space
nd need to clean it over and over as described earlier.
The main reason is the rather uncontrolled growth of ext4.vhdx
that is located on my C: drive by default.
So I decided to move this file to a large external disk.

There are several ways to do this and a detailed guide:
https://devops.tutorials24x7.com/blog/how-to-change-docker-data-path-on-windows-10

I decided to choose option C) using symlinks.
I did it only partially, especially for my wild-growing virtual data disk.
this returned ~10GB on my C: drive and provided

1
0 761
Announcement Olga Zavrazhnova · May 15, 2023

Join the latest InterSystems Developer Meetup to learn how to analyze healthcare data.

FHIR (Fast Healthcare Interoperability Resources) is a global data standard in healthcare and it's great for interoperability but not great for analysis of that data.💡 Learn from InterSystems product managers and engineers how make SQL projections of FHIR data and build out Python Panda applications leveraging those projections.

 

Presentations:

0
0 377
Question sansa stark · May 12, 2023

Hi Everyone,

 I tried to send the Sample XML from Packet Sender to Intersystems IRIS TCP Inbound adapter for learning purpose.
I'm using Predefine d Class : EnsLib.XML.TCPService and the adapter is EnsLib.TCP.CountedInboundAdapter (it selected by Default.)
My sample XML file would be <Patient><Name>John,Williams</Name><MRN>12345</MRN></Patient>
I got an error like 

ERROR <Ens>ErrTCPReadBlockSize: TCP Read(32000) with timeout period (50) failed with : (78):tElement><Patient><Name>Varatha</Name><MRN>12345</MRN></Patient></RootElement>
Please help me to proceed further

3
0 275
Article Yuri Marx · May 15, 2023 6m read

 These days the vast majority of applications are deployed on public cloud services. There are multiple advantages, including the reduction in human and material resources needed, the ability to grow quickly and cheaply, greater availability, reliability, elastic scalability, and options to improve the protection of digital assets. One of the most favored options is the Google Cloud. It lets us deploy our applications using virtual machines (Compute Engine), Docker containers (Cloud Run), or Kubernetes (Kubernetes Engine). The first one does not use Docker. Instead, it utilizes a virtual machi
















0
3 5180
Question Kurro Lopez · Apr 19, 2023

Hi all,

I'm wondering if exists any command or method to replace a text using parameters.

In C# I use the Format property

var text = string.format("My name is {0} and I'm {1} years","Kurro","18")
// The value of text will be "My name is Kurro and I'm 18 years"

I've tried with this code... but it works only for the specific parameters

set text = "My name is {0}, and I'm {1} years"write$Replace($Replace(text,"{0}","Kurro"),"{1}",18)

is possible to do something for more args? I mean, use for a indeterminate number of args

Best regads

11
1 494
Discussion Michael Breen · May 12, 2023

A question for anyone using InterSystems technology:

What are the biggest challenges you’ve faced either trying to hire developers that know ObjectScript, or trying to train developers on ObjectScript?

  • Are developers generally willing or resistant to the idea of learning ObjectScript?   Why?
  • For developers trying to learn ObjectScript - what was that process like?   What were the main challenges there?
    • In-person learning?  
    • Online class? 
    • Documentation?  
    • What were your impressions?
  • How did it compare to other languages?
  • What would have made it easier to learn?
  • How long did it
5
0 432
Question Mark OReilly · Apr 14, 2023

After any installs upgrades we get the following 

04/13/23-18:00:00:978 (18668) 0 [Utility.Event] d:\intersystems\healthshare\mgr\enslib\ (Database is readonly)
04/13/23-18:00:00:979 (18668) 0 [Utility.Event] d:\intersystems\healthshare\mgr\hslib\ (Database is readonly)

I think we must have before altered these to not read-only. 

Not sure if the isssue is by default 

-Running task as user with %ALL rather than SYS user

- Should the dbs be as default in the all backup list 

- Should these be not ro so it backs up without error? 

2
0 338
Article Robert Cemper · May 13, 2023 2m read

Following one package from the last contest I met a strange problem.
There was the requirement to install jupyter-notebook
I work on Windows and there was some old Python installed
No big surprise: Installation of jupyter-notebook failed
Therefore, the latest version of Python was installed fast.

Big disappointment: the installation of jupyter-notebook failed again!
Because the new installation of Python didn't upgrade the old one.
And also the environment variable PATH was not cleaned
This was not obvious immediately and took endless time and effort.

Several cycles of installation and de-installat

0
0 340
Article Robert Cemper · Feb 16, 2021 2m read

As you know ObjectScript has neither 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. Both ways are presented here. The macro is a generic and quite flexible solution and easy to adapt if required.
##; ZFOREACHMACRO ; macro definitions
##; %key = variable provide to loop trough array
##; %arr = the gobal or local array to be l
1
2 1237
Question Kevin McGinn · Apr 20, 2023

Reviewing a client console log, I am finding the message:

Terminal disconnect: The specified network name is no longer available.
 

This message is repeated in the log dozens of times per day over the last month. The client has not raised a concern and our monitoring has not detected any issues with client ops. The client is not aware of any recent changes with their apps. I am not familiar with this message and whether this message is benign or whether there is any action required,

1
0 463
Question Scott Roth · Apr 12, 2023

We are currently using different iterations of Ens.Director.EnableConfig items to start/stop objects within the Interoperability Namespace. We are looking for ways to minimize our downtime as we move from AIX to a new section of our Network and Red Hat Servers.

Besides using Ens.Director.EnableConfig item and waiting for a response, or just disabling the objects through the Namespace class file, is there a quicker way to stop Services and Operations to ensure the TCP disconnect is sent to those endpoints so we can move the networking rules to ensure they point to new servers? Kill is out of t

12
1 838
Article Dmitry Maslennikov · Feb 6, 2023 4m read

Let me introduce my new project, which is irissqlcli, REPL (Read-Eval-Print Loop)  for InterSystems IRIS SQL 

  • Syntax Highlighting
  • Suggestions (tables, functions)
  • 20+ output formats
  • stdin support
  • Output to files 

Install it with pip

pipinstallirissqlcli

Or run with docker

dockerrun-itcaretdev/irissqlcliirissqlcliiris://_SYSTEM:SYS@host.docker.internal:1972/USER

Connect to IRIS

$ irissqlcli iris://_SYSTEM@localhost:1972/USER -W
Password for _SYSTEM:
Server:  InterSystems IRIS Version 2022.3.0.606 xDBC Protocol Version 65
Version: 0.1.0
[SQL]_SYSTEM@localhost:USER> select $ZVERSION
+---------------------------------------------------------------------------------------------------------+
| Expression_1                                                                                            |
+---------------------------------------------------------------------------------------------------------+
| IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2022.3 (Build 606U) Mon Jan 30202309:05:12 EST |
+---------------------------------------------------------------------------------------------------------+
1 row in set
Time: 0.063s
[SQL]_SYSTEM@localhost:USER> help
+----------+-------------------+------------------------------------------------------------+
| Command  | Shortcut          | Description                                                |
+----------+-------------------+------------------------------------------------------------+
| .exit    | \q                | Exit.                                                      |
| .mode    | \T                | Change the table format used to output results.            |
| .once    | \o [-o] filename  | Append next result to an output file (overwrite using -o). |
| .schemas | \ds               | List schemas.                                              |
| .tables  | \dt [schema]      | List tables.                                               |
| \e       | \e                | Edit command with editor (uses $EDITOR).                   |
| help     | \?                | Show this help.                                            |
| nopager  | \n                | Disable pager, print to stdout.                            |
| notee    | notee             | Stop writing results to an output file.                    |
| pager    | \P [command]      | Set PAGER. Print the query results via PAGER.              |
| prompt   | \R                | Change prompt format.                                      |
| quit     | \q                | Quit.                                                      |
| tee      | tee [-o] filename | Append all results to an output file (overwrite using -o). |
+----------+-------------------+------------------------------------------------------------+
Time: 0.012s
[SQL]_SYSTEM@localhost:USER>
20
2 965
Article Mihoko Iijima · May 11, 2023 2m read

InterSystems FAQ rubric

You can use the system routine ^DBSIZE to estimate the backup file size (see also Note 1).

^DBSIZE estimates the file size of full, cumulative, and differential backups of the databases selected in the database backup list.

The database backup list is created from [System Administration] > [Configuration] > [Database Backup] > [Database Backup List] in the Management Portal.

For more information, please refer to the document below.

Estimate backup size with ^DBSIZE [IRIS]

Estimate backup size with ^DBSIZE

An execution example is as follows.

USER>set $namespa
0
0 390
Question Elliott Grey · May 10, 2023

I'm trying to write an ObjectScript function that sorts version numbers to help learn ObjectScript. This is all I can think of after staring at VS Code for a while, but I don't know where to go with it. Can someone please help out with a tip? The goal is to take something like ["1.4.5", "0.5.3", "6.3.2", "1.2.4"] and turn it into ["0.5.3", "1.2.4", "1.4.5", "6.3.2"]

ClassMethod SortVersion(input As %String[]) As %String[] {
    Set sorted = []

    for i=1:1:input.%Size() {
        Set version = input.Get(i)

        Set major = $NUMBER($PIECE(version, ".", 1))
        Set minor = $NUM
4
0 428
Article Mauro Aguirre · May 11, 2023 13m read

Several steps should be done in order to secure the connection through xDBC clients to an IRIS Server instance using TLS. Most of the information can be obtained from the documentation about TLS on IRIS here, about configuring the security layer for encrypted connections. In the next paragraphs we will cover an step-by-step guide on how to configure and test the connection using SQL Clients apps using ODBC and JDBC.

You can download the drivers from InterSystems IRIS Driver Packages

Configuring IRIS SuperServer to use TLS

IRIS Documentation on this link

Before starting with the client conn











  • Wireshark Network Packet Monitoring

0
2 1220
Question Ryan Hulslander · Apr 13, 2023

Curious if anyone has modified the HL7 TCP/IP Service and adapter class to receive an HL7 message, ACK it, and just dump it straight to a file? I don't want the messages in the engine at all - just receive and dump. Has anyone done this before and have code you're willing to share?

Thank you very much in advance!

3
0 452
Question Menno Voerman · May 10, 2023

Hello everyone,

I am looking for a sort of REST interoperability adapter that can forward REST calls within HealthConnect. If necessary, we need to adjust the requests or responses.

For Fhir calls, we use the FHIR Interoperability Adapter. This works perfectly; a message comes in as HS.FHIRServer.Interop.Request, and a message HS.FHIRServer.Interop.Response goes out. I can make adjustments as needed to both the request and response. I am looking for the same functionality, but then for non-FHIR REST calls.

When I create a web application, the requests come in as %CSP.Request, and I can forw

2
0 265
Article Eduard Lebedyuk · Feb 10, 2023 6m read

In this article, we will establish an encrypted JDBC connection between Tableau Desktop and InterSystems IRIS database using a JDBC driver. While documentation on configuring TLS with Java clients covers all possible topics on establishing an encrypted JDBC connection, configuring it with Tableau might be a little bit tricky, so I decided to write it down.

Securing SuperServer

Before we start with client connections, you need to configure SuperServer, which by default runs on port 1972 and is responsible for xDBC traffic to accept encrypted connections. This topic is described in the documenta

  1. image

3
2 845
Announcement Anastasia Dyubaylo · May 10, 2023

Hi Developers,

This April, you've posted 65 new questions on the Developer Community: 

 

Questions

6 Underlying Benefits of Asking Questions | SUCCESS

0
0 157
Question Anna Golitsyna · Apr 13, 2023

Is there any ObjectScript or a basic function that takes a string and separates it into words + punctuation/spaces array/list? Just not to reinvent the wheel. Say, process "It is a test, after all" into "It", space, "is", space, "a", space, "test", ", ", "after", space, "all". Or something to that effect.

9
0 446
Question Gaolai Peng · Nov 8, 2018

I am trying to get SDA3.Container object from a Stream object like following code:

Method HandleECRUpdateRequest(pRequest As CUSTOM.CORE.Message.ECRUpdateRequest, ByRef pResponse As Ens.Response) As %Status
{

               Set tContainer=##Class(HS.SDA3.Container).%New()
               $$$ThrowOnError(tContainer.InitializeXMLParse(pRequest.ContentStream, "SDA3"))
              
               Set tEventDescription=tContainer.EventDescription

But it tContainer seems to be empty. The tEventDescription is set to empty. I need work on the whole HS.SDA3.Container converted from ContentStream in a ECRU

3
1 1196