Rechercher

Annonce
· Juin 20

[Video] SMART on FHIR: App Running

Hey Community,

Enjoy the new video on InterSystems Developers YouTube:

⏯ SMART on FHIR: App Running

This video explains the final demonstration step, which involves running the application, logging in, and interacting with the system.

🗣  Presenter@Tani Frankel, Sales Engineer Manager, InterSystems

Check out the related article: SMART on FHIR app - Sample with Hands-on Exercise/Workshop Instructions

Enjoy watching, and look for more videos! 👍

1 Comment
Discussion (1)2
Connectez-vous ou inscrivez-vous pour continuer
InterSystems officiel
· Juin 20

InterSystems announces InterSystems IRIS support for Red Hat Enterprise Linux 10

InterSystems is pleased to announce that the following products are now available for Red Hat Enterprise Linux 10

  • InterSystems IRIS Data Platform 2025.1.0.230.2
  • InterSystems IRIS for Health 2025.1.0.230.2
  • HealthShare Health Connect 2025.1.0.230.2

This release adds support for the Red Hat Enterprise Linux 10 operating system.  RHEL 10 includes Linux kernel 6.12.0, security improvements, performance optimizations, and improved developer tools.

How to get the software

Installation packages are available from the WRC's Extended Maintenance Releases page. Additionally, kits can also be found in the Evaluation Services website.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Question
· Juin 20

QR code generation

Hello,

I have a problem generating QR code in Caché now.

After executing the code

set Status=##Class(%SYS.QRCode).GenerateImage(P0,,.DataURI)

(variable P0 contains data for QR code)

an error is displayed now:

"<NOTOPEN>zGenerate+27^%SYS.QRCode.1",,,,,,,,

("$^zGenerate+27^%SYS.QRCode.1 +1","$^zGenerateImage+4^%SYS.QRCode.1 +1"

This error occurs only on two servers, on the others the code works fine.

When calling the method, I do not specify any external file that should be opened.

Thank you for the answers.

1 Comment
Discussion (1)2
Connectez-vous ou inscrivez-vous pour continuer
Job
· Juin 20

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.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Juin 20 4m de lecture

Uso del motor de plantillas Mako de Python para generar contenido dinámico.

Los motores de plantillas son esenciales para producir contenido dinámico personalizable, sin necesidad de compilación y ofreciendo grandes posibilidades de extensibilidad para quienes usáis las plantillas. Especialmente si el motor de plantillas es compatible con Python. Una solución popular es Mako. Es una biblioteca de plantillas escrita en Python. Ofrece una sintaxis familiar, no basada en XML, que se compila en módulos de Python para obtener el máximo rendimiento. La sintaxis y API de Mako toma ideas de otros sistemas como las plantillas de Django y Jinja2, Cheetah, Myghty y Genshi. En concepto, Mako es un lenguaje de Python embebido (es decir, tipo "Python Server Page") que refina las ideas conocidas de diseño por componentes y herencia para ofrecer uno de los modelos más claros y flexibles disponibles, manteniendo además una estrecha relación con la forma en que Python maneja llamadas y ámbitos. Mako es utilizado por reddit.com, donde sirve más de mil millones de páginas vistas al mes. Es el lenguaje de plantillas predeterminado en los frameworks web Pylons y Pyramid.
(fuente: https://www.makotemplates.org/)

Ejemplo simple con Mako

Este fragmento de código demuestra el poder de Mako para generar contenido dinámico con soporte completo de Python:

<%inherit file="base.html"/>
<%
    rows = [[v for v in range(0,10)] for row in range(0,10)]
%>
<table>
    % for row in rows:
        ${makerow(row)}
    % endfor
</table>
<%def name="makerow(row)">
    <tr>
    % for name in row:
        <td>${name}</td>\
    % endfor
    </tr>
</%def>

Sentencias de Mako:

Statement <% ... %> Ejecuta códigos Pyhton; utilizado para lógica, bucles, condicionales, etc.
Block (for loops, if) <% if condition: %> / <% for item in items: %> Comienza un bloque de control. Debe cerrarse correctamente.
End of Block <% end %> or dedent in Python Marca el final de un bloque de control (dependiendo de la sintaxis).
Include Statement <%include file="filename" /> Incluye otra plantilla o fichero.
Call Function <%call expr()%> Llama a un bloque o macro definida en la plantilla.
Macro Definition <%def name(args): %> Define una macro que puede reutilizarse.
Macro Call <%call name(args)%> Llama a una macro definida con <%def %>.

 

Uso de plantillas Mako con IRIS

He desarrollado una aplicación IRIS que utiliza Mako y el paquete health-gforms de Open Exchange (https://openexchange.intersystems.com/package/health-gforms). Para esta aplicación, se usó Mako para generar un mensaje JSON válido en formato FHIR, con el fin de crear un nuevo paciente en el servidor:

{
    "resourceType": "Patient",
    "name": [
        {
            "use": "official",
            "given": [
                "${data['name']}"
            ],
            "family": "${data['family']}"
        }
    ],
    "gender": "${data['gender']}",
    "birthDate": "${data['birthDate']}",
    "telecom": [
        {
            "value": "${data['telecom']}",
            "use": "mobile",
            "system": "phone"
        }
    ]
}

Mako recibirá un objeto de datos con los nombres de pila y apellidos del paciente, género, fecha de nacimiento y contacto telefónico. Mako obtiene estos valores para aplicarlos al contenido final usando la instrucción ${}.

Cuando se renderiza la plantilla, el resultado es:

{
    "resourceType": "Patient",
    "name": [
        {
            "use": "official",
            "given": [
                "Jack"
            ],
            "family": "Chain"
        }
    ],
    "gender": "male",
    "birthDate": "1956-01-01",
    "telecom": [
        {
            "value": "555-555-555",
            "use": "mobile",
            "system": "phone"
        }
    ]
}

El código Python embebido en IRIS para renderizar la plantilla es:

from mako.template import Template

...

for data in records:
        if getattr(data, "title") == "Given Name":
            makodata["name"] = getattr(data,"userResponse")
        elif getattr(data, "title") == "Family Name":
            makodata["family"] = getattr(data,"userResponse")
        elif getattr(data, "title") == "Gender":
            makodata["gender"] = getattr(data,"userResponse")
        elif getattr(data, "title") == "Birth Date":
            makodata["birthDate"] = getattr(data,"userResponse")
        elif getattr(data, "title") == "Phone":
            makodata["telecom"] = getattr(data,"userResponse")

template = Template(filename=templatepath)

return template.render(data=makodata)

1. Se crea una instancia de Template con el nombre del archivo de la plantilla.

2. El método template.render recibe makodata en la variable data y genera el contenido usando esos datos.

Discussion (0)0
Connectez-vous ou inscrivez-vous pour continuer