发布新帖

查找

文章
· 8 hr 前 阅读大约需 6 分钟

Desplegad IRIS Community Edition en la nube: Parte 2 Azure

 

¡Hola!

En mi último artículo, hice una guía paso a paso sobre cómo podéis probar a desplegar InterSystems IRIS Community Edition, o IRIS for Health Community Edition, gratis en AWS. En este seguimiento, os mostraré lo mismo para el siguiente mayor proveedor de nube, Microsoft Azure.

Al igual que con AWS, Azure también ofrece una opción gratuita al registraros, aunque es un poco menos generosa: recibís 200 $ de crédito gratis para gastar en el primer mes. Esto significa que, una vez más, podéis probar a desplegar IRIS Community Edition gratis en Azure, aunque os recomiendo precaución para evitar facturas costosas.

Al igual que en el artículo anterior, aquí se explica el proceso para desplegar la Community Edition en la nube; no obstante, el mismo proceso puede seguirse para una versión con licencia completa, ya que existe una opción Bring Your Own Licence para IRIS e IRIS for Health. Podéis utilizar una clave de licencia existente para ello o contactar con el equipo de ventas para obtener una nueva licencia.

Guía paso a paso

Antes de empezar, tendréis que iniciar sesión o crear una cuenta en Azure y suscribiros a una suscripción de Azure (para habilitar la facturación). Después, id al listado de Azure Marketplace para IRIS Community (o IRIS for Health Community) y haced clic en Get it now.

 

Se os pedirá que iniciéis sesión y también puede que os soliciten detalles adicionales como el país, el número de móvil y el lugar de trabajo. Completad esta información y después haced clic en Get it now en la parte inferior de este formulario.

 

A continuación, se os redirigirá al Portal de Azure. Haced clic en Start with a pre-set configurationpara comenzar a crear un despliegue. Si preferís seleccionar todos los ajustes vosotros mismos, podéis hacer clic en Createpara desplegar sin ninguna configuración predeterminada.

 

Después de elegir empezar con una configuración predefinida, se os redirigirá a una página que sugiere valores predeterminados para vuestro caso de uso. Elegid el caso de uso que necesitéis y luego haced clic en Continue to Create a VM esta elección rellenará automáticamente algunos de los ajustes de configuración.

 

Elección de la configuración de la máquina virtual

Ahora entraréis en la página Create a virtual machine. Aquí es donde configuraréis todos los ajustes para el despliegue de vuestra máquina virtual.

Hay pestañas para elegir ajustes bajo "Basics", "Disks" (almacenamiento), "Networking", "Management", "Monitoring", "Advanced Settings" y"Tags".   Esta guía tratará los ajustes bajo "Basics". Para los demás ajustes, podéis dejarlos como predeterminados si habéis empezado con una configuración predefinida, o seleccionarlos más adelante. Muchos de estos se pueden cambiar después del despliegue (por ejemplo, limitar las direcciones IP que pueden conectarse).

Detalles del proyecto

Aquí elegís qué suscripción de Azure y qué grupo de recursos se utilizarán para el despliegue. Un grupo de recursos os permite agrupar despliegues relacionados (por ejemplo, despliegues de diferentes servicios de un mismo proyecto) con fines de organización y facturación. Tendréis que crear un grupo de recursos si no lo habéis hecho antes. Haced clic en Create newy ponedle un nombre adecuado.

 

Detalles de la instancia

Los detalles de la instancia controlan el tamaño, la ubicación y los ajustes de seguridad de la instancia. Al haber navegado por el portal de Azure, la imagen debería haberse rellenado automáticamente. Si no, podéis seleccionarla desde el desplegable del marketplace.

Hay varios elementos esenciales que debéis completar en esta sección:

- Nombre de la máquina virtual: Preferiblemente usad algo fácil de reconocer para facilitar la gestión.

- Región: Cuanto más cerca esté la región de vuestros usuarios, menor será la latencia al acceder a la máquina. Sin embargo, la elección de la región también afectará la disponibilidad de las máquinas.

