Leitor de Cadastro de Pacientes

Este leitor permite que a plataforma consulte o banco de dados local do cliente para obter o cadastro de pacientes sem a necessidade de realizar uma integração com o ERP. O leitor opera apenas em modo view ou seja não realiza input nem update de dados no banco. Os dados são coletados a partir da consulta criada pelo próprio usuário do leitor. O leitor é desenvolvido em tecnologia PHP o que fornece ao usuário transparência total visto ser possível analisar o código fonte para garantir que nenhuma informação adicional será transmitida ao cloud

MÓDULO

Gestão Inteligente de Esterilização.

INSTALAÇÃO

Sistema Operacional: Linux CentOS 8 (Instalação mínima em modo texto)
Banco de Dados: Oracle 11.2 ou superior
Oracle Instant Client:  Versão 19.3.0.0.0

A aplicação é fornecida em um arquivo formato .zip contendo os arquivos utilizados neste manual incluindo o Oracle Instant Client. O usuário deverá descompactar o arquivo enviado. 

Todos os comandos deste manual deverão ser executados como usuário root

  1. Instalação do Apache HTTPD e PHP
    yum install -y httpd php php-pdo php-json php-mbstring php-devel php-pear libnsl make

  2. Liberação do Acesso a porta 80
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload

  3. Copiando os arquivos do sistema
    Envie o arquivo integrador.tar.gz para a pasta /var/www/html no servidor.
    Envie os arquivos oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm e oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm para a pasta /tmp no servidor.
    cd /var/www/html
    tar -xvf integrador.tar.gz
    mv integrador/* .
    mv integrador/.env .

  4. Instalação do módulo OCI8 para conexão ao Banco de Dados Oracle
    cd /tmp/
    rpm -i oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
    rpm -i oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
    C_INCLUDE_PATH=/usr/include/oracle/19.3/client64/ pecl install oci8


    Será exibido a mensagem: 
    Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] :

    Tecle enter.
    echo "[OCI8]" >> /etc/php.ini
    echo "extension=oci8.so" >> /etc/php.ini
    cd /usr/src
    wget https://github.com/php/php-src/archive/php-$(php -r 'echo phpversion();').tar.gz
    tar -xvf php-*.tar.gz
    cd php-src-php*/ext/pdo_oci
    phpize
    ./configure
    C_INCLUDE_PATH=/usr/include/oracle/19.3/client64/ make
    make install
    echo "extension=pdo_oci" >> /etc/php.d/20-pdo.ini
    php -m | grep -i oci (Deverá retornar oci8 e PDO_OCI)

  5. Ajustes de configuração do Apache
    sed -i 's@DocumentRoot "/var/www/html"@DocumentRoot "/var/www/html/public"@' /etc/httpd/conf/httpd.conf
    Editar o arquivo /etc/httpd/conf/httpd.conf dentro da diretiva <Directory "/var/www/html">
    Alterar o parametro AllowOverride None para AllowOverride All
    systemctl enable httpd

  6. Desativando SELINUX
    sed -i 's@SELINUX=.*$@SELINUX=disabled@' /etc/selinux/config
    reboot
    sestatus (Deve retornar: SELinux status: disabled)

  7. Corrigindo permissões
    chown -R apache.apache /var/www/html/
    chmod -R 777 /var/www/html/storage/

  8. Instalação de dependências do projeto
    cd /var/www/html
    wget https://raw.githubusercontent.com/composer/getcomposer.org/76a7060ccb93902cd7576b67264ad91c8a2700e2/web/installer -O - -q | php -- --quiet
    php composer.phar install --no-dev --optimize-autoloader

  9. Criando usuário para acesso ao sistema
    Edite o arquivo /var/www/html/database/seeds/DatabaseSeeder.php, e ajuste os campos email e password para criar um usuário da aplicação.
    cd /var/www/html
    php artisan db:seed -q

CONFIGURAÇÕES DO LEITOR

Cadastrando um sistema integrado.

  1. Clique em "sistemas integrados";
  2. Clique em "novo";
  3. Insira o nome do sistema integrado (SISMETRO);
  4. Clique em "salvar";
  5. Enviar para a equipe de suporte o token gerado;

Cadastrando uma conexão com o banco de dados.

  1. Criar uma tabela (VIEW) no banco de dados. Todos os dados deverão estar em uma mesma tabela já no formato final conforme definição de valores de retorno (O leitor não realiza quaisquer adequações de dados);
  2. Clique em "conexões DB";
  3. Clique em "novo";
  4. Insira o "nome" da conexão;
  5. Insira "driver";
  6. Insira "host";
  7. Insira "port";
  8. Insira "database";
  9. Insira "username";
  10. Insira "password";
  11. Insira "service name";
  12. Insira "server version";
  13. Clique em "salvar".

