Comenzando con el protocolo HL7
Cada mensaje HL7 se compone de múltiples segmentos (Segmentos), y cada segmento termina con un retorno de carro (
Los primeros 3 de cada segmento Las letras mayúsculas representan el único El identificador del segmento, como MSH (encabezado del mensaje) representa el encabezado del mensaje, PID (identidad del paciente) representa el identificador único del paciente,
PV1 (visita del paciente) representa cierta información básica del paciente, como como número de cama, etc. Los significados de estos segmentos están definidos en el estándar HL7.
Cada sección contiene múltiples campos (Field), y los campos están separados por |. Si no se utiliza un campo no se escribe nada, por eso muchos campos no tienen nada entre ellos. Cada campo tiene un número de secuencia (SEQ) en el segmento. ¿Cuántos campos hay en cada segmento? El número de secuencia y el significado de cada campo están definidos en el estándar HL7. (Algunos campos deben aparecer y no se pueden omitir, y se deben pasar valores)
Cada campo puede contener múltiples componentes y los componentes están separados por ^
Por ejemplo, 52 ^ Altura
Un componente puede contener múltiples subcomponentes, separados por &, como ICU&Bed5&3232241659&0&0 (contiene 5 subcomponentes)
¿No es muy simple, como
?Entonces, ¿es muy sencillo el análisis de mensajes HL7? Primero, separe cada segmento con un carácter de retorno de carro y luego use | para separar cada segmento en cada campo. Luego, consulte el documento de protocolo para analizar cada dato.
Dado que HL7 Message es un protocolo de capa de aplicación de alto nivel, el inicio y la parada de los mensajes no están definidos. Por lo tanto, al realizar la solicitud, generalmente se agrega una capa de protocolo de bajo nivel HL7 a TCP para definir el inicio y el final del mensaje.
Con el protocolo HL7 Low-Level podemos separar fácilmente los mensajes HL7 uno a uno del flujo de bytes TCP. (En Netty, simplemente use un delimitador para descomprimir).