- Tamaño: Las especificaciones de rendimiento de la máquina, incluyendo memoria y número/tipo de procesadores disponibles (CPUs, GPUs). La elección del tamaño dependerá del presupuesto, el rendimiento requerido y la disponibilidad en la región seleccionada. Dado que la propia InterSystems IRIS Community Edition limita el almacenamiento en la base de datos y la potencia de cálculo utilizada (ver los límites aquí), probablemente querréis elegir una de las máquinas más pequeñas.

 

Autenticación

Aquí podéis elegir cómo os autenticaréis al conectaros a la máquina. Se recomienda usar un par de claves SSH pública/privada, aunque también podéis usar autenticación por contraseña. También podéis seleccionar un nombre de usuario predeterminado para acceder a la máquina.

Podéis dejar todos estos ajustes como están por defecto. Si elegís crear una nueva clave SSH, se generará automáticamente y se descargará al desplegar la máquina.

 

Revisar y Crear

Una vez que hayáis configurado los "Basics", revisad las otras pestañas de ajustes para ver si hay algo que queráis cambiar respecto a los valores predeterminados. Si no, seleccionad la pestaña Review + Create.

Esta pestaña tardará un poco en cargar, ya que valida los ajustes que habéis seleccionado. Una vez que la validación haya pasado, tendréis que aceptar los Términos por última vez y también veréis un resumen de los ajustes seleccionados.

Cuando estéis listos, haced clic en Createpara crear vuestra máquina virtual.

 Si habéis elegido autenticaros con una nueva clave SSH, como se sugiere, aparecerá un mensaje emergente para generar y descargar la clave. Haced clic en  Download private key and create resource.

 

Conectar

El despliegue tardará un par de minutos en iniciarse, pero al final deberíais ver una pantalla que diga "Your deployment is complete".

 

Hay varios ajustes que Azure recomienda configurar, los cuales quizá queráis hacer pronto. Sin embargo, para demostrar inicialmente cómo conectarse a la máquina, haced clic en Go to resource. Esto abrirá el panel de administración de vuestra máquina virtual desplegada.

 

En el lado izquierdo hay un panel para seleccionar diferentes grupos de ajustes y ver o editar la configuración de la máquina. Por ahora, seleccionad Connectdesde el panel en la parte superior del panel de control.

Vía SSH

En Azure, Secure Shell (SSH) es el método recomendado para conectarse a la instancia de InterSystems IRIS Community Edition. Podéis conectaros vía SSH desde la terminal de vuestra máquina local o desde PowerShell.

 

En el panel de conexión veréis claramente la dirección IP de vuestra instancia y un comando SSH para conectaros a ella. El comando de conexión SSH requiere tres cosas: la ruta local a vuestra clave privada, que se descargó al lanzar la instancia; el nombre de usuario de la máquina (por defecto es azureuser, a menos que lo cambiaseis en el paso de Autenticación); y la dirección IP de vuestra instancia.

ssh -i /path/to/key.pem username@xx.xx.xxx.xxx

ssh -i /home/keys/My-Iris-Instance_key.pem azureuser@12.34.567.899

La primera vez que os conectéis, se os preguntará si estáis seguros de que queréis continuar con la conexión. Escribid "yes" y os conectaréis a la instancia.

 

La primera vez que iniciéis sesión, tendréis que cambiar la contraseña predeterminada. Para ello, ejecutad:

iris password

Un mensaje os indicará que las credenciales predeterminadas son:

- Usuario: _SYSTEM

- Contraseña: SYS

Y que esta contraseña ha caducado y necesita ser cambiada. Si, como yo, preferís usar el otro usuario predeterminado, SuperUser, también debería funcionar con la misma contraseña.

Después de esto, podéis iniciar una sesión de terminal de IRIS con:

iris session iris

Si queréis copiar archivos a la instancia de IRIS, podéis usar una conexión SSH mediante scp, sftp o un cliente sftp como Filezilla. También podéis copiar archivos a través del servicio Bastion de Azure.

Vía Portal de Administración

Una vez desplegada, el Portal de Administración estará disponible en la dirección IP de vuestra instancia, añadiendo al final :52773/csp/sys/UtilHome.csp. Las credenciales predeterminadas son:

- Usuario: _SYSTEM

- Contraseña: SYS

