Class: Gerint::Comunicacao

Inherits:
Object
  • Object
show all
Defined in:
lib/gerint/comunicacao/comunicacao.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ambiente, apikey, usuario, senha, cnes) ⇒ Comunicacao

Returns a new instance of Comunicacao.



9
10
11
12
13
14
15
16
# 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
end

Instance Attribute Details

#ambienteObject

Returns the value of attribute ambiente.



7
8
9
# File 'lib/gerint/comunicacao/comunicacao.rb', line 7

def ambiente
  @ambiente
end

#apikeyObject

Returns the value of attribute apikey.



7
8
9
# File 'lib/gerint/comunicacao/comunicacao.rb', line 7

def apikey
  @apikey
end

#cnesObject

Returns the value of attribute cnes.



7
8
9
# File 'lib/gerint/comunicacao/comunicacao.rb', line 7

def cnes
  @cnes
end

#senhaObject

Returns the value of attribute senha.



7
8
9
# File 'lib/gerint/comunicacao/comunicacao.rb', line 7

def senha
  @senha
end

#usuarioObject

Returns the value of attribute usuario.



7
8
9
# File 'lib/gerint/comunicacao/comunicacao.rb', line 7

def usuario
  @usuario
end

Instance Method Details

#alta(alta) ⇒ Object



119
120
121
122
123
# File 'lib/gerint/comunicacao/comunicacao.rb', line 119

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

#bloquear_leito(bloqueio_leito) ⇒ Object

Usado para bloqueio de leito



137
138
139
140
141
# File 'lib/gerint/comunicacao/comunicacao.rb', line 137

def bloquear_leito(bloqueio_leito) # Usado para bloqueio de leito
  ender = "/leitos/bloquearLeito"
  body = bloqueio_leito.to_json
  retorno = self.executa_post(ender, body)
end

#busca_situacao_solicitacoesObject



85
86
87
88
# File 'lib/gerint/comunicacao/comunicacao.rb', line 85

def busca_situacao_solicitacoes
  ender = "/solicitacoes/buscaSituacaoSolicitacoes"
  retorno = self.executa_get(ender)
end

#busca_solicitacoes_executante(filtros = "") ⇒ Object



90
91
92
93
# File 'lib/gerint/comunicacao/comunicacao.rb', line 90

def busca_solicitacoes_executante(filtros="")
  ender = "/solicitacoes/buscaSolicitacoesExecutante#{filtros}"
  retorno = self.executa_get(ender)
end

#credenciaisObject

Consulta as credenciais instanciadas



18
19
20
21
22
23
24
# File 'lib/gerint/comunicacao/comunicacao.rb', line 18

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

#desbloquear_leito(desbloqueio_leito) ⇒ Object

Usado para desbloqueio de leito



143
144
145
146
147
# File 'lib/gerint/comunicacao/comunicacao.rb', line 143

def desbloquear_leito(desbloqueio_leito) # Usado para desbloqueio de leito
  ender = "/leitos/desbloquearLeito"
  body = desbloqueio_leito.to_json
  retorno = self.executa_post(ender, body)
end

#endereco_urlObject



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/gerint/comunicacao/comunicacao.rb', line 26

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"
  elsif @ambiente == 'P2' 
    "https://apigateway.procempa.com.br/apiman-gateway/saude/saude-api/1.0/gerint"
  elsif @ambiente == 'H2' 
    "https://apigateway-hom.procempa.com.br/apiman-gateway/saude/saude-api/1.0/gerint"
  else 
    "ERRO: Ambiente inválido, informa P, H, P2 ou H2"
  end
end

#evoluir_paciente(evolucao_paciente) ⇒ Object

Usado para evoluções do paciente



149
150
151
152
153
# File 'lib/gerint/comunicacao/comunicacao.rb', line 149

def evoluir_paciente(evolucao_paciente) # Usado para evoluções do paciente
  ender = "/solicitacoes/evolucaoPaciente"
  body = evolucao_paciente.to_json
  retorno = self.executa_post(ender, body)
end

#executa_get(endereco) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/gerint/comunicacao/comunicacao.rb', line 40

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) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/gerint/comunicacao/comunicacao.rb', line 59

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) ⇒ Object



107
108
109
110
111
# File 'lib/gerint/comunicacao/comunicacao.rb', line 107

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) ⇒ Object



125
126
127
128
129
# File 'lib/gerint/comunicacao/comunicacao.rb', line 125

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) ⇒ Object



113
114
115
116
117
# File 'lib/gerint/comunicacao/comunicacao.rb', line 113

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) ⇒ Object



95
96
97
98
99
# File 'lib/gerint/comunicacao/comunicacao.rb', line 95

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) ⇒ Object



101
102
103
104
105
# File 'lib/gerint/comunicacao/comunicacao.rb', line 101

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) ⇒ Object



131
132
133
134
135
# File 'lib/gerint/comunicacao/comunicacao.rb', line 131

def transferir_leito(transf)
  ender = "/internacoes/transferir"
  body = transf.to_json
  retorno = self.executa_post(ender, body)
end