class Gerint::Comunicacao

Attributes

ambiente[RW]
apikey[RW]
cnes[RW]
senha[RW]
usuario[RW]

Public Class Methods

new(ambiente, apikey, usuario, senha, cnes) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 9
def initialize(ambiente, apikey, usuario, senha, cnes)
  @ambiente = ambiente
  @apikey = apikey 
  @usuario = usuario
  @senha = senha
  
  @cnes = cnes
  if ambiente == 'H' && apikey == ''  # Se não informar a apikey, pega os dados de teste do HEPA
    @apikey  = "0ecc120b-c3bf-4e71-a5f9-cbaf0e394e34"
    @usuario = "integracao.2237180"
    @senha   = "integracao.2237180"
    @cnes    = "2237180"
  end
end

Public Instance Methods

alta(alta) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 121
def alta(alta)
  ender = "/internacoes/liberar"   # No GERINT o serviço é chamado de Liberação de Internação
  body = alta.to_json
  retorno = self.executa_post(ender, body)
end
busca_situacao_solicitacoes() click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 87
def busca_situacao_solicitacoes
  ender = "/solicitacoes/buscaSituacaoSolicitacoes"
  retorno = self.executa_get(ender)
end
busca_solicitacoes_executante(filtros="") click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 92
def busca_solicitacoes_executante(filtros="")
  ender = "/solicitacoes/buscaSolicitacoesExecutante#{filtros}"
  retorno = self.executa_get(ender)
end
credenciais() click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 24
def credenciais # Consulta as credenciais instanciadas
  x = "ambiente = #{@ambiente} \n" 
  x += "apikey = #{@apikey} \n"
  x += "usuario = #{@usuario} \n"
  x += "senha = #{@senha} \n"
  x += "cnes = #{@cnes}"
end
endereco_url() click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 32
def endereco_url
  if @ambiente == 'P' 
    "https://api.procempa.com.br/apiman-gateway/saude/api/1.0/gerint"
  elsif @ambiente == 'H' 
    "https://api-hom.procempa.com.br/apiman-gateway/saude/api/1.1/gerint"
  else 
    "ERRO: Ambiente inválido, informa P para produção ou H para Homologação"
  end
end
executa_get(endereco) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 42
def executa_get(endereco)

  ender = endereco_url + endereco
  url = URI("#{ender}")

  https = Net::HTTP.new(url.host, url.port);
  https.use_ssl = true
  
  request = Net::HTTP::Get.new(url)
  request["X-API-Key"] = @apikey
  request["usuario"] = @usuario
  request["senha"] = @senha
  request["cnes"] = @cnes
  request["Cookie"] = "SERVERID=WS4CH"
  
  response = https.request(request)
  response.read_body
end
executa_post(endereco, body) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 61
def executa_post(endereco, body)

  ender = endereco_url + endereco
  url = URI("#{ender}")

  https = Net::HTTP.new(url.host, url.port);
  https.use_ssl = true
  
  request = Net::HTTP::Post.new(url)
  request["X-API-Key"] = @apikey
  request["usuario"] = @usuario
  request["senha"] = @senha
  request["cnes"] = @cnes
  request["Content-Type"] = "application/json"
  request["Cookie"] = "SERVERID=WS4CH"
  request.body = body
 
  puts "***************************"
  puts request.body
  puts "***************************"
  
  response = https.request(request)
  response.read_body
 
end
internacao(internacao) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 109
def internacao(internacao)
  ender = "/internacoes"   # Usado para internações e internações psiquiatricas
  body = internacao.to_json
  retorno = self.executa_post(ender, body)
end
reversao_alta(reversao_alta) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 127
def reversao_alta(reversao_alta)
  ender = "/internacoes/reverterAlta"   # Usado para reversao de internações
  body = reversao_alta.to_json
  retorno = self.executa_post(ender, body)
end
reversao_internacao(reversao_internacao) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 115
def reversao_internacao(reversao_internacao)
  ender = "/internacoes/reverterInternacao"   # Usado para reversao de internações
  body = reversao_internacao.to_json
  retorno = self.executa_post(ender, body)
end
solicitacao_internacao(solicitacao_internacao) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 97
def solicitacao_internacao(solicitacao_internacao)
  ender = "/solicitacoes"
  body = solicitacao_internacao.to_json
  retorno = self.executa_post(ender, body)
end
solicitacao_internacao_psiquiatria(solicitacao_internacao_psiquiatria) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 103
def solicitacao_internacao_psiquiatria(solicitacao_internacao_psiquiatria)
  ender = "/solicitacoes/psiquiatria"
  body = solicitacao_internacao_psiquiatria.to_json
  retorno = self.executa_post(ender, body)
end
transferir_leito(transf) click to toggle source
# File lib/gerint/comunicacao/comunicacao.rb, line 133
def transferir_leito(transf)
  ender = "/internacoes/transferir"
  body = transf.to_json
  retorno = self.executa_post(ender, body)
end