New post

Find

Article
· Nov 13, 2024 5m read

Cómo crear tablas de búsqueda de datos utilizando el Asistente de Importación de Datos de SQL

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

Este tutorial detalla cómo crear, llenar o actualizar una tabla de búsqueda de datos (LUT) a partir de un archivo de texto utilizando el Asistente de Importación de Datos SQL. Esto es especialmente útil para tablas de búsqueda de datos grandes que contienen varias filas de datos, como una tabla de mapeo de países para la Promoción de la Interoperabilidad (Uso Significativo).

************ PASO 1: Preparad los datos ************

Primero, comenzaremos con el formato de los datos. Recordad que una tabla de búsqueda de datos se compone de varias filas de claves que se vinculan a sus valores correspondientes.

Personalmente, creo que crear y dar formato a estas tablas en Excel es la forma más eficiente de completar este proceso.

Utilizando como ejemplo la tabla de mapeo de países sindrómico, lleno la columna A con el código de país de 3 caracteres que enviaré a los estados a los que reporto. En la columna B, introduzco el código de país de 2 caracteres que mi EMR envía de manera nativa. Finalmente, en la columna C, indico el nombre deseado de mi tabla de búsqueda de datos. NOTA: Si la tabla no existe, esta utilidad creará la tabla con el nombre indicado en la columna C. Si la tabla en la columna C ya existe, actualizará la tabla existente.

 

Una vez que hayáis completado el archivo con todos vuestros datos, ahora lo guardáis como un archivo de texto delimitado por tabulaciones. Podéis guardar este archivo en vuestra máquina local o en una ubicación de Importación/Exportación de vuestro servidor. Para este ejemplo, lo almacenaré en mi máquina local

¡Ahora tenemos un bonito archivo de texto delimitado por tabulaciones listo para ser importado en InterSystems IRIS!

 

************ PASO 2: ABRIR EL ASISTENTE DE IMPORTACIÓN DE DATOS SQL ************

Ahora que nuestros datos han sido formateados, estamos listos para utilizar el Asistente de Importación de Datos SQL.

Para hacerlo, abrid el Portal de Gestión del servidor de destino y navegad a Explorador del Sistema >> SQL.

Ahora que estáis aquí, podéis navegar a Asistentes >> Importación de Datos. El Asistente de Importación de Datos se abrirá al hacer clic en "Importación de Datos"

 
************ PASO 3: ASISTENTE DE IMPORTACIÓN DE DATOS SQL PG. 1 -- Indicar Fuente y Destino ***********

Aquí podéis navegar a la ubicación de importación/exportación en el servidor de vuestra instancia de IRIS o podéis navegar a la ubicación del archivo en vuestra máquina local. Como se mencionó anteriormente, usaré el archivo que almacené en mi máquina local.

A continuación, seleccionad el namespace al que deseáis importar. En mi ejemplo, importaremos a SANDBOX.

ESTE PRÓXIMO PASO ES MUY IMPORTANTE: Ahora seleccionaréis Ens_Util como el nombre del esquema al que importar.

Esto abrirá un cuadro de selección y necesitaréis RESALTAR "LookupTable" haciendo clic en él. (Esto lo selecciona. He escuchado a muchos decir que no parece estar seleccionado. Os prometo que sí lo está.)

Vuestra pantalla debería verse algo así:

 

En la parte inferior, haced clic en "Siguiente >"

************ PASO 4: ASISTENTE DE IMPORTACIÓN DE DATOS SQL PG. 2 -- Indicar el Formato del Archivo de Origen ***********

Ahora le indicaremos al Asistente cómo están formateados nuestros datos.

Cuando formateamos nuestro archivo, expliqué que llené mis columnas A, B y C de manera que las columnas están en orden de izquierda a derecha: DataValue, KeyName, TableName. Este es el mismo orden de arriba a abajo en el Asistente de Importación de Datos, por lo que los datos se interpretarán de esta manera.

 

En la parte inferior, haced clic en "Siguiente >"

 

************ PASO 5: ASISTENTE DE IMPORTACIÓN DE DATOS SQL PG. 3 -- Indicar los Detalles de los Datos del Archivo de Origen ***********

Ahora, dado que formateamos nuestro archivo en Excel anteriormente y lo guardamos como delimitado por tabulaciones, mantendremos el valor predeterminado de "Tab" para responder a la pregunta "¿Qué delimitador separa vuestras columnas?"

Tampoco INCLUIMOS encabezados de columna en nuestro archivo, por lo que DESMARCAREIS "¿La primera fila contiene encabezados de columna?" (Nota: Si dejáis este campo marcado, le diréis al Asistente de Importación de Datos que ignore la primera fila de datos y NO LA IMPORTE).

Esto también nos indica qué columnas corresponderán a qué columnas de datos en la tabla de búsqueda de datos. Nuestra ventana debería verse así:
 

 
También podemos seleccionar "Previsualizar Datos" para confirmar que nuestras columnas 1, 2 y 3 se correlacionan como hemos indicado. Nuestro sistema envía un código de 2 caracteres que será el Valor Clave visto en la Columna 2; queremos mapearlo al código de 3 caracteres que será el Valor de Datos en la Columna 1 y al nombre de nuestra tabla en la Columna 3.
 