Cadastrando uma consulta no banco de dados.

  1. Clique em "consultas DB";
  2. Clique em "novo";
  3. Insira o "código da consulta";
  4. Insira o "nome" da consulta;
  5. Selecione o "serviço" da consulta;
  6. Selecione a "conexão" com o banco que rodará a consulta;
  7. Insira a "query SQL";

    Exemplo:

    SELECT
    customer_id AS nrProtuario,
    cust_first_name AS nomeCompleto,
    'Masculino' AS sexo,
    cust_first_name AS dataNascimento,
    cust_first_name AS nomeMae,
    cust_first_name AS nomePai from DEMO_CUSTOMERS WHERE customer_id = :condition
  8. Clique em "salvar".

Cadastrando uma permissão.

  1. Clique em "permissões";
  2. Clique em "novo";
  3. Selecione o "sistema integrado";
  4. Selecione a "consulta";
  5. Clique em "salvar".

LIBERAÇÃO EXTERNA

O servidor onde o leitor está instalado deverá estar acessível para os servidores SISMETRO na web. Para consultar a listagem de IP´s fixos da SISMETRO clique aqui!.

WEBSERVICE

Plataforma web requisita ->  WS configurado pelo cliente recebe a solicitação -> Leitor de Banco de Dados SISMETRO instalado no servidor do cliente efetua a consulta no banco de dados e retorna a requisição. 

Exemplo:

ROTEADOR/FIREWALL
IP público: 203.0.113.50
Porta pública leitor: 20000
URL leitor: http://ws.contoso.com:20000
Roteador redireciona (DNAT) porta 20000/TCP para 192.168.1.10 porta 80

SERVIDOR DE APLICAÇÃO
O leitor está instalado no servidor de aplicação
Hostname: ws.constoso.com
IP privado leitor: 192.168.1.10
Porta HTTP leitor: 80/TCP

REQUEST HEADERS

Formato: JSON

Tecnologia: REST

Método: POST

Content-Type: application/json

HEADERS

key: Corresponde ao token gerado pelo leitor.

O cliente deverá enviar o token para a equipe de suporte SISMETRO. 

URL

A chamada será realizada para URL do cliente + /api/v1/service.

Exemplos:

http://meusite.com/api/v1/service

http://201.32.16.54:8889/api/v1/service

O usuário deverá enviar para equipe de suporte a URL do servidor que está liberado para consulta.

BODY

Nomenclatura: CamelCase

Variáveis: Case Sensitive

{

"servico": "PRONTUARIO"

"codigoCadastro": "1212"

}


Obs.: Não deve ser utilizado caracteres especiais nem nova linha no body.

DEFINIÇÃO DE VALORES

Atributo Tipo Caracteres Obrigatório Valor
servico Text 20 Obrigatório Serviço de consulta que será consumido. Enviar "PRONTUARIO".
codigoCadastro Text 20 Obrigatório Código do prontuário que será consultado.

CHAVE DE UNICIDADE

nrProntuario

CONFIGURAÇÃO DA API NA PLATAFORMA

Tipo de integração: 1

Vendor: 1

RETORNO

{

"nrProtuario": "100",

"nomeCompleto": "PEDRO LIMA SOARES",

"sexo": "1",

"dataNascimento": "1989-01-15",

"nomeMae": "MARIA ELZA SOARES",

"nomePai": "VITOR SOARES"

}

DEFINIÇÃO DE VALORES DE RETORNO

Informação Tipo Caracteres Obrigatório Valor
nrProntuario Text 20 Obrigatório Número do prontuário do paciente no ERP
nomeCompleto Text 65 Obrigatório  Nome do paciente no ERP
sexo Integer 1 Obrigatório

Sexo do paciente:

1 - Feminino;
2 - Masculino.

dataNascimento Date 10 Obrigatório Data de nascimento do paciente 
nomeMae Text 65 Opcional  Nome da mãe do paciente
nomePai Text 65 Opcional Nome do pai do paciente

DÚVIDAS

Dúvida Resposta Direito
O leitor envia ao cloud os dados de autenticação do banco? Não. O leitor não trafega nenhum tipo de informação além dos cadastros consultados. -
O leitor pode ser utilizado para integrar com outros sistemas? Sim. Solicite para a equipe de suporte a documentação com as especificações técnicas. -
Como faço para testar a comunicação entre o leitor e o cloud? Após a integração ter sido concluída com sucesso o usuário poderá consultar o prontuário "PADRAO". O qual retornar um cadastro fictício para teste de comunicação. -
Back to top