#InterSystems IRIS for Health

0 Seguidores · 498 Publicaciones

InterSystems IRIS for Health™ es la primera y única plataforma de datos global diseñada específicamente para desarrollar aplicaciones que permitan a los servicios médicos administrar los datos más importantes del mundo. Incluye poderosas funciones listas para utilizarse: procesamiento y análisis de transacciones, un modelo flexible para la información de los servicios médicos, implementación de soluciones basadas en FHIR, soporte para las normas de compatibilidad operativa entre los servicios médicos, y mucho más. Todas estas funciones permiten que los desarrolladores realicen aplicaciones valiosas y novedosas rápidamente. Obtener más información.

Artículo Jose-Tomas Salvador · jun 30, 2022 2m read

¡Hola desarrolladores!

En Docker Hub hay publicadas imágenes para los contenedores de InterSystems IRIS Community Edition e InterSystems IRIS Community for Health.

¿Qué es esto?

Hay un repositorio en que se publican estás imágenes (que, de hecho, son las mismas que las imágenes de IRIS Community Edition que tienes en el Registro de Contenedores de InterSystems a las que se les ha pre-cargado el cliente del ObjectScript Package Manager).

Así que si ejecutas este contenedor con IRIS CE o IRIS CE for Health puedes empezar a usar ZPM inmediatamente e instalar paquetes desde el Registro de la Comunidad o cualquier otro.

¿Que significa esto para ti?

0
0 108
Artículo Muhammad Waseem · jun 9, 2022 1m read

Alt Text

¡Hola a todos!

Solo quería compartir aquí una publicación rápida sobre mi proyecto para el Gran Premio :D

FHIR Patient Viewer es una herramienta de renderizado de una sola página, basada en Vue.js, que muestra de forma sencilla los datos devueltos de una llamada /Patient/{id}/$everything realizada a un servidor FHIR de InterSystems.

En el archivo Readme he incluido 3 cosas principales:

  1. Una demostración en video que conecta FHIR Patient Viewer a un servidor sandbox IRIS FHIR (la forma más rápida de probarlo);
  2. Un segundo video que muestra cómo usaría yo FHIR Patient Viewer en un entorno de producción (usando un backend personalizado para manejar las llamadas a la API, escrito en PHP/Laravel en mi ejemplo, pero transferible a otros lenguajes/frameworks);
  3. Instrucciones para modificar los componentes, crear tu propia versión de la herramienta y crear tus propios archivos dist.

¡Gracias a todos! ¡Ha habido una calidad extraordinaria en los proyectos presentados al Gran Premio!

0
0 212
Artículo Ricardo Paiva · jun 9, 2022 4m read

Hola desarrolladores,

Estoy seguro de que os habéis encontrado esta situación: necesito autenticar los usuarios - que pueden acceder a la instancia de InterSystems IRIS (for Health) o Health Connect – mediante LDAP (Active Directory u OpenLDAP). En este artículos quiero compartir con vosotros lo sencillo que es la autenticación/integración mediante LDAP. Crearemos una configuración mínima de manera a autenticar los usuarios mediante consulta a OpenLDAP.

0
0 336
Artículo Muhammad Waseem · jun 6, 2022 3m read

¡Hola Comunidad!

Este artículo muestra cómo crear Pacientes y Recursos de Observación de Pacientes mediante el uso de la aplicación iris-fhir-client.
image

Recomiendo leer mi primer artículo sobre esta aplicación y ver el vídeo de Youtube antes de continuar.

¡Empezamos!

0
0 180
Artículo Muhammad Waseem · jun 1, 2022 3m read

¡Hola comunidad!

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

Usando Python embebido y con la ayuda de la librería fhirpy, iris-fhir-client puede conectarse a cualquier servidor FHIR abierto.
Obten información de recursos por terminal y mediante el uso de la aplicación web CSP.

0
0 312
Anuncio Esther Sanchez · mayo 17, 2022

¡Hola desarrolladores!

Os invitamos a todos al webinar "Novedades de InterSystems IRIS 2022.1 / What's New in InterSystems IRIS 2022.1"!  

Fecha: Martes, 24 mayo, 2022
Hora: 11:00 AM (EDT) / 17:00 PM (CEST)
Nota: el webinar será en inglés

Durante el webinar, mostraremos algunas de las nuevas funcionalidades de InterSystems IRIS e InterSystems IRIS for Health, incluyendo:

1
0 124
Anuncio David Reche · mayo 19, 2022

Prospects, Clientes y Empleados ya pueden descargar IRIS e IRIS for Health (tanto en la edición Community como Enterprise) en https://evaluation.intersystems.com 

Esto permitirá que nuevas funcionalidades que aún no han sido lanzadas sean probadas por clientes potenciales y actuales para comprobar lo último que está en marcha.

Cómo verlo:

Para Prospects, simplemente eligiendo una opción con "(Preview)" en el Nombre permitirá la descarga de la versión de prueba

0
0 188
Pregunta Victor Fernando Reyes · mayo 12, 2022

Hola,

A modo de ejercicio, estoy intentando desarrollar una producción que permita importar datos al UCR desde un sandbox que provee datos FHIR R4 alojado en Logica Health, para ello necesitaría implementar un servicio que se conecte, bajo demanda, al servidor FHIR e importe la totalidad de los registros, inicialmente, y a posterior solo las novedades. Lamentablemente por ahora no pude desarrollarlo debido a mi falta de conocimiento y la poca documentación que encontré al respecto.

¿Me podrían proponer alguna solución?

Gracias

1
0 158
Artículo Henrique Dias · mayo 5, 2022 2m read

¡Hola desarrolladores!

En mis artículos anteriores, una de las cosas más interesantes de FHIR que mencioné es el amplio rango de posibilidades que tenemos y no solo para crear algo, sino las maneras de conseguir este objetivo.

En mis artículos estoy compartiendo mi experiencia trabajando con FHIR. Solo usaba los Recursos FHIR aportados por la API. Recuperando y actualizando los Recursos FHIR en el servidor FHIR usando javascript con la ayuda de fhir.js