Estas deberán cambiarse en el primer inicio de sesión, a menos que ya las hayáis cambiado desde la conexión SSH.

Finalizar el despliegue

¡Recordad detener el despliegue una vez que hayáis terminado de usarlo! Para ello, volved al panel de la máquina virtual de vuestra instancia y haced clic en Delete. Se os pedirá que indiquéis qué componentes queréis eliminar. Si habéis terminado por completo con este despliegue, seleccionad todos los componentes y haced clic en Deletepara finalizar todos los despliegues.

 

讨论 (0)1
登录或注册以继续
公告
· 8 hr 前

New Course Launch: Developing FHIR Applications Using Python

Hi Community!

We’re excited to announce the launch of a new, hands-on training program:

 🧑‍💻 Developing FHIR Applications Using Python 🧑‍💻

This cohort-based course takes developers from FHIR fundamentals to advanced, real-world healthcare interoperability solutions, with deeper, more practical coverage than typical industry offerings and a strong focus on production-ready skills using InterSystems technology.

📅 First cohort starts February 15, 2026
⚠️ Seats are limited - once a cohort fills, registrants will be placed on a waitlist.

Who Should Attend?

This course is ideal for organizations and teams that are:

  • Adopting or expanding FHIR
  • Building SMART on FHIR applications
  • Upskilling development teams with practical, real-world interoperability expertise

Program Structure

The program consists of three progressive 5-week modules. Participants may enroll in individual modules or complete the full 15-week program.

Each week includes:

  • ~3 hours of asynchronous video and guided labs
  • 1 hour of live, instructor-led interactive discussion
  • two lectures and one hands-on lab
  • optional capstone SMART on FHIR application

Module Overview

  • Foundations (5 weeks) - build a solid understanding of core FHIR concepts and hands-on fundamentals, including resources, REST operations, search, validation, and server interaction.
  • Intermediate (5 weeks) - develop secure, scalable FHIR applications in Python, covering SMART on FHIR, bulk data access, implementation guides, and responsible AI integration patterns.
  • Advanced (5 weeks) - design and deploy production-ready FHIR solutions, focusing on architecture patterns, analytics, interoperability strategies, and FHIR as a Service.

Pricing

To encourage early adoption, we’re offering special introductory pricing:

Option

Duration

Price

Foundations

5 weeks

$1,000
$500

Intermediate

5 weeks

$1,000
$500

Advanced

5 weeks

$1,000
$500

Full program bundle

15 weeks

$2,000
$1,000

>> Register Now! << 

Secure your seat for the first cohort starting February 15.

Questions? Contact: fhircourse@intersystems.com

讨论 (0)2
登录或注册以继续
公告
· 9 hr 前

L'examen InterSystems EHR Reports Specialist est maintenant disponible !

Bonjour à tous,

L'équipe de certification d'InterSystems Learning Services est heureuse d'annoncer la sortie de notre nouvel examen InterSystems EHR Reports Specialist. Vous pouvez dès maintenant l'acheter et vous inscrire dans le catalogue des examens InterSystems. Cet examen évalue la capacité des candidats à utiliser Logi Report Designer avec TrakCare/Intellicare pour concevoir, créer et assurer le support des rapports InterSystems. Pour consulter la liste des sujets abordés, veuillez vous référer à la page dédiée à l'examen. Les candidats qui réussissent recevront un badge de certification numérique qu'ils pourront partager sur les réseaux sociaux comme LinkedIn. Si vous découvrez les certifications InterSystems, nous vous invitons à consulter nos pages dédiées aux examens. Vous y trouverez des informations sur le déroulement des examens, les politiques d'examen, la FAQ et bien plus encore.

Si vous avez des idées pour créer de nouvelles certifications qui pourraient vous aider à faire progresser votre carrière, l'équipe de certification d'InterSystems Learning Services est toujours ouverte aux suggestions. N'hésitez pas à nous contacter à l'adresse certification@intersystems.com si vous souhaitez nous faire part de vos idées.

Nous avons hâte de célébrer votre réussite !

讨论 (0)1
登录或注册以继续
文章
· 14 hr 前 阅读大约需 8 分钟