Ahora podemos seleccionar "Siguiente >".

************ PASO 6: ASISTENTE DE IMPORTACIÓN DE DATOS SQL PG. 4 -- Revisar y Ejecutar la Importación ***********

Esta ventana nos ofrece un resumen de nuestras selecciones.

Si estamos satisfechos con nuestras configuraciones, podemos seleccionar "Finalizar".  
NOTA: Antes de seleccionar Finalizar, aseguraos de habilitar las ventanas emergentes, ya que se abrirá una nueva ventana para crear la tabla.

Una ventana como esta aparecerá para indicar que el Asistente está en ejecución.

 


En esta ventana, me gusta "Hacer clic aquí para ver la página de tareas en segundo plano".

 

************ PASO 7: Revisar Errores y vuestra Tabla ************ 
Podemos ver la página de Tareas en Segundo Plano para comprobar si hubo algún error.
Tuve 1 error:

Y cuando hice clic en el enlace del 1, pude encontrar más detalles

Esto indica que una de mis filas estaba missing el campo requerido de KeyName. Investigué y descubrí que había una nueva línea adicional en mi archivo, lo que provocó este error. Sin embargo, todavía se creó la tabla, ¡que podemos ver a continuación!
 

 

Por diversión, ejecuté el asistente nuevamente con el mismo archivo en el mismo namespace. Aquí podemos ver que hubo 251 errores y, de nuevo, podemos investigar más a fondo

De nuevo, nos encontramos con el error de la nueva línea en blanco, pero también podemos ver que hay 250 errores de unicidad. Es importante tener en cuenta que esta herramienta solo se puede utilizar para AÑADIR NUEVAS CLAVES y sus pares de valores, pero NO PUEDE ACTUALIZAR LOS VALORES DE CLAVES EXISTENTES sin deshabilitar la validación en la página 3 del asistente. Sugiero que tengáis cuidado al deshabilitar la validación para no introducir errores o asignaciones no deseadas.
 

¡Y eso es todo! ¡Acabáis de crear una gran Tabla de Búsqueda de Datos utilizando el Asistente de Importación de Datos SQL!

Discussion (0)1
Log in or sign up to continue
Article
· Nov 13, 2024 3m read

IKO & IAM - recordad incluir un sidecar

IAM - InterSystems API Manager es una gran herramienta para monitorear vuestro tráfico. Si estáis intentando usarla en vuestro clúster de Kubernetes, es posible que hayáis intentado hacer un despliegue similar a este:

apiVersion: intersystems.com/v1alpha1
kind: IrisCluster
metadata:
  name: iris
spec:
  licenseKeySecret:
    name: iris-key-secret
  configSource:
    name: iris-cpf
  imagePullSecrets:
    - name: intersystems-pull-secret
  topology:
    data:
      image: containers.intersystems.com/intersystems/iris-arm64:2024.1
      compatibilityVersion: "2024.1.2"
      mirrored: false

    webgateway:
      replicas: 1
      image: containers.intersystems.com/intersystems/webgateway-nginx-arm64:2024.1
      type: nginx
      applicationPaths:
        - /csp/sys
        - /csp/broker
        - /api
        - /isc
        - /oauth2
        - /ui
        - /csp/healthshare
      alternativeServers: LoadBalancing
      loginSecret:
        name: iris-webgateway-secret

    iam: 
      image: containers.intersystems.com/intersystems/iam-arm64:3.4
      replicas: 1
  serviceTemplate:
    spec:
      type: LoadBalancer

Sin embargo, al ir al Panel de IAM veréis:

 

Estáis en modo gratuito. La licencia de IRIS no se pasó a Kong. Para hacer eso, necesitáis aseguraros de tener un sidecar configurado. Podéis añadir un sidecar:

apiVersion: intersystems.com/v1alpha1
kind: IrisCluster
metadata:
  name: iris
spec:
  licenseKeySecret:
    name: iris-key-secret
  configSource:
    name: iris-cpf
  imagePullSecrets:
    - name: intersystems-pull-secret
  topology:
    data:
      image: containers.intersystems.com/intersystems/iris-arm64:2024.1
      compatibilityVersion: "2024.1.2"
      mirrored: false

      webgateway:
        image: containers.intersystems.com/intersystems/webgateway-nginx-arm64:2024.1
        type: nginx
        applicationPaths:
          - /csp/sys
          - /csp/broker
          - /api
          - /isc
          - /oauth2
          - /ui
          - /csp/healthshare
        loginSecret:
          name: iris-webgateway-secret

    webgateway:
      replicas: 1
      image: irepo.intersystems.com/intersystems/webgateway-nginx-arm64:2024.1
      type: nginx
      applicationPaths:
        - /csp/sys
        - /csp/broker
        - /api
        - /isc
        - /oauth2
        - /ui
        - /csp/healthshare
      alternativeServers: LoadBalancing
      loginSecret:
        name: iris-webgateway-secret
        
    iam: 
      image: irepo.intersystems.com/intersystems/iam-arm64:3.4
      replicas: 1
  serviceTemplate:
    spec:
      type: LoadBalancer

