#Ensemble

0 Seguidores · 196 Publicaciones

InterSystems Ensemble es una plataforma de integración completa y fácil de utilizar la cual permite que los usuarios se conecten con personas, procesos y aplicaciones en un tiempo

récord.

Aprende más

Documentación

Artículo Jose-Tomas Salvador · oct 16, 2025 3m read

Para gestionar la acumulación de datos de producción, InterSystems IRIS permite a los usuarios controlar el tamaño de la base de datos purgando periódicamente los datos. Esta purga puede aplicarse a mensajes, registros, procesos de negocio y alertas gestionadas.

Consultad la documentación para obtener más detalles sobre la configuración de la tarea de purga:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=EGMG_purge#EGMG_purge_settings

0
0 27
Artículo Ricardo Paiva · oct 8, 2025 1m read

gj :: configExplorer es una nueva extensión de VS Code que se integra con Server Manager y aprovecha Structurizr para generar diagramas de configuración de vuestros servidores.

Aquí tenéis un breve video introductorio.

0
0 22
Artículo Vachan C Rannore · oct 2, 2025 3m read

Empezar con ObjectScript es realmente emocionante, pero también puede resultar un poco extraño si estáis acostumbrados a otros lenguajes. Muchos principiantes tropiezan con los mismos obstáculos, así que aquí tenéis algunas "trampas” a las que debéis prestar atención. (Y también algunos consejos para evitarlas)

PONER NOMBRES AL AZAR

Todos hemos caído en la tentación de llamar a algo Test1 o MyClass solo para avanzar rápido. Pero una vez que vuestro proyecto crece, esos nombres se convierten en una pesadilla.

0
0 33
Artículo Alberto Fuentes · ago 20, 2025 6m read

artisan cover

Si alguna vez habéis observado a un verdadero artesano—ya sea un alfarero que convierte barro en una obra maestra o un luthier que transforma madera en una guitarra maravillosa—sabéis que la magia no está en los materiales, sino en el cuidado, el oficio y el proceso. Lo sé por experiencia propia: mi guitarra eléctrica hecha a mano es una fuente diaria de inspiración, pero lo admito—crear algo así es un talento que no poseo.

Sin embargo, en el mundo digital, veo a menudo gente que espera “magia” de la IA generativa escribiendo prompts vagos y sin contexto como “crea una app”. Los resultados suelen ser frustrantemente superficiales—sin arte ni delicadeza. Demasiados esperan milagros de la IA sin aportar contexto ni estructura alguna.

Esa frustración fue lo que nos motivó a crear dc-artisan—una herramienta para artesanos digitales del prompt. Nuestro objetivo: permitir que cualquiera transforme ideas vagas y soñadoras en obras maestras eficientes, funcionales y ricas en contexto.

Como cuando se observa a un maestro artesano convertir materiales brutos en arte, crear con IA generativa trata de intención, preparación y elaboración cuidadosa. El problema no es la IA en sí—es cómo la utilizamos. Así como un lutier debe elegir y moldear cuidadosamente cada pieza de madera, la ingeniería de prompts eficaz exige contexto claro, estructura e intención.

Creemos que el mundo merece más que “prompts mágicos” que acaban en decepción. Una IA generativa potente surge de una guía humana reflexiva: contexto preciso, objetivos reales y una estructura deliberada. Ningún artesano crea belleza por accidente—los resultados fiables de la IA requieren cuidado y preparación.

dc-artisan aborda la ingeniería de prompts como un verdadero oficio—sistemático, enseñable y comprobable. Ofrece un conjunto completo de herramientas para ir más allá del ensayo, error y conjeturas.

Lo primero que hace dc-artisan es tratar de comprender vuestro prompt como lo haría un colaborador atento. Cuando empezáis a redactar, la herramienta interactúa directamente con vuestra entrada:

  • Preguntas aclaratorias: dc-artisan analiza vuestro prompt inicial y formula preguntas concretas para descubrir vuestro objetivo principal, público objetivo, formato esperado y cualquier contexto faltante. Por ejemplo:

    • “¿Qué tipo de resultado esperáis—resumen de texto, código o datos estructurados?”
    • “¿Quién es el público objetivo?”
    • “¿Con qué tipo de entrada o datos se usará este prompt?”

prompt enhance

Estas interacciones os ayudan a aclarar no solo qué queréis que diga el prompt, sino también por qué.