0
0 134
Artículo Ricardo Paiva · mayo 3, 2022 7m read

Todo el código fuente del artículo está disponible en: https://github.com/antonum/ha-iris-k8s 

En el artículo anterior, comentamos cómo configurar IRIS en el clúster k8s con alta disponibilidad, basado en el almacenamiento distribuido, en vez del mirroring tradicional. Como ejemplo, ese artículo utilizaba el clúster Azure AKS. En esta ocasión, seguiremos explorando las configuraciones de alta disponibilidad en los k8s. Esta vez, basado en Amazon EKS (servicio administrado para ejecutar Kubernetes en AWS) e incluiría una opción para hacer copias de seguridad y restauraciones de la base de datos, basado en Kubernetes Snapshot.

Instalación

Vamos a lo más importante. Primero: necesitas una cuenta de AWS, y las herramientas AWS CLI,kubectl y eksctl instaladas. Para crear el nuevo clúster, ejecuta el siguiente comando:

eksctl create cluster \
--name my-cluster \
--node-type m5.2xlarge \
--nodes 3 \
--node-volume-size 500 \
--region us-east-1

Este comando tarda unos 15 minutos, implementa el clúster EKS y lo convierte en un clúster predeterminado para tu herramienta kubectl. Puedes verificar la implementación ejecutando:

kubectl get nodes
NAME                                             STATUS   ROLES    AGE   VERSION
ip-192-168-19-7.ca-central-1.compute.internal    Ready    <none>   18d   v1.18.9-eks-d1db3c
ip-192-168-37-96.ca-central-1.compute.internal   Ready    <none>   18d   v1.18.9-eks-d1db3c
ip-192-168-76-18.ca-central-1.compute.internal   Ready    <none>   18d   v1.18.9-eks-d1db3c

El siguiente paso es instalar el motor de almacenamiento distribuido Longhorn.

kubectl create namespace longhorn-system
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.1.0/deploy/iscsi/longhorn-iscsi-installation.yaml --namespace longhorn-system
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml --namespace longhorn-system

Y, por último, el propio IRIS:

kubectl apply -f https://github.com/antonum/ha-iris-k8s/raw/main/tldr.yaml

En este momento, tendrás un clúster EKS completamente funcional con el almacenamiento distribuido de Longhorn y la implementación de IRIS instaladas. Puedes volver al artículo anterior e intentar hacer todo tipo de daño en el clúster y la implementación de IRIS, solo para ver cómo el sistema se repara a sí mismo. Echa un vistazo a la sección "Simulación del error".

Bonus #1 IRIS en ARM

IRIS EKS y Longhorn son compatibles con la arquitectura ARM, por lo que podemos implementar la misma configuración utilizando instancias de AWS Graviton2, basadas en la arquitectura ARM.

Todo lo que necesitas es cambiar el tipo de instancia para los nodos EKS a la familia "m6g" y la imagen IRIS a la basada en ARM.

eksctl create cluster \
--name my-cluster-arm \
--node-type m6g.2xlarge \
--nodes 3 \
--node-volume-size 500 \
--region us-east-1

tldr.yaml

containers:
#- image: store/intersystems/iris-community:2020.4.0.524.0
- image: store/intersystems/irishealth-community-arm64:2020.4.0.524.0
name: iris

O simplemente utiliza:

kubectl apply -f https://github.com/antonum/ha-iris-k8s/raw/main/tldr-iris4h-arm.yaml

¡Eso es todo! Ya tienes el clúster IRIS Kubernetes, ejecutándose en la plataforma ARM.

Bonus #2 Copia de seguridad y restauración

Una parte de la arquitectura para nivel de producción que se suele pasar por alto es la capacidad de crear copias de seguridad de la base de datos y que las restaure y/o clone rápidamente cuando sea necesario.

En Kubernetes, la manera más habitual de hacerlo es utilizando Persistent Volumen Snapshots (Snapshots de volumen persistente).

En primer lugar, debes instalar todos los componentes de k8s requeridos:

#Install CSI Snapshotter and CRDs

kubectl apply -n kube-system -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
kubectl apply -n kube-system -f https://github.com/kubernetes-csi/external-snapshotter/raw/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
kubectl apply -n kube-system -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
kubectl apply -n kube-system -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml
kubectl apply -n kube-system -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml

A continuación, configura las credenciales del bucket S3 para Longhorn (consulta estas instrucciones):

#Longhorn backup target s3 bucket and credentials longhorn would use to access that bucket
#See https://longhorn.io/docs/1.1.0/snapshots-and-backups/backup-and-restore/set-backup-target/ for manual setup instructions
longhorn_s3_bucket=longhorn-backup-123xx #bucket name should be globally unique, unless you want to reuse existing backups and credentials
longhorn_s3_region=us-east-1
longhorn_aws_key=AKIAVHCUNTEXAMPLE
longhorn_aws_secret=g2q2+5DVXk5p3AHIB5m/Tk6U6dXrEXAMPLE

El siguiente comando tomará las variables de entorno del paso anterior y las utilizará para configurar la copia de seguridad de Longhorn

#configure Longhorn backup target and credentials

cat <<EOF | kubectl apply -f -
apiVersion: longhorn.io/v1beta1
kind: Setting
metadata:
 name: backup-target
 namespace: longhorn-system
value: "s3://$longhorn_s3_bucket@$longhorn_s3_region/" # backup target here
---
apiVersion: v1
kind: Secret
metadata:
 name: "aws-secret"
 namespace: "longhorn-system"
 labels:
data:
 # echo -n '<secret>' | base64
 AWS_ACCESS_KEY_ID: $(echo -n $longhorn_aws_key | base64)
 AWS_SECRET_ACCESS_KEY: $(echo -n $longhorn_aws_secret | base64)
---
apiVersion: longhorn.io/v1beta1
 kind: Setting
metadata:
 name: backup-target-credential-secret
 namespace: longhorn-system
