Artículo Ricardo Paiva · abr 22, 2022 3m read

¡Hola Comunidad!

Compartí mi experiencia trabajando por primera vez con FHIR en este artículo.

En esa publicación, escribí cómo exploré los recursos FHIR y comenté la información que encontré útil en la documentación FHIR.

La primera versión de mi app solo muestra la información que ofrecen los Recursos FHIR. 

Quería hacer que el usuario pudiera actualizar los detalles del paciente, así que busqué un ejemplo de cómo hacerlo. 

La página Github de fhir.js tiene un ejemplo de cómo actualizar un recurso. 

Viendo este ejemplo me dí cuenta de que era fácil.

0
0 205
Artículo Rizmaan Marikar · abr 21, 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 200
Pregunta Kurro Lopez · abr 20, 2022

Hola a todos.

Queremos hacer la migración de las producciones y bases de datos de Ensemble 2017 al nuevo IRIS 2021.1.

Mi primera intención era utilizar las copias backups y cargarlas directamente en IRIS usando DO ^BACKUP pero como es lógico, avisa que el fichero de backup no es un backup de IRIS

Mi siguiente intento es hacer un Freeze de la base de datos de Ensemble 2017 y copiar el fichero DAT directamente, pero antes de hacer nada me imagino que la estrcutura es diferente.

¿Cual es la mejor forma de migrar todo lo que tenemos en Ensemble 2017 a IRIS?

Un saludo,
Kurro

4
0 204
Pregunta Yone Moreno · abr 1, 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 230
Artículo Jose-Tomas Salvador · abr 20, 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.

Si tienes globals existentes y quieres exponerlos vía Objectos o SQL, necesitas configurar el mapeo SQL Storage en InterSystems IRIS o

0
0 161
Artículo Eduardo Anglada · abr 19, 2022 3m read

Gracias a @Yuri Marx hemos visto un buen ejemplo de Migración de Bases de datos de Postgres a IRIS.
Mi problema personal es el uso de DBeaver como una herramienta de migración.
En especial, como una de las fortalezas de IRIS (y también Caché) es la disponibilidad de los SQLgateways que permiten el acceso a cualquier base de datos externa, siempre y cuando se puedan acceder usando ODBC/JDBC. Así que he ampliado el paquete para demostrarlo.

0
1 250
Anuncio Esther Sanchez · abr 19, 2022

¡Hola desarrolladores!

Día a día, el equipo de la Comunidad de Desarrolladores hace que ésta sea un lugar mejor para los desarrolladores de InterSystems. En esta nueva publicación os mostramos cómo hemos mejorado la Comunidad en los últimos meses.

Principales novedades:

  • Edición del perfil de usuario
  • Nueva página de Concursos para los concursos de artículos técnicos
  • Contador de caracteres y palabras

Os explicamos cada cambio más abajo.

0
0 98
Anuncio Esther Sanchez · abr 19, 2022

¡Hola Comunidad!

Ya están publicados los títulos y descripciones de las Sesiones Técnicas ("Focus Sessions") que se celebrarán en la Convención Anual ("Global Summit") de InterSystems.

Listado de Sesiones Técnicas, por orden alfabético >>

Pronto publicaremos los horarios de todas las Sesiones y así podréis organizar vuestra agenda para el evento.

¡Os mantendremos informados!


0
0 119
Artículo Muhammad Waseem · abr 18, 2022 2m read

Antecedentes

En las versiones de InterSystems IRIS >=2021.2 podemos usar irispython para escribir directamente código python encima de nuestras instancias IRIS. Esto nos permite usar paquetes de python, llamar a métodos, hacer consultas SQL y hacer casi cualquier cosa en Objectscript excepto pythonic.

Por ejemplo, a continuación compruebo si hay un namespace:

#!/usr/irissys/bin/irispython
import iris
# call arbitrary class methods
result = iris.cls('%SYS.Namespace').
0
0 203
Artículo Renan Santos · abr 13, 2022 4m read

La interoperabilidad es uno de los temas más discutidos en los últimos años. Notamos cada vez más que nuestros datos de salud se comparten entre múltiples sistemas con el fin de acercar el concepto de salud del paciente.

A través de la interoperabilidad, utilizamos diferentes estándares de comunicación (independientemente del lenguaje/tecnología en el que esté integrado un sistema dado) para mover información entre diferentes sistemas.

0
0 144
InterSystems Official Jose-Tomas Salvador · abr 13, 2022

Hola!! Hemos abierto una plaza de Sales Engineer en InterSystems para nuestra oficina de Madrid.

