Encontrar

Artículo
· 20 hr atrás Lectura de 3 min

Exportando datos de configuración de Interoperabilidad a CSV

 

Al trabajar con InterSystems Interoperability (IRIS / Health Connect / Ensemble), los datos de configuración a menudo están distribuidos en muchos elementos de producción: servicios, procesos, operaciones, adaptadores y sus configuraciones.

Una necesidad operativa o de seguridad común es responder preguntas como:

  • ¿Qué interfaces hacen referencia a rutas del sistema de archivos?
  • ¿Dónde están configurados directorios, recursos de red o rutas absolutas?
  • ¿Puedo auditar o documentar rápidamente esta información en todas mis producciones?

La utilidad en ObjectScript que se muestra a continuación resuelve exactamente este problema exportando configuraciones seleccionadas a un archivo CSV.

Este script:

  1. Recorre todos los namespaces existentes
  2. Consulta todos los elementos de configuración de Interoperabilidad (Ens_Config.Item) en todos los namespaces
  3. Itera sobre la configuración de cada elemento
  4. Extrae rutas del sistema de archivos/URLs (valores que contienen :, /, o \)
  5. Escribe los resultados en un archivo CSV, agrupados por Categoría
  6. Genera un resultado fácil de auditar que se puede abrir en Excel o compartir con los equipos de operaciones/seguridad

    Casos de uso típicos

    Debéis usar esta utilidad cuando necesitéis:

    • 🔍 Auditar el uso del sistema de archivos en todas las producciones
    • 🛡 Revisar posibles exposiciones de seguridad (rutas locales, recursos de red, conexiones a bases de datos)
    • 📄 Documentar la configuración para migraciones, actualizaciones o planificación de recuperación ante desastres
    • 🔄 Comparar entornos (DEV vs TEST vs PROD)
    • 🧹 Limpiar rutas heredadas o no usadas

    Esto es especialmente útil en instancias grandes con varias producciones que utilizan muchas interfaces y adaptadores.

    Formato de salida

    El CSV generado contiene las siguientes columnas:

    Namespace, Categoría, Nombre del elemento, Nombre de la clase, Nombre de la propiedad, Valor

    Además:

    • Los elementos de configuración se agrupan por categoría.
    • Solo se exportan las rutas de configuración relevantes; podéis modificar fácilmente la lógica para exportar usando el nombre de la configuración (por ejemplo, "DSN" para conexiones SQL) o cualquier otro valor de configuración.
    • Es fácil de filtrar y analizar en Excel.
    • Ejecutad la utilidad desde el terminal proporcionando el parámetro con la ruta completa y el nombre del CSV.

    Por ejemplo:

    > do ##class(Test.Properties).GetData("c:\temp\loop.csv")

    Ejemplo del CSV abierto en Excel:

     

    Notas y consejos

    • 🧪 Probad primero en entornos que no sean PROD si no estáis seguros de los permisos.
    • 📂 Aseguraos de que el directorio de destino exista y sea escribible por IRIS/Health Connect.
    • 🔎 Podéis ampliar fácilmente la lógica para:
      • Exportar propiedades adicionales
      • Filtrar por categoría o clase
      • Enmascarar valores sensibles (contraseñas)
      • Cambiar la lógica para datos relevantes

    Si lo ampliáis o mejoráis, no dudéis en compartir vuestras mejoras con la comunidad.

    Comentarios (0)1
    Inicie sesión o regístrese para continuar
    Anuncio
    · 23 hr atrás

    [Vídeo] Avanzando en la interoperabilidad sanitaria: estrategia y visión

    Hola, comunidad,

    Disfrutad del nuevo vídeo en el YouTube de InterSystems Developers:

    ⏯ Avanzando en la interoperabilidad sanitaria: estrategia y visión @ Ready 2025

    Acompañadnos en un análisis detallado de la estrategia de interoperabilidad sanitaria de InterSystems y su impacto en el intercambio de datos de salud. Descubrid las últimas innovaciones en FHIR, HL7v2, CDA y la interoperabilidad basada en API en Health Connect e InterSystems IRIS for Health. Explorad nuestra hoja de ruta, incluidas las estrategias de FHIR, las transformaciones impulsadas por IA y las soluciones de próxima generación.

    🗣 Ponente: @Daniel Franco, Senior Manager, Healthcare Data Platform en InterSystems

    ¿Buscáis ideas nuevas? ¡Ved el vídeo y suscribíos!

    Comentarios (0)1
    Inicie sesión o regístrese para continuar
    Comentarios (1)2
    Inicie sesión o regístrese para continuar
    Artículo
    · 13 ene, 2026 Lectura de 3 min

    Cómo encontrar un texto específico en ObjectScript

    Probablemente os suene esta situación:

    Hace tiempo encontraste una función muy especial, $ZU, para un tipo de problema muy concreto. Como una especie de fórmula mística. Esta se popularizó y muchos desarrolladores la utilizaron en su código.

    Tras varias versiones y actualizaciones, ISC informa de que vuestro mágico $ZU está obsoleto y ya no es soportado. Se os recomienda reemplazarlo por un nuevo $loquesea().

    Entonces, ¿cómo podrías localizar y documentar el uso de este mágico $ZU? Puede estar en clases, en código MAC, INT o INC o incluso distribuido en múltiples namespaces.

    Me he encontrado con esta situación más de una vez en diferentes instalaciones.
    En aquel momento, el control de versiones no estaba disponible y, cuando finalmente se introdujo, apenas se utilizaba.

    Dado que ObjectScript era la única opción posible para abordar este desafío, escribí mi propia utilidad.
    Mi solución ha ido evolucionando a lo largo de los años y, cuando se planificó la migración a IRIS, comprobé de nuevo lo útil que seguía siendo.
    Y, como estaba escrita en puro ObjectScript, funcionó en IRIS sin que fuera necesario cambiar ni un solo carácter.
    Como sabréis, el problema de buscar un texto específico en ObjectScript no ha cambiado.

    Mis objetivos personales para esta utilidad eran:

    • Solo ObjectScript
    • Sin construcciones sofisticadas, milagrosas o frágiles
    • Usar la menor cantidad posible de funciones $avanzadas
    • Priorizar la legibilidad sobre la elegancia para facilitar el mantenimiento futuro
    • Mostrar el número de ocurrencias contadas por namespace y por elemento de código
    • Para clases, distinguir también entre:
      • parámetros
      • propiedades (si son calculadas)
      • métodos
      • índices
    • Opción para mostrar la línea que contiene la ocurrencia
    • Sin preocuparse por el formato de salida:
      • cualquier programa de terminal puede escribir un registro
      • bash tiene STDOUT para ello

    Esta utilidad está, por tanto, disponible para vosotros en Open Exchange y GitHub.
    También he creado un vídeo para mostrar la herramienta en acción.
    Además, está disponible en el Demo Server.

    Simplemente ejecutadla desde el terminal:
    user>DO ^rcc.find

    A continuación se os harán unas cuantas preguntas:

    • ¿Qué texto estás buscando?
    • ¿Verbose?
      • ¿Queréis ver la línea completa que contenga vuestro texto?
      • Advertencia: esto puede generar un listado muy grande.
      • En una prueba reciente se encontraron más de 90.000 coincidencias.
      • Con verbose=1, obtendréis más de 90.000 líneas.
    • ¿Solo mayúsculas?
      • Esto soluciona el problema de funciones escritas en mayúsculas, minúsculas o mezcladas.
      • “Uppercase=1” asegura que no os perdáis ninguna ocurrencia.
    • ¿Qué tipo de código queréis escanear? (CLS, MAC, INT, INC, ALL)
    • ¿En qué namespace queréis buscar?
      • Un namespace específico de la lista o ALL.
      • Para ALL, obtendréis una lista condensada de namespaces y tipos (no visible en el vídeo).

    Selecciona el namespace e inicia el escaneo.
    ¡Vamos a ello!

    USER> do ^rcc.find
    ----------------
    
    enter search string [$ZU] <blank> to exit: RCC
              Verbose? (0,1) [0]:
              Force UpperCase? (1,0) [1]:
    
    enter code type (CLS,MAC,INT,INC,ALL) [ALL]: CLS
    
    select namespace (ALL,%SYS,DOCBOOK,ENSDEMO,ENSEMBLE,SAMPLES,USER) [USER]:
    
    ** Scan Namespace: USER **
    
    ** CLS **
    ** 2      User.ConLoad
    ** 15     User.Main
    ** 3      csp.form
    ** 3      csp.winner
    ** 2      dc.rcc.Contest
    ** 37     dc.rcc.Main
    ** 1      dc.rcc.Prize
    ** 63 CLS **
    ----------------
    

    Espero que hayáis disfrutado de mi historia.
    He intentado evitar listados de código aburridos; para eso están Open Exchange y GitHub.

    Comentarios (0)1
    Inicie sesión o regístrese para continuar
    Artículo
    · 12 ene, 2026 Lectura de 7 min

    FHIRInsightで血液検査を理解する:FHIRをわかりやすく

    image

    血液検査の結果を見て、何が書いてあるのか全然わからないあの感じ、分かるかと思います。 その問題を解決してくれるのがFHIRInsightです。 そもそも医療データは怖いものや分かりにくいものではなく、誰もが活用できるものであるべきだ、という考えから始まりました。 血液検査は健康チェックではとても一般的ですが、正直なところ、理解するのは多くの人にとって難しく、臨床検査を専門としない医療スタッフにとっても難しいことがあります。 FHIRInsightは、血液検査のプロセスをもっと分かりやすくし、情報をより活用しやすくすることを目指しています。

    Comentarios (0)0
    Inicie sesión o regístrese para continuar