value: "aws-secret" # backup secret name here
EOF

Puede parecer mucho, pero esencialmente le indica a Longhorn que utilice un bucket S3 específico con las credenciales precisas para almacenar el contenido de las copias de seguridad.

¡Eso es todo! Si ahora vas a la interfaz de usuario de Longhorn, podrás crear copias de seguridad, restaurarlas, etc.

Un recordatorio rápido sobre cómo conectarse a la interfaz de usuario de Longhorn:

kubectl get pods -n longhorn-system
# note the full pod name for 'longhorn-ui-...' pod
kubectl port-forward longhorn-ui-df95bdf85-469sz 9000:8000 -n longhorn-system

Esto reenviaría el tráfico desde la interfaz de usuario de Longhorn a tu http://localhost:9000 

Programación de la copia de seguridad/restauración

Hacer copias de seguridad y restauraciones a través de la interfaz de usuario de Longhorn podría ser un primer paso suficientemente bueno, pero vamos a ir un paso más allá y realizar copias de seguridad y restauraciones programáticamente, utilizando APIs de Snapshots k8s.

En primer lugar, el propio snapshot. iris-volume-snapshot.yaml

apiVersion: snapshot.storage.k8s.io/v1beta1
kind: VolumeSnapshot
metadata:
  name: iris-longhorn-snapshot
spec:
  volumeSnapshotClassName: longhorn
  source:
    persistentVolumeClaimName: iris-pvc

Este snapshot de volumen se refiere al volumen de la fuente "iris-pvc" que usamos para nuestra implementación de IRIS. Así que con solo aplicar esto, el proceso para crear una copia de seguridad se iniciaría inmediatamente .

Es una buena idea ejecutar el Freeze/Thaw de IRIS Write Daemon antes o después del snapshot.

#Freeze Write Daemon
echo "Freezing IRIS Write Daemon"
kubectl exec -it -n $namespace $pod_name -- iris session iris -U%SYS "##Class(Backup.General).ExternalFreeze()"
status=$?
if [[ $status -eq 5 ]]; then
 echo "IRIS WD IS FROZEN, Performing backup"
 kubectl apply -f backup/iris-volume-snapshot.yaml -n $namespace
elif [[ $status -eq 3 ]]; then
 echo "IRIS WD FREEZE FAILED"
fi
#Thaw Write Daemon
kubectl exec -it -n $namespace $pod_name -- iris session iris -U%SYS "##Class(Backup.General).ExternalThaw()"

El proceso de restauración es bastante sencillo. Esencialmente se crea un nuevo PVC y se especifican los snapshots como la fuente.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: iris-pvc-restored
spec:
  storageClassName: longhorn
  dataSource:
    name: iris-longhorn-snapshot
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

A continuación, solo hay que crear una nueva implementación, basada en este PVC. Comprueba este script de prueba en un repositorio de github que podría realizarse con la siguiente secuencia:

  • Crear una nueva implementación de IRIS
  • Añadir algunos datos a IRIS
  • Freeze Write Daemon, tome un snapshot, thaw Write Daemon
  • Crear un clon de implementación de IRIS, basado en el snapshot
  • Verificar que todos los datos todavía están allí

En este momento tendrá dos implementaciones idénticas de IRIS, una de las cuales es un clon hecho por medio de una copia de seguridad de la otra.

¡Espero que os resulte útil!

0
0 324
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 187
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 190
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 196
Artículo Muhammad Waseem · abr 6, 2022 7m read

¡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 frameworkPython 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

0
0 203
Artículo Eduardo Anglada · mar 29, 2022 2m read

¡Hola a todos!

Hoy quiero hablar sobre nuestro proyecto y utilizar el tema del conjunto de datos para el concurso.

Nuestra intención nunca fue ser unos gestores de datos, sobre todo porque a veces nuestros preciosos datos significan mucho para nosotros, pero no para el resto del mundo.

Mi Tesoro

Queremos ir un paso más allá y permitir que los usuarios encuentren el conjunto de datos perfecto para satisfacer sus necesidades.

Nuestro proyecto es un puente entre la comunidad de la Ciencia de Datos y la Comunidad de Desarrolladores, utilizando InterSystems IRIS para lograr esta misión.

La imagen que aparece a continuación es la página inicial para vosotros. Se puede buscar cualquier tema y ver los conjuntos de datos relacionados con él.

Búsqueda inicial

Solo hay que hacer clic en el icono de la lupa al lado de la mascota de Socrata, aparecerá la barra de búsqueda y ahí se puede buscar cualquier tema.

Búsqueda inicial

Pero recordad que es obligatorio buscar algo, no se puede buscar "nada". Si no se escribe nada, aparecerá una imagen de alerta similar a esta:

Búsqueda vacía

Si se busca un tema específico, se completará la tabla de datos con los conjuntos de datos relacionados con él.

Este es un video de demostración, que explica cómo elegir un conjunto de datos, buscar los detalles, bajarlo e instalarlo. <iframe width="560" height="315" src="https://www.youtube.com/embed/0T8wXRsaJso" title="Reproductor de videos de YouTube" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen mark="crwd-mark"></iframe>

¡Espero que os resulte útil!

0
0 288
Artículo Ricardo Paiva · mar 24, 2022 9m read

Este artículo es una continuación de esta publicación.

En ese artículo, analizamos el desarrollo de business processes, que forman parte de los componentes necesarios para la integración del sistema y sirven como coordinadores de la producción.

En este artículo mostraremos la creación de un business service, que es la ventana de entrada de información para la producción.

Y, finalmente, llegamos al último artículo de "¡Utilicemos la interoperabilidad!"

El business service proporciona una ventana de entrada para la información enviada desde fuera de IRIS, con o sin utilizar el adaptador para I/F externo.

Hay tres tipos de business services en la muestra (los enlaces entre paréntesis son enlaces al código de la muestra):

  1. Business services para archivos que utilizan adaptadores de entradaStart.FileBS
  2. Business services para servicios web que utilizan el adaptador de entrada SOAPStart.WS.WebServiceBS
  3. Business services llamados por procedimientos almacenados o REST sin utilizar adaptadoresStart.NonAdapterBS