No se requieren conocimientos de nuestra tecnología aunque, por supuesto, tenerlos puede ser un gran plus. Lo más importante es que te apasione la tecnología, te guste compartir conocimiento, aprender de otros y enseñar,.

0
0 197
Anuncio David Reche · abr 7, 2022

Nos encanta anunciaros que hemos creado un nuevo Portal de Sugerencias: InterSystems Ideas.

El objetivo del Portal es mejorar los mecanismos para que podáis sugerir cómo mejorar nuestros productos y cómo hacerlos evolucionar para satisfacer vuestras necesidades. La sección de Preguntas es una excelente manera de interactuar con otros colegas sobre problemas específicos de código; y el Soporte a Clientes es la forma de obtener la solución a un problema.

0
0 146
Anuncio Esther Sanchez · abr 6, 2022

Hola desarrolladores:

Como ya os anunciamos hace unos días, InterSystems va a ser uno de los patrocinadores de la conferencia Internacional "J On The Beach" que tendrá lugar en Málaga los días 28-29 de abril.

El primer día de la Conferencia @David Reche @Eduardo Anglada darán una ponencia titulada "Capitán Kirk, descubierto un exoplaneta en la ruta usando AutoML"

Y, además, InterSystems contará con un stand que, como siempre, tendrá sorpresas... 😁

¿Quieres saber qué han preparado?? Sigue leyendo...

 

0
0 163
Artículo Muhammad Waseem · abr 6, 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.
0
0 228
Anuncio Esther Sanchez · abr 6, 2022

Si tu app en Open Exchange tiene una demo online o una demo que puede ser descargada, puedes añadir el enlace a ella en el perfil de tu app.
Para hacerlo:

  1. Inicia sesión en Open Exchange
  2. Ve a tu cuenta, a la sección "Applications" en ella
  3. Haz clic en la app que tiene una demo 
  4. Ve a Settings -> Edit
  5. Pon tu enlace a la demo en el campo Demo URL
  6. Guarda los cambios 
  7. Envía la aplicación para aprobación

Ejemplo de demo de la app iris-python-faker

0
0 132
Anuncio David Reche · abr 6, 2022

InterSystems anuncia la versión 2.0.0 del Language Server para VS Code. Language Server incrementa la extensión VS Code ObjectScript para ofrecer un mejor resaltado de sintaxis, documentación embebida, autocompletado de código y más.

Todos los detalles están disponibles en el archivo README del repositorio de GitHub. La versión 2.0.0 añade soporte a varias arquitecturas de plataformas, incluyendo M1 Macs! También reduce el tamaño del paquete, mejora el coloreado del SQL y arregla otros problemas que se detallan en el CHANGELOG. 

0
0 161
Artículo Eduardo Anglada · abr 5, 2022 5m read

Si estás implementando más de un entorno/región/nube/cliente, inevitablemente te encontrarás con el problema de la gestión de la configuración.

Aunque todas (o solo varias de) tus implementaciones pueden compartir el mismo código fuente, algunas partes, como la configuración (ajustes, contraseñas) son diferentes de una implementación a otra y se deben gestionar de alguna manera.

En este artículo, intentaré ofrecer varios consejos sobre ese tema. Y comentaré principalmente las implementaciones de los contenedores.

0
0 191
Anuncio David Reche · abr 5, 2022

Me complace anunciar el lanzamiento de la versión 1.4.4 de la extensión VS Code, que contiene las siguientes mejoras y correcciones de fallos. Los enlaces que llevan a las issues de GitHub han sido corregidos. Como siempre, si ya tienes la extensión instalada, VS Code debería actualizar automáticamente tu extensión. Si no la tienes instalada, sigue estas instrucciones para empezar. 

Registro de cambios

0
0 142
Anuncio Esther Sanchez · abr 5, 2022

🎉 🎉 🎉 

¡Gracias a todos los que compartís vuestras aplicaciones en Open Exchange!

Y sois más que bienvenidos a visitarlo si aún no lo conocéis.

Open Exchange es una galería de aplicaciones, conectores y librerías, que los desarrolladores de InterSystems publican para compartir formas de trabajar, enfoques y hacer negocio. Todas las aplicaciones están o construidas con InterSystems Data Platform o pensadas para ser usadas en desarrollos con nuestra tecnología.

 

0
0 106
Artículo Alberto Fuentes · abr 5, 2022 2m read

