Pular para o conteúdo principal

O que é o protocolo HL7 e por que ele é essencial na saúde digital

Você já ouviu falar em HL7 ? Se você trabalha com tecnologia na saúde, ou atua em hospitais, clínicas ou laboratórios, precisa entender por que esse protocolo é essencial para a comunicação entre sistemas de informação em saúde — e como ele impacta diretamente a segurança, a agilidade e a qualidade do atendimento ao paciente. Neste post, vamos te explicar de forma clara e objetiva o que é o HL7, como ele funciona e por que é um dos pilares da chamada saúde digital . O que é HL7? HL7 (Health Level Seven) é um conjunto de padrões internacionais criados para permitir a troca eletrônica de informações clínicas e administrativas entre sistemas de saúde . Em outras palavras, ele é como um "idioma comum" que faz diferentes softwares "conversarem entre si" — algo essencial em ambientes hospitalares, onde coexistem sistemas de prontuário eletrônico, laboratório, farmácia, agendamento, faturamento e muitos outros. Onde o HL7 é usado? Você já fez um exame de sangue e os ...

Instalando o Nginx no Ubuntu e configurando o PHP 8.1


Este post tem como objetivo servir de guia para quem deseja instalar o Nginx no Ubuntu 22.x, incluindo a instalação do PHP 8.1 e as suas configurações básicas.

Antes de qualquer coisa, é bom certificar que a lista de repositórios do Linux está atualizada:

sudo apt-get update


Parte 1. Instalando o Nginx

Logo em seguida, vamos instalar o nginx:

sudo apt-get install nginx


Pronto. Essa é a parte mais tranquila. Isso já basta para ter o nginx instalado e provavelmente funcionando no seu Ubuntu. Pode validar executando o comando sudo service nginx status. Também pode abrir o Firefox (ou qualquer outro navegador instalado) e acessar http://localhost (ou http://127.0.0.1). Caso o serviço esteja parado ou sem execução, tente iniciá-lo. Fiz um post recentemente ensinando os comandos para iniciar, parar e reiniciar os serviços no linux.

Parte 2. Instalando o PHP 8.1

Ao escolher entre Nginx e Apache2 para hospedar seu site, minha preferência é clara: Nginx. Mas, lógico, preciso analisar caso a caso.  Ele é mais leve e tem um melhor desempenho em máquinas com restrição de memória. No entanto, é importante entender que ele lida com as requisições web de forma diferente e trabalha com alguns módulos específicos para interpretar linguagens como o PHP.

No caso do Nginx, ele usa o PHP-FPM, sigla para "PHP FastCGI Process Manager", é um gerenciador de processos FastCGI para PHP. FastCGI é um protocolo que permite que aplicações web, como o PHP, se comuniquem com um servidor web de forma mais eficiente do que o método tradicional de interpretação de scripts PHP a cada requisição.

Ao usar o PHP-FPM, o servidor web, como o Nginx, se comunica com o PHP-FPM através do protocolo FastCGI, passando as requisições PHP para o processo PHP-FPM correspondente. Isso permite uma execução mais eficiente e escalonável de scripts PHP em servidores web.

sudo apt-get install php8.1-fpm

Também já vamos deixar instalado o modulo de conexão com o MySQL para o futuro:

sudo apt-get install php8.1-mysql

Existe uma configuração do php que precisa ser alterada para que ele trabalhe bem com o nginx. Ela está no arquivo php.ini. Para editar vamos usar o comando:

sudo nano /etc/php/8.1/fpm/php.ini


Procure por pathinfo. A linha estará com um ";" (ponto e virgula) no inicio. Pode remover. Também é preciso mudar o valor de 1 para 0. A imagem acima ilustra como deverá ficar. Feito isso, pode salvar e sair.

Parte 3. Configurando um virtual host local

Agora para fechar, vamos criar uma URL local para ver o funcionamento do nginx com o PHP. Para isso vamos configurar um vhost que servirá apenas local para teste (bom também para ambiente de desenvolvimento... já é meio caminho para a instalação do Laravel ;)).

sudo nano /etc/hosts

Vamos acrescentar na lista o caminho 127.0.0.1 testeapp. Veja a imagem como deve ficar:

Feito isso, pode salvar e sair.

Agora, para avançar, precisamos configurar a URL dentro do Nginx. Abaixo está uma referência para ajudar. É importante notar que já está preparado para futuras instalações do Laravel. Claro, assim que estiver mais familiarizado com as configurações, sinta-se à vontade para personalizar conforme sua preferência. Este é o modelo que eu gosto de usar. Pode copiar o conteúdo abaixo, pois colaremos dentro do arquivo de configuração.

 server { 
    listen 80;
    server_name testeapp;
    root /var/www/vhosts/testeapp/public;

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/testeapp-error.log error;

    error_page 404 /index.php;

    sendfile off;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }
location ~ /\.ht { deny all; } }

Vamos criar o arquivo de configuração do site no nginx em /etc/nginx/sites-available. 

sudo nano /etc/nginx/sites-available/testeapp.conf

Depois de colar o conteúdo que você copiou acima, basta salvar e sair. 

Com isso o nginx já sabe que tem um novo site disponível. Agora precisamos dizer para ele que esse site está ativo. Para isso, vamos criar um caminho virtual no diretório sites-enabled. Veja o comando:

cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/testeapp.conf

Agora vamos criar o diretório apontado no vhost e também um arquivo PHP de teste.

sudo mkdir -p /var/www/vhosts/testeapp/public

e para criar o arquivo de teste:

sudo nano /var/www/vhosts/testeapp/public/index.php

O  conteúdo do arquivo, ponha apenas para printar o phpindo. Veja a imagem do conteúdo abaixo:

Para fechar, vamos reiniciar os serviços do nginx e do php-fpm:

sudo service nginx restart
sudo service php8.1-fpm restart

Agora pelo navegador, podemos testar a URL http://testeapp. Ela deverá retornar o phpinfo. Veja a imagem abaixo:


Conclusão

Peço desculpas pelo post longo, mas foi necessário para fornecer instruções detalhadas. Agora você está pronto para instalar o Nginx e o PHP 8.1, e também aprendeu a configurar um ambiente básico de web host. Essas habilidades são muito úteis para ambientes de teste ou desenvolvimento. Obrigado por acompanhar!


Postagens mais visitadas deste blog

Diferença entre erro, falha e defeito - conceitos

Se você trabalha com desenvolvimento de software ou engenharia de qualidade, provavelmente já ouviu falar nos termos erro, falha e defeito. Embora esses termos sejam frequentemente usados ​​de forma intercambiável, é importante compreender suas diferenças e como eles se relacionam. Em termos simples, um erro é uma ação humana que produz um resultado incorreto ou inesperado. Um desenvolvedor pode cometer um erro ao escrever um código incorreto para uma determinada função, um testador pode cometer um erro ao não testar corretamente uma determinada funcionalidade, e um usuário pode cometer um erro ao inserir dados incorretos em um formulário. Uma falha, por sua vez, é a manifestação externa de um erro. É quando o produto não executa conforme o esperado. Por exemplo, se uma aplicação de pagamento online apresentar um erro de processamento de pagamento, isso pode ser considerado uma falha. As falhas podem ser detectadas pelos usuários ou por testadores durante o processo de teste. Por fim, ...

Como iniciar, parar e reiniciar o serviço MySQL no Linux

Recentemente fiz um post sobre a instalação do MySQL no Linux , agora vamos falar como verificar o status do serviço e como aplicar os comandos start, stop e restart. Coisas básicas para a manutenção. 1 . Como verificar o status do serviço É importante compreender que, dependendo da versão do Linux, o comando a ser usado pode variar. Em versões mais antigas, utilizamos o comando " service ";  já em versões mais recentes, o comando " systemctl ". Veja os exemplos abaixo: sudo systemctl status mysql ou sudo service mysql status Um retorno semelhante a esse mostra que o serviço está ativo. 2 . Como iniciar o serviço no Linux Novamente importante atentar para a distribuição do linux. Para o Ubuntu ou outras distribuições baseadas no Debian, você usará o comando systemctl, em outras provavelmente o service. Vamos aos exemplos: sudo systemctl start mysql ou sudo service mysql start Importante notar que o comando start pode não gerar output, por isso é importante verificar...

Diferença entre banco de dados, instância, schema, tablespaces e etc.

Vamos a um pouco de teoria de banco de dados. Tenho certeza que será muito útil para os universitários. 🙂 No mundo da tecnologia e gerenciamento de informações, os bancos de dados desempenham um papel vital. Um banco de dados, ou base de dados, é um conjunto organizado de registros que oferece a capacidade de reorganização e extração de informações. Normalmente, os registros em um banco de dados são agrupados para servir a um propósito comum. A gestão de um banco de dados é tipicamente realizada por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Exemplos notáveis de SGBDs incluem o Oracle, MySQL, SQL Server e PostgreSQL. É importante notar que, às vezes, o termo “banco de dados” é erroneamente usado como sinônimo de SGBD. No contexto atual, o modelo de dados mais amplamente adotado é o modelo relacional, no qual as informações são organizadas em tabelas compostas por linhas e colunas. Instâncias: A Máquina Cerebral do Banco de Dados Quando se trata de...

Contar caracteres no MySQL

Vamos fazer uso das funções da linguagem SQL para contar caracteres de um campo salvo em uma tabela. Ou seja, vamos selecionar diversos registros de uma tabela e contar os caracteres de um de seus campos. No MySQL temos várias funções para contar caracteres: LENGTH(cadeia) – comando também existente no Oracle Recebe uma cadeia , conta e retorna o número de caracteres. CHARACTER_LENGTH(cadeia)  Recebe também uma cadeia e retorna o número de caracteres contados. CHAR_LENGTH(cadeia) É um sinônimo de CHARACTER_LENGTH. Embora nem todas as versões de MySQL o tenham. A diferença entre LENGTH e CHARACTER_LENGTH é que em CHARACTER_LENGTH um caractere “multibyte” conta como um só caractere. Em LENGTH conta o número de bytes da cadeia. Assim, no caso de ter uma cadeia com 5 caracteres que ocupam 2 bytes cada um, LENGTH retornaria 10 e CHARACTER_LENGTH só 5. Por enquanto vamos utilizar CHARACTER_LENGTH, ela devolverá os resultados que esperamos obter, o número de caracteres da cadeia, independ...