Los diferentes métodos de conexión que se utilizan para introducir la información solo aumentarán el número de business services; sin embargo, el procesamiento realizado dentro de un business service es

Crear un mensaje de solicitud que se enviará
usando información introducida externamente y
simplemente llamar al business component

Sin ningún esfuerzo.

Ahora, describiremos cómo crear componentes que utilizan adaptadores de entrada de archivos.

Los business services se escriben en scripts, que pueden crearse en VSCode o Studio.

1. Business services para archivos que utilizan adaptadores de entrada(Start.FileBS

Si creas una clase en VSCode, deberías crear una clase que hereda de Ens.BusinessService. Para los adaptadores, puedes utilizar el parámetro ADAPTER como nombre de la clase ADAPTER (por ejemplo, especificar una clase de adaptador de entrada de archivos).
Si no utilizas el adaptador, no será necesaria ninguna configuración.

Class Start.FileBS Extends Ens.BusinessService
{
Parameter ADAPTER = "EnsLib.File.InboundAdapter";

En el adaptador de entrada de archivos, puedes especificar el directorio que se supervisará en Settings→File Path para el business service de la producción.

imagen

Si el archivo localizado en "File Path" coincide con la información especificada en "File Spec", este abre el archivo como un objeto de flujo. Lo define como la primera variable cuando se llama al business service ProcessInput().

Cuando se inicia ProcessInput(), se llama automáticamente a OnProcessInput(). OnProcessInput() se transmite directamente a OnProcessInput() con los parámetros transmitidos a ProcessInput().

imagen

En OnProcessInput() la sentencia inicial recibe la información del objeto file stream, que se transmite como primer parámetro, después crea un mensaje que se dará al siguiente componente, escribe el proceso de llamada al siguiente componente y completa la lógica básica.


【Memo】
En el caso de Studio, inicia el Asistente (Wizard) de Business Services en el menú de New Creation, selecciona el adaptador y haz clic en el botón Finalizar.


La definición del método OnProcessInput() es la siguiente:

Method OnProcessInput(pInput As %Stream.Object, Output pOutput As %RegisteredObject) As %Status

pInput es proporcionado con una instancia de la clase %Stream.FileCharacter para archivos de texto o de la clase %Stream.FileBinary para archivos binarios.

En el ejemplo, se introducirá un archivo en formato texto, y lo hemos escrito para aceptar solicitudes de varias líneas y una solicitud por línea.

La propiedad AtEnd se establece en 1 cuando se detecta EndOfFile. Puedes utilizar esta propiedad para detener el bucle.

En un bucle, leemos las líneas utilizando el método ReadLine(), que nos permite obtener información sobre los contenidos del archivo una línea cada vez ( consulta la documentación para más información sobre el adaptador de archivos).

Escribe el mensaje, recuperando información línea a línea. Después, ejecutamos el método ..SendRequestAsync(), que llama al resto de los componentes.

Cuando se ejecute el método, el primer parámetro debería ser el nombre del componente al que quieres llamar en forma de string, y el segundo parámetro debería ser el mensaje de solicitud que hayas creado.

Ten en cuenta que ..SendRequestAsync() es una llamada asincrónica y no espera recibir una respuesta.

Nota: También existe SendRequestSync() para las llamadas sincronizadas.。

El código de ejemplo es el siguiente:

imagen

Referencia: explicación del uso de la función $piece() en el texto de ejemplo anterior

$piece(“string”, ”delimiter mark”, ”position number”)

La función para establecer/obtener una string con un delimitador, en el ejemplo, para obtener el primer y segundo valor de datos separados por comas, se escribe con la siguiente sintaxis:

set request.Product=$piece(record,",",1)
set request.Area=$piece(record,",",2)

Ahora, revisemos la función de Start.FileBS tal y como aparecía en la descripción anterior.

En la producción del ejemplo, el "File Path" se estableció en /irisdev/src, y el "File Spec" se estableció en check.txt. Prepara el mismo directorio o cámbialo a otro y registra los datos de la muestra en el archivo check.txt con el siguiente formato: nombre del producto adquirido, nombre de la ciudad.

※Si estás utilizando el contenedor de muestra, cambia el nombre de [Test-check.txt] en el directorio src en el directorio que se creó con el clon de git.

imagen

imagen

2. Business services para servicios web que utilizan el adaptador de entrada SOAP (Start.WS.WebServiceBS

Posteriormente, describiremos la creación de business services para los servicios web.

La clase de Business Service para servicios web actúa como proveedor de servicios web = servidor de servicios web.

En el ejemplo, tenemos dos parámetros en el método del servicio web para esta producción de ejemplo, para tener información que se envía desde el cliente del servicio web. El método web utiliza los datos introducidos en los parámetros para crear una clase de mensaje y llamar a otros componentes.

imagen

Cuando se define una clase de servicio web, se crea una pantalla de prueba. Sin embargo, no se muestra de forma predeterminada.

Inicia sesión en IRIS (o inicia un terminal), ve al namespace donde se encuentra la producción y haz lo siguiente:

Para tu referencia:Acceso al catálogo y a las páginas de prueba

Esta es una configuración de código de ejemplo en el ajuste, donde el contenedor se inició con docker-compose up -d (ejecutar en el namespace %SYS)

set $namespace="%SYS"
set ^SYS("Security","CSP","AllowClass","/csp/user/","%SOAP.WebServiceInfo")=1
set ^SYS("Security","CSP","AllowClass","/csp/user/","%SOAP.WebServiceInvoke")=1


【Atención】Ten en cuenta que la frase distingue entre mayúsculas y minúsculas y debe escribirse con cuidado. Además, según el namespace en el que se utilice el producto, cambia el script especificado. La oración del ejemplo fue escrita considerando que el ejemplo se importa en el namespace USER.
Si importas el código del ejemplo en el namespace ABC, el cuarto subíndice debería ser "/csp/abc/".

Cuando se haya completado la configuración, ve a la siguiente URL:

http://localhost:52773/csp/user/Start.WS.WebServiceBS.cls

imagen

Si quieres ofrecer el WSDL a tu cliente de servicios web, especifica WSDL=1 al final de la siguiente URL

http://localhost:52773/csp/user/Start.WS.WebServiceBS.cls?WSDL

3. Business services llamados por procedimientos almacenados o REST sin utilizar adaptadores(Start.NonAdapterBS

A continuación, introduciremos el Business Service sin adaptadores (Start.NonAdapterBS).

imagen

Para los business services que utilizan adaptadores, el adaptador llama al método ProcessInput() del business service para detectar la información.

Si no utilizas adaptadores, puedes seguir llamando al método ProcessInput(), pero este método no es público. Por lo tanto, si implementas un business service que no utiliza adaptadores, tendrás que considerar ProcessInput().

La muestra utiliza los dos métodos siguientes:

Este es un ejemplo del procedimiento almacenado.

imagen

Después de añadir un business service (Start.NonAdapterBS) que no utiliza adaptadores a la producción (estado incorporado en la muestra), ejecuta el siguiente procedimiento almacenado

call Start.Utils_CallProduction('piroshki','Russia')

imagen

Un rastreo de los resultados de la ejecución es el siguiente:

imagen

A continuación, se muestra un ejemplo de creación de una clase dispatch para REST:

imagen

El XML descrito en el mapa de la URL de XData define qué métodos se llaman como respuesta a la URL en el momento que se realiza la llamada de REST.
En el ejemplo se describe una definición que llama al método WeatherCheck() cuando se proporcionan las URL's del /weather/first parameter (purchased product name)/ second parameter (name of the city) en la solicitud GET.

<Route Url="/weather/:product/:arecode" Method="GET" Call="WeatherCheck"/>

A continuación, define la URL base para la URL anterior en la pantalla de Configuración de la ruta de acceso a la aplicación web del Portal de administración, y estará completo.

Consulta este artículo para más detalles sobre la configuración.

Cuando esté listo, intenta ejecutar la información usando un business service que te permita enviar la información REST.

Ejemplo)http://localhost:52773/start/weather/Takoyaki/Osaka

imagen

imagen

Si no utilizas un adaptador, como ProcessInput() no se puede llamar directamente desde fuera, hemos creado un objeto para el business service en la lógica que se ejecuta por medio de REST o procedimientos almacenados (utilizando el método CreateBusinessService() de la clase Ens.Director) y llamado a ProcessInput()

Si utilizas un adaptador, este detecta la entrada y almacena la información en un objeto único y la transmite al business service. En cambio, si no utilizas un adaptador, el resto es prácticamente igual, la diferencia solo se encuentra en la parte del proceso mencionada anteriormente.

El business service está diseñado simplemente para utilizar la información que se introduce fuera de IRIS para crear mensajes de solicitud y llamar a los business components.

Durante la producción de la muestra, pudimos ver lo siguiente:

Los distintos componentes desempeñan diferentes funciones en la ejecución de una producción (business services, business processes, business operations).

Para transmitir información entre componentes, utiliza el mensaje.

Los mensajes se almacenan en la base de datos a menos que se borren y, por ello, se pueden rastrear en cualquier momento.

Algunos adaptadores facilitan el proceso que rodea a la conexión.

Estas son las operaciones básicas sobre cómo utilizar la interoperabilidad en IRIS.

También hay mapas de registros y herramientas de conversión de datos que son útiles para la entrada y salida de archivos CSV y otros archivos con formato específico.

Además, IRIS for Health también es compatible con las transmisiones FHIR y HL7 (incluyendo SS-MIX2).

Estaré encantado de explicarlo en otra publicación. Si tienes algo interesante que compartir, ¡deja un comentario!

Por último, también hay cursos de formación para aprender a utilizar la Interoperabilidad.

0
0 224
Anuncio Ricardo Paiva · mar 18, 2022

Iris Healthtoolkit Service

Video

Fácil de usar HL7v2 a FHIR, CDA a FHIR, FHIR a HL7v2 como un Servicio.

El objetivo de este proyecto es ofrecer una API REST que pueda convertir fácilmente varios formatos de salud. Publica el formato deseado en el cuerpo REST, obtén la respuesta en el nuevo formato.

Instalación

Clona este repositorio

git clone https://github.com/grongierisc/iris-healthtoolkit-service.git

Docker

docker-compose up --build -d

Uso

Detalles de la API

  • HL7 a FHIR
POST http://localhost:32783/api/hl7/fhir
  • FHIR a HL7 ADT
POST http://localhost:32783/api/fhir/hl7/adt
  • FHIR a HL7 ORU
POST http://localhost:32783/api/fhir/hl7/oru
  • FHIR a HL7 vxu
POST http://localhost:32783/api/fhir/hl7/vxu
  • CDA a FHIR
POST http://localhost:32783/api/cda/fhir
  • FHIR repo
GET http://localhost:32783/api/fhir/metadata

Formatos de entrada de HL7 compatibles:

  • ADT_A01, ADT_A02, ADT_A03, ADT_A04, ADT_A05, ADT_A06, ADT_A07, ADT_A08, ADT_A09, ADT_A10, ADT_A11, ADT_A12, ADT_A13, ADT_A17, ADT_A18, ADT_A23, ADT_A25, ADT_A27, ADT_A28, ADT_A29, ADT_A30, ADT_A31, ADT_A34, ADT_A36, ADT_A39, ADT_A40, ADT_A41, ADT_A45, ADT_A47, ADT_A49, ADT_A50, ADT_A51, ADT_A60

  • BAR_P12

  • MDM_T02, MDM_T04, MDM_T08, MDM_T11

  • OMP_O09

  • ORM_O01

  • ORU_R01

  • PPR_PC1, PPR_PC2, PPR_PC3

  • RDE_O11

  • SIU_S12, SIU_S13, SIU_S14, SIU_S15, SIU_S16, SIU_S17, SIU_S26

  • VXU_V04

Cómo funciona

El proyecto funciona con el diagrama dinámico: SDA.

El SDA (Summary Document Architecture) es el Formato de Datos Clínicos de InterSystems.

Las correspondencias SDA <-> FHIR se pueden consultar aquí, y las de CDA -> SDA aquí.

gif sda pivot

0
0 309
InterSystems Official David Reche · mar 16, 2022

La versión 3.3 de InterSystems Kubernetes Operator (IKO) ya está disponible a través de la página de descargas del Centro de Soporte Internacional (WRC) y del Registro de Contenedores de InterSystems.

IKO simplifica el trabajo de InterSystems IRIS e InterSystems IRIS for Health en Kubernetes, al ofrecer una sencilla definición del recurso irisCluster. Consulta la documentación para conocer la lista detallada de funcionalidades, incluyendo sharding sencillo, mirroring y configuración de ECP.

A destacar en IKO 3.3:

  • Soporte a las versiones 2021.2 y 2022.1 de InterSystems IRIS & IRIS for Health
  • Supporte de Kuberentes 1.21
  • Implementación de las configuraciones comunes de System Alerting and Monitoring (SAM) como parte de irisCluster
  • InterSystems API Manager (IAM) ahora también puede ser implementado y gestionado como parte de irisCluster
  • Etiquetado automático del lado activo de la pareja del mirror, de manera que un servicio siempre apunta al miembro del mirror activo
0
0 134
InterSystems Official Mario Sanchez Macias · mar 15, 2022

15 de marzo de 2022

InterSystems ha corregido un defecto que provoca la compilación incorrecta de rutinas de ObjectScript.

Este defecto solo ocurre en la versión 2021.1.1, recientemente liberada, de:

            InterSystems IRIS Data Platform

            InterSystems IRIS for Health

            HealthShare Health Connect

0
0 104
Artículo Ricardo Paiva · mar 11, 2022 8m read

Este artículo es una continuación de esta publicación.

En ese artículo, analizamos la creación de business operations a partir de los componentes necesarios para la integración del sistema.

En este artículo, mostraré cómo crear un business process que llama a las dos business operations definidas en el orden de la secuencia.

El business process actúa como coordinador (centro de mando) del proceso.

Los ajustes en el proceso que se pueden implementar en la muestra son los siguientes:

Paso 1: Proporcionar el nombre de la ciudad a una API web externa y solicitar información meteorológica.
Paso 2: Registrar el resultado de la consulta (información meteorológica) del paso 1 y el nombre del producto comprado que se recibió al inicio de la producción.

En el *business process* de muestra, esperaremos la respuesta al paso 1 y ajustaremos el paso 2 para que funcione.

En el proceso de espera de una respuesta (es decir, de sincronización), por ejemplo, ¿qué ocurre si el paso 1) no responde durante unos días?

Si se entregan nuevos mensajes al business process mientras se espera una respuesta durante unos días, los mensajes no serán descartados ya que se almacenan en una cola. Sin embargo, el business process no procesará nuevos mensajes y habrá un retraso en la operación.

Nota: Los business processes y las business operations tienen colas.

Por lo tanto, en producción, cuando hay una llamada sincronizada, hay dos maneras de que el business process pueda moverse: A) Hacer una sincronización perfecta, y B) Guardar el estado del propio business process en la base de datos y transferir el entorno de ejecución para que otros procesos puedan ejecutarse mientras esperan una respuesta.

