查找

文章
· 六月 25 阅读大约需 3 分钟

First half of the InterSystems Ready 2025

Hi Community!

I'm super excited to be your on-the-ground reporter for the biggest developer event of the year - InterSystems Ready 2025!

As you may know from previous years, our global summits are always exciting, exhilarating, and packed with valuable knowledge, innovative ideas, and exciting news from InterSystems. This year is no different. But let's not get ahead of ourselves and start from the beginning.

Pre-summit day was, as usual, filled with fun and educational experiences. Those who enjoy playing golf (I among them) got up at the crack of dawn to tee off before the sun got too high up. Here's our dream team in action:

   

@sween, @Mark Bolinsky, @Anzelem Sanyatwe, @Iryna Mykhailova 

If you're interested, here are the results (but to save you the suspense, we didn't win 😭):

The other group of sports enthusiasts went to play football (AKA soccer). And those who are differently inclined attended the different workshops planned for Sunday:

  • AI-enabling your applications with InterSystems IRIS
  • Discovering InterSystems products: a high-level overview
  • Get ready to build with FHIR in InterSystems: visualizing data as FHIR resources
  • From FHIR to insights: analytics with FHIRPath, SQL Builder, and Pandas
  • Ready Startup Forum: insights, innovations & investment with InterSystems

Yet another exciting yearly pre-summit event was a Women's meet-up and reception. Unfortunately, after playing 18 hot and humid holes, I didn't have enough time to make myself presentable before the beginning. 

Anyway, everyone was ready to begin the InterSystems Ready 2025 with a bang and turned up at the Welcome reception on time!

Let me share a secret - it's always a highlight of the event to meet friends and colleagues after a long pause.

@Iryna Mykhailova, @Johan Jacob, @Lorenzo Scalese, @Adeline Icard, @Guillaume Rongier 

And on Monday, the main event began with the keynote presentation from Terry Ragon, CEO & Founder of InterSystems, with a warm welcome, highlighting InterSystems' dedication to creating technology that truly matters during a time of fast change. He discussed the great promise of AI and data platforms to enhance healthcare and emphasized the importance of making a tangible difference, rather than merely following trends.

Later on, there was a panel discussion moderated by Jennifer Eaton between @Don Woodlock, Scott Gnau, and Tim Ferris on the future of healthcare.

Right before lunch was the best presentation of the day! And it was the best because it mentioned the Developer Community. And to share the excitement of it with you, here's a short clip from it:

And to make your day, here are a couple of photos of one of the presenters, @Randy Pallotta

The AI did a good job, or did it 😁

Anyway, after lunch, our Developer Community booth at the Tech Exchange was ready to roll.

All our cool prizes and games were out and ready to amaze and entertain our guests!

And they soon came.

  

 

At the same time, in the hallway outside the Tech Exchange, the startups were doing their presentations. Here's a photo from the SerenityGPT presentation about their software, which utilizes IRIS Vector search to maximize the potential of clinical data.

And all the while, there were interesting presentations and use-cases of InterSystems technology from InterSystems colleagues and guests:

Moreover, there's a big screen for presentations in Tech Exchange, so don't miss it!

This very long and exciting day ended on a really high note - the Ready Games at the Demos and Drinks! There were many great demos from which the guests had to choose the winners — two runner-ups in each category and two winners, for Most Innovative and Most Likely to Use.

Btw, the winners of the Most Likely to Use category are from Lead North, who brought with them the coolest stickers ever:

So, if you're at the Ready 2025 and haven't yet picked up a cute sticker, don't miss your chance to get one (or more) and to talk to @Andre Ribera and his colleagues! Swing by the Partner Pavilion (which starts outside the Tech Exchange) and you will definitely find something you like. 

So this is it about the first 1.5 days of the Ready 2025. Look out for a new recap tomorrow of the rest of it. And let me tell you, it is unforgettable! 

讨论 (0)1
登录或注册以继续
问题
· 六月 24

TCP connection problems

I'm trying to open a TCP connection to a remote system. The Caché command I'm using to open the connection is OPEN "|TCP|"_PORT:(IP::"PSE"):10 where PORT is a port number in the range 40000 to 40100 and IP is a standard IPv4 addess like 10.200.100.50
the connection appears to open because $TEST becomes 1.
I'm then writing to the open port with USE "|TCP|"_PORT:(::"S") WRITE "some text",*-3
It's a windows system

4 Comments
讨论 (4)3
登录或注册以继续
文章
· 六月 24 阅读大约需 3 分钟

Exposing a Basic REST API with InterSystems IRIS: Step-by-Step Docker Example

