Buscar

Limpiar filtro
Anuncio
Jose-Tomas Salvador · 17 jun, 2021

Buscamos Desarrolladores Python para el Early Access Program de Python embebido en IRIS

¡Estamos buscando desarrolladores en Python para participar en nuestro programa de acceso preliminar a Python embebido (EAP IRIS Embedded Python)! Si tu, o alguien que conozcas, es un desarrollador en Python y estais interesados, por favor, ponte en contacto con nosotros a través del email que indicamos abajo. InterSystems está incorporando la potencia y simplicidad de Python a IRIS. Estamos trabajando decididamente para integrar Python en el kernel de IRIS, poniéndose a la par con ObjectScript. Utiliza cualquiera de las miles de librerías de Python ya construidas Accede facilmente a IRIS desde Python, y a Python desde ObjectScript Implementa clases con código mixto, ObjectScript y Python El programa de acceso preliminar (Early Access Program) es un modo de ayudarte de darle forma al futuro de IRIS proporcionándonos feedback sobre funcionalidades que están por venir. Todos los participantes recibirán kits dedicados de software no liberado aún, junto con instrucciones, documentación, y ejemplos de modo que puedas partir de la mejor posición en el desarrollo de increibles soluciones al tiempo que disfrutas de algo nuevo antes que nadie. Además te haremos entrega de una increible camiseta de InterSystems y puede que algo más. Lo único que te pedimos a cambio es tu feedback sobre lo que te ha gustado y dónde deberíamos mejorar. RSVP: python-interest@intersystems.com La fase “Python Developer” del Programa de Acceso Preliminar irá del 28 de Junio al 26 de Julio de 2021
Artículo
Alberto Fuentes · 20 mayo, 2021

Cómo añadir una placa de Open Exchange a tu repositorio de Github