A) Cómo hacer una sincronización perfecta:

Mientras se realiza una llamada sincronizada, el procesamiento del business process está en marcha, y esperando a que se procese el siguiente mensaje hasta que se complete todo el procesamiento.
➡Esta función se utiliza cuando se necesita garantizar el orden del procesamiento en el método "primero en entrar, primero en salir".

B) El método para guardar el estado del propio *business process* en la base de datos y transferir el entorno de ejecución para que otros procesos puedan ejecutarse mientras esperan una respuesta es

Cuando se realiza una llamada sincronizada, el proceso guarda su estado en la base de datos. Cuando se recibe un mensaje de respuesta, y es el momento de procesar el mensaje, se abre la base de datos y se ejecuta el siguiente proceso.
(IRIS gestionará el almacenamiento y la reapertura de los business processes en la base de datos).
➡ Se utiliza cuando es aceptable cambiar el orden para procesar los mensajes (es decir, cuando se permiten procesar más y más mensajes diferentes recibidos mientras se espera una respuesta).

En la muestra, se utiliza B).

Hay dos tipos de editores para crear business processes: un Editor de Business Processes que permite colocar cuadros de procesamiento (actividades) e implementarlos mientras se define su ejecución, y un método para crearlos mediante ObjectScript en Studio o VSCode.

