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 .