使用 ChatGPT 从 JSON 响应生成 ObjectScript 类

我有一个新项目,要将 REST 响应中的信息存储到 IRIS 数据库中。我需要同步来自至少二十几个不同 REST 端点的信息,这意味着需要创建将近这么多的 ObjectScript 类来存储来自这些端点的结果。

我能否使用 ChatGPT 来创建这些类?答案是 "可以",这非常好,因为这是我第一次尝试使用生成式人工智能来做一些有用的事情。生成长颈鹿喝汤的图片有点老....。

我是这么做的:

  • 使用 "curl "查询端点,获取一些 JSON REST 调用输出示例。
  • 访问 ChatGPT(InterSystems 为员工提供全公司范围的许可证)
  • 与 ChatGPT 进行以下对话。

我在 "Message ChatGPT "提示符中输入了以下请求:

我:Generate an ObjectScript class that will hold data from the following JSON(生成一个 ObjectScript 类,用于保存以下 JSON 中的数据):

在输入 JSON 之前,我点击了 "Return",因此 ChatGPT 给我的提示如下:

ChatGPT:Please provide the JSON structure you'd like me to generate the ObjectScript class for. If you have an example JSON object, paste it here, and I'll create the corresponding InterSystems ObjectScript class for you(请提供您希望我生成 ObjectScript 类的 JSON 结构。如果您有一个 JSON 对象示例,请将其粘贴到这里,我将为您创建相应的 InterSystems ObjectScript 类)。

我输入了以下内容作为Prompt:

{
  "id": 335818632,
  "appId": 113,
  "appName": "Batch",
  "contentId": 182455380233,
  "subject": "Test Subject",
  "name": "Test email campaign name",
  "counters": {
    "processed": 3910,
    "deferred": 86,
    "unsubscribed": 17,
    "statuschange": 17,
    "bounce": 153,
    "mta_dropped": 8,
    "dropped": 299,
    "delivered": 3749,
    "sent": 3903,
    "click": 16,
    "open": 323
  },
  "lastProcessingFinishedAt": 1733232499000,
  "lastProcessingStartedAt": 1733232303000,
  "lastProcessingStateChangeAt": 1733232499000,
  "numIncluded": 4201,
  "processingState": "DONE",
  "scheduledAt": 1733232300000,
  "type": "BATCH_EMAIL"
}

ChatGPT 的回复:

下面是映射到所提供的 JSON 结构的 InterSystems ObjectScript 类:

Class MyNamespace.MyJSONData Extends (%Persistent, %JSON.Adaptor)
{
Property id As %Integer;
Property appId As %Integer;
Property appName As %String;
Property contentId As %Integer;
Property subject As %String;
Property name As %String;
Property counters As MyNamespace.Counters;
Property lastProcessingFinishedAt As %BigInt;
Property lastProcessingStartedAt As %BigInt;
Property lastProcessingStateChangeAt As %BigInt;
Property numIncluded As %Integer;
Property processingState As %String;
Property scheduledAt As %BigInt;
Property type As %String;
ClassMethod %OnJSONImport(jsonObject As %Object, instance As MyNamespace.MyJSONData) As %Status
{
    Quit ..%JSONImport(jsonObject, .instance)
}
}

Class MyNamespace.Counters Extends (%SerialObject, %JSON.Adaptor)
{
Property processed As %Integer;
Property deferred As %Integer;
Property unsubscribed As %Integer;
Property statuschange As %Integer;
Property bounce As %Integer;
Property mta_dropped As %Integer;
Property dropped As %Integer;
Property delivered As %Integer;
Property sent As %Integer;
Property click As %Integer;
Property open As %Integer;
}

以及解释:

这段代码是一个很好的开始,但我希望它能放入名为 "MyPkg"的软件包中,并将类命名为 "EmaiCampaign"。另外,通过使用一些 NI,我知道生成"%BigInt "属性的值实际上是 Linux 时间,该属性应为 %Library.PosixTime"。

我提出以下请求(不知道为什么要对机器说 "请";我想我父母做得很好):