Si utilizas el Editor de Business Processes, utilizarás la actividad de llamada para invocar al componente, pero esta actividad está implementada de la forma B). Por supuesto, también puedes implementar el métodoA) en el Editor de Business Processes, excepto que en ese caso no utilizará la actividad de llamada (utilizará la actividad del código).

En esta sección, explicaré cómo crearla.

Si se utiliza el Editor de Business Processes, deben escribirse en el Portal de Administración.

También puedes abrir el business process desde la página de configuración de la producción. La siguiente imagen muestra el procedimiento.

imagen

Iconos como en este editor se llaman actividades, y las que están marcadas como son actividades que pueden invocar otros componentes.

Este símbolo indica que se devolverá un mensaje de respuesta (es decir, se realizará una llamada sincronizada). La actividad se ajusta de forma predeterminada a la configuración de la llamada no sincronizada, que puede cambiarse según sea necesario.

Ahora observemos los business processes, que son componentes que se invocan al recibir un mensaje de solicitud, así como las business operations.

En la muestra, el mensaje de solicitud: Se pone en marcha cuando recibe un Start.Request y no devuelve un mensaje de respuesta.

imagen

En el business process, los mensajes aparecen en varias situaciones.

Mensajes de solicitud que se envían a los business processes.

Mensaje de solicitud (más un mensaje de respuesta) que se envía cuando se llama a otro componente usando la actividad.

