検索

Anúncio
· Jul. 31

Technology Bonuses Results for the InterSystems Developer Tools Contest 2025

We are happy to present the bonuses page for the applications submitted to the InterSystems Developer Tools Contest 2025!

See the results below.

Project

Vector Search

Embedded Python

Interoperability

IRIS BI

VSCode Plugin

FHIR Tools

Docker

IPM

Community Idea Implementation

Find Embedded Python bug

First Article on DC

Second Article on DC

Video on YouTube

First Time Contribution

Total Bonus

Nominal 3 3 3 3 3 3 2 2 4 2 2 1 3 3 37
Interoperability REST API Template     3                     3 6
iristest-html                           3 3
Global-Inspector             2 2     2   3   9
InterSystems Testing Manager for VS Code         3       4   2 1 3   13
IPM Explorer for VSCode         3           2   3 3 11
typeorm-iris             2   4   2   3   11
addsearchtable     3                       3
iris-message-search     3       2 2             7
iris4word   3 3 3     2 2 4   2 1 3   23
PyObjectscript Gen                             0
IrisTest             2             3 5
dc-artisan 3 3 3   3   2 2     2 1 3   22
templated_email   3 3       2 2     2       12
wsgi-to-zpm   3         2               5
toolqa   3 3       2       2 1     11
dataset-sample-split   3         2             3 8
snipforge         3                 3 6

Please apply with your comments for new implementations and corrections to be made here in the comments or in Discord.

28 Comments
Discussão (28)3
Entre ou crie uma conta para continuar
Pergunta
· Jul. 31

Issue Sending Data to SQL Server from a Business Operation in IRIS Ensemble

Hi everyone,

I'm developing an Ensemble process that sends user data from a Business Process to a Business Operation using EnsLib.SQL.OutboundAdapter. The operation is supposed to call a stored procedure on a SQL Server.

The stored procedure expects 3 parameters:
@FirstName, @LastName, and @Email.

The procedure works fine when executed directly from SQL Server Management Studio.

However, when I trigger it via Ensemble, I get the following error:

[SQL Server] Incorrect syntax near 'email@domain.com'

hat is the proper way to use ExecuteProcedure or ExecuteUpdateParmArray to safely pass parameters to a SQL Server stored procedure using EnsLib.SQL.OutboundAdapter?

If anyone has a working example of a Business Operation calling a SP with parameters – that would be a huge help 🙏

Thanks in advance!

5 Comments
Discussão (5)4
Entre ou crie uma conta para continuar
Anúncio
· Jul. 31

[Demo Video] AI Clinical Trial Platform

#InterSystems Demo Games entry


⏯️  AI Clinical Trial Platform

The Trial AI platform leverages InterSystems cloud services including the FHIR Transformation Service and IRIS Cloud SQL to assist with clinical trial recruitment, an expensive and prevalent problem. It does this by ingesting structured and unstructured healthcare data, then uses AI to help identify eligible patients.

Presenters:
🗣 @Vic Sun, Sales Engineer, InterSystems
🗣 @Mohamed Oukani, Senior Sales Engineer, InterSystems
🗣 @Bhavya Kandimalla, Sales Engineer, InterSystems

👉 Like this demo? Support the team by voting for it in the Demo Games!

Discussão (0)0
Entre ou crie uma conta para continuar
Artigo
· Jul. 31 1min de leitura

Import CSV into CACHÉ

Here's a practical example of how to import data from a CSV file into InterSystems CACHÉ using ObjectScript
Assuming your CSV file is simple (e.g., comma-separated, with headers), you can use %Stream.FileCharacter to read it line by line and parse the data.

 

ClassMethod ImportCSV(filePath As %String) As %Status {
    Set stream = ##class(%Stream.FileCharacter).%New()
    Set sc = stream.LinkToFile(filePath)
    If 'sc Quit sc

    While 'stream.AtEnd {
        Set line = stream.ReadLine()
        Set fields = $ListFromString(line, ",")
        // Example: Save to a persistent class
        Set obj = ##class(MyApp.Data).%New()
        Set obj.Name = $List(fields,1)
        Set obj.Age = $List(fields,2)
        Set obj.Email = $List(fields,3)
        Do obj.%Save()
    }
    Quit $$$OK
}

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Jul. 31 2min de leitura

Listando conexões dos itens da produção recursivamente

Se você trabalha com Produções, destacar as conexões entre Business Hosts é um recurso muito conveniente, permitindo aos desenvolvedores obter uma representação visual do fluxo de dados.

Esse recurso funciona por padrão com todos os Business Hosts do sistema. Se um usuário escreve seus próprios Business Services, Processes ou Operations, ele deve implementar o método OnGetConnections para que essa funcionalidade funcione com seus Business Hosts personalizados (ou usar as propriedades  Ens.DataType.ConfigNamepara as conexões).
Dito isso, o SMP mostra apenas a primeira camada de conexões do Business Host selecionado. Às vezes, precisamos obter conexões de conexões recursivamente para construir um grafo completo de fluxo de dados. Ou podemos precisar dessas informações de conexão para verificar quais sistemas downstream podem ser afetados por uma mudança upstream.Para fazer tudo isso, escrevi uma classe Utils.Connectionsque oferece o método GetConnectionsJSON Você pode passar um ID do Item ou Nome do Item, e ele retornará um objeto dinâmico contendo todas as conexões. Veja como funciona. Assumindo esta produção:


Você obterá este JSON para o serviço in.REST service (##class(Utils.Connections).GetConnections("in.Rest")):

{
  "in.REST":[
    {
      "EnsLib.HL7.SequenceManager":[
        "Ens.Alert",
        {
          "Router":[
            "Ens.Alert"
          ]
        },
        "in.BO",
        "s3.BusinessOperation"
      ]
    }
  ]
}

Cada item possui um array de conexões. Se uma conexão tiver conexões próprias, será um objeto com um array dentro; caso contrário, será apenas uma string.

Também existem queries SQL para obter conexões para um item ou listar todas as conexões para todos os itens:

SELECT Utils.Connections_GetConnections(ID)
SELECT * FROM Utils.Connections_ListConnections()

Código no GitHub.

Discussão (0)1
Entre ou crie uma conta para continuar