Introduction

InterSystems IRIS allows you to build REST APIs using ObjectScript classes and the %CSP.REST framework. This enables the development of modern services to expose data for web apps, mobile apps, or system integrations.

In this article, you'll learn how to create a basic REST API in InterSystems IRIS, including:

  • A persistent data class
  • A REST class with GET and POST methods
  • A web application to expose the API
  • A full demonstration using Docker

Step 1: Create the data class Demo.Producto

Class Demo.Producto Extends (%Persistent, %JSON.Adaptor) {
  Property Nombre As %String;
  Property Precio As %Numeric(10,2);
}
  • %Persistent allows storing the object in the database.
  • %JSON.Adaptor enables automatic JSON conversion.

Step 2: Create the REST class Demo.ProductoAPI

Class Demo.ProductoAPI Extends %CSP.REST {

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ] {
  <Routes>
    <Route Url="/producto" Method="GET" Call="Listar"/>
    <Route Url="/producto" Method="POST" Call="Crear"/>
  </Routes>
}

ClassMethod Listar() As %Status
{
   Try {
    Set productos = []
    &sql(DECLARE C1 CURSOR FOR SELECT ID, Nombre, Precio FROM Demo.Producto)
    &sql(OPEN C1)
    While (SQLCODE=0) {
      &sql(FETCH C1 INTO :id, :nombre, :precio)
      Quit:SQLCODE'=0
      Do productos.%Push({"ID": (id), "Nombre": (nombre), "Precio": (precio)})
    }

    Do ##class(%REST.Impl).%SetContentType("application/json")
    Do ##class(%REST.Impl).%SetStatusCode("200")
    Write productos.%ToJSON()
    } Catch (ex) {
        Do ##class(%REST.Impl).%SetStatusCode("400")
       Write ex.DisplayString()
    }
  Quit $$$OK
}

ClassMethod Crear() As %Status
{
  Try {
    set dynamicBody = {}.%FromJSON(%request.Content)
    Set prod = ##class(Demo.Producto).%New()
    Set prod.Nombre = dynamicBody.%Get("Nombre")
    Set prod.Precio = dynamicBody.%Get("Precio")
    Do prod.%Save()

    Do ##class(%REST.Impl).%SetContentType("application/json")
    Do ##class(%REST.Impl).%SetStatusCode("200")
    Write prod.%JSONExport()
    } Catch (ex) {
        Do ##class(%REST.Impl).%SetStatusCode("400")
       Write ex.DisplayString()
    }
    Quit $$$OK
}

}

Step 3: Create a Web Application

From the Management Portal:

  1. Go to System Administration > Security > Applications > Web Applications
  2. Create a new application:
    • URL: /api/productos
    • Namespace: USER
    • Class: Demo.ProductoAPI
    • Enable REST and anonymous access for testing

http://localhost:52773/csp/sys/%25CSP.Portal.Home.zen  User=SuperUser Pass=SYS

Add Developer Application Functions


Step 4: Docker demonstration

Project structure

apirest-demo/
├── Dockerfile
├── iris.script
└── cls/
    ├── Demo.Producto.cls
    └── Demo.ProductoAPI.cls

Dockerfile

FROM intersystemsdc/iris-community:latest

COPY cls /irisdev/app/cls
COPY iris.script /irisdev/app/iris.script

RUN iris start IRIS \
 && iris session IRIS < /irisdev/app/iris.script \
 && iris stop IRIS quietly

Build and run the container

cd apirest-demo
docker build -t iris-apirest-demo .
docker run -d --name iris-api -p 52773:52773 -p 1972:1972 iris-apirest-demo

Testing with Postman or curl

GET products

curl http://localhost:52773/api/productos/producto

POST product

curl -X POST http://localhost:52773/api/productos/producto \
  -H "Content-Type: application/json" \
  -d '{"Nombre":"Cafe","Precio":2500}'

to download the example code https://github.com/MarcoBahamondes/apirest-demo

git clone https://github.com/MarcoBahamondes/apirest-demo
3 Comments
讨论 (3)3
登录或注册以继续
讨论 (0)2
登录或注册以继续
问题
· 六月 24

Using CodeTidy in my GitHub automated workflow for linting ObjsectScript code

I installed and configure CodeTidy in my local development environment, without InterSystems source-control (git-source-control) and only git for source control.

I would like to use only CodeTidy to stablish an automated  Linting and Code Style Validation for InterSystems ObjectScript code triggered by GitHub Actions.

 

Could you shed some light on how to accomplish that?

4 Comments
讨论 (4)5
登录或注册以继续