hl7_buffer
hl7_buffer
Permite rodar um buffer no entre um equipamento e o driver para protocolos HL7. Por problemas de lentidão na resposta do driver quando ele é TCP Server e o equipamento, alguns deles podem gerar timeouts e criar um loop de retransmissões, como é o caso do Yumizen P8000. Como o buffer age entre o equipamento e o driver, esse script deve ser utilizado somente por equipamentos que possuem 2 conexões simultâneas.
Para cada conexão é necessário rodar ao menos um servidor e um cliente. Cada cliente pode se conectar a um driver.
Escalonamento
Permite com que o recurso de escalonamento da stack para criar processamento paralelo. Para isso basta aumentar o scale do serviço do script e do driver para que eles se conectem automaticamente, cada container rodando o script ira associar corretamente com cada container do driver criado. Ex.: A escala 2 do script vai se conectar na escala 2 do driver.
Variáveis de Ambiente
Configurações para ambos os modos
-
BUFFER_TIPO = Determina como o script irá rodar.
- Valores aceitos: [ 'cliente'. 'servidor' ]
- BUFFER_PASTA = Pasta onde será salvo / lido os arquivos. Lembrando que é a pasta interna do container.
Configurações para modo Cliente
- BUFFER_CLIENTE_HOST = IP ou hostname para conexão do script com o driver.
- BUFFER_CLIENTE_PORTA = Porta para conexão com o driver.
- BUFFER_CLIENTE_BACKUP = Quando setada, move os arquivos enviados para essa pasta. ( Opcional )
-
BUFFER_CLIENTE_TENTATIVAS = Número máximo de tentativas de aguardo de resposta. ( Opcional )
- Padrão: Infinito
- Recomendado: 50
-
BUFFER_CLIENTE_ESCALONADO = Permite usar o recurso de escalonamento da Stack, mais detalhes no item Escalonamento. ( Opcional )
- Dependência: Precisa setar no volume do container o "/var/run/docker.sock:/var/run/docker.sock"
- Padrão: 'Sim'
- Valores aceitos: [ 'Sim', 'Não' ]
Configurações para modo Server
- BUFFER_SERVER_PORTA = Porta que será aberta pelo script para que o equipamento se conecte.
-
BUFFER_SERVER_EQUIP = Tipo de resposta HL7 a ser enviada ao equipamento.
- Valores aceitos: [ 'p8000'. 'p8000_v1.4' ].
-
BUFFER_SERVER_MANTER_CONEXAO = Mantém a conexão aberta de forma permanente, sem derrubar após receber um resultado ou por timeout de inatividade. ( Opcional )
- Padrão: 'Não'
- Valores aceitos: [ 'Sim', 'Não' ]
Execução
Rodar na stack do Docker
Cliente
Descrição das tags do exemplo:
-
<ARQUITETURA>= Colocar a arquitetura da imagem.- Valores aceitos: [ 'i386', 'amd64' ].
-
<CONFIG>= Alterar com as instruções de suas respectivas variáveis de ambiente. -
<PASTA_DO_HOST>= Pasta onde o script irá procurar arquivos para mandar ao driver.
HL7_BUFFER_CLIENT:
image: <ARQUITETURA>/hl7_buffer:1.5.1
networks:
- labwide-n
environment:
BUFFER_TIPO: 'cliente'
BUFFER_PASTA: '/app/arquivos/'
BUFFER_CLIENTE_HOST: <CONFIG>
BUFFER_CLIENTE_PORTA: <CONFIG>
BUFFER_CLIENTE_BACKUP: '/app/arquivos/backup/'
BUFFER_CLIENTE_TENTATIVAS: 50
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- <PASTA_DO_HOST>:/app/arquivos/
Servidor
Descrição das tags do exemplo:
-
<ARQUITETURA>= Colocar a arquitetura da imagem.- Valores aceitos: [ 'i386', 'amd64' ].
-
<PORTA>= Alterar com a porta ao qual o equipamento irá se conectar. -
<CONFIG>= Alterar com as instruções de suas respectivas variáveis de ambiente. -
<PASTA_DO_HOST>= Pasta onde o script irá salvar os dados recebidos.
HL7_BUFFER_SERVER:
image: <ARQUITETURA>/hl7_buffer:1.5.1
ports:
- <PORTA>:<PORTA>
networks:
- labwide-n
environment:
BUFFER_TIPO: 'server'
BUFFER_PASTA: '/app/arquivos/'
BUFFER_SERVER_PORTA: <PORTA>
BUFFER_SERVER_EQUIP: <CONFIG>
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- <PASTA_DO_HOST>:/app/arquivos/
Compilação
Compilando para Docker i386
docker build --platform='linux/386' -f Dockerfile_i386 -t i386/hl7_buffer:1.5.1 .
Compilando para Docker amd64
docker build -f Dockerfile_amd64 -t amd64/hl7_buffer:1.5.1 .