我:Can we recreate the class again please, renaming the package " MyPkg" and the Class as "EmailCampaign"? Also, please change types of Properties from %BigInt to %Library.PosixTime(我们能否重新创建一个类,将包重命名为 "MyPkg",将类重命名为 "EmailCampaign"?另外,请将属性类型从 %BigInt 改为 %Library.PosixTime).

ChatGPT 的回复:

Here's the updated ObjectScript class with the specified package name and class name, and the timestamp properties updated to use %Library.PosixTime(这是更新后的 ObjectScript 类,指定了软件包名称和类名称,时间戳属性更新为使用 %Library.PosixTime):

Class MyPkg.EmailCampaign Extends (%Persistent, %JSON.Adaptor)
{
Property id As %Integer;
Property appId As %Integer;
Property appName As %String;
Property contentId As %Integer;
Property subject As %String;
Property name As %String;
Property counters As MyPkg.Counters;
Property lastProcessingFinishedAt As %Library.PosixTime;
Property lastProcessingStartedAt As %Library.PosixTime;
Property lastProcessingStateChangeAt As %Library.PosixTime;
Property numIncluded As %Integer;
Property processingState As %String;
Property scheduledAt As %Library.PosixTime;
Property type As %String;
ClassMethod %OnJSONImport(jsonObject As %Object, instance As MyPkg.EmailCampaign) As %Status
{
    Quit ..%JSONImport(jsonObject, .instance)
}
}

Class MyPkg.Counters Extends (%SerialObject, %JSON.Adaptor)
{
Property processed As %Integer;
Property deferred As %Integer;
Property unsubscribed As %Integer;
Property statuschange As %Integer;
Property bounce As %Integer;
Property mta_dropped As %Integer;
Property dropped As %Integer;
Property delivered As %Integer;
Property sent As %Integer;
Property click As %Integer;
Property open As %Integer;
}

以及以下解释:

将代码 "原样 "复制到 VSCode 后,大括号的语法问题凸显出来。ObjectScript 类无法启用内部类定义。

要求 ChatGPT 将 MyPkg.Counters 内部类作为一个单独的类来解决 "大括号 "问题是 "不可行的";人类需要将该类移到另一个文件中。ChatGPT 在收到以下请求后确实重新命名了该类:

我:The class as it is written does not compile. Can we move the internal class named MyPkg.Counters out of the main class into its own class and rename it to MyPkg.CampaignCounters?(现在编写的类无法编译。我们能否将名为 MyPkg.Counters 的内部类从主类移到自己的类中,并将其重命名为 MyPkg.CampaignCounters?)

ChatGPT 的回复:

 

Here's the updated ObjectScript code with the MyPkg.CampaignCounters class moved out as its own class(以下是更新后的 ObjectScript 代码,其中 MyPkg.CampaignCounters 类被移出作为自己的类)

Class MyPkg.EmailCampaign Extends (%Persistent, %JSON.Adaptor)
{
Property id As %Integer;
Property appId As %Integer;
Property appName As %String;
Property contentId As %Integer;
Property subject As %String;
Property name As %String;
Property counters As MyPkg.CampaignCounters;
Property lastProcessingFinishedAt As %Library.PosixTime;
Property lastProcessingStartedAt As %Library.PosixTime;
Property lastProcessingStateChangeAt As %Library.PosixTime;
Property numIncluded As %Integer;
Property processingState As %String;
Property scheduledAt As %Library.PosixTime;
Property type As %String;
ClassMethod %OnJSONImport(jsonObject As %Object, instance As MyPkg.EmailCampaign) As %Status
{
    Quit ..%JSONImport(jsonObject, .instance)
}
}

Class MyPkg.CampaignCounters Extends (%SerialObject, %JSON.Adaptor)
{
Property processed As %Integer;
Property deferred As %Integer;
Property unsubscribed As %Integer;
Property statuschange As %Integer;
Property bounce As %Integer;
Property mta_dropped As %Integer;
Property dropped As %Integer;
Property delivered As %Integer;
Property sent As %Integer;
Property click As %Integer;
Property open As %Integer;
}

将上述代码粘贴到 VSCode 并编译后,编译器报告说 ObjectScript 中不存在名为"%Object "的类型。根据 IRIS 文档,%JSON.Adaptor 的%JSONImport()方法的第一个参数的属性是灵活的:

