Modulo de diseñador
Los diseños y la papelería utilizados para los informes son configurables por parte del usuario. Son machotes o plantillas. Esto permite personalizar la apariencia y el formato de los informes generados para diferentes tipos de exámenes, como los exámenes de heces, de orina, de glucosa, etc. Esta capacidad de configuración permite adaptar los informes a las necesidades específicas del laboratorio y a los requisitos de presentación de los resultados para diferentes tipos de análisis clínicos.
La configuración de los diseños de informes se puede realizar de dos maneras: en caliente y de manera permanente.
- Configuración en caliente: Esto implica utilizar el botón de diseñador en el módulo de resultados. En este enfoque, los cambios se aplican directamente a los informes que se están generando en ese momento. Es útil si necesitas hacer ajustes rápidos y temporales en el diseño de un informe sin cambiar la configuración general.
- Configuración permanente: Para realizar cambios más significativos y duraderos en los diseños de los informes, puedes acceder a la opción de diseñador en el menú de configuración. Aquí, los cambios que realices se mantendrán en la configuración general, lo que afectará a todos los informes generados en el futuro que utilicen esa plantilla.
En resumen, la opción “en caliente” es conveniente para cambios temporales y específicos, mientras que la opción “permanente” es ideal para ajustar y establecer la configuración general de los diseños de los informes.
En la versión “iolab_next”, la configuración en caliente ha sido reemplazada por un botón de ajuste más simple de usar. Cuando el usuario presiona este botón, el sistema muestra una ventana de diálogo que permite realizar cambios rápidos en la configuración de los informes. En esta ventana de diálogo, el usuario tiene la opción de cambiar la descripción, la unidad de medida y el rango de referencia de los elementos del informe, de manera ágil y sencilla.
En el sistema, se requiere que cada servicio tenga al menos un “machote”. Al abrir un servicio, el sistema genera automáticamente un “machote” básico y genérico para ese servicio en particular. Un “machote” se refiere a una plantilla o diseño predefinido que se utiliza para configurar cómo se presentará y mostrará la información en los informes de laboratorio correspondientes a ese servicio.
La creación automática de un “machote” genérico al abrir un servicio agiliza el proceso de configuración inicial. El usuario puede comenzar con esta plantilla básica y luego personalizarla según las necesidades específicas del servicio y los requisitos del informe. Esta característica asegura que cada servicio tenga al menos un punto de partida para la configuración de los informes y evita tener que crear un diseño desde cero para cada servicio.
Un servicio puede tener múltiples “machotes”, lo que significa que puede haber diferentes plantillas o diseños predefinidos para configurar cómo se presentará la información en los informes de laboratorio de ese servicio en particular. Cada uno de estos “machotes” puede estar optimizado para diferentes situaciones, como edades, sexo biológico, médico, máquina, procedencia y lenguaje.
Esta capacidad de tener múltiples “machotes” optimizados permite personalizar los informes de laboratorio de manera más específica y adaptarlos a diferentes contextos. Por ejemplo:
- Optimización por edades: Puede haber diferentes diseños de informes para diferentes grupos de edad, mostrando valores de referencia específicos para cada grupo.
- Optimización por sexo biológico: Los informes pueden diferenciarse según el sexo biológico del paciente, mostrando valores y referencias relevantes para hombres y mujeres.
- Optimización por médico: Los informes pueden ajustarse para mostrar detalles que sean más relevantes para ciertos médicos o especialistas.
- Optimización por máquina: Si los análisis se realizan en diferentes máquinas, los informes pueden reflejar valores específicos para cada máquina.
- Optimización por procedencia: Los informes pueden adaptarse según la región geográfica o la procedencia del paciente.
- Optimización por lenguaje: Los informes pueden estar disponibles en diferentes idiomas para atender a pacientes que hablan diferentes idiomas.
Cualquier cambio que realice en el machote comenzará a afectar las nuevas órdenes, pero los datos de órdenes anteriores no se alterarán.
Cuando entra al diseñador , este lo recibe en modo consulta. Una pantalla similar a la siguiente:

Lo recomendable es consultar por descripción del servicio o por su código. Ubicado el machote que quiere trabajar le da clic y pasa al área de trabajo. Una pantalla similar a la siguiente:

