5 Seguidores · 382 Publicaciones

  

InterSystems Caché es un multi-modelo de DBMS y la aplicación server. See más detalles aquí.

Documentación.

Descargar Evaluación de Caché.

Artículo Ricardo Paiva · 11 ago, 2021 3m read

Me encontré con un interesante caso de uso de ObjectScript con una solución general que quería compartir.

Caso de uso:

Tengo una matriz JSON (específicamente, en mi caso, una matriz de problemas de Jira) que quiero agregar en algunos campos, por ejemplo: categoría, prioridad y tipo de problema. Después quiero combinar los agregados en una lista simple con el total de cada uno de los grupos.

1
0 225
Artículo Pierre-Yves Duquesnoy · 3 mayo, 2022 14m read

Encontrar errores en tu código o examinar un comportamiento inesperado es el principal objetivo de la depuración.

Trataré de actualizar las herramientas tradicionales aparte de las ayudas que tienen Studio, VScode, Serenji... Las herramientas básicas que han estado ahí antes de que tu EDI preferido lo utilizara en segundo plano.

0
2 207
Pregunta Yone Moreno · 22 abr, 2022

Hola, buenos días

Primero agradecer su tiempo al leer y responder nuestra cuestión.

Hemos estado leyendo, indagando, investigando respecto a cómo realizar múltiples envíos desde 1 proceso del tipo "DICOM.BP.QueryProcess" a varias operaciones destino

Actualmente estamos usando el ejemplo básico, el que incluye Ensemble, y este dispone de una propiedad mediante la cual desde la producción escribimos a qué operación envía nuestro proceso:

Viéndose gráficamente el circuito:

Siendo en el código la propiedad una String sencilla:

Es decir, el código es:

Parameter SETTINGS = "OperationDuplexNameOperationDuplexName
1
0 266
Artículo Rizmaan Marikar · 21 abr, 2022 13m read

Hay varias maneras de generar ficheros Excel usando tecnología InterSystems: por ejemplo utilizando informes generados con InterSystems Reports, o los antiguos informes ZEN, o incluso haciendo uso de librerías Java de terceros. Las posibilidades son casi infinitas.

Pero, ¿qué pasa si quieres crear una sencilla hoja de cálculo sólo con ObjectScript? (sin aplicaciones de terceros)

En mi caso, necesito generar informes que contengan muchos datos sin procesar (a los financieros les encantan), pero mi antiguo informe ZEN fallaba y me da lo que me gusta llamar un "archivo con cero bytes". Básicamente, Java se queda sin memoria y provoca una sobrecarga en el servidor de informes.

0
0 211
Pregunta Yone Moreno · 1 abr, 2022

Buenos días,

Agradecer a ustedes el tiempo dedicado en leer y responder a esta duda

Necesitamos indagar la forma de mostrar un EnsLib.DICOM.Document mediante LOGINFO, en las trazas

Hemos tratado de emplear:

set writer=##class(%XML.Writer).%New()

set status=writer.OutputToString()

set status=writer.RootObject(..DocumentFromService)

set xml= writer.GetXMLString()

$$$LOGINFO("..DocumentFromService en xml: "_xml)

En la traza nos informa de que el método "RootObject" para los documentos DICOM, los EnsLib.

1
0 247
Artículo Jose-Tomas Salvador · 20 abr, 2022 1m read

Encontré este pequeño artículo de @Brendan Bannon de hace unos años... pero creo que es muy útil para cuando tengamos estructuras de almacenamiento basadas puramente en globals y queramos tener la posibilidad de acceder a ellas desde el punto de vista de Objetos y/o Relacional.

El fichero ZIP adjunto contiene un paquete de ejemplos de mapeos SQL Storage (válido para IRIS y Caché) que he hecho y recopilado a lo largo de estos años.

0
0 167
Artículo Muhammad Waseem · 6 abr, 2022 7m read

image

¡Hola Comunidad!

Esta publicación es una introducción a mi aplicación iris-globals-graphDB en Open Exchange.

En este artículo, mostraré cómo guardar y recuperar Graph Data en InterSystems Globals con la ayuda del framework Python Flask Web y la librería PYVIS Interactive network visualizations.