o incluso podéis decidir que vuestro Web Gateway independiente no es necesario y que todo el trabajo puede ser realizado por el sidecar:

apiVersion: intersystems.com/v1alpha1
kind: IrisCluster
metadata:
  name: iris
spec:
  licenseKeySecret:
    name: iris-key-secret
  configSource:
    name: iris-cpf
  imagePullSecrets:
    - name: intersystems-pull-secret
  topology:
    data:
      image: containers.intersystems.com/intersystems/iris-arm64:2024.1
      compatibilityVersion: "2024.1.2"
      mirrored: false

      webgateway:
        image: containers.intersystems.com/intersystems/webgateway-nginx-arm64:2024.1
        type: nginx
        applicationPaths:
          - /csp/sys
          - /csp/broker
          - /api
          - /isc
          - /oauth2
          - /ui
          - /csp/healthshare
        loginSecret:
          name: iris-webgateway-secret
        
    iam: 
      image: irepo.intersystems.com/intersystems/iam-arm64:3.4
      replicas: 1
  serviceTemplate:
    spec:
      type: LoadBalancer

El resultado en términos de IAM es el mismo, aunque tened en cuenta que cada enfoque tiene ventajas y desventajas. Cualquiera que elijáis, ahora deberíais ver una licencia activa en IAM:

Discussion (0)1
Log in or sign up to continue
Article
· Nov 12, 2024 3m read

第十九章 TCP 客户端 服务器通信 - 数据包模式

第十九章 TCP 客户端 服务器通信 - 数据包模式

数据包模式

如果未指定模式,则默认为数据包模式。如果流模式被禁用,则该模式默认为分组模式。

在分组模式中,只要有一些数据要返回,读取命令就会完成。数据包模式允许在输出缓冲区中构建整个TCP数据段,然后通过发出WRITE*-3WRITE!命令。

如果在没有要发送的字符的情况下发出WRITE*-1来启动一个TCP发送操作,则会收到一个<WRITE>错误。如果发出WRITE OF空字符串,则会收到<COMMAND>错误。

在分组模式下可以发送的字符串的最大长度为1024个字符。如果在未刷新缓冲区的情况下超过此限制,则会收到<WRITE>错误。

Discussion (0)1
Log in or sign up to continue
Announcement
· Nov 12, 2024

[Video] Human Centered AI: Shaping a Just and Ethical Future in Health Technology

Hey Community,

Play the new video on InterSystems Developers YouTube:

⏯ Human Centered AI: Shaping a Just and Ethical Future in Health Technology @ Global Summit 2024

Learn about the role of artificial intelligence (AI) in advancing healthcare while ensuring health equity and justice. This video discusses the benefits of AI, such as improving access to healthcare and reducing provider burdens, but also warns of significant risks, including amplifying biases and worsening disparities in healthcare outcomes. The speaker emphasizes the importance of responsible AI development through inclusive representation, transparency, and a commitment to eliminating bias and harm. The text concludes with a call for strong governance and multi-layered responsibility within healthcare systems to ensure ethical AI use.

🗣  Presenter: Medell Briggs-Malonson, MD, MPH, MSHS, Chief of Health Equity, Diversity and Inclusion, UCLA Health

Enjoy watching, and expect more videos! 👍

Discussion (0)1
Log in or sign up to continue
Article
· Nov 12, 2024 1m read

Como colocar vídeo na sua postagem na Comunidade de Desenvolvedores InterSystems

Olá comunidade,

Aqui está um artigo curto sobre como colocar vídeo na sua publicação.

Há duas abordagens.

1️⃣ Com a With the atualização recente ao UI/UX da Comunidade de Desenvolvedores n[os implementamos uma nova abordagem. Agora, para inserir um vídeo você precisa clicar no botão YouTube

e preencher o formulário

Coloque uma URL do vídeo, ou cole o código embutido do passo 3 da próxima abordagem

2️⃣ Outra abordagem é fazer isso manualmente, só seguir os passos:

1. Abra o vídeo que você quer inserir no YouTube:

2. Cliqe em compartilhar e escolha embed (embutir):

3. Copie o os conteúdos da caixa de texto acima à direita ou apenas cliqeu no botão Copy no canto de baixo direito:

4. Na sua publicação na comunidade, mude para a visualização Source:

5. Insira o conteúdo copiado do passo 3 exatamente onde você o deseja:

6. Clique no botão Source novamente para retornar à visualização WYSIWYG e continue escrevendo sua publicação.

É isso - é assim que você pode embutir um vídeo do YouTube na sua publicação da Comunidade

Espero que isso responda uma das suas perguntas sobre como escrever para a Comunidade ;)


Deixe seus pensamentos sobre o assunto na sessão de comentários ou proponha outro tópico para um artigo sobre como escrever publicações na Comunidade de Desenvolvedores

Discussion (0)1
Log in or sign up to continue