En el Editor de Business Processes, los nombres de los objetos que almacenan mensajes están claramente separados para poder ver qué mensaje se envió desde qué destino.

imagen

  • solicitud(requisitos básicos)

El mensaje que activó el inicio del business process, en nuestro ejemplo, es Start.Request (el mensaje que se debe especificar en la configuración de la Solicitud en la pestaña Contexto dentro del Editor de Business Processes)

  • respuesta(respuesta básica)

Mensaje de respuesta para devolver a la persona que llama al business process (no se utiliza en el ejemplo) (mensaje que se debe especificar en la configuración de la respuesta que aparece en la pestaña Contexto en el Editor de Business Processes)

  • callrequest(mensaje de solicitud)

Mensaje de solicitud que se envía al llamar al componente determinado por la actividad.

  • callresponse(mensaje de respuesta)

Mensaje de respuesta devuelto desde el componente especificado por la actividad.

callrequest y callresponse son objetos que se eliminarán cuando se complete el procesamiento de llamada de la actividad. Todos los demás objetos no desaparecerán hasta que finalice el business process.

Ahora se presenta el problema cuando desaparece callresponse.

Esto es porque, como se puede ver en este ejemplo, Cuando se llama a un componente, si se quiere utilizar el resultado de la respuesta de un componente llamado previamente, se perderá el mensaje de respuesta, y se borrará la información que se iba a utilizar en el siguiente componente.

Es un problema 😓

¿Qué deberíamos hacer?・・・・・

En este caso, se puede utilizar el objeto de contexto.

El objeto de contexto, al igual que la solicitud/respuesta, es un objeto que sobrevive hasta el final del business process.

Además, como el contexto es un objeto genérico, se puede definir en el editor de proceso.

Además del contexto, también se puede utilizar el objeto de respuesta si tiene una propiedad que coincida con lo que guarda la información heredada.

Ahora, vamos a repasar los pasos de nuevo.

imagen

El mensaje de respuesta en el globo azul claro: Start.Response es un objeto que se eliminará cuando termine el proceso.

Como queremos utilizar el mensaje de respuesta (Start.Response) que contiene la información meteorológica como el mensaje que se enviará a la siguiente [Business Operation para la actualización de la base de datos], tenemos que implementar el objeto de contexto de tal forma que todos los valores de la propiedad del mensaje de respuesta (Start.Response) se puedan asignar a él.

Entonces, ¿cuál es la configuración para la propiedad de contexto?

Las propiedades se definen en "Context Properties" en la pestaña Context del Editor de business processes.

En este caso, nos gustaría guardar todas las propiedades del mensaje de respuesta (Start.Response) en el objeto de contexto. Por lo tanto, la especificación del tipo de propiedad se establece en Start.Response.

imagen

A continuación, consulta la configuración en la actividad.

imagen

Los mensajes de solicitud y de respuesta tienen un botón llamado ○○ Builder.

Al hacer clic en este botón se iniciará un editor de líneas que permite especificar lo que se quiere registrar en las propiedades de cada mensaje.

imagen

Después de esto, la business operation para solicitar una actualización de la base de datos (Start.SQLInsertOperation o Start.InsertOperation) se llama de la misma manera con la actividad, y todo estará listo.

(Para más información, consulta Configuring para Business Processes).

Cuando se haya completado la verificación, se podrá probar. El método de prueba es el mismo que se utiliza para probar las business operations (consulta este artículo).

El seguimiento después de la prueba es el siguiente:

imagen

Como el business process es el coordinador, pudimos ver que invocaba de forma secuencial los componentes definidos, lo que mantiene la ejecución sincronizada.

Nota 1: Este ejemplo solo se refiere a la actividad sobre las llamadas, pero hay otras actividades, como la transformación de datos.

Nota 2: Los business processes creados únicamente por ObjectScript, distintos al Editor de Business Processes, se heredan de la clase Ens.BusinessProcess. Si se crea en el Editor de Business Processes, se hereda de la clase Ens.BusinessProcessBPL.

El business process es el coordinador del proceso de integración del sistema.
El Editor de Business Processes ofrece los siguientes tipos de variables para los mensajes (request/response/callrequest/callreponse/context).
Un business process creado con el Editor de Business Processes puede funcionar de forma que no retrase otros mensajes, incluso si hay sincronización en la llamada del componente.

En el próximo artículo, mostraré finalmente cómo desarrollar el último componente: los business services.

0
0 286
Artículo Muhammad Waseem · mar 10, 2022 2m read

¡Hola comunidad!

En esta publicación voy a explicar cómo mostrar datos en internet usando Python embebidoMarco web Python Flask y jQuery DataTable.
image

Mostraré los procesos desde la tabla %SYS.ProcessQuery.

Paso 1: Añade la tabla a la página HTML y escribe debajo el código javascript para mostrar los datos pasados desde app.py :

HTML

  <table id="myTable" class="table table-bordered table-striped">                 
   </table>

Javascript

0
0 1080
Artículo Muhammad Waseem · mar 10, 2022 5m read

¡Hola Comunidad!

Esta publicación es una introducción a mi aplicación iris-python-apps, disponible en Open Exchange y creada usando Embedded Python y Python Flask Web Framework. La aplicación muestra algunas de las funcionalidades de Python, como la ciencia de datos, el trazado de datos, la visualización de datos y la generación de códigos QR.

image

Características

  •  Cuadro de mando de IRIS de arranque responsive

  •  Vista de los detalles del cuadro de mando junto con el registro de eventos de interoperabilidad y los mensajes

  •  Uso del trazado de Python desde IRIS

  •  Uso de Jupyter Notebook

  •  Introducción a la ciencia de datos, trazado de datos y visualización de datos

  • Generación de código QR desde Python