¡Hola desarrolladores! Hoy publico este breve artículo para todos aquellos que quieran añadirse una placa muy chula (shield) de Open Exchange como esta: En tu repositorio de GitHub puedes incluirla añadiendo una simple línea: [![Gitter](https://img.shields.io/badge/Available%20on-Intersystems%20Open%20Exchange-00b2a9.svg)](https://openexchange.intersystems.com/package/csvgen) Recuerda escribir en la URL la ruta a tu página en Open Exchange. Gracias a los participantes del concurso por esta placa tan chula :D ¿Qué otros shields o placas útiles conoces? ¡Compártelos en los comentarios!
Anuncio
Esther Sanchez · 18 nov, 2021

Sesiones grabadas del Virtual Summit 2021

¡Hola Comunidad! Ya están disponibles las grabaciones de todas las sesiones de la Convención Virtual de InterSystems (Virtual Summit) que se celebró en octubre. Podréis acceder a ellas hasta finales de enero. Si estáis registrados en el evento, este es el acceso a la Plataforma Virtual para Asistentes. Si no os registrasteis, podéis hacerlo aquí para ver las grabaciones. Una vez en la Plataforma Virtual para Asistentes, hay que hacer clic en "All Sessions" en el menú y podréis buscar o elegir las sesiones que queráis ver. Así que... ¡no os lo perdáis! ¡Hay más de 60 sesiones para elegir! Dadle al Play... ¡y a disfrutar!
Anuncio
Esther Sanchez · 4 jul, 2022

Ponencias del Global Summit 2022

¡Hola a tod@s! La Convención Anual (Global Summit) de InterSystems de este año en Seattle terminó hace más de una semana y ya podéis ver en YouTube algunas de las presentaciones que allí se realizaron. Pero antes... algunos de los miembros más activos de la Comunidad de Desarrolladores os saludan personalmente desde sus países de origen. ¿Queréis conocerles? Las presentaciones están disponibles en esta lista de reproducción en YouTube: ➡️ Ponencias del Global Summit 2022 en YouTube ¡Esperamos veros el año que viene en Hollywood, Florida! 🤩 ¡Y ya podéis inscribiros a las notificaciones del Global Summit 2023! 😅
Anuncio
Esther Sanchez · 25 oct, 2022

Nueva organización de los retos en Global Masters

¡Hola Comunidad! Os traigo la última novedad en Global Masters: Hemos reorganizado los retos en la pestaña "Retos" y ahora todas las pruebas están organizadas en grupos (carpetas). Esperamos que ahora sea más fácil encontrar los retos más relevantes para cada uno. La página de inicio de Global Masters no ha cambiado. ¿Queréis ver el cambio? Si tenéis algún comentario o idea sobre Global Masters, podéis escribirlo en los comentarios de esta publicación. ¿Aún no eres miembro de Global Masters? Puedes darte de alta utilizando tus credenciales de InterSystems.
Pregunta
Evan Gabhart · 13 abr, 2023

Cómo saltar de línea usando etiqueta + desplazamiento en VS Code

¿Cómo se podría saltar a una línea particular escribiendo una etiqueta y añadiendo un desplazamiento en VS Code (zMethodName + n)? Sé que esto se puede hacer en Studio y sería muy útil para depurar mensajes de error. Puedes ver en la documentación oficial que no tenemos ningún atajo para saltar a una determinada línea: https://intersystems-community.github.io/vscode-objectscript/studio/#bookmarks Se recomienda la instalación de una extensión de terceros para replicar dicha funcionalidad: https://marketplace.visualstudio.com/search?term=bookmark&target=VSCode&category=All%20categories&sortBy=Relevance
Anuncio
Coral Montero · 20 jun, 2025

CACHÉ #Oportunidad de trabajo

¡Hola comunidad de InterSystems! ¡Tenemos una oportunidad increíble para 3 desarrolladores con experiencia en Caché que quieran unirse a nuestro equipo y construir una plataforma innovadora en el sector MedTech! Lo que ofrecemos: Trabajo híbrido (Barcelona o Madrid) ¡Forma parte de un equipo desde sus inicios, con un impacto directo en la creación de soluciones médicas de vanguardia! Gran oportunidad de crecimiento profesional Si tienes experiencia con Caché y estás listo para un reto emocionante en una empresa con visión de futuro, ¡esta es tu oportunidad! ¡Esperamos saber de ti y que te unas a este increíble proyecto! 🚀 No dudes en escribir a coral.montero@betterask.erni.
Anuncio
Esther Sanchez · 4 feb, 2022

Los mejores autores de la Comunidad de Desarrolladores durante 2021

¡Hola desarrolladores! Ya podemos anunciar los autores que mejor han contribuido en la Comunidad de Desarrolladores de InterSystems durante 2021 🎉 Dividimos en tres categorías a los autores más activos en todas las Comunidades (EN, ES, PT, JP, CHN): Autores Más Leídos Autores Expertos Autores Líderes de Opinión Este es el "Muro de la fama" de la Comunidad de Desarrolladores de 2021: Insignia Ganadores Definición de cada categoría Categoría: InterSystems Best-Selling Author (Autores Más Leídos) 1er puesto: Gold Best-Selling Author 2021 @Yuri.Gomes 1º / 2º/ 3º / 4º-20º puestos en la categoría "DC Best-Selling Author 2021". Autores cuyos artículos consiguieron el mayor número de visualizaciones en la Comunidad de Desarrolladores durante el año 2021. 2º puesto: Silver Best-Selling Author 2021 @Mihoko.Iijima @Robert.Cemper1003 3er puesto: Bronze Best-Selling Author 2021 @姚.鑫 @Toshihiko.Minamoto Puestos del 4 al 20: Best-Selling Author 2021 @Tani.Frankel @Alberto.Fuentes @Xuying.Zheng @Yunfei.Lei @Hao.Ma @Dmitry.Maslennikov@Evgeny.Shvarov @Henrique.GonçalvesDias@Anton.Umnikov @Megumi.Kakechi @Ricardo.Paiva @Shintaro.Kaminaka @Muhammad.Waseem @Jose-Tomas.Salvador @Nigel.Salm9724 Categoría: InterSystems Expert (Autores Expertos) 1er puesto: Gold Expert 2021 @Robert.Cemper1003 1º / 2º / 3º / 4º-20º puestos en la categoría “DC Expert 2021". Autores que consiguieron el mayor número de "Respuestas aceptadas" durante el año 2021. 2º puesto: SilverExpert 2021 @Dmitry.Maslennikov @Eduard.Lebedyuk 3er puesto: Bronze Expert 2021 @Vic.Sun @Marc.Mundt Puestos del 4 al 20: DC Expert 2021 @Julius.Kavay@Vitaliy.Serdtsev @Jeffrey.Drumm @Timothy.Leavitt@Julian.Matthews7786 @David.Hockenbroch @Tani.Frankel @Nigel.Salm9724@Evgeny.Shvarov @Lin.Zhu@Yunfei.Lei@David.Reche @Toshihiko.Minamoto @Louis.Lu @Guillaume.Rongier7183 Categoría: InterSystems Opinion Leader (Autores Líderes de Opinión) 1er puesto: Gold Opinion Leader 2021 @Anastasia.Dyubaylo 1º / 2º / 3º / 4º-20º puestos en la categoría “DC Opinion Leader 2021”. Autores cuyas publicaciones y respuestas obtuvieron el mayor número de votos en la Comunidad de Desarrolladores durante el año 2021. 2º puesto: Silver Opinion Leader 2021 @Robert.Cemper1003 3er puesto: Bronze Opinion Leader 2021 @Yuri.Gomes Puestos del 4 al 20: DC Opinion Leader 2021 @Angelo.Braga5765 @Dmitry.Maslennikov @Evgeny.Shvarov @Eduard.Lebedyuk@Andre.LarsenBarbosa @Nigel.Salm9724 @Olga.Zavrazhnova2637 @Henrique.GonçalvesDias@Henry.HamonPereira @Benjamin.DeBoe@Timothy.Leavitt@MikhailenkoSergey @John.Murray @Muhammad.Waseem @Oliver.Wilms @Benjamin.Spead @Mihoko.Iijima Este listado es una excelente guía sobre "A quién seguir" en la Comunidad de Desarrolladores, ¿cierto? ¡UN GRAN APLAUSO A TODOS ELLOS! 👏👏 ¡Enhorabuena y gracias por vuestra excelente contribución a la Comunidad de Desarrolladores en 2021! ¡Felicidades! Congratulations to you, Anastasia! You are THE opinion leader!! 👏👏
Artículo
Luis Angel Pérez Ramos · 9 mar, 2023

Simplifica los paquetes de Python con zpip, un empaquetador pip de irispython

``` _________ ___ ____ |__ / _ \_ _| _ \ / /| |_) | || |_) | / /_| __/| || __/ /____|_| |___|_| ``` > Desde la versión 2021.1, InterSystems IRIS empezó a distribuirse con un runtime de Python en el motor del kernel. Sin embargo, no había forma de instalar paquetes desde dentro de la instancia. La principal ventaja de Python es su enorme ecosistema de paquetes. Con ello en mente, os presento mi proyecto zpip, un empaquetador pip que se puede invocar desde el terminal de iris. # ¿Qué es zpip? zpip es un empaquetador para python pip que permite a los desarrolladores añadir de forma rápida paquetes a una instancia, a través del terminal de InterSystems IRIS. ## Características * Empaquetador pip de python para InterSystems IRIS * Instalación/Desinstalación paquetes python * La instalación añade la palabra clave `zpip` al lenguaje ## Instalación de zpip ```cos %SYS> zpm "install zpip" ``` ## Lista de tareas * [ ] API invocable con retorno de estados # Uso de zpip Todos los comandos* pip están soportados. Sin embargo, cualquier comando interactivo requerirá que uses la versión no-interactiva del comando. Por ejemplo, para [desinstalar](#uninstalling-a-python-package) un package, tendrás que usar -y en el comando para confirmar el proceso. ## Instalación de los paquetes python con zpip ```cos // Install multiple packages // beautiful soup and requests libraries %SYS> zpip "install requests bs4" ``` ... en acción: ```cos %SYS>zpip "install emoji" Processing /home/irisowner/.cache/pip/wheels/ae/80/43/3b56e58669d65ea9ebf38b9574074ca248143b61f45e114a6b/emoji-2.1.0-py3-none-any.whl Installing collected packages: emoji Successfully installed emoji-2.1.0 %SYS> ``` ### Especificación de un directorio de instalación diferente: ```cos // Install to some other python package target $SYS> zpip "install --target '/durable/iconfig/lib/python' emoji" ``` ## Desinstalación de un paquete python ```cos // Requires -y! %SYS>zpip "uninstall -y emoji" Found existing installation: emoji 2.1.0 Uninstalling emoji-2.1.0: Successfully uninstalled emoji-2.1.0 ``` ## Otros comandos de pip útiles ### lista de paquetes ```cos // List Packages %SYS> zpip "list" Package Version ---------------------------- ----------- absl-py 1.1.0 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0 asttokens 2.0.5 astunparse 1.6.3 attrs 21.4.0 backcall 0.2.0 beautifulsoup4 4.11.1 bleach 5.0.0 bs4 0.0.1 ... ``` # Limitaciones * Los comandos interactivos no están soportados. * Uso de `-y` para desinstalar. * La búsqueda puede no funcionar dependiendo de la configuración del sistema. * Usa la infraestructura pip subyacente del sistema operativo, por lo que la instalación depende de la versión pip del sistema operativo. Este artículo ha sido etiquetado como "Mejores prácticas" ("Best practices"). Los artículos con la etiqueta "Mejores prácticas" incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems.
Artículo
Luis Angel Pérez Ramos · 3 jun, 2025

De Legacy a FHIR: Conectando datos de salud con IRIS-FHIR-Bridge

Hola comunidad, En este artículo, os voy a presentar mi aplicación iris-fhir-bridge. IRIS-FHIR Bridge es una potente solución de interoperabilidad diseñada para facilitar un intercambio de datos fluido y confiable entre sistemas de salud. Actúa como un puente entre formatos de datos heredados y los estándares modernos FHIR, lo que permite a las organizaciones de atención médica intercambiar información de manera más eficiente. Ya sea que trabajéis con HL7 v2, CCDA o datos en formato CSV, la aplicación garantiza una interoperabilidad sin problemas mediante transformaciones bidireccionales sólidas. 🔧 Funciones claveIRIS-FHIR Bridge ofrece una amplia gama de servicios de conversión: HL7 v2 → FHIR: admite la ingesta de mensajes HL7 v2 mediante REST y archivos, y los convierte en recursos FHIR estandarizados. CCDA → FHIR: acepta documentos CCDA en formato XML a través de una API RESTful y genera FHIR estructurado en formato JSON. CSV → FHIR: utiliza el modelo de objetos FHIR de InterSystems para construir recursos válidos de Patient y Observation a partir de datos CSV estructurados. FHIR → HL7 v2: convierte recursos FHIR de nuevo a mensajes HL7 v2 para mantener la compatibilidad con sistemas heredados. Características clave de IRIS-FHIR Bridge 1. Conversión HL7 v2 ↔ FHIR HL7_File_Service: monitorea una carpeta en busca de archivos de mensajes HL7 v2 y los convierte automáticamente en archivos FHIR en formato JSON. HL7_Http_Service: monitorea una carpeta en busca de archivos de mensajes HL7 v2 y los convierte automáticamente en archivos FHIR en formato JSON. HS.FHIRServer.interop.Service: servicio empresarial responsable de convertir recursos FHIR nuevamente en mensajes HL7 v2, garantizando compatibilidad bidireccional. 2. Conversión CCDA a FHIR HL7_Http_Service: procesa datos CSV estructurados, como demografía de pacientes y observaciones, y utiliza el modelo de objetos FHIR de InterSystems para construir recursos FHIR válidos. 3. CSV a FHIR (Usando el Modelo de Objetos FHIR) CSV_File_Service: servicio empresarial que transforma datos CSV estructurados (por ejemplo, demografía de pacientes, observaciones) en recursos FHIR válidos utilizando el Modelo de Objetos FHIR de InterSystems. 🧰 Funciones adicionales Archivos de datos de ejemplo: el repositorio incluye archivos de ejemplo HL7, CCDA, FHIR y CSV para ayudar a los usuarios a comenzar. Colección de Postman: hay una colección de Postman lista para usar, disponible para probar todos los endpoints REST expuestos. 🤝 Uníos a la innovación Como parte del concurso de interoperabilidad de salud digital e InterSystems FHIR, IRIS-FHIR Bridge busca aportar innovación significativa a la comunidad de salud. Agradecemos comentarios, colaboraciones e ideas para seguir mejorando esta herramienta. Para más detalles, por favor visitad la página de la aplicación iris-fhir-bridge en Open Exchange.Gracias
Artículo
Ariel Glikman · 21 abr, 2025

Cuándo tener en cuenta useIrisFsGroup en vuestros despliegues con IKO

Si echáis un vistazo al archivo values.yaml del Helm chart de IKO, encontraréis: useIrisFsGroup: false Vamos a desglosar qué es useIrisFsGroup y en qué situaciones puede ser útil activarlo. FsGroup se refiere al file system group (grupo del sistema de archivos). Por defecto, los volúmenes en Kubernetes son propiedad del usuario root, pero necesitamos que IRIS sea propietario de sus propios archivos (IRIS en contenedores se instala bajo el usuario irisowner). Para solucionar esto, utilizamos uno de estos dos métodos: 1) initContainers Los initContainers se ejecutan antes que los contenedores de la aplicación (como IRIS) en un pod. Generalmente preparan el entorno para la aplicación y luego terminan. El initContainer se ejecuta como root antes que IRIS y ejecuta: chown irisowner:irisowner /irissys/* El SecurityContext está, por defecto, configurado como: RunAsUser: 51773 RunAsGroup: 51773 RunAsNonRoot: true para el pod. Y vemos que 51773 es el ID de usuario y grupo para irisowner: $ id uid=51773(irisowner) gid=51773(irisowner) groups=51773(irisowner) 2) Montar volúmenes con una propiedad de grupo específica Algunos entornos pueden restringir que los contenedores se ejecuten como root, por ejemplo, mediante las Security Context Constraints en OpenShift. En este caso, ni siquiera podemos ejecutar un initContainer como root y necesitaremos que los volúmenes tengan la propiedad del sistema de archivos correcta en el momento de su montaje. Para hacerlo, desplegad el InterSystems Kubernetes Operator con: useIrisFsGroup: true en el archivo /chart/iris-operator/values.yaml. Ahora, vuestros pods se desplegarán sin initContainers. Una advertencia: si deseáis configurar sidecars, se requiere un paso adicional. No podréis utilizar el sidecar habitual de Apache/NGINX. Encontraréis este problema: >> kubectl get pods NAME READY STATUS RESTARTS AGE intersystems-iris-operator-amd-76b75f6b48-7lnw2 1/1 Running 0 43m iris-data-0-0 1/2 Error 2 (22s ago) 2m lo que resultará en un CrashLoopBackOff. Un análisis más profundo nos muestra que cuando el sidecar habitual de Apache/NGINX está presente, el parámetro useIrisFsGroup no se tiene en cuenta. Esto se debe a que estos contenedores de Apache/NGINX, en este caso el sidecar, se ejecutan como root. IRIS no se ejecuta como root y no puede acceder a sus directorios, lo que causa nuestro problema. irisowner@iris-data-0-0:/irissys$ ls -l total 16 drwxrwxrwx 3 root root 107 Mar 31 14:28 cpf drwxr-xr-x 3 root root 4096 Mar 31 14:21 data drwxr-xr-x 3 root root 4096 Mar 31 14:21 journal1 drwxr-xr-x 3 root root 4096 Mar 31 14:21 journal2 drwxrwxrwt 3 root root 100 Mar 31 14:28 key drwxr-xr-x 3 root root 4096 Mar 31 14:21 wij IRIS falla con el error: [ERROR] Command "iris start IRIS quietly" exited with status 256 03/31/25-14:41:06:870 (795) 3 [Utility.Event] Error while moving data directories ERROR #5001: Cannot create target: /irissys/data/IRIS/ En su lugar, deberíamos utilizar la imagen non-root del web gateway (ya que suponemos que queremos que todas nuestras imágenes se ejecuten como no root). Esto implicaría un web gateway restringido o locked-down. También debemos asegurarnos de agregar el security context para hacer cumplir esta condición. Necesitamos declarar explícitamente: securityContext: runAsUser: 51773 runAsGroup: 51773 runAsNonRoot: true fsGroup: 51773 en vuestros nodos de datos/cómputo. Un ejemplo de YAML para nuestro IrisCluster CRD que integra todo esto se puede ver a continuación. 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/irishealth:2025.1 compatibilityVersion: "2025.1.0" mirrored: true podTemplate: spec: resources: requests: memory: "4Gi" cpu: "2" limits: memory: "4Gi" cpu: "2" securityContext: runAsUser: 51773 runAsGroup: 51773 runAsNonRoot: true fsGroup: 51773 webgateway: image: containers.intersystems.com/intersystems/webgateway-lockeddown:2025.1 type: apache-lockeddown applicationPaths: - /csp/sys - /csp/user - /csp/broker - /api - /isc - /oauth2 - /ui - /csp/healthshare loginSecret: name: iris-webgateway-secret webgateway: replicas: 1 image: containers.intersystems.com/intersystems/webgateway-lockeddown:2025.1 type: apache-lockeddown podTemplate: spec: resources: requests: memory: "2Gi" cpu: "1" limits: memory: "2Gi" cpu: "1" applicationPaths: - /csp/sys - /csp/user - /csp/broker - /api - /isc - /oauth2 - /ui - /csp/healthshare alternativeServers: LoadBalancing loginSecret: name: iris-webgateway-secret arbiter: image: containers.intersystems.com/intersystems/arbiter:2025.1 serviceTemplate: spec: type: ClusterIP Feliz YAMLing
Pregunta
Bernabé Martín · 11 mayo, 2020

Evolucion de MUMPS

Acabo de darme de alta en la Comunidad. Soy, lo que hoy se denomina un Dinosaurio, en el ámbito de la llamada informática. Hace ya años pasé a la jubilación, conservo una versión de Cache 5.2, (y una versión MSM V4), en la que conservo y añado los programas que se me ocurren para uso privado. Yo comencé con MUMPS instalado en el sistema VMS de Digital, en el área de análisis y programación de los años 90, del siglo pasado. Sé que hasta hace unos 15 años aún se utilizaban mis aplicaciones, basadas en MUMPS puro y duro. En la versión 5.2 (en una Maquina Virtual con WXP), el Studio, solo lo utilizo para edición de rutinas (*.int) Toda esta exposición es para poner en antecedentes de mi solicitud. Me gustaría obtener de la Comunidad información para darle a mis RUTINAS MUMPS las capas de cebolla necesarias para convertirlas mas visuales, es decir más Windows. Muchas gracias, y pedir disculpas por alterar el discurrir de esta Comunidad. El código Mumps y sus variantes, sean Micronetics Standard Mumps, Digital Standard Mumps, DataTree Mumps se puede seguir ejecutando en versiones recientes de la plataforma Caché, Ensemble y la más reciente InterSystems IRIS. Historicamente, clientes que han querido dotar una aplicación texto de una capa visual han optado por: un entorno Visual para desarrollar la parte cliente en Visual Basic o más recientemente .NET, o a veces con frameworks visuales Java. Se pueden conectar a la plataforma mediante ODBC/ADO.NET/JDBC u otros mecanismos , (incluido el ya muy antiguo MSM-Activate). un desarrollo directo en entorno Web, sea mediante la generación directa de paginas Web desde CSP (Caché Server Pages). Más recientemente muchos desarrollos Web se realizan con frameworks modernos como Angular, VueJS o React, connectando-los a un back-end Caché/IRIS donde ejecutar el código. En este ejemplo se explica como hace esto: https://es.community.intersystems.com/post/ejemplo-de-aplicaci%C3%B3n-angular-intersystems-iris Hola Bernabé, eres la prueba viviente de la resiliencia de una buena tecnología! Lo cierto es que han pasado varias "eras" tecnológicas desde los tiempos que comentas... pero a ver quien es el milenial que se enfrenta a un dinosaurio a pecho descubierto! Te aconsejaría "empaquetar" la lógica que tienes en tus rutinas en clases... y dejar Caché a un lado, con todos los honores que se merece, para empezar con InterSystems IRIS... A partir de ahí, depende de lo que tengas, te resultará más o menos fácil, pero en la mayoría de los casos tendría que ser bastante directo. Una vez que te manejes con las clases, tus opciones son muchas... puedes desarrollar APIs REST, o Web Services,... que te sirvan para publicar funcionalidad que luego puedan utilizarse desde una aplicación en Angular, React, Vue..si te inclinas por aplicaciones web, o en .Net, Java,... Por supuesto siempre puedes ejecutar comandos en modo terminal para funciones atómicas, pero si quieres un interfaz más moderno, el terminal queda descartado. No te libras de tener que familiarizarte con alguna tecnología de front-end... las que te comento u otras... cuando lo hagas, siguiendo algún tutorial, verás que todo absolutamente todo lo que te planteen en temas de intercomunicación con un motor de BD, lo puedes hacer con IRIS. Pero bueno, hay camino que recorrer... aparte de este foro, tienes el Open Exchange, con muchas aplicaciones open source que te pueden ser muy útiles y dar ideas. También tienes cursos gratuitos en la sección de Learning... En el Try InterSystems IRIS puedes probar en una máquina virtual durante un mes... o también puedes bajarte una versión gratuita de InterSystems IRIS Community aquí. Para ir haciéndote una idea... puedes empezar por los Quick Start. Ponerse al día puede ser lento al principio... en cuanto le cojas el hilo a los objetos, empezarás a correr. En todo caso, por seguir tu analogía... desde cuando los obstáculos de unos mamíferos bípedos insignificantes han parado a un T-Rex??!! Bueno, espero haberte ayudado... o encaminado al menos. Gracias, lo miro Gracias, Un T-rex!!!, un poco ranqueante. He intentado, antes de llegar aquí, buscar algun tutorial, pero.... Miraré de bajar la versión de IRIS, supongo que esta no caduca, ya que tardaré algun tiempo. Salud Hola Bernabé, He visto tu Post y la verdad es que me ha hecho ilusión que hay alguien que no ha dejado el "viejo Mumps" como yo. Hace mucho tiempo que mis entornos laborales no me hacen trabajar con Mumps y ahora que tengo tiempo me gustaría retomarlo. He visto que tienes un MSM versión 4. Te importaría compartirlo? La verdad es que no lencuentro en ningún lado y es el que había trabajado más con él. Te doy las gracias por adelantado Santi Hola Santi, Si tengo esa version de Micronetics, quizas no me expliqué bien no la tengo instalada. Utilizo la 5.2 de Intersystems Supongo que ya debe de estar descatalogada y no habría problemas en pasartela. Sería mejor que utilices mi correo bernabe1955@gmail.com Salud Bernabé
Anuncio
Esther Sanchez · 21 feb, 2023

Novedades en Open Exchange

¡Hola Comunidad! Os mostramos aquí las mejoras que hemos realizado en Open Exchange. Echadle un vistazo y esperamos que os resulten útiles! Si tenéis alguna duda o pregunta, podéis dejarla en los comentarios de la publicación. En la pestaña ANALYTICS de vuestras apps, ahora podéis ver estadísticas detalladas del número de instalaciones de vuestra app a través de IPM (antes ZPM) El filtro "ObjectScript quality test" ahora permite encontrar apps que han sido probadas por Community objectscriptQuality. Podéis acceder al informe de calidad en la misma página de la app, en la columna de la derecha, para ver su rendimiento. Y no dudéis en usar esa app para probar vuestros propios proyectos. Apps con el filtro "ObjectScript quality test passed" >> Ahora también se pueden afinar los resultados de las búsquedas para que muestren solo aplicaciones que incluyan Docker y/o Python: Apps con Docker Apps con Python O buscar solo aplicaciones que estén soportadas oficialmente por InterSystems: Apps soportadas oficialmente por InterSystems >> Tanto la página con el perfil personal como la página de cada app tienen una pestaña AWARDS (premios) que muestra todos los premios que han recibido tanto los miembros de Open Exchange como las aplicaciones: Miembros de Open Exchange más premiados >> Si queréis asociar vuestra aplicación con uno o varios artículos en la Comunidad o con vídeos en YouTube, ahora podéis incluir múltiples enlaces a ellos cuando editéis la aplicación.
Artículo
Luis Angel Pérez Ramos · 13 jun, 2023

Mi primera experiencia usando IAM

Experiencia & comentarios del curso online "Hands-On with InterSystems API Manager for Developers" Con mis conocimientos básicos de contenedores Docker y API REST, me gustaría probar el uso del administrador de APIs de InterSystems para gestionar las API y los microservicios. Completé este curso en línea utilizando mi instancia local de IRIS como host (sistema operativo Windows) e IAM ejecutándose en una máquina virtual Linux. En primer lugar, presentaré InterSystems API Manager (IAM), a continuación explicaré los pasos para configurar mi entorno local y, por último, repasaré los capítulos del curso. Introducción Hoy en día, la administración de API es muy importante al aprovechar las ventajas de una implementación fácil, siempre que se cuente con un portal de interfaz de usuario centralizado para administrar, monitorizar y proteger el tráfico de las APIs. InterSystems API Manager (IAM) permite la gestión de las API y los microservicios consumidos y expuestos por la aplicación IRIS. Es una puerta de enlace API entre los sistemas ascendentes y descendentes y también tiene una forma de seguimiento visual para averiguar a qué API se llama, con qué frecuencia se han llamado y quién las llamó. Beneficios del uso de IAM: Monitorización de APIs basadas en HTTP Control del tráfico. Protección de la seguridad de las APIs mediante el uso de mecanismos de securización. Facilidad de uso para nuevos desarrolladores. Configuración de IAM Lo que tengo instalado antes de empezar a configurar el IAM: Windows (Instancia de IRIS instalada) Linux VM (Docker instalado) Habilitación de la instancia de InterSystems IRIS para usar IAM Open management portal of IRIS instance, enable IAM. En el Portal de Gestión seleccionar System Administration > Security > Users y seleccionar al usuario IAM Hacer click en la opción Password Introducir y confirmar una contraseña para el usuario IAM Habilitar el usuario IAM marcando el check box Grabar Habilitar la aplicación web IAM (Asegúrate que tu licencia de IRIS especifica "API Management") En el Portal de Gestión selecciona System Administration > Security > Applications > Web Applications y selecciona "/api/iam" Marca Habilitar aplicación Grabar Descarga y descomprime los archivos de instalación de IAM Descarga el kit de instalación de IAM de WRC para entornos Linux Extrae los archivos tar (No descomprimas iam-image.tar, es la imagen de Docker de IAM) Configuración y arranque de IAM En este paso, he usado el usuario ROOT porque recibía errores como "No se puede cargar el Portal de Gestión correctamente" o el script de configuración no pasaba el valor de la variable de entorno al archivo docker-compose.yml cuando usaba sudo con mi usuario de Linux. Una solución a este último fue usar "sudo -E" para pasar las variables de entorno. Abrir el terminal y ejecutar el comando "docker load -i iam_image.tar" desde el directorio en el que se ubicó el tar de la imagen de IAM. Ejecuta "source ./scripts/iam-setup.sh" en el directorio actual o "source ./iam-setup.sh" desde la carpeta "scripts". Introduce el nombre exacto de la imagen de IAM y el nombre del repositorio de https://containers.intersystems.com/contents Por ejemplo: intersystems/iam:3.0.2.0-2 (Este paso es obligatorio; de lo contrario, recibirá un error sobre fallo de autenticación del repositorio al ejecutar "docker compose") Introduce la IP de tu máquina (Puedes encontrarla bajo la etiqueta de IPV4 en la configuración de Windows o lanzando un ipconfig (no uses localhost o 127.0.0.1) Introduce el puerto web de la instancia de IRIS, for example 52773 Configura el password definido previamente para el usuario IAM Dentro de la carpeta "scripts" asegúrate de ejecutar "iam-test.sh" para probar la conexión Dentro de la carpeta "scripts" ejecuta "docker compose up -d" para arrancar la IAM Abre el portal de gestión del IAM accediendo a: http://localhost:8002/overview Si no puede hacer ping a la dirección del host usando VM, comprueba el Firewall de Windows - Advanced Settings - Inbound Rules. Habilita File and Printer Sharing (Echo Request - ICMPv4-In) Profile: Private, Public Prueba de IAM Dentro del kit de instalación, encontrará un script llamado "iam-test.sh" en el directorio de scripts. Escriba y ejecute "./iam-test.sh" para comenzar a probar la conexión entre IAM y la instancia de IRIS. Nota: Si el resultado de la prueba dice "Error al crear el servicio. Código de estado HTTP: 000 o Error al crear el servicio. Código de estado HTTP: 409", comprueba el estado de Docker, si funciona correctamente pero sigue sin funcionar, tire el contenedor desplegado y ejecuta nuevamente la instrucción de docker compose, por mi experiencia, esto puede suceder tras pausar la máquina virtual. Para más información puedes encontrar aquí la documentación de configuración de IAM: https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=CIAM3.0_install#CIAM3.0_install_setupIAM Y el ejercicio: https://learning.intersystems.com/course/view.php?name=IAMExercise Capítulos del curso Tras realizar el ejercicio podemos encontrar 3 capítulos principales: Configuración de Servicios (Services) Configuración de Rutas (Routes) Configuración de Consumidores y Plugins (Consumers) Antes de comenzar a usar IAM, este ejercicio me pedía que hiciera una solicitud REST usando el método GET, esta solicitud HTTP es del servidor del cliente que apunta directamente al punto final, que es una aplicación web creada en una instancia de IRIS. Para los siguientes pasos, este ejercicio me mostró cómo configurar los servicios a los que se reenvía la solicitud API y la ruta que analiza la solicitud entrante y luego la asigna a la API más adecuada. Configuración de servicios y enrutadores ¿Qué es un servicio? Se configura un servicio para conectar API Manager a InterSystems IRIS; normalmente tiene un servicio por cada servicio REST o aplicación web dentro de InterSystems IRIS. Por ejemplo, si tiene una aplicación web con la ruta base /rest/coffeemakerapp, configurará un servicio dentro de API Manager para esta URL. Los servicios generalmente se definen antes que las rutas. ¿Qué es una Ruta? Una ruta define lo que llamarán las aplicaciones cliente a InterSystems API Manager. Por lo general, define un servicio antes que una ruta porque la interfaz le permite crear fácilmente las rutas correspondientes directamente desde un servicio definido. Las rutas suelen ser versiones simplificadas de las rutas dentro de InterSystems IRIS. En el siguiente ejemplo, creará rutas para /test, /coffeemakers, /coffeemaker y /newcoffeemaker. Cuanto más específicas sean sus rutas, más control tendrá sobre sus API dentro de API Manager, tanto en la visualización de métricas como en la adición de complementos a rutas específicas. Crear un servicio: Desde el portal de administración de IAM, seleccione la pestaña Services Haga clic en New Service y asígnele un nombre Seleccione Add usando URL Proporcione la URL base, que es la ruta URL exacta que especificó en la aplicación web, y verifique que la dirección IP de la instancia sea correcta (no use localhost o 127.0.0.1) Crear una ruta: Desplácese hacia abajo en el resumen del servicio y haga clic en Add a Route Especifique nombre, protocolos, ruta(s) El campo Service debe generarse automáticamente con los detalles del servicio creado previamente. El ejercicio requería que deseleccionáramos Strip Path en Advanced Fields. Si se selecciona, esto elimina la ruta al enviar la solicitud a InterSystems IRIS, que es un elemento importante para conectarse al endpoint de InterSystems IRIS. Una vez creados el servicio y la ruta, puede utilizar un cliente REST como Postman para enviar una solicitud directamente a IAM y recibir una respuesta "200 ok", por ejemplo: GET http://10.0.0.1:8000/test ( /test es la Route creada). Nota: en mi caso, la URL de la solicitud HTTP debe coincidir con la dirección IP de la VM de Linux, puedes encontrar la dirección IP a través de Configuración-Red o ejecutar el comando "ifconfig" en la terminal. Abra el Portal de administración de IAM, verá que la solicitud para mostrar todas las cafeteras se registró correctamente, desde el cliente REST hasta IAM. Incluso con las solicitudes CRUD básicas, en lugar de enviar una solicitud HTTP directamente a la aplicación web de IRIS, el uso de IAM le brinda una representación visual para tomar el control de las API y mantener la seguridad de los endpoints. Uso de complementos Uno de los beneficios de usar IAM es que tiene muchos complementos disponibles, como el complemento de limitación de velocidad para ayudar con la limitación, el complemento ACL, el complemento OAuth2.0. En mi caso, compartiré mi experiencia de habilitar la autenticación básica y crear un consumidor. Habilitar complemento de autenticación básica Abra el portal de administración de IAM Admin y selecciona la pestaña de Plugin Click en New Plugin > Basic Authentication > Create Cree un usuario de IRIS que necesite para la autenticación básica Abra el portal de gestión de IRIS Vaya a Administración del sistema > Seguridad > Usuarios > Crear nuevo usuario Establecer nombre de usuario, contraseña Puedes dejar el resto de campos en blanco, en mi caso he creado un usuario llamado "CoffeeManager" Crear un consumidor y configurar sus credenciales Vaya al Portal de administración de IAM, seleccione la pestaña Consumers Haga clic en New Consumer > Introduce CoffeeManager (en mi caso) en Username > Create Vaya a la página de información de CoffeeManager > Credentials > New Basic Auth Credential Utilice las credenciales de usuario que creamos en la instancia de IRIS > Guardar Hemos concluido con todos los requisitos para que el plugin de autenticación básica sea funcional. Enviemos una solicitud HTTP utilizando autenticación básica con la credencial "CoffeeManager" que creamos en el último paso Vaya a la página de información de CoffeeManager > Activity, verá que se ha registrado una solicitud con éxito Conclusión En conclusión, he comenzadopresentando qué es InterSystems API Manager (IAM) y sus beneficios. A continuación he seguido de un tutorial sencillo sobre cómo configurar IAM en una máquina virtual Linux y cómo usar IAM implementando sus funciones básicas, crear servicios y rutas, habilitar complementos y consumidores. Si tienes alguna pregunta y comentario, no dudes en ponerte en contacto. ¡Diviértete y disfruta con IAM!
Anuncio
David Reche · 24 mar, 2020

Varios avisos sobre HealthShare (23 de marzo)

Este mensaje contiene tres Avisos recientes sobre HealthShare. El detalle de estos avisos también se encuentran en la página de Alertas y Avisos de Productos de InterSystems Advisory: Patient data is missing in the HSAA.PatientNumber table Advisory: The UpdatePlan for all cubes and cube groups is set to be Manual instead of BuildSynch Advisory: Slow DELETE query during Health Insight data ingestion Si tenéis alguna pregunta sobre estos avisos, contactad por favor con el Centro de Soporte Internacional (WRC).