Una vez que vuestra intención está clara, dc-artisan revisa la estructura y ofrece sugerencias personalizadas—mejorando la claridad, el tono y completando detalles esenciales para obtener resultados ricos en contexto y prácticos.

¿Y lo mejor? Podéis usar todas estas funciones directamente dentro de vuestro editor favorito, ¡VS Code! Podéis insertar variables en vuestro prompt (como {task} o {audience}) para mayor flexibilidad y reutilización, y ver al instante cómo quedan los prompts finales con diferentes sustituciones—así sabéis exactamente cómo funcionará en la práctica.

Pero eso no es todo. dc-artisan también permite afinar los prompts para un rendimiento óptimo. Podéis subir un CSV con casos de prueba para evaluar automáticamente la consistencia, calidad de salida y el impacto de la estructura del prompt en diferentes entradas. dc-artisan evalúa cada respuesta y genera informes completos con puntuaciones de calidad y métricas de similitud—para que podáis medir y optimizar la eficacia de vuestros prompts con total confianza.

testing

Crear prompts sin contexto no es arte — es caos

La ingeniería de prompts sin estructura es como tallar madera con los ojos vendados. Podríais crear algo, pero probablemente no tocará ninguna melodía.

Muchos recurren a prompts vagos o sobrecargados—órdenes cortas y ambiguas o páginas de contenido sin estructura. O el modelo no sabe realmente qué queréis, o se pierde en un mar de ruido.

Cuando el contexto de un prompt se vuelve demasiado largo o desordenado, incluso los modelos avanzados de lenguaje pueden perder el foco. En vez de razonar o generar nuevas estrategias, a menudo se distraen, repitiendo contenido anterior o aferrándose a patrones familiares del inicio de la historia del prompt. Irónicamente, los modelos más grandes con ventanas de contexto más amplias (como 32k tokens) son aún más susceptibles a esto. Simplemente proporcionar más contexto (más documentos, prompts más largos, bases de conocimiento enteras) suele ser contraproducente, causando sobrecarga de contexto, objetivos perdidos y resultados confusos.

Precisamente para cubrir esa brecha está diseñado RAG (Generación aumentada por recuperación): no para dar a los LLMs más información, sino para ofrecerles el conocimiento más relevante en el momento adecuado.

Cómo ayudan dc-artisan y el modo RAG Pipeline

dc-artisan unifica la creación de prompts y la gestión del contexto. No solo os ayuda a escribir mejores prompts; también garantiza que vuestra IA reciba información seleccionada y relevante, no una avalancha de datos sin valor.

Con el modo RAG Pipeline, podéis:

  • 📄 Subir y dividir documentos: PDF, DOCX, Markdown, TXT—fácilmente integrables en vuestra base de datos vectorial.
  • 🧬 Inspeccionar fragmentos: Ver cada unidad atómica de texto incrustado con precisión.
  • 🗑️ Limpieza inteligente: Eliminar contenido no deseado o desactualizado directamente desde la extensión, manteniendo la base de conocimientos de vuestra IA bien cuidada y pertinente.

rag

Este flujo de trabajo está inspirado en el Portal de Ideas de InterSystems (ver DPI-I-557)

Así es como podéis integrar sin problemas una nueva sección sobre la arquitectura del backend de dc-artisan justo antes de “Reflexiones finales”, destacando la integración con InterSystems IRIS Interoperability y nuestro adaptador personalizado liteLLM.

Lo que realmente distingue a dc-artisan es su backend robusto, diseñado para ofrecer tanto interoperabilidad como flexibilidad. El motor de la extensión se ejecuta sobre InterSystems IRIS Interoperability, utilizando un adaptador liteLLM desarrollado por nosotros.

Esta arquitectura significa que no estáis atados a un único proveedor de modelos de lenguaje (LLM). En su lugar, podéis conectaros y cambiar sin interrupciones entre una amplia variedad de plataformas líderes de LLM—incluyendo OpenAI, Gemini, Claude, Azure OpenAI, y otras—todo gestionado desde un backend unificado con calidad empresarial.

Conclusiones Finales

Cada vez más desarrolladores descubren que crear prompts no va de adivinar las “palabras mágicas”. Se trata de tener objetivos bien pensados, lenguaje claro y un contexto potente—escribir prompts como ingenieros, no como magos. Así como los lutieres dan forma a la madera para crear instrumentos con alma, vosotros podéis dar forma a prompts que construyan flujos de trabajo con IA fiables y enriquecidos con contexto, utilizando herramientas creadas para vuestro oficio.

dc-artisan es más que una herramienta—es un cambio de mentalidad, del “vibe coding” hacia la claridad, la precisión y una auténtica artesanía digital.

🎸 ¿Listos para construir prompts con vuestras propias manos? ⚙️ Abrid VS Code, instalad dc-artisan y empezad a crear vuestra IA como artesanos—no como magos. 🗳️ Y si os gusta lo que hemos creado, votad por nosotros en el concurso InterSystems IRIS Dev Tools—¡vuestro apoyo significa mucho!

dc-artisan

0
0 30
Artículo Harshitha · ago 5, 2025 2m read

Trabajar en TI para el sector salud como un desarrollador joven, especialmente en InterSystems TrakCare, te hace darte cuenta rápidamente de una cosa: no se trata solo de mensajes HL7 o integraciones backend. Una gran parte de lograr que TrakCare funcione sin problemas en los hospitales depende de cómo se configura, personaliza y da soporte desde el lado de la aplicación.

Ahí es donde entramos personas como yo: desarrolladores tecno-funcionales que entendemos tanto la tecnología como su impacto en los flujos de trabajo reales del hospital.

No somos solo técnicos (ni consultores funcionales)

0
0 39
Artículo Jose-Tomas Salvador · mayo 19, 2025 3m read

Uno de los desafíos al crear un mensaje DICOM es cómo poner los datos en el lugar correcto. Parte de ello es insertar los datos en las etiquetas específicas de DICOM, mientras que la otra parte es insertar datos binarios como una imagen. En este artículo explicaré ambos.

Para crear un mensaje DICOM, podéis usar la clase EnsLib.DICOM.File (para crear un archivo DICOM) o la clase EnsLib.DICOM.Document (para crear un mensaje que se pueda enviar directamente a PACS). En ambos casos, el método SetValueAt os permitirá añadir vuestros datos a las etiquetas DICOM.

0
0 52
InterSystems Official Jose-Tomas Salvador · abr 1, 2025 5m read

La interfaz de usuario de Interoperabilidad ahora incluye experiencias modernizadas para las aplicacionesDTL Editory Production Configuration, las cuales están disponibles para su activación en todos los productos de interoperabilidad. Podéis alternar entre las vistas moderna y tradicional. Todas las demás pantallas de interoperabilidad permanecen en la interfaz de usuario estándar. Tenéis que tener en cuenta que los cambios se limitan a estas dos aplicaciones, y a continuación se identifica la funcionalidad que está disponible actualmente.

0
0 44
Artículo Jose-Tomas Salvador · mar 25, 2025 1m read

Rúbrica de preguntas frecuentes de InterSystems

Esto puede hacerse con TRY-CATCH:

#dim ex As%Exception.AbstractExceptionTRY {
    //Code that causes an error
  }
  CATCH ex {
     do ex.Log()
  }

Si utilizáis ^%ETN, llamadlo desde la entrada BACK (BACK^%ETN).

Echad también un vistazo al artículo relacionado: Cómo obtener errores de aplicación (^ERRORS) utilizando un comando

0
1 44
Artículo Jose-Tomas Salvador · mar 10, 2025 5m read

Hola

Este artículo es el resultado de la pregunta que había hecho a la comunidad: Adaptador UDP no funciona

En este artículo, voy a presentaros

1) ¿Qué es "UDP"?
2) El estado actual de Iris con UDP
3) Mi solución con el adaptador UDP


1) ¿Qué es "UDP"?

UDP significa User Datagram Protocol. Es uno de los protocolos fundamentales del conjunto de protocolos de Internet (IP) y se utiliza para transmitir datos a través de una red. Aquí tenéis algunas características clave de UDP:

0
0 76
InterSystems Official Jose-Tomas Salvador · mar 5, 2025

A partir de la versión 2025.1 de la plataforma de datos IRIS® de InterSystems, InterSystems deja oficialmente de utilizar MultiValue y lo incluye en la lista de funciones obsoletas y descatalogadas. Aunque InterSystems seguirá dando soporte a los clientes actuales que utilicen MultiValue, no se recomienda para nuevas aplicaciones.

Qué significa esto para vosotros:

0
0 51
Artículo Robert Cemper · feb 3, 2025 3m read

Variables de host son una característica de programación bastante común en muchas implementaciones de SQL.
Una pregunta reciente en DC me hizo darme cuenta de que en IRIS, Caché, Ensemble,... 
las variables del host simplemente existen dentro del embedded SQL.

>  You can supply host variables for Embedded SQL queries only. <
Se incluyen ejemplos relacionados en la documentación disponible.

A continuación se incluye una descripción de una solución alternativa si no utiliza o no puede utilizar embedded SQL.

1
0 46
Artículo Jose-Tomas Salvador · ene 7, 2025 4m read

Recientemente me encontré con un problema muy antiguo relacionado con el mantenimiento de código:

Tenéis acceso a vuestro servidor IRIS solo a través de ODBC/JDBC:

  • Sin acceso a VSCode
  • Sin acceso a Studio
  • Sin acceso a (Web-)Terminal

¡Pero necesitáis revisar Clases, Rutinas o Globals!

De cualquier forma, SQL es vuestro aliado.

  • Primero, necesitáis una tabla sencilla como almacén temporal de texto.
CREATEGLOBALTEMPORARYTABLE  arcc.txt (line VARCHAR(32000))
  • A continuación, exportad vuestro código a un archivo local e importadlo a vuestra tabla.
0
0 69
Pregunta David Robson · dic 23, 2024

Hola a todos,

Estoy buscando alguna herramienta que se pueda utilizar como base para crear una interfaz que permita a un usuario no técnico reenviar mensajes de manera sencilla. La idea es que el usuario pueda encontrar un mensaje HL7 ya enviado y reenviarlo modificando campos específicos del mensaje sin necesidad de tener ningún conocimiento técnico.

2
0 56
Artículo Ricardo Paiva · nov 29, 2024 1m read

Rúbrica de preguntas frecuentes de InterSystems

Se puede obtener con una consulta de lista de la clase %SYS.Namespace.  

1. Creáis una rutina como esta:

getnsp
   set statement=##class(%SQL.Statement).%New()
   set status=statement.%PrepareClassQuery("%SYS.Namespace","List")
   set resultset=statement.%Execute()
   while resultset.%Next() {
       write resultset.%Get("Nsp"),!
   }
   quit

2. Ejecutadla en vuestro terminal.

USER>do ^getnsp
%SYS
DOCBOOK
SAMPLES
USER

El método para ejecutar consultas de clase presentado en este artículo se puede aplicar en una variedad de casos.

0
0 63
Artículo Ricardo Paiva · nov 22, 2024 1m read

Rúbrica de Preguntas Frecuentes de InterSystems

La replicación o mirroring solo sincroniza archivos de base de datos.

Para sincronizar otros archivos necesarios para vuestra aplicación (archivos CSP, imágenes, documentos, etc.) entre los dos servidores que forman el conjunto de réplica, seguid uno de los siguientes enfoques:

  1. Colocad esos archivos en un disco compartido introduciendo un NAS u otro dispositivo similar.
  2. O utilizad software de sincronización de archivos para sincronizar los archivos entre los dos servidores.
0
0 48
Artículo Luis Angel Pérez Ramos · nov 19, 2024 1m read

Preguntas frecuentes de InterSystems

Por defecto, el orden de las columnas en una tabla lo determina automáticamente el sistema. Para cambiar el orden, estableced explícitamente el orden de cada propiedad utilizando la palabra clave SqlColumnNumber al definir la clase.

Ejemplo:

Property Name As %String [SqlColumnNumber = 2];

Por favor, consultad la documentación a continuación.

SqlColumnNumber

Si queréis cambiar el nombre de la tabla SQL, especificad SqlTableName. Si queréis cambiar el nombre de la columna (nombre del campo), especificad SqlFieldName.  

0
0 54
Artículo Ricardo Paiva · nov 19, 2024 2m read

Preguntas frecuentes de InterSystems

Si el archivo de journal es demasiado grande para buscarlo o filtrarlo mediante el Portal de administración, podemos consultarlo mediante los dos métodos siguientes.

① Usando la utilidad ^JRNDUMP
② Usandolo en código

================================================== ========== 

① Usando la utilidad ^JRNDUMP. Por ejemplo, si deseamos seleccionar todos los registros del archivo de journal que incluyen la referencia global ^ABC, hagamos lo siguiente:

*Ejecuta todos los comandos a continuación en el espacio de nombres %SYS.

0
0 58
Artículo Jose-Tomas Salvador · nov 13, 2024 6m read

He estado trabajando en este proceso con algunos compañeros de equipo y pensé que podría ser útil para otros, especialmente si trabajáis con HL7 y Ensemble/HealthConnect/HealthShare y rara vez os aventuráis más allá de la sección de Interoperabilidad.

Primero, me gustaría establecer que este tutorial es una extensión de la documentación ya existente sobre la importación y exportación de datos SQL, que se encuentra aquí: https://docs.intersystems.com/iris20241/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_impexp#GSQL_impexp_import

0
0 56
Artículo Ricardo Paiva · oct 22, 2024 4m read

Cuando utilizáis InterSystems IRIS como motor de interoperabilidad, todos sabemos y apreciamos lo fácil que es usar el Visor de Mensajes para revisar las trazas de los mensajes y ver exactamente qué está ocurriendo en vuestra producción. Sin embargo, cuando un sistema maneja millones de mensajes al día, puede que no sepáis por dónde empezar vuestra investigación.

A lo largo de mis años apoyando producciones en IRIS, a menudo me encuentro investigando cosas como...

  • ¿Qué tipo de rendimiento tiene este flujo de trabajo?  
  • ¿Dónde está el cuello de botella?  
  • ¿Cuáles son mis errores más comunes?
0
0 78
Anuncio John Murray · oct 17, 2024

Hemos realizado un cambio en Server Manager con el objetivo de mejorar su manejo cuando una contraseña almacenada ya no es válida, por ejemplo, porque ha sido cambiada.

Planeamos incluir esto en la próxima versión publicada (aún sin fecha de lanzamiento), pero si queréis acceso anticipado, podéis descargar el VSIX de la versión v3.6.3-beta.3 e instalarlo, por ejemplo, arrastrándolo desde vuestro explorador de archivos a la vista de Extensiones en VS Code.

0
0 57
Artículo Jose-Tomas Salvador · oct 10, 2024 3m read

Rúbrica de preguntas frecuentes de InterSystems

Podéis comprobar el espacio libre en disco en cualquier momento usando la clase de utilidad del sistema: SYS.Database y la consulta: FreeSpace.

Aquí tenéis cómo probarlo en el terminal de IRIS (id al espacio de nombres %SYS y luego ejecutadlo):

zn"%SYS"set stmt=##class(%SQL.Statement).%New()
set st=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
set rset=stmt.%Execute()
do rset.%Display()

El resultado de salida es el siguiente:

0
0 69
Artículo Ricardo Paiva · sep 10, 2024 3m read

Rúbrica de preguntas frecuentes de InterSystems

Los globales temporales almacenados en las bases de datos IRISTEMP/CACHETEMP se utilizan cuando un proceso no necesita almacenar datos de manera indefinida, pero requiere el potente rendimiento de los globales. Las bases de datos IRISTEMP/CACHETEMP no se registran en el diario, por lo que el uso de globales temporales no genera archivos de diario.

El sistema utiliza las bases de datos IRISTEMP/CACHETEMP para almacenamiento temporal y están disponibles para vosotros para el mismo fin.

0
0 95
Artículo Luis Angel Pérez Ramos · sep 2, 2024 1m read

[FAQ] Preguntas frecuentes de InterSystems

El siguiente código descarga https://www.intersystems.com/assets/intersystems-logo.png y guarda el archivo como c:\temp\test.png.

Es necesario definir una configuración SSL llamada SSLTEST antes de ejecutar este código.

0
0 66
Artículo Alberto Fuentes · ago 26, 2024 1m read

Una buena característica que se ha añadido recientemente a la versión 2.12.6 de la extensión ObjectScript de VS Code está controlada por esta nueva configuración:

objectscript.serverSourceControl.respectEditableStatus

Cuando se establece true en JSON, o se marca en el Settings Editor (o Editor de Configuración), un documento del lado del servidor será de sólo lectura si la clase de control de código fuente para el namespace informa que no es editable.

0
0 55
Artículo Ricardo Paiva · ago 12, 2024 4m read

Una solución de control de versiones eficaz permite a las organizaciones gestionar bases de código complejas, facilitar una colaboración sin fisuras dentro de los equipos de desarrollo y agilizar los procesos de despliegue.

0
0 82