Article Evgeniy Potapov · May 20, 2022 5m read

Colleagues, hello!

In this article, I will tell you how we reduced the report generation time from 28 minutes to 1 minute. Let me tell you how we achieved this.

I hope that if necessary you will be able to reproduce the same results for yourself. Useful links will be inside this post, so read to the end.

Let's start.

Report

We are reporting for a company using Adaptive Analytics and InterSystems Reports Server.

4
0 600
Discussion Eduard Lebedyuk · Nov 17, 2021

We need to send some coordinates to a spaceship through a laser beam. To do that we have to encode it, and beam it out into space. Your mission is to implement the encoder with a compression standard. As usual shortest solution wins.

Task

You will receive a string of comma-separated integers and you will return a new string of comma-separated integers and sequence descriptors.

Input

"0,2,4,5,5,5,5,5,3,4,5"

Output

"0-4/2,5*5,3-5"

Note

  • Compression happens left to right
  • A sequence of 2 or more identical numbers is shortened as number*count
    • example: "5,5,5" is compressed to "5*3"
  • A sequence of 3 or
8
2 702
Question David Little · May 17, 2022

So it appears that this feature is still missing in 2022.1 (https://docs.intersystems.com/iris20221/csp/docbook/DocBook.UI.Page.cls…).

Does anyone have any thoughts or ideas on how to create Namespace Package Mappings on deployment in a 'neat' way during automated deployment?

  I really like the ability to use merge cpf on deployment of our servers, but this one missing action is kind of holding me back.  Appreciate if anyone else has encountered this and how they approached it.

Cheers.

5
0 408
Article Robert Cemper · Mar 24, 2022 3m read

This package offers a utility to export an XLarge Global into a JSON object file and to show
or import it again. In a previous example, this all was processed in memory. But if this is a
large Global you may either experience <MAXSTRING> or an <STORE>  error
if the generated JSON structure exceeds available memory.
 


Academic refers to the structure created.

  • each node of the Global including the top node is represented as a JSON object
  • {"node":<node name>,"val":<value stored>,"sub":[<JSON array of subscript objects>]}
  • value and subscript are optional but one of them always exists for a valid
1
0 450
Question Michael Davidovich · May 18, 2022

Continuing on the journey of implementing %UnitTest, @Timothy Leavitt's Test Coverage package, and automated testing with Jenkins.

My question today: why do we utilize a unit test root directory?  

I've been defining packages and classes to write unit tests as I've been developing and I run the tests on the command line or using a routine file that is setup as a debug target which has been working great.  I use DebugRunTestCase() to do this (so the classes aren't deleted).  

As I am playing with automating this on Jenkins, I'm not understanding exactly why we just don't keep and run them on the

4
1 605
Announcement Michael Pine · May 18, 2022

Prospects, Customers, and Employees can now download IRIS and IRIS for Health both Community and Enterprise editions on https://evaluation.intersystems.com 

This will allow for new features not yet released to be tested by prospective customers and current customers to sample the latest and greatest that is in the works.

How to View:

For Prospects simply selecting an option with "(Preview)" in the Name will allow for download of preview software

For Customers and InterSystems Employees - simply toggle the Preview Checkbox and this will include preview software in the menu dropdown for available

5
0 445
Question Andy Stobirski · May 19, 2022

Hi

I have a few Zen pages, one of which is implementation of %CSP.StreamServer which I'm using to download a PDF file, however, any file downloaded is 5Kb smaller than the original. This is the code I'm using:

Class GMECC.DocmanConnect.Pages.downloadGPNotOnHub Extends (%ZEN.Component.page, %CSP.StreamServer)
{
    ClassMethod GetId()
    {
        Quit$Get(%request.Data("filepath",1))
    }

    ClassMethod OnPreHTTP() As%Boolean
    {
        set filepath = %request.Get("filepath")
        
        set tFs=##class(%Stream.FileCharacter).%New()
        set tFs.Filename=filepath
1
0 348
Question Nezla · May 17, 2022

Hi Guys,

How do I create a JSON with the below structure pls:

{
  "field 1": "123",
  "field 2": "1.1.1",
  "field 3": "4.428",
   "Lines": [
    [ 0.00523, 0.00952, 0.01626 ],
    [ -0.00303, -0.00286, 0.00387 ],
    [ 0.00110, 0.00814, 0.00800 ],
    [ -0.00991, 0.00952, 0.00800 ]
  ]
}

thanks

2
0 362
Article Timothy Leavitt · Mar 17, 2021 3m read

I ran into an interesting ObjectScript use case today with a general solution that I wanted to share.

Use case:

I have a JSON array (specifically, in my case, an array of issues from Jira) that I want to aggregate over a few fields - say, category, priority, and issue type. I then want to flatten the aggregates into a simple list with the total for each of the groups. Of course, for the aggregation, it makes sense to use a local array in the form:

agg(category, priority, type) = total

Such that for each record in the input array I can just:

Do $increment(agg(category, priority, type))

But once I've

10
4 1212
InterSystems Official Thomas Dyar · Jan 24, 2022

The Data Platforms team is very pleased to announce the 2021.2 release of InterSystems IRIS Data Platform, InterSystems IRIS for Health and HealthShare Health Connect, which are now Generally Available (GA) to our customers and partners.

Release Highlights

InterSystems IRIS Data Platform 2021.2 makes it even easier to develop, deploy and manage augmented applications and business processes that bridge data and application silos. It has many new capabilities including:

Enhancements for application and interface developers, including:

  • Embedded Python 
  • Interoperability Productions in Python
  • Upda
17
1 1617
Article Bob Schat · Feb 10, 2022 7m read

The InterSystems Iris Fhirserver running on a Raspberry Pi Raspberry running as a FHIRserver

Raspberry running as FHIRserver

About a year ago I wrote some articles about the installation of the HAPI FHIRserver on a  Raspberry Pi. At that time, I only knew the basics of the FHIR standard, little about the technology behind FHIR-servers and not much more about the Raspberry. By trying, failing, giving up and trying again I learned a lot.

7
4 1078
Question Nezla · May 7, 2022

Hi guys,

How do I create a make a http request using curl, I've found samples on how to do it from a command prompt but how to create and make a http post request and get a response with ensemble object and functions?

I guess somthing like :

s req=##class(%Net.httpRequest).%New()

...etc

Or do I build a command run it in ensemble and get a response back, if so how can I do that ?

Thanks

2
0 672
Question Nezla · May 16, 2022

Hi Guys,

I currently have a service that uses an InboundAdapter to get a JSON file and process it given that the client is pushing data to us, but now we have another client where we need to request the JSON file by sending a HTTP request then get the file and process it, kind of a Get rather than push, how can I create a service that handle that?

Thanks

1
0 348
Question Gary Koester · Apr 27, 2022

The doc name is formatted lname,fname. How do I replace the comma with a ^ so I get lname^fname.

<assign value='$ZCVT(source.{ibex_medical_chart.patient_info.admdoc.name},"i","XML")' property='target.{PV1:AdmittingDoctor(1).GivenName}' action='set' />

3
0 455
Question Nezla · May 7, 2022

Hi Guys,

we have a class with over 24 million records and despite indexes querying is still slow, so we are looking to create a copy or clone of our current class have an scheduled task that runs every night or month, copy old records this new clone (eg. from last month)   and remove old them from our current class.

one way is maybe to do an insert into from the current to clone class but I'm afraid that could duplicate things and might be so slow and fail like:

Insert into clonedclass values (select * from myclass where mydate < somedate)

maybe merging the global of my current class to the

6
0 569
Job Kevin Mattingly · May 16, 2022

We are looking for 2 full time Middleware Design Specialist.  We have one of the largest (if not the largest) implementation of InterSystems HealthConnect and have a team that designs solutions for new use cases.  We are looking for strong developers that like to work on new patterns that are not your basic HL7 to HL7 interface.  These positions are 100% telecommute and you would be working with a team of very skilled HealthConnect developers.

You can find out a full job description and apply to these positions here -->

0
0 352
Question Nezla · May 15, 2022

Hi Guys,

How do I add another tablepane or gridview to make my tablepane look like expandable and collapses back as in the below pic?

so basically I would like to add a child tablepane or gridview for each row that populate the related details for it.

thanks

1
0 241
Discussion Eduard Lebedyuk · May 3, 2022

An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once. For example, the word anagram itself can be rearranged into nag a ram, also the word binary into brainy and the word adobe into abode. Wikipedia

You will receive two strings returning true if the two arguments given are anagrams of each other. As usual shortest solution wins.

##Input "Listen", "Silent"

##Output 1

##Note

  • Both arguments are case insensitive, only a-z, A-Z, no special characters except whitespace
  • The arguments could contain
33
0 759