検索

Pregunta
· 15 mins atrás

Healthshare BPL - While loop to add data from SQL table into new repeating segments in message - Possible?

Hi Everyone,

I have spent far too long trying to reach a solution on a problem I have, so thought it was time to contact the experts! :)

I have a BPL built with a While loop - I have used this before to split messages with no issue but this time I am wanting to inject new repeating segments into a message.

I have a SQL Snapshot which returns multiple rows of data and a HL7 message set into context. Within the while loop, for each row of data I am executing a transform of the HL7 message in context, adding in that particular row of data to the message. 

For the first Row, it adds it in fine, but then on the second row I am getting an error message I have not seen before and not sure how to resolve. I am hoping it is something simple I am missing!

Within the DTL:

(I am wanting the snapshot data to be added to a new RXE / RXR pairing hence setting ID to ORCgrp count + 1)

The error message I am getting is:

Any of you clever folk able to help me at all?

Thanks a lot!

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 1 hr atrás Lectura de 4 min

Una guía para principiantes para crear tablas en SQL y verlas como clases

El artículo de la August Article Bounty en Global Masters llamó mi atención, y uno de los temas propuestos me pareció bastante interesante para tratarlo. Así que esto es lo que me gustaría contarles a mis estudiantes sobre las tablas en IRIS y cómo se relacionan con el modelo de objetos.

Ante todo, InterSystems IRIS cuenta con un modelo de datos unificado. Esto significa que, cuando trabajáis con datos, no estáis atados a un único paradigma. Los mismos datos pueden ser accedidos y manipulados como una tabla SQL tradicional, como un objeto nativo o incluso como un array multidimensional (un global).

Esto quiere decir que, cuando creáis una tabla en SQL, IRIS genera automáticamente una clase de objeto correspondiente. Y, cuando definís una clase de objeto, IRIS la pone automáticamente a disposición como una tabla SQL. Los datos en sí mismos se almacenan una sola vez en el motor de almacenamiento multidimensional de IRIS, que es muy eficiente. El motor SQL y el motor de objetos son simplemente diferentes “lentes” para ver y trabajar con los mismos datos.

Primero, veamos la correlación entre el modelo relacional y el modelo de objetos:

Relacional Objeto
Tabla Clase
Columna Propiedad
Fila Objeto
Clave primaria Identificador de objeto

No siempre hay una correlación 1:1, ya que podéis tener varias tablas que representen una misma clase, por ejemplo. Pero es una regla general.

En este artículo, hablaré sobre cómo crear una tabla listando sus columnas.

El enfoque más básico:

CREATE TABLE [IF NOT EXISTS] table (
   column1 type1 [NOT NULL], 
   column2 type2 [UNIQUE], 
   column3 type3 [PRIMARY KEY]
   ...
   [CONSTRAINT fKeyName FOREIGN KEY (column) REFERENCES refTable (refColumn)]
)

[ ] indican las partes opcionales.

Vamos a crear una tabla DC.PostType, que consiste en tres columnas: TypeID (clave primaria), Name y Description:

CREATE TABLE DC.PostType (
  TypeID        INT NOT NULL,
  Name          VARCHAR(20), 
  Description   VARCHAR(500),
  CONSTRAINT Type_PK PRIMARY KEY (TypeID)
)

Como resultado, obtendremos la siguiente clase después de ejecutar la instrucción SQL anterior:

/// 
Class DC.PostType Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {UnknownUser}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = PostType ]
{

Property TypeID As %Library.Integer(MAXVAL = 2147483647, MINVAL = -2147483648) [ Required, SqlColumnNumber = 2 ];
Property Name As %Library.String(MAXLEN = 20) [ SqlColumnNumber = 3 ];
Property Description As %Library.String(MAXLEN = 500) [ SqlColumnNumber = 4 ];
Parameter USEEXTENTSET = 1;
/// Bitmap Extent Index auto-generated by DDL CREATE TABLE statement.  Do not edit the SqlName of this index.
Index DDLBEIndex [ Extent, SqlName = "%%DDLBEIndex", Type = bitmap ];
/// DDL Primary Key Specification
Index TypePK On TypeID [ PrimaryKey, SqlName = Type_PK, Type = index, Unique ];
Storage Default
{
<Data name="PostTypeDefaultData">
<Value name="1">
<Value>TypeID</Value>
</Value>
<Value name="2">
<Value>Name</Value>
</Value>
<Value name="3">
<Value>Description</Value>
</Value>
</Data>
<DataLocation>^B3xx.DXwO.1</DataLocation>
<DefaultData>PostTypeDefaultData</DefaultData>
<ExtentLocation>^B3xx.DXwO</ExtentLocation>
<IdFunction>sequence</IdFunction>
<IdLocation>^B3xx.DXwO.1</IdLocation>
<Index name="DDLBEIndex">
<Location>^B3xx.DXwO.2</Location>
</Index>
<Index name="IDKEY">
<Location>^B3xx.DXwO.1</Location>
</Index>
<Index name="TypePK">
<Location>^B3xx.DXwO.3</Location>
</Index>
<IndexLocation>^B3xx.DXwO.I</IndexLocation>
<StreamLocation>^B3xx.DXwO.S</StreamLocation>
<Type>%Storage.Persistent</Type>
}

}

Observaciones clave

  • TABLE DC.PostType se convierte en Class DC.PostType.
  • La clase Extends %Persistent,, lo que indica a IRIS que debe almacenar sus datos en la base de datos.
    VARCHAR se convirtió en %String.
  • VARCHAR se convierte en %String.
  • INT se convierte en %Integer.
  • La restricción PRIMARY KEY creó un Index con la palabra clave PrimaryKey.