0
1 1651
InterSystems Official David Reche · mar 7, 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 149
InterSystems Official Mario Sanchez Macias · mar 7, 2022

1 de marzo de 2022

Este anuncio contiene enlaces a 14 avisos recientes que han sido publicados en la Página de Avisos y Alertas de Productos de InterSystems. Todos ellos afectan a los productos HealthShare, y los tres primeros avisos afectan también a InterSystems IRIS for Health.

0
0 98
Artículo Ricardo Paiva · feb 18, 2022 4m read

Este artículo es una continuación de esta publicación.

En ese artículo revisamos los contenidos de la producción. Ejecutamos el código de muestra y revisamos el contenido de los mensajes que fluyen en la producción en la página de Visual Trace.

En este artículo revisaremos el concepto y la definición de los mensajes que se utilizan para enviar y recibir datos entre componentes desde el contenido de desarrollo necesario para la integración del sistema.

Antes de crear un mensaje, vamos a revisar el caso de estudio.

Una empresa gestiona una tienda online y está cambiando el orden en que se muestra la información de los productos, para que coincida con las estaciones del año.
Sin embargo, algunos artículos se venden bien independientemente de la estación del año, mientras otros se venden en momentos inesperados, lo que no coincide con la regla actual de cambiar el orden.
Por lo tanto, estudiamos la posibilidad de cambiar el orden para que coincida con la temperatura del día en lugar de con la estación del año. Era necesario saber la temperatura de los productos adquiridos en ese momento.
Como se dispone de una API web externa para consultar la información meteorológica, planeamos recopilar la información meteorológica en el momento de la compra y registrarla en la base de datos.

En este caso, puedes observar lo siguiente:

La información que se recibe del exterior es el "nombre del producto comprado y el nombre de la ciudad".
La información que se envía desde IRIS a un sistema externo para solicitar el procesamiento es el "nombre de la ciudad". El resultado de este proceso será la "información meteorológica" para la ciudad que se utilizará como entrada.

imagen

A partir de este caso de estudio, implementaremos los componentes necesarios para la integración del sistema. Pero antes, para ejecutar los componentes, es necesario enviar y recibir mensajes, que son datos transmidos; y para utilizar los mensajes, es necesario definir la clase de mensajes.

Una clase de mensajes se diseña para considerar qué información (es decir, mensajes) debe enviarse y recibirse para que el componente se ejecute.

En este proceso, necesitamos estos dos tipos de información:

A) El nombre de la ciudad para enviar a una API web externa y así obtener la información meteorológica.

B) La información meteorológica y el nombre del producto adquirido para su registro en la base de datos.

El nombre de la ciudad en A) y el nombre del producto comprado en B) pueden incluirse en la información de entrada en IRIS.

La información meteorológica en B) puede recuperarse de la información de respuesta de una API web externa.

A continuación se muestra un diagrama que considera qué información sería necesaria para enviar y recibir cada componente a partir de los datos disponibles.

La primera línea en los globos amarillos describe el nombre de la clase de mensajes, y a partir de la segunda línea se indica lo que se debe establecer en las propiedades.

imagen

En el código de ejemplo, hay tres tipos de mensajes:

Start.Request(Mensaje de solicitud)
Se utiliza para enviar el nombre del producto comprado y la ciudad para adquirir la información meteorológica.

Start.Response(Mensaje de respuesta)
Se utiliza para devolver los resultados de las operaciones (información meteorológica) para obtener información meteorológica.

Start.InsertRequest(Mensaje de solicitud)
Se utiliza para enviar la información meteorológica y el nombre de los productos comprados para el registro en la base de datos.

Los mensajes se especifican en una superclase, Request message, y los Response messages derivan de Ens.Request y Ens.Response, respectivamente.

El siguiente es un ejemplo de la definición del mensaje de solicitud Start.Request.

Este es un ejemplo para la definición del mensaje de respuesta.

El mensaje de solicitud, Start.InsertRequest que se enviará con la solicitud de registro en la base de datos es el siguiente:

(Planeamos establecer la propiedad WeatherInfo con la información de Start.Response, que se devolverá después de obtener la información meteorológica).

Si quieres crearlo en Studio, también puedes utilizar el Asistente para Crear Mensajes.

Referencia) Pasos para crear una clase de respuesta en Studio.

La clave hasta ahora es

Una clase de mensajes se diseña con la idea de "qué información (es decir, mensajes) debe enviarse y recibirse" para que el componente FUNCIONE.

Cuando la clase de mensajes (que es la información que dirige cada componente) se implementa, el siguiente paso es crear una clase para el componente.

0
0 341
InterSystems Official David Reche · feb 16, 2022

Ya están disponibles las versiones de prueba 2022.1 de InterSystems IRIS, IRIS for Health y HealthShare Health Connect para desarrolladores.

Al ser la primera versión de prueba para desarrolladores de InterSystems, vamos a dedicar un momento a describir lo que son. El programa de versiones de prueba para desarrolladores mejora el anterior programa de versiones de prueba de IRIS, con lanzamientos cada dos semanas, aproximadamente, que añaden funcionalidades según están listas. Esto nos permite obtener feedback sobre las funcionalidades y mejoras según están disponibles. Más abajo verás una lista de mejoras para la versión 2022.1, que no están incluidas en la primera versión de prueba para desarrolladores. Búscalas en las próximas semanas. 

Estamos deseando conocer vuestras experiencias con esta nueva versión, antes de su lanzamiento general. Compartid, por favor, vuestro feedback a través de la Comunidad de Desarrolladores, para que entre todos podamos desarrollar un mejor producto. 

InterSystems IRIS Data Platform 2022.1 es una versión de Mantenimiento Extendido (EM). 2022.1 incluye importantes mejoras y nuevas funciones añadidas en 2021.2, la versión de Entrega Continua (CD), desde 2021.1, la anterior versión EM. Podéis consultar las  notas de la versión 2021.2 para conocer estas mejoras.

0
0 194