¿Te suenan OAuth2 / OpenID Connect pero no estás seguro de cómo se utilizan? ¿Has necesitado implementar alguna vez Single Sign On, servicios web seguros basados en tokens? ¿Has necesitado incorporar autenticación / autorización a tus aplicaciones web o servicios y no sabías por dónde empezar?

¿Que te parecería poder configurar paso a paso un servidor de autorización, un cliente y un servidor de recursos? Aquí tenéis un ejemplo donde se configuran instancias Intersystems IRIS para actuar como cada uno de esos roles de OAuth2.

2
0 361
Pregunta Eduard Lebedyuk · mar 17, 2022

He definido una clase con una propiedad de objeto dinámico:

 

Mi clase

Class test.Dyn Extends %Persistent
{

Property json As %DynamicObject;

/// do ##class(test.Dyn).test()
ClassMethod test()
{
  do ..%KillExtent()
  for len = 100, $$$MaxStringLength - 1, $$$MaxStringLength, $$$MaxStringLength+1, $$$MaxStringLength *2 {
    set sc = ..save(len)
    write "Len: ",len, " Result: ",$case($$$ISERR(sc), $$$YES: $System.Status.GetErrorText(sc), : "OK"),!
  }
}

ClassMethod save(len)
{
  set json = {}
  set stream = ..getStream(len-8) // -8 because {"a":""}
  do json.%Set("a", stream, "stream")
 
  set obj = ..%New()
  set obj.json = json
  quit obj.%Save()
}

ClassMethod getStream(len)
{
  set stream = ##class(%Stream.TmpCharacter).%New()
 
  if len<$$$MaxStringLength {
    do stream.Write($tr($j("",len)," ","A"))
  } else {
    for i=1:$$$MaxStringLength:len {
      do stream.Write($tr($j("",$$$MaxStringLength)," ","A"))
    }
    do stream.Write($tr($j("",len-i)," ","A"))
  }
  quit stream
}
}

El problema que me encuentro es que si la longitud de una propiedad json serializada es de más de 3641144 símbolos, el objeto no puede guardarla, con el siguiente error (MAXSTRING o STRINGSTACK):

Length: 100 Result: OK
Length: 3641143 Result: OK
Length: 3641144 Result: OK
Length: 3641145 Result: ERROR #5002: ObjectScript error: <MAXSTRING>%GetSerial+1^%Library.DynamicAbstractObject.1
Length: 7282288 Result: ERROR #5002: ObjectScript error: <STRINGSTACK>%GetSerial+1^%Library.DynamicAbstractObject.1

¿Hay algún método alternativo? Necesito almacenar jsons relativamente grandes (10-15 Mb) y las propiedades de objetos dinámicos permiten un acceso muy práctico.

$ZSTORAGE está establecido en -1.

2
0 167
Pregunta Kurro Lopez · oct 29, 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.

Lanza un error, porque no la propiedad CodigoProveedor no

1
0 111
Anuncio Esther Sanchez · abr 1, 2022

Desarrolladores... ¡vuelve el Global Summit! 

Después de dos años de videoconferencias y encuentros virtuales, estamos felices de poder reunirnos con todos nuestros clientes y partners de forma presencial en la nueva Convención Anual de InterSystems (Global Summit 2022). Es el primer evento en persona desde que empezó la pandemia y en la conferencia principal contaremos con la presencia de líderes y desarrolladores a la vanguardia de sus sectores. ¡Ya está abierto el plazo de inscripción!

➡️ Global Summit 2022

🗓 Fecha: 20-23 de junio, 2022

📍 Ubicación: Seattle, WA, Estados Unidos

0
0 164
Anuncio Esther Sanchez · abr 1, 2022

¡Hola desarrolladores!

Hemos hecho algunos cambios en los sitios web de las Comunidades de Desarrolladores de InterSystems:

  • Nueva función de búsqueda
  • Estadísticas generales de la Comunidad
  • Conexión con el perfil de Facebook
  • Cambios en las páginas de las publicaciones: etiquetas, información del autor, resaltado del borrador

Vamos a explicar en detalle cada uno de ellos. 

0
0 102
Pregunta Yone Moreno · mar 30, 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).
3
0 269
Anuncio Esther Sanchez · mar 25, 2022

¡Hola desarrolladores!

Ya hemos realizado el sorteo entre todas las personas que propusieron un nombre al exoplaneta descubierto en la ruta.

Y el ganador ha sido @Daniel Mory. ¡Enhorabuena!! 🎉🎉

¡Muchas gracias a todos los que habéis participado!

Aquí podéis ver el vídeo del sorteo entre todos los participantes.


  

3
0 148