Ahora podéis usar esta tabla/clase desde cualquiera de los dos lados, por ejemplo, usando SQL:

INSERT INTO DC.PostType (TypeID, Name, Description) VALUES (1, 'Question', 'Ask a question from the Community')

Hay mucho más sobre cómo crear tablas usando SQL, así que leed la documentación que se proporciona a continuación.

Comentarios (0)1
Inicie sesión o regístrese para continuar
Anuncio
· 11 hr atrás

HealthShare Unified Care Record Fundamentals – Virtual September 15-19, 2025 - Registration space available

HealthShare Unified Care Record Fundamentals – Virtual* September 15-19, 2025

*Please review the important prerequisite requirements for this class prior to  registering.

  • Learn the architecture, configuration, and management of HealthShare Unified Care Record.
  • This 5-day course teaches HealthShare Unified Care Record users and integrators the HealthShare Unified Care Record architecture and administration tasks.
  • The course also includes how to install HealthShare Unified Care Record.
  • This course is intended for HealthShare Unified Care Record developers, integrators, administrators and managers.
  • This course is applicable for users of Unified Care Record.

SELF REGISTER HERE

Comentarios (0)1
Inicie sesión o regístrese para continuar
Anuncio
· 14 hr atrás

[Video] Practical Cybersecurity Measures for Stronger Organizational Resilience

Hi Community,

We're super excited to share the new video in the "Rarified Air" series on our InterSystems Developers YouTube:

⏯ Practical Cybersecurity Measures for Stronger Organizational Resilience

This video gives the outlines of seven practical steps to raise organizational readiness for a security event:

  • enable multi-factor authentication;
  • monitor and restrict web activity;
  • deploy endpoint detection and response (EDR);
  • pre-establish a partnership with a cybersecurity firm;
  • create a clear incident communication plan;
  • run cross-functional tabletop exercises;
  • study the NIST Cybersecurity Framework.

It also encourages building a security culture through interest groups, events, and dedicated communication channels.

🗣 Presenter: @John Paladino, Vice President of Client Services, InterSystems

Enjoy watching, and subscribe for more videos! 👍

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 16 hr atrás Lectura de 3 min

Celebrando uma Voz Pioneira na Comunidade de Desenvolvedores

Entre os muitos colaboradores que moldam a Comunidade de Desenvolvedores da InterSystems, alguns trazem não apenas conhecimento técnico profundo, mas uma visão de longo prazo e paixão por capacitar os outros. Uma dessas vozes excepcionais pertence a @John Murray, um veterano das tecnologias InterSystems, defensor do código aberto e membro fundador da Comunidade de Desenvolvedores.

👏 Vamos dar uma olhada mais de perto na notável jornada de John e seu legado contínuo no ecossistema InterSystems.

John começou a trabalhar com os produtos da InterSystems em 1998, exatamente quando o Caché foi lançado. Naquela época, ele fez a transição da Micronetics — um antigo concorrente do M/MUMPS — para as tecnologias da InterSystems após o descontinuamento do MSM. Foi um momento crucial. Em vez de desistir, John se adaptou. Ele se juntou à George James Software (GJS), levando consigo uma dedicação às ferramentas de desenvolvedor que definiriam sua carreira.

Quando a Comunidade de Desenvolvedores da InterSystems foi lançada em 2015, John não hesitou em se envolver, contribuindo desde o primeiro dia e ajudando a moldar o espaço no que ele é hoje. Seu papel contínuo como moderador da comunidade garante que a plataforma permaneça aberta, solidária e valiosa para desenvolvedores de todos os níveis.

O foco profissional de John sempre foi a experiência do desenvolvedor. Desde as primeiras contribuições para ferramentas como Serenji e Umlanji até ajudar os usuários do MSM a migrarem para o Caché, seu impacto tem sido generalizado. No entanto, uma de suas contribuições mais notáveis foi a ascensão do VS Code.

Em março de 2016, John publicou um post intitulado "Alguém usando o Visual Studio Code?" — uma visão muito à frente de seu tempo. Essa percepção inicial levou ao desenvolvimento de extensões personalizadas pela GJS, lançando John no mundo do TypeScript e do código aberto. Desde 2019, John contribuiu com mais de 150 pull requests para a base de código oficial do VS Code, ajudando a moldar o editor usado por milhões de desenvolvedores em todo o mundo.

Desde o primeiro dia, John acreditou no valor de pessoas reais ajudando pessoas reais. Ele incentiva os recém-chegados a buscar respostas por meio de artigos existentes ou fazendo perguntas, enfatizando que, embora a IA tenha suas utilidades, a interação humana genuína é frequentemente a maneira mais poderosa de aprender.

À medida que a Comunidade cresceu, John permaneceu ativo, garantindo que ela continue sendo um lugar para colaboração construtiva e compartilhamento de conhecimento. Seja escrevendo artigos, moderando discussões ou desenvolvendo ferramentas, seu impacto está entrelaçado em toda a nossa plataforma.

Fora de suas atividades profissionais, John encontra alegria e propósito em sua comunidade local e em sua fotografia — um hobby que proporciona equilíbrio e inspiração criativa ao lado de seu trabalho técnico

As contribuições de John Murray — passadas, presentes e contínuas — exemplificam o que significa ser a pedra angular da Comunidade de Desenvolvedores. Por meio de excelência técnica, mentoria e um compromisso com o progresso, ele continua a tornar a InterSystems melhor para todos.

🙏 Junte-se a nós para agradecer a John por sua dedicação duradoura, percepção e liderança na Comunidade de Desenvolvedores.

Comentarios (0)2
Inicie sesión o regístrese para continuar