Professional Documents
Culture Documents
19 SEZ. II Capítulo 3 Software-CB400i REV0
19 SEZ. II Capítulo 3 Software-CB400i REV0
19 SEZ. II Capítulo 3 Software-CB400i REV0
CAPÍTULO 3
3. EXTENSIÓN DE SOFTWARE
Comunicación en serie CB 400i <-> Computadora Pág.: 252
huésped
3.1. General Pág.: 252
3.2. Transmisión del paciente al CB 400i Pág.: 252
3.3. Recepción de resultados Pág.: 253
3.4. Cálculo de suma de verificación Pág.: 255
3.5. Diagrama de conexión del cable de interfaz Pág.: 255
3.6. Protocolo de comunicación variable Pág.: 256
3.7. Programas para tests con comunicación en serie Pág.: 265
3.7.1. Programa Comunica.exe Pág.: 265
3.7.2. Programa BTPLUS.exe Pág.: 265
Aviso Importante:
Cualquier modificación del Protocolo Serie Variable queda limitada a personal calificado
únicamente. Wiener Laboratorios SAIC garantiza el correcto rendimiento del protocolo serie
interno. El malfuncionamiento que provenga de modificaciones en los scripts del Protocolo
Serie Variable es responsabilidad del cliente.
ADVERTENCIA
Esta información refiere a la configuración del código de barras para la identificación de
tubos de muestra. La lectura de la etiqueta del código de barras en la muestra tiene la misma
progresión que el código de paciente.
Por ejemplo: Una vez que se ingresa un código de paciente de 15 caracteres, un código de 8
caracteres seguido de 7 espacios vacíos para alcanzar los 15 caracteres es enviado.
El código leído en la etiqueta de código de barras debe tener la misma secuencia 8 + 7 para
que sea correctamente detectado.
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
251
3. COMUNICACIÓN EN SERIE: CB 400i <-> COMPUTADORA HUÉSPED
3.1. GENERAL
El analizador CB 400i permite la comunicación bi-direccional a través de una conexión
serial RS 232C con cualquier computadora huésped.
La característica particular del diálogo es que siempre es la computadora huésped la que
inicia la comunicación, tanto para transmitir la lista de pacientes como para recibir los
resultados.
Para iniciar cualquier comunicación, la computadora huésped debe enviar el carácter STX
(0x02) al analizador y esperar el carácter ACK (0x06) como respuesta. A partir de ese
momento, la computadora huésped envía datos al analizador, y termina la comunicación al
enviar el carácter EOT (0x04).
Es importante recordar que toda comunicación es seguida por una respuesta del
analizador.
Tenga en cuenta que si el parámetro que se transmite es más corto que lo que requerido
por el protocolo de comunicación, entonces debe agregarse un espacio antes o después.
Por ejemplo: el análisis tiene una longitud de 4; por ende, para enviar el código GLY, uno
debe agregar un espacio para alcanzar la longitud de 4 caracteres.
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
252
0x07 Error en el campo Número de análisis
0x08 Número de test erróneo
0x09 Posición ya en ejecución
0x0A Imposible clonar
0x0B Código duplicado
0x0C Uno o más análisis no están presentes en el analizador
0x0D Uno o más análisis no están presentes en la bandeja actual
0x0E Demasiados análisis para el paciente
0x12 No hay pacientes para repetir
0x13 El campo de suero en el paciente a repetirse es diferente al que se
encuentra en memoria.
0x14 Paciente a repetirse, pero la lista está llena
0x15 Paciente a repetirse, pero la lista es diferente
0x16 La posición asignada ya está en uso
0x17 Paciente ya existente o analizado; no es un clon y pertenece a una
lista suplementaria (extra)
0x18 Paciente ya analizado, pero no hay repeticiones o clones activos
Por ejemplo: para enviar un paciente con código 000000000000001, tipo de suero y análisis GLY,
BUN y CHO a la lista de STAT, debe enviar la siguiente secuencia de caracteres (excluyendo la
secuencia inicial STX <-> ACK):
Donde:
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
253
el carácter EOT para finalizar la comunicación.
Como respuesta a uno de estos tres comandos, el analizador envía el informe requerido (si está
disponible) o el carácter NAK (0x15) si no hay informes para enviar. Debe tenerse en cuenta que
luego de ejecutar un test, los informes no están inmediatamente listos para la transmisión ya que
necesitan validación. Para lograr esto, vaya al menú Utilidades, RS232 y active la opción "Aceptar
Resultado para ser enviado". Esta operación debe realizarse siempre después de cada ejecución
de test o grupos de test.
Hay también una opción adicional para realizar la operación de validación automáticamente. Vaya a
la configuración del analizador (menú Utilidades, Configurar Analizador), luego vaya a Serie (quinto
desde la izquierda) y active la opción "Todos los resultados se enviarán automáticamente (sin
validación)" ubicada en la parte inferior de la página.
En el caso de una respuesta positiva al pedido de informe, el analizador transmite:
El siguiente es un ejemplo de una posible respuesta a los datos enviados en "Enviando un paciente
al CB 400i":
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
254
3.4. CÁLCULO DE SUMA DE VERIFICACIÓN
CB 400i
CB 400i
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
255
3.6. PROTOCOLO DE COMUNICACIÓN VARIABLE
Introducción
El protocolo serie variable fue diseñado para proporcionar al usuario la posibilidad de personalizar
los datos transmitidos y recibidos del analizador.
El usuario puede transmitir o recibir además de los datos pre-establecidos (código de paciente,
código de análisis, resultados, etc.), sucesiones de texto simple o caracteres de acuerdo a sus
necesidades personales.
El usuario puede optar por enviar o recibir información numérica (por ej. Cantidad de test) no en
forma de bytes individuales sino en series numéricas pre-establecidas o viceversa.
Donde las frases "Iniciar análisis de datos" y "Finalizar análisis de datos" no refieren a ningún dato
pre-establecido por el analizador sino que sirven únicamente para monitorear el proceso de
comunicación (puede ser útil para insertar marcadores específicos en aquellos programas que
obtienen información de archivos de texto).
NOTA:
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
256
de Notas de Windows o el EDITOR de DOS. No es posible importar documentos escritos
con UNIX ya que lo caracteres utilizados para pasar a la siguiente línea son diferentes de
aquellos utilizados por DOS o Windows.
¡PRECAUCIÓN!
Si quiere utilizar un script que está guardado en un disco removible (por ejemplo, un
disquete), es necesario copiarlo al disco rígido.
TIPO DE DATOS
Character: Identifica a un carácter individual, que puede presentarse como carácter imprimible
(encerrado entre comillas simples), como valor decimal ASCII (seguido al símbolo $) o
como valor hexadecimal ASCII (seguido a 0x).
Si por ejemplo queremos representar el carácter A (valor decimal 65 o valor hexadecimal
41), entonces podemos escribir 'A', $65 o 0x41.
String: Identifica una serie de caracteres imprimibles encerrados entre comillas simples, por
ejemplo: 'esto es una cadena'
Comment: Identifica una porción de texto (precedido por un carácter ;) que no se compila pero sirve
de nota para el programador.
Variables: Éstas son secuencias particulares de caracteres precedidas por el símbolo #, que son
usadas por el programa para guardar información interna (código de paciente, nombre
de análisis, etc.); véase la "TABLA 1 – TRANSMISIÓN/RECEPCIÓN".
También hay variables para usos directos, las cuales permiten la identificación de
cualquier carácter por debajo de ASCII 32 (espacio) para facilitar la escritura del script
(por ejemplo, uno puede usar la variable #EOT para identificar el carácter $4); véase la
"TABLA 2 – VARIABLES INTERNAS".
FUNCIONES DE SCRIPT
String: Identifica una cadena de longitud variable que finaliza con un carácter particular.
Sintaxis:
String <string>I<Terminator>
Donde
<String> Cadena transmisión/recepción
<Terminator> Carácter de finalización
Nota:
No es posible utilizar variables como parámetro <Terminator>
Ejemplo:
String ‘Hello Word’|$0
String ‘My String’|’@’
String #Variable1|0x10
Sintaxis:
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
257
Stringn <String>|<Longitud>
Donde
<String> Cadena transmisión/recepción
<Longitud> Longitud de la cadena
Nota:
Si la longitud de las cadenas de texto es menor a los datos, entonces se agregan una
serie de espacios a la derecha para alcanzar la longitud pre-establecida de los datos.
Si la cadena de texto es mayor a la longitud de los datos, entonces se corta el final de
la cadena para adaptarla a la longitud de los datos.
Ejemplo:
Stringn ‘Hello Word’|$40
Stringn #Variable1|0x10
Sintaxis:
Char <Carácter>
Ejemplo:
Char ‘H’
Char $20
Char 0x10
Char #STX
Sintaxis
Nota:
Actualmente, el único SET presente es el ANALYSESDATA, el cual identifica el
análisis en la transmisión/recepción.
Solo una orden SET BEGIN y una orden SET END pueden estar presentes en un
script.
Un script siempre debe contener la orden SET.
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
258
La variable PATIENTNUMBERTEST debe estar presente antes de la orden SET.
ERRORES DE COMPILACIÓN
Uno o más errores por una escritura incorrecta de script o un error de sistema pueden
aparecer durante la compilación de un script. El compilador muestra el código de error, la
descripción del error y la línea donde se detectó tal error.
La tabla en la siguiente página muestra los códigos de error, descripción y posibles causas:
Código
Descripción Posibles causas
error
Se ha introducido un comando desconocido en los
1 Comando desconocido
comandos de script.
No se ha insertado una cadena como primer
2 Pedido de cadena
parámetro para String o Stringn.
Se ha insertado una cadena como parámetro
3 Pedido de número
<longitud> en un comando Stringn.
Se ha insertado un número decimal o hexadecimal
4 Formato de número inválido
inválido.
a) Se han insertado más de dos parámetros para
un comando String o Stringn.
5 Datos excesivos
b) Se ha insertado más de un parámetro para el
comando Char o Set.
6 Datos inválidos Se ha insertado una cadena para un comando Char.
Pedido de Terminator de No se encuentra el carácter de finalización (') de una
7
String cadena.
a) Se han insertado menos de dos parámetros
para un comando String o Stringn.
8 Muy pocos datos
b) No se ha insertado parámetro para el
comando Char o Set.
La longitud de la cadena para el comando Stringn es
9 Longitud de cadena inválida
menor a 0 o mayor a 128.
a) Se ha insertado una cadena vacía para el
10 Cadena vacía comando String o Stringn.
b) Se ha insertado un carácter identificado como "
a) Se ha intentado transferir una variable inválida
en la lista de variables internas.
11 Variable desconocida b) Se ha intentado utilizar una variable de
transmisión en el script de recepción o
viceversa.
Error en el disco duro. Contáctese con el
12 Archivo dañado
Service/Ventas.
Error interno. Probablemente, programa dañado.
13 Archivo desconocido Reinstale el programa. Si el problema persiste,
contáctese con el Service/Ventas.
a) Texto SET BEGIN o SET END no escrito.
Identificador incorrecto en el b) Un valor diferente a ANALYSEDATA se ha
14
comando SET transferido como <nombre de grupo> para el
comando SET.
Error en el disco duro. Contáctese con el
15 Archivo de salida dañado
Service/Ventas.
Comando SET no se ha No se ha insertado el SET END en el script.
16
cerrado
17 Demasiados comandos SET Se han insertado más de un comando SET BEGIN.
No se ha encontrado el No se ha encontrado el comando SET BEGIN en el
18
comando SET script.
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
259
Un valor diferente a ANALYSEDATA se ha
Variable incorrecta para el
19 transferido como <nombre de grupo> para el
comando SET
comando SET.
Variable no encontrada La variable resaltada que requiere el script antes del
20
antes del comando SET comando SET BEGIN.
La variable debe ser de tipo La variable resaltada debe ser de tipo String, no
21
String Char.
22 Posición ya ocupada Se ha ingresado una posición ya ocupada en la bandeja.
El paciente ya existe pero Se ha ingresado un código ya existente (o ya
23
en listas diferentes ejecutado) en la bandeja, pero la lista es diferente.
Paciente ejecutado pero no Se ha ingresado un código ya procesado sin
24
hay repetición indicación de una repetición o de un clon.
TABLA 1 - TRANSMISIÓN
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
260
‘R’: Análisis relacionado
(5)
Representa si el 2do resultado existe o no (seleccione una opción):
‘Y’: El 2do resultado existe
‘N’: El 2do resultado no existe
• Si solo se busca el resultado final, siempre refiérase a variables pertenecientes al 2do resultado.
• Si no hay un 2do resultado, entonces las variables tendrán los mismos valores que el 1er resultado.
TABLA 1 - RECEPCIÓN
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
261
‘1’ : ORINA
‘S’ : SUERO
‘U’ : ORINA
‘SERUM’ : SUERO
‘URINE’ : ORINA
(4)
Representa un Control o una Muestra (seleccione una opción):
$0 : Muestra
$1 : Control
‘0’ : Muestra
‘1’ : Control
‘N’ : Muestra
‘Y’ : Control
‘S’ : Muestra
‘C’ : Control
‘NO’ : Muestra
‘YES’ : Control
‘SAMPLE’ : Muestra
'CONTROL' : Control
(5)
Representa un Control conocido o desconocido (seleccione una opción):
$0 : Desconocido
$1 : Conocido
‘0’ : Desconocido
‘1’ : Conocido
‘N’ : Desconocido
‘Y’ : Conocido
‘U’ : Desconocido
'K' : Conocido
‘NO’ : Desconocido
‘YES’ : Conocido
‘UNKNOW’ : Desconocido
‘KNOW’ : Conocido
(6)
Representa el nivel de control (seleccione una opción):
$1 : Nivel 1
$2 : Nivel 2
$3 : Nivel 3
‘1’ : Nivel 1
‘2’ : Nivel 2
‘3’ : Nivel 3
‘L’ : Nivel 1
‘N’ : Nivel 2
‘A’ : Nivel 3
‘LOW’ : Nivel 1
'NORMAL' : Nivel 2
‘ABNORMAL’ : Nivel 3
(7)
Representa si es un clon (seleccione una opción):
$0 : Normal
$1 : Clon
‘0’ : Normal
‘1’ : Clon
‘N’ : Normal
‘Y’ : Clon
‘NOCLONE’ : Normal
‘CLONE’ : Clon
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
262
TABLA 2 – VARIABLES INTERNAS
EJEMPLOS DE SCRIPTS
Stringn #PatientCode|$15
Char #PatientListType
Char #PatientType
Char #PatientClone
Stringn #PatientCupPosition|$2
Stringn #PatientNumberTest|$2
Set #BeginAnalysesData
Stringn #AnalysesCode|$4
Set #EndAnalysesData
Stringn #CheckSum|$3
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
263
A continuación se muestran los detalles de los scripts anteriores:
Stringn #PatientCode|$15
Código de paciente de longitud fija de 15 caracteres
Char #PatientListType
Tipo de lista (Rutina/STAT) como carácter individual
Char #PatientType
Tipo de suero (Suero/Orina) como carácter individual
Char #PatientClone
Identifica si el paciente es o no un clon (carácter individual)
Stringn #PatientCupPosition|$2
Posición del contenedor de suero (cadena de longitud fija de 2 caracteres)
Stringn #PatientNumberTest|$2
Cantidad de tests a ejecutarse (cadena de longitud fija de 2 caracteres)
Set #BeginAnalysesData
Inicio de los códigos de análisis
Stringn #AnalysesCode|$4
Código de análisis de longitud fija de 4 caracteres. Debe ingresarse para cada tipo de test así
como para la cantidad indicada en #PatientNumberTest.
Set #EndAnalysesData
Finalización de los códigos de análisis
Stringn #CheckSum|$3
Suma de verificación (transferida como una cadena de longitud fija de 3 caracteres)
Stringn #PatientCode|$15
Char #PatientType
Stringn #PatientNumberTest|$3
Set #BeginAnalysesData
Stringn #AnalysesCode|$04
Stringn #AnalysesConcentration2|$7
Set #EndAnalysesData
Stringn #CheckSum|$3
Stringn #PatientCode|$15
Código de paciente de longitud fija de 15 caracteres
Char #PatientType
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
264
Tipo de suero (Suero/Orina) como carácter individual
Stringn #PatientNumberTest|$3
Cantidad de resultados a ser enviados (cadena de longitud fija de 3 caracteres)
Set #BeginAnalysesData
Inicio de zona repetida para la cantidad de resultados a ser enviados (véase
#PatientNumberTest)
Stringn #AnalysesCode|$04
Código de análisis de longitud fija de 4 caracteres.
Stringn #AnalysesConcentration2|$7
Concentración referida al código de análisis como en #AnalysesCode (una cadena de longitud
fija de 7 caracteres)
Set #EndAnalysesData
Finalización de zona repetida para la cantidad de resultados a ser enviados
Stringn #CheckSum|$3
Suma de verificación (transferida como una cadena de longitud fija de 3 caracteres)
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
265
Al final, la pantalla muestra el resultado de la operación o el número de posición de la bandeja
donde se ha insertado el paciente o la explicación del código de error enviado por el instrumento
(por ejemplo: Código de Paciente Duplicado).
Si se selecciona el procedimiento Recepción, entonces el programa inicia la comunicación con el
analizador, pregunta por datos del próximo informe a ser enviado en serie y muestra datos de
informes relevantes descargados.
Si no hay informes a ser recibidos, se muestra un mensaje correspondiente.
Cada vez que el programa aguarda una respuesta del analizador, en caso de haber problemas, es
posible abortar la operación actual simplemente con presionar la tecla Esc (Escape).
NOTA:
Ambos programas deben residir en la computadora, la cual se conecta en forma serial al
analizador a través del cable correspondiente que se indica en el Manual del Operador.
La computadora debe ser compatible con IBM y debe estar equipada con un sistema
operativo DOS: Windows 95, Windows 98, o Windows 2000. No soporta sistemas operativos
tales como MAC, UNIX, Windows ME o XP.
Debido a que los programas operan en un ambiente DOS, en caso de utilizarse un sistema
operativo Windows, es necesario abrir un intérprete de comandos DOS (la línea de comando
de MS-DOS se encuentra en el menú Programas, Accesorios y se accede a través del botón
Inicio en la parte inferior izquierda de la pantalla).
Ambos programas utilizan puerto de serie con la siguiente configuración:
Baud-Rate………………… 9600
Stop-Bits........................... 1
Paridad……………………….. Ninguna
Hand-Shake……………….. Hardware
Wiener lab. CB 400i – Manual del Operador Sección 2 – Información Adicional Capítulo 3
266