Files
rkm-conectasus-ci-sandbox/api/app/Http/Controllers/Ambulatorio/AtendimentoController.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

152 lines
4.9 KiB
PHP

<?php
namespace App\Http\Controllers\Ambulatorio;
use App\Exceptions\Ambulatorio\NaoPodeCriarFichaAtencaoBasicaException;
use App\Http\Controllers\Controller;
use App\Models\Ambulatorio\AtendimentoSoap;
use App\Services\Ambulatorio\AtendimentoService;
use App\Utils\Crypt;
use Exception;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Storage;
class AtendimentoController extends Controller
{
protected $modulo = 'ambulatorio';
protected $funcionalidade = 'atendimento';
public function getHistoricoPreAtendimento($id)
{
return response()->json(AtendimentoService::getHistoricoPreAtendimento($id), Response::HTTP_OK);
}
public function getHistoricoAtendimentoSoap($id)
{
return response()->json(AtendimentoService::getHistoricoAtendimentoSoap($id), Response::HTTP_OK);
}
public function getHistoricoAtendimentoHospital($id)
{
return response()->json(AtendimentoService::getHistoricoAtendimentoHospital($id), Response::HTTP_OK);
}
public function getHistoricoPosConsulta($id)
{
return response()->json(AtendimentoService::getHistoricoPosConsulta($id), Response::HTTP_OK);
}
public function getHistoricoProntoAtendimentoAtendimento($id)
{
return response()->json(AtendimentoService::getHistoricoProntoAtendimentoAtendimento($id), Response::HTTP_OK);
}
public function uploadImagem()
{
return response()->json(AtendimentoService::uploadImagem(), Response::HTTP_OK);
}
public function destroy($id)
{
return response()->json(AtendimentoService::destroy($id), Response::HTTP_NO_CONTENT);
}
public function destroyFeridaProcedimento($id)
{
return response()->json(AtendimentoService::destroyFeridaProcedimento($id), Response::HTTP_NO_CONTENT);
}
public function storeFeridaProcedimento()
{
return response()->json(AtendimentoService::storeFeridaProcedimento(), Response::HTTP_CREATED);
}
public function validarProcedimentosCbo()
{
return response()->json(AtendimentoService::validarProcedimentosCbo(), Response::HTTP_OK);
}
public function getUrlHistoricoConectaSUSV1($prontuario)
{
if(app('config')->get('database.default') == 'pederneiras'){
return response()->json(['url' => env('CONECTASUS_V1_URL_PEDERNEIRAS') . '/' . app('config')->get('database.default') . '/especialidade/lista_pacientes_historico_externo.php?DATA=' . Crypt::XORCrypt("NR_PRONTUARIO=$prontuario")] , Response::HTTP_OK);
}else{
return response()->json(['url' => env('CONECTASUS_V1_URL') . '/' . app('config')->get('database.default') . '/especialidade/lista_pacientes_historico_externo.php?DATA=' . Crypt::XORCrypt("NR_PRONTUARIO=$prontuario")] , Response::HTTP_OK);
}
}
public function list()
{
return response()->json(AtendimentoService::list(), Response::HTTP_OK);
}
public function create($filaId = null, $agendamentoId = null)
{
$this->auth(__FUNCTION__);
return response()->json(AtendimentoService::create($filaId, $agendamentoId), Response::HTTP_OK);
}
public function store()
{
$this->auth(__FUNCTION__);
try {
return response()->json(AtendimentoService::store(), Response::HTTP_CREATED);
}
catch (NaoPodeCriarFichaAtencaoBasicaException $e) {
return response()->json(['message' => $e->getMessage()], Response::HTTP_BAD_REQUEST);
}
}
public function exameDentroPrazoValidade()
{
return response()->json(AtendimentoService::exameDentroPrazoValidade(), Response::HTTP_OK);
}
public function encaminhamentoPendente()
{
return response()->json(AtendimentoService::encaminhamentoPendente(), Response::HTTP_OK);
}
public function prescricaoMedicamento()
{
return response()->json(AtendimentoService::prescricaoMedicamento(), Response::HTTP_OK);
}
public function storeAtendimentoAssinado($id)
{
$path = 'assinatura-eletronica' . DIRECTORY_SEPARATOR . app('config')->get('database.default') . DIRECTORY_SEPARATOR . 'ambulatorio' . DIRECTORY_SEPARATOR . 'atendimento';
$atendimento = AtendimentoSoap::findOrFail($id);
if (!is_null($atendimento)) {
foreach (request()->atendimento_assinado as $arquivoBase64) {
$arquivo = "{$arquivoBase64['fileName']}.PDF";
$pdf = base64_decode($arquivoBase64['data']);
if (!Storage::disk('local')->put($path . DIRECTORY_SEPARATOR . $arquivo, $pdf)) {
throw new Exception("Erro ao salvar o arquivo {$arquivo}.");
}
}
$atendimento->update(['is_atendimento_soap_assinado' => true]);
}
return response($atendimento->fresh(), Response::HTTP_OK);
}
public function getOci($id)
{
return response()->json(AtendimentoService::getOci($id), Response::HTTP_OK);
}
}