"输入参数可以是作为字符串或流的 JSON,也可以是 %DynamicAbstractObject 的子类。

删除第一个类中 %OnJSONImport() 第一个参数的 "As %Object "属性并将两个类分离到不同的文件后,MyPkg.EmailCampaign 类编译成功。但是,MyPkg.CampaignCounters 无法编译;ChatGPT 还不知道下划线是 ObjectScript 中的特殊字符(字符串连接操作符)。

让我们试着教教它。

我:The underscore character "_" is a special character in ObjectScript. Please change properties with an underscore in their names to camel case names and remove the underscore(下划线字符"_"在 ObjectScript 中是一个特殊字符。请将名称中带有下划线的属性改为驼峰式名称,并去掉下划线)。

ChatGPT 的回复

Here is the updated code with properties that had underscores in their names converted to camel case(以下是更新后的代码,将名称中含有下划线的属性转换为驼峰大小写)

Class MyPkg.EmailCampaign Extends (%Persistent, %JSON.Adaptor)
{
Property id As %Integer;
Property appId As %Integer;
Property appName As %String;
Property contentId As %Integer;
Property subject As %String;
Property name As %String;
Property counters As MyPkg.CampaignCounters;
Property lastProcessingFinishedAt As %Library.PosixTime;
Property lastProcessingStartedAt As %Library.PosixTime;
Property lastProcessingStateChangeAt As %Library.PosixTime;
Property numIncluded As %Integer;
Property processingState As %String;
Property scheduledAt As %Library.PosixTime;
Property type As %String;
ClassMethod %OnJSONImport(jsonObject As %Object, instance As MyPkg.EmailCampaign) As %Status
{
    Quit ..%JSONImport(jsonObject, .instance)
}
}

Class MyPkg.CampaignCounters Extends (%SerialObject, %JSON.Adaptor)
{
Property processed As %Integer;
Property deferred As %Integer;
Property unsubscribed As %Integer;
Property statusChange As %Integer;
Property bounce As %Integer;
Property mtaDropped As %Integer;
Property dropped As %Integer;
Property delivered As %Integer;
Property sent As %Integer;
Property click As %Integer;
Property open As %Integer;
}

以及以下解释:

ChatGPT 不遗余力地将另一个以两个独立单词命名的属性也改成了驼峰字体(statuschange);我保留了这一改动,因为主类中其他类似名称的属性都是驼峰字体。

最新生成的代码分为两个独立文件(并删除了 %OnJSONImport() 方法定义中的 "As %Object "定义),所有代码都能成功编译。

这些生成的类是我所需的一个很好的起点,我将在这个项目的其他 REST 数据源中重复这个过程,这样就可以省去很多不必要的键入。

讨论 (0)1
登录或注册以继续
InterSystems 官方
· 18 hr 前

インターシステムズ製品 2025.1.3 リリースのご案内

インターシステムズは、InterSystems IRIS® data platformInterSystems IRIS® for HealthTMHealthShare® Health Connect のメインテナンスバージョン 2025.1.3 をリリースしました。このリリースには、最近発行された以下の警告および勧告に対する修正が含まれております。

ドキュメント

変更点の詳細と、アップグレードチェックリストは以下のリンクからご覧いただけます。(すべて英語)

早期アクセスプログラム(EAPs)について

現在、多くの早期アクセスプログラムをご提供しております。 こちらの ページ ご興味のあるプログラムにお申込みいただけます。

キットの入手方法

InterSystems IRIS と InterSystems IRIS for Health の通常インストーラパッケージ形式のキットは WRC Direct の IRIS ダウンロードページ から、HealthShare Health Connect のキットは HealthShare ダウンロードページ からそれぞれ入手してください。コンテナイメージは InterSystems Container Registry から入手できます。

利用可能なパッケージ情報

本製品は、従来からのインストーラパッケージ形式と、コンテナイメージ形式をご用意しています。その一覧は、 サポートプラットフォームページ(英語, 2025.1) をご覧ください。本メンテナンスリリースのバージョン番号は、2025.1.3.481.1 です。

讨论 (0)1
登录或注册以继续