La pantalla de trabajo se divide en tres áreas principales: en la parte superior se encuentra una botonera principal, debajo de esta, a la izquierda, se muestra el machote, y a la derecha se despliegan las propiedades de cada línea del machote. Encima de las propiedades, hay una minibarra que permite operar de manera individual sobre cada línea.
Consultar. Esta opción lo regresa a la consulta inicial.
Actualizar. Una vez que guardas los cambios en el machote, todos los pedidos futuros con el mismo servicio mostrarán la modificación. Si deseas aplicar el cambio a un pedido en curso, en la versión “iolab_next”, debes usar el botón de “actualizar machote”. En la versión “iolabFX”, necesitas eliminar el resultado existente para que el sistema pueda utilizar el nuevo machote.
Incluir. En la función de creación de un nuevo machote para un servicio, el sistema te pedirá el código de servicio. Luego, te solicitará el propósito del machote. Además, tendrás la opción de indicar si este machote está destinado a un rango de edades específico, a un sexo biológico determinado, a un lenguaje particular o a una máquina en particular. Estos criterios te permiten personalizar el machote según las necesidades específicas.
Para crear un machote específico para un equipo en particular, sigue estos pasos:
- En el módulo de procesos, busca la opción “Set Diseñador” y selecciona un número (puede ser cualquier número) para identificar este conjunto de configuraciones.
- Luego, ve a la ventana de creación o edición de machotes.
- Dentro de esta ventana, busca la sección o campo etiquetado como “Para Set” y coloca el número que seleccionaste en el paso 1. Esto asociará el machote que estás creando con el conjunto de configuraciones específicas del equipo.
De esta manera, el machote que estás creando estará optimizado y diseñado para funcionar con el equipo identificado por el número de “Set Diseñador” que seleccionaste previamente.
Para crear un machote en un idioma distinto debe indicar su numero. 0 para español , 1 para ingles , 2, 3 , etc. Están libres.
Configuración. Le permite cambiar los datos digitados con la opción anterior.
Borrar. Elimina el machote.
Copiar y pegar.
Estas opciones permiten copiar y pegar diseños completos o partes de ellos. Primero, descargue el diseño que desea copiar y luego haga clic en el botón correspondiente. Después, abra el diseño en el que desea reemplazar y pegue el contenido copiado.
Vista general de referencias. Esta opción le proporciona un resumen de las referencias del servicio. Básicamente, analiza todas las posibilidades (grupos de edad, sexo, médicos, máquinas) y le presenta un informe de los rangos de referencia que se aplican.
El reporte es similar a este:

JSON y BAS64.Estas 2 opciones solo están disponibles para usuarios nivel 1. Permiten decodificar y mostrar el documento , básicamente para una revisión por parte de los programadores del sistema.
Un machote consiste en una o más líneas. Cada línea tiene un tipo y su funcionamiento depende de este tipo.
Etiqueta. Las líneas de tipo etiqueta se utilizan para rótulos, líneas en blanco o texto extenso que explica un rango de referencia.
Caracter. Estas lineas son para digitar textos cortos. Para indicar alarma en este tipo de lineas use /a o /A.
Alfanumericas. Estas lineas son especiales para indicar datos con numericos. La alarma se maneja a traves de un rango y tiene un espacio especial para referencia.
Lista. Este tipo de linea se usa cuando el resultado es 1 de varias posibles opciones como positivo, negativo, si hay , si hay + , si hay ++ , si hay +++.
Texto. Etas lineas son para grandes cantidades de texto uno 65535 caracters como maximo.
Grafico2. Este tipo de linea permite insertar un grafico historico, para mas informacion vea esta direccion: http://www.iolabcr.net/index.php/2022/08/31/tipo-de-linea-grafico2/
Entonces , en la parte derecha se hace click para indicar la linea y las propiedades de esta linea se muestran a la izquierda. Los campos digitables o configurables varian de acuerdo al tipo de la linea.
Atributos especiales.
Las lineas tipo etiqueta son para rotulos , pero a veces tambien se usan para poner textos extensos de referencia. Si ese es el caso , el texto se pone en referencia y se activa la opcion todo espacio. Esto hace que la referencia utilice desde la columna descripcion. Tambien puede usar auto justificado en ese tipo de casos.
En los alfanumericos , son los unicos que pueden manejar formulas y a veces puede que quiera que el resultado de una operacion no sea cambiable por parte del operador del sistema, ahi se activa la opcion solo lectura. El otro especial es mascarilla que se usa para representar resultados en formato tradicional. Un resultado 0.7 puede expresar tambien como 0.70 , 0.700. Para ese tipo de despliegue es necesario usar una mascarilla como por ejemplo 0.00 , 0.000.
Los botones que estan a la izquierda superior en las propiedades de la linea se usan para :
+ linea , agregar una linea.
-linea , quitar la linea
Subir y bajar la linea.
M o m. Es util para pasar todo a mayusculas o minusculas.
FDL. Para ingresar formulas de linea y de eso hablo a continuacion.
Formulas de linea.
Cada linea del machote alfanumerica puede tener : una formula simple o un javascript que toma decisiones. Formula simple es la forma antigua y por script lo moderno.
Formula simple.
Cada linea del machote tiene un ID. Usted puede usar ese dato para acceder a los diferentes valores y efectuar operaciones. Entonces que tiene 3 lineas cuyos IDS son : 1,2,3. Puede escribir una formula para sumar 1 y 2 dejando el resultado en 3. De esta forma:
#3_ = #1_ + #2_;
El signo de # y el de _ se usan para englobar el ID y es la forma que tiene el sistema de saber que eso es un id , cuyo valor debe buscar y sustituir antes de evaluar la formula. El punto y coma final es requisito del lenguaje javascript.
Toda esta parte de formulas , realmente la maneja y se rige por las reglas del lenguaje javascript. Puede usar cualquier funcion de ese lenguaje. Para ponerle un script a la linea tiene que activarlo poniendo : @activar2018.
Ejecutando el script puede preguntar por estas variables.
mujer dato booleano.
hombre
nogenero. Es cierto si en la orden no se indico genero.
edias. Esta variable contiene la edad del paciente en dias. 30 años = 30*365.
Y por ultimo la variable s que es un objecto con las siguientes funciones:
s.ie(“Texto”), despliega un mensaje de error.
s.vset(INT ID, STRING VALOR); A la linea con ID , le pone el resultado VALOR.
s.vgetd(ID) , obtiene de la linea ID el valor/resultado como una double valor numerico.
s.vgets(ID), obtiene de la linea ID , el valor/resultado como texto/string.
Un ejemplo de sumar dos ids y dejarlo en otra linea seria: asumiendo que los ids sean 1,2,3 y que qyeremos sumar 1 y 2 , entonces:
var x = s.vgetd(1) + s.vgetd(2);
s.vset(3,x);
Alternativamente , a veces es mas facil calcular y acomodar resultados cuando estos salen del equipo analizador. Ahi tambien se puede usar javascript pero de una forma mas directa. Eso se explica en ioanalizer.
Escribiendo formulas.
La formula realmente es JavaScript, que es un lenguaje de programación. Tenemos 2 variantes :
La simple. Esta se usa para poner un calculo. Cada línea de la plantilla tiene un id y con estos se construye la expresión ejemplo:
_1# = _2#/_3#;
Eso es la línea 2 se divide entre la línea 3 y el resultado se guarda en la línea 1.
Es viable usar valores de otros servicios en esta forma:
_ser1.1# = _ser2.2#/_ser2.3#;
Esto es : Del servicio código ser2 tomar la línea 2 y dividirlo entre el mismo servicio(ser2) línea 3. El resultado queda en el servicio código ser1 , línea 1;
La compleja. Se activa escribiendo @activar2018 al inicio. En este modo puede escribir un JavaScript y hay varias funciones especiales.
Ie(msg);. Informa un mensaje en la línea de error
s.vset(ID,VALOR); Establece el valor para un id. El id de línea debe ir entre comillas simples y ya no requiere _ o #. Valor debe contener entre comillas el valor a asignar.
Var r = vgetd(ID);. Para un ID obtiene su valor numérico.
Var xx = vgets(ID);. Para un ID obtiene su valor en forma de texto.
Tambien el sistema crea una serie de variables a la hora de ejecutar el script y puede preguntar por ellas
mujer. Esta en cierto si el paciente es mujer.
hombre. Esta en cierto si el paciente es hombre.
nogenero. Esta en cierto si no se indico genero en la orden.
edias. La edad del paciente en días.
Ejemplo de uso:
If(nogenero){Ie(“Debe indicar el genero en la orden”);}
Otro ejemplo
@activar2018
s.vset(‘5’,”);
var isok = true;
//si escoge raza entonces quiere el calculo
var raza = s.vgets(‘4’);
if(!raza.isEmpty()){
if(edias<=0){
s.ie(‘Requiere edad’);
isok = false;
}
if(nogenero){
s.ie(‘Requiere indicar genero’);
isok=false;
}
if(isok){
var edad = edias/360 //edad en años
var Scr = s.vgetd(‘1’); //creatinina sérica
//sea que escoga raza normal o lo deje en blanco se asume 1
var negro = 1;
if( raza.equals(‘afrodescendiente’)){
negro = 1.159;
}
var calcu = 0;
if (hombre) {
calcu = 144*Math.pow(Math.min(Scr/0.9,1),-0.411)*Math.pow(Math.max(Scr/0.9,1),-1.209)*Math.pow(0.993,edad)*negro;
} else {
calcu = 144*Math.pow(Math.min(Scr/0.7,1),-0.329)*Math.pow(Math.max(Scr/0.7,1),-1.209)*Math.pow(0.993,edad)*1.018*negro;
}
calcu = calcu.toFixed(2);
s.vset(‘5’,calcu);
}
}