<< Clique para Mostrar o Sumário >>
Configuração do Driver |
O protocolo HL7 é um padrão de troca de dados em ambiente hospitalar, mantido pela Health Level Seven International (HL7).
A estrutura de uma mensagem HL7 versão 2 (dois) é complexa, plana, delimitada e escrita no formato ASCII. A versão normativa atual do protocolo HL7 é a versão 3 (três). No entanto, versões mais antigas existem e compõem o padrão usado hoje, principalmente por causa do grande número de personalizações realizadas nas mensagens HL7 versão 2 (dois).
As principais diferenças entre mensagens HL7 versão 2 (dois) e HL7 versão 3 (três) são as seguintes:
1.A versão 2 (dois) atua principalmente em comunicações clínicas, tais como medições de instrumentos, ordens médicas e registro de pacientes. Já a versão 3 (três) tem recursos adicionais, tais como um modelo de informações (RIM) para uso por sistemas de informação que atende a requisitos governamentais, como relatórios.
2.A versão 2 (dois) utiliza um formato personalizado, codificado e separado por um pipe com cabeçalhos e vários segmentos. A versão 3 (três) utiliza o formato XML.
3.Todos os formatos da versão 2 (dois) são compatíveis com as versões anteriores.
4.A versão 3 (três) tem um formato totalmente diferente e por isto não é compatível com versões anteriores.
Este Driver implementa o suporte à versão 2 (dois). O código a seguir mostra um exemplo de uma mensagem nesta versão.
MSH|^~\&|MegaReg|XYZHospC|SuperOE|XYZImgCtr|20060529090131-0500||ADT^A01^ADT_A01|01052901|P|2.5
EVN||200605290901||||200605290900
PID|||56782445^^^UAReg^PI||KLEINSAMPLE^BARRY^Q^JR||19620910|M||2028-9^^HL70005^RA99113^^XYZ|260 GOODWIN CREST DRIVE^^BIRMINGHAM^AL^35209^^M~NICKELL'S PICKLES^10000 W 100TH AVE^BIRMINGHAM^AL^35200^^O|||||||0105I30001^^^99DEF^AN
PV1||I|W^389^1^UABH^^^^3||||12345^MORGAN^REX^J^^^MD^0010^UAMC^L||67890^GRAINGER^LUCY^X^^^MD^0010^UAMC^L|MED|||||A0||13579^POTTER^SHERMAN^T^^^MD^0010^UAMC^L|||||||||||||||||||||||||||200605290900
OBX|1|NM|^Body Height||1.80|m^Meter^ISO+|||||F
OBX|2|NM|^Body Weight||79|kg^Kilogram^ISO+|||||F
AL1|1||^ASPIRIN
DG1|1||786.50^CHEST PAIN, UNSPECIFIED^I9|||A
As mensagens HL7 na versão 2 (dois) são formadas por diversos Segmentos. Cada Segmento é composto por Campos e cada Campo é composto por Tipos de Dados, que podem ser Simples, como por exemplo números ou textos, ou Compostos, como por exemplo estruturas de dados.
Tanto Segmentos quanto Campos e Tipos de Dados sofrem alterações para cada sub-versão dentro da versão 2 (dois).
A Health Level Seven International disponibiliza arquivos no formato XML, com a extensão .xsd, que declaram templates para estes objetos. Este Driver necessita que estes arquivos sejam colocados em um diretório para que possam ser lidos na inicialização, permitindo assim que se tenha a definição dos objetos de forma dinâmica. O diretório padrão deve ser informado na opção Message Descriptor Folder na aba de configuração. Dentro deste diretório deve-se criar uma pasta chamada XML e, dentro desta pasta, uma pasta com o número da versão, como por exemplo 2.8.2, e colocar todos os arquivos com a extensão .xsd. Estes arquivos podem ser obtidos neste endereço.
A opção Generate Descriptors da janela de configuração lê as definições dos arquivos .xsd e cria um arquivo de exemplo para cada tipo de mensagem encontrada. O nome padrão deste arquivo é Map_XXX_V_YYY.map, onde XXX é o nome da mensagem e YYY é a versão. O objetivo deste arquivo é fornecer exemplos de sintaxe para a declaração dos Tags Bloco utilizados no E3 ou no Elipse Power através do arquivo HL7BlockDefs.map.
O arquivo de definição de blocos, HL7BlockDefs.map, declara os nomes de mensagens processadas por este Driver e quais informações são utilizadas nos Tags. Isto porque, devido à estrutura de Segmentos, Campos e Tipos de Dados do protocolo HL7, muitas informações podem não existir ou estarem repetidas dentro de uma mensagem. Ainda é possível que haja várias informações que não devem ser tratadas na aplicação E3 ou Elipse Power. Por isto é necessário descrever quais valores devem aparecer nos Tags PLC ou Elementos de Tags Bloco.
O arquivo HL7BlockDefs.map deve ser formado por diversos conjuntos, e cada conjunto representa uma mensagem a ser processada, no padrão a seguir:
NOME_MENSAGEM_1
CAMINHO_1;EXTRAINFO
CAMINHO_2;EXTRAINFO
...
CAMINHO_N;EXTRAINFO
NOME_MENSAGEM_2
CAMINHO_1;EXTRAINFO
CAMINHO_2;EXTRAINFO
...
CAMINHO_N;EXTRAINFO
NOME_MENSAGEM_N
CAMINHO_1;EXTRAINFO
CAMINHO_2;EXTRAINFO
...
CAMINHO_N;EXTRAINFO
Em que:
•NOME_MENSAGEM é o tipo da mensagem HL7, como por exemplo "ADT_A01". Os nomes de todas as mensagens suportadas pode ser obtido através da geração dos arquivos descritores de exemplo, usando a opção Generate Descriptors
•CAMINHO_NNN é o caminho completo, considerando até o último nível, onde tem-se os valores numéricos ou textuais que podem ser copiados para um Elemento de Tag Bloco. Para saber os caminhos que existem em uma determinada mensagem, devem ser gerados os arquivos de descrição Map_XXX_V_YYY.map, onde se pode obter todos os caminhos possíveis para cada tipo de mensagem
•EXTRAINFO é uma informação adicional para este Driver, que pode ser TS ou LIST. A informação TS instrui este Driver a usar um Campo como estampa de tempo do Tag Bloco, desde que o caminho correspondente seja de um objeto do tipo Data e Hora (DTM). A informação LIST indica que um Campo é o início de uma lista cujos membros, deste ponto em diante, podem se repetir. NOTA: Deve haver no máximo um item por tipo de mensagem definido como LIST, assim como no máximo um item definido como TS por mensagem
Exemplo de arquivo HL7BlockDefs.map:
ORU_R01
MSH\MSH.7;TS
ORU_R01\ORU_R01.PATIENT_RESULT[]\ORU_R01.ORDER_OBSERVATION[]\OBR\OBR.2\EI.1;
ORU_R01\ORU_R01.PATIENT_RESULT[]\ORU_R01.ORDER_OBSERVATION[]\ORU_R01.OBSERVATION[]\OBX\OBX.1;LIST
ORU_R01\ORU_R01.PATIENT_RESULT[]\ORU_R01.ORDER_OBSERVATION[]\ORU_R01.OBSERVATION[]\OBX\OBX.3\CWE.1;
ORU_R01\ORU_R01.PATIENT_RESULT[]\ORU_R01.ORDER_OBSERVATION[]\ORU_R01.OBSERVATION[]\OBX\OBX.5;
ORU_R01\ORU_R01.PATIENT_RESULT[]\ORU_R01.ORDER_OBSERVATION[]\ORU_R01.OBSERVATION[]\OBX\OBX.6\CWE.1;
Neste exemplo foi declarada somente a mensagem ORU_R01, instruindo a utilizar o Campo MSH.7 como estampa de tempo do Tag Bloco, e declarando também mais 5 (cinco) Campos com informações que devem ser reportadas nos Elementos do Tag Bloco. Neste caso, o Tag Bloco deve ser criado com 5 (cinco) Elementos.
O Campo NOME_MENSAGEM deve ser utilizado no parâmetro Item do Tag Bloco para identificar qual mensagem vai ser recebida. Logo, se o parâmetro Item é configurado com um nome que não está declarado no arquivo, este Tag Bloco não recebe dados.
A estrutura completa de diretórios deve ser a seguinte:
•C:\USER_DIR\HL7BlockDefs.map: Arquivo com as definições das mensagens reportadas nos Tags Bloco
•C:\USER_DIR\Map_XXX_V_YYY.map: Arquivos descritores de cada tipo de mensagem gerada através da opção Generate Descriptors. Estes arquivos são opcionais e servem de base para a geração do arquivo HL7BlockDefs.map
•C:\USER_DIR\XML: Diretório pai
•C:\USER_DIR\XML\2.8.2: Diretório de versão
•C:\USER_DIR\XML\2.8.2\*.XSD: Arquivos descritores obtidos da Health Level Seven International
Para mais informações sobre as abas de configurações, consulte o tópico Documentação das Interfaces de Comunicação.