Recomendación

Paso 1: Establecer conexión con IRIS Globals mediante el SDK nativo de Python

 #create and establish connection
  if not self.iris_connection:
         self.iris_connection = irisnative.createConnection("localhost", 1972, "USER", "superuser", "SYS")
                                     
  # Create an iris object
  self.iris_native = irisnative.createIris(self.iris_connection)
  return self.iris_native
0
0 236
Pregunta Kurro Lopez · 29 oct, 2021

Hola a todos.

Estoy intentando crear una regla de enrutamiento para llamar a un web service según el valor de un parámetro de un mensaje.

Mi primer intento es el siguiente:

Tengo una clase común con toda la información, BuscarHuecoRequest, y comprubea cual es el valor de la propiedad "CodigoProveedor".

La tabla T_PROVEEDOR contiene la lista de códigos de los proveedores, si es F, llama a WSF, si es C, llama WSC, etc... Usando un transformador para convertir los valores para este proveedor.

1
0 119
Pregunta Yone Moreno · 30 mar, 2022

Buenos días,

Primero, ante todo, muchas gracias de antemano por leernos y responder

Además, agradecer cualquier apoyo, porque es un alivio, apoyo, aporte, auxilio contar con personas con más entendimiento, conocimiento y práctica.

Existe la siguiente necesidad:

Se dispone de 2 circuitos:

1º Circuito DICOM de "Studio" ( Servicio clásico )

Servicio: clase: DICOM.BS.QueryService

Proceso: clase: DICOM.BP.QueryProcess

Operacion: clase: EnsLib.DICOM.Operation.TCP

Probamos desde la "Salida" del "Studio" mediante:

do ##class(DICOM.BS.QueryService).TestFind("102030")
3
0 279
InterSystems Official David Reche · 7 mar, 2022

Ya están disponibles nuevas versiones de mantenimiento de:

  • Caché  2018.1.6, Ensemble 2018.1.6 y HSAP 2018.1.6
  • InterSystems IRIS 2020.1.2, IRIS for Health 2020.1.2 y HealthShare Health Connect 2020.1.2
  • InterSystems IRIS 2021.1.1, IRIS for Health 2021.1.1 y HealthShare Health Connect 2021.1.1

Los kits para la instalación y los contenedores se pueden descargar de la página de distribución de software del Centro de Soporte Internacional (WRC). Las imágenes de los contenedores para las Enterprise Editions de InterSystems IRIS e IRIS for Health y todos los componentes correspondientes están disponibles en el Registro de Contenedores de InterSystems.

0
0 161
Artículo Daniel Aguilar · 25 feb, 2022 6m read

Hola!

Llevaba un tiempo queriendo dedicarle un rato para implementar alguna DLL o algo que pudiese usar desde Caché y al final he sacado un huequillo, si te interesa poder producir mensajes que se envíen a Kafka de una manera rápida estás en el lugar adecuado ;-)

Antes de daros la chapa con lo que vamos a ver os hago un resumen para que decidáis si os puede interesar leer el artículo.

En este artículo nos vamos a centrar "solo" en la parte de producir mensajes y enviarlos a Kafka:

¿Cómo funciona?

Uso una DLL de .Net (Netframework 4.

0
0 1029
Artículo Marcio Pereira · 23 feb, 2022 9m read

En proyectos de software orientados a objetos son utilizados comúnmente patrones de proyecto para resolución de problemas. Si usted desarrolla en COS, este artículo tendrá sentido para su día a día.

En proyectos de software orientados a objetos son utilizados comúnmente patrones de proyectos para la resolución de problemas que pueden ocurrir con frecuencia en determinados contextos.

0
0 440
Artículo Robert Cemper · 21 feb, 2022 2m read

Durante las últimas semanas, estuve trabajando en varias cuestiones y problemas relacionadas con el desarrollo de software. Me di cuenta de que con frecuencia el análisis de los problemas consistía en perseguir los problemas solo a nivel superficial, pero sin atacar realmente las razones más profundas del problema y sin seguir las consecuencias. Es como el médico que detiene la hemorragia de una pierna pero no ve que en realidad está rota.

En mi puesto como Responsable de Soporte de Software en Digital Equipment Corp.

0
0 208
Pregunta Arturo Masero · 17 feb, 2022

Hola compañeros/as, necesito de vuestra sabiduría.

En mi compañía programamos en ObjectScript y .int todo el día. Cuando entré nadie sabía apenas nada de clases y su uso era prácticamente sólo para definición de almacenamiento. Durante mi autoaprendizaje en caché descubrí que la programación orientada a objetos y el desarrollo de clases era posible en caché y comencé a codificar en .cls . Al ser algo autodidacta, puede que tenga algunas dudas básicas que se me hayan pasado en mis lecturas de documentación.

2
0 212
Pregunta Kurro Lopez · 17 feb, 2022

Hola a todos,

Tengo una regla para lanzar un mensaje cuando hay un error. Quiero evitar enviar el correo si el origen del error es la API para enviar el correo

Esta es mi regla:

Ahora, si hay algún error en algún proceso, funciona, pero si hay un error en MyProduct.BO.SendEmail está intentando enviar el error nuevamente, y es un bucle infinito.

¿Hay alguna forma para verificar cuál es el origen y no procesar si el origen es MyProduct.BO.SendEmail?

Intenté establecer una condición en el nodo when pero no detecta ninguna propiedad de Ens.AlertRequest

No funciona.

5
0 260
Artículo Kurro Lopez · 14 feb, 2022 4m read

Viajar en el tiempo es como visitar París. No puedes simplemente leer la guía, tienes que arrojarte. Come la comida, usa los verbos equivocados, recibe el doble de cargos y terminas besando a completos desconocidos.

El Doctor

Vamos ahora a viajar por el tiempo, osea, vamos a ver fechas futuras y pasadas y como calcularlas en diferentes formatos. La TARDIS no espera, ponte a los mandos y sujétate fuerte.

Travel in TARDIS

0
0 312
Pregunta Daniel Aguilar · 20 oct, 2020

Buenas tardes, 

Hace ya tiempo que tengo esta duda y no sé si alguno sabrá la respuesta. Cuando realizo un insert por SQL desde una aplicación externa en los campos de tipo %String si están vacíos me graba el caracter $c(0) en el global. 

Revisando la documentación he visto que existe una propiedad para las clases que extienden de %XML.Adapter que si sobreescribes el parametro XMLIGNORENULL = 1 puedes hacer que guarde cadenas vacías en lugar de nulos.

He intentado hacer que mis clases extiendan de %XML.

4
0 272
Pregunta Kurro Lopez · 7 feb, 2022

Buenas a todos.

Tengo un servicio creado por el wizard de WebServices para la invocación a un proveedor de citas.

Para valicar la petición, tengo que revisar si en el nodo de mensajes viene algún texto porque eso significa que ha habido algún problema con las citas solicitadas.

Mi clase de respuesta del proveedor es algo como esta (por motivos de confidencialidad, no puedo mostrar la clase real, pero si el valor exacto del nodo que estoy preguntando):

Class DKV.CITAS.Prov01.tns.listaDeHuecosType Extends (%SerialObject, %XML.Adaptor) [ ProcedureBlock ]
{

Parameter ELEMENTQUALIFIED = 1;

Parameter NAMESPACE = "http://ws.citaonline.citacion.misalud.org/";

Parameter XMLNAME = "listaDeHuecosType";

Parameter XMLSEQUENCE = 1;

Property idListaHuecos As %String(MAXLEN = "", XMLNAME = "idListaHuecos");

Property listaHuecos As list Of DKV.CITAS.Prov01.tns.huecoType(XMLITEMNAME = "hueco", XMLNAME = "listaHuecos", XMLPROJECTION = "COLLECTION");

Property motivo As %String(MAXLEN = "", XMLNAME = "motivo");

Storage Default
{
    .....
}
}
1
0 286
Artículo Rob Tweed · 7 ene, 2022 2m read

Para aquellos que sois nuevos en IRIS, e incluso para los que habéis utilizado Cache o IRIS durante un tiempo pero queréis explorar más allá de los límites y prácticas normalmente admitidos, puede que os guste bucear en esta investigación detallada del motor de la base de datos, situado en su centro, y descubrir lo que realmente podéis hacer con él, yendo más allá de lo que InterSystems ha hecho con él por vosotros.

0
0 152
Artículo Muhammad Waseem · 22 dic, 2021 3m read

La interoperabilidad en la asistencia sanitaria es esencial para mejorar la atención a los pacientes, reducir los costes de los proveedores de atención médica y ofrecer una imagen más precisa a los proveedores. Pero con tantos sistemas diferentes, los datos se presentan en diferentes formatos. Se han creado muchos estándares para tratar de resolver este problema, incluyendo HL7v2, HL7v3 y CDA, pero cada una tiene sus limitaciones.

FHIR, o Fast Healthcare Interoperability Resources, es un estándar para el intercambio de datos de salud, que tiene como objetivo resolver estos problemas.

0
1 992
InterSystems Official Mario Sanchez Macias · 17 dic, 2021

13 de diciembre de 2021

InterSystems está investigando el impacto de una vulnerabilidad de seguridad relacionada con Apache Log4j2.

La vulnerabilidad — impactando al menos a Apache Log4j2 (versiones 2.0 a 2.14.1) — fue anunciada recientemente por Apache y ha sido notificada en la Base de Datos de Vulnerabilidad Local de Estados Unidos (NVD) como CVE-2021-44228 con la calificación de gravedad más alta, 10.0.

Por favor, consultad esta página para conocer más detalles sobre la vulnerabilidad y actualizaciones sobre si los productos de InterSystems están afectados.

0
0 197
Artículo Ricardo Paiva · 10 dic, 2021 4m read

Me gustaría compartir algunas funciones de almacenamiento que también existen en Caché y que son prácticamente desconocidas y en su mayoría no se utilizan. Por supuesto, están disponibles en IRIS y son más relevantes con arquitecturas de almacenamiento extensas y distribuidas.

0
0 199
Artículo Ricardo Paiva · 3 dic, 2021 2m read

Si defines una tabla/clase persistente, el compilador de clases genera una definición de almacenamiento adecuada. Otra opción es definir un mapeo SQL para un almacenamiento global que ya existe.  Esto ya se explicó estupendamente en otra serie de artículos:  El arte del mapeo de globales para Clases 1 de 3

0
0 248
Pregunta Flávio Lúcio Naves Júnior · 30 nov, 2021

¡Hola a todos!

Estoy intentando exportar una clase a xml y quitar la etiqueta "xmlns" de la clase madre. Estas son mis clases para crear el XML.

Class Class.Test Extends (%RegisteredObject, %XML.Adaptor)
{ 

Parameter NAMESPACE = "http://mynamespace.com/test"; 
Property Person As Class.Person; Property Address As Class.Address; 

}
Class Class.Person Extends (%RegisteredObject, %XML.Adaptor)
{ 

Parameter NAMESPACE = "http://mynamespace.com/test"; 
Property name As %String; Property age As %String; 

}
Class Class.Address Extends (%RegisteredObject, %XML.Adaptor)
{ 

Parameter NAMESPACE = "http://mynamespace.com/test"; 
Property location As %String; 

}
2
0 279
InterSystems Official Mario Sanchez Macias · 22 nov, 2021

19 de Noviembre de 2021

Los kits de InterSystems incluyen un servidor web Apache que ofrece una práctica manera de interactuar con el Portal de Gestión de Caché/IRIS sin necesidad de instalar un servidor web externo. Sin embargo, este servidor web nunca debería usarse para instancias de producción y se debe instalar un servidor web externo que se ajuste a las necesidades específicas y a los requisitos de seguridad y riesgo de cada cliente.

Pruebas recientes han detectado problemas de seguridad con el servidor web Apache incluido en los kits actuales. Como es una tecnología de terceros que InterSystems no controla, InterSystems recomienda instalar la versión del servidor web obtenida directamente desde Apache y deshabilitar el servidor web Apache incluido. Nuestra documentación incluye instrucciones sobre cómo deshabilitar el servidor web proporcionado con nuestros kits. Apache también ofrece instrucciones de desinstalación, que se pueden encontrar en su página web.

0
0 170
Artículo Muhammad Waseem · 15 nov, 2021 2m read
0
0 330