<?php
session_start();
require("../../database/dbConection.php");

$UsuarioLogado = $_SESSION['idUsuarioLogado'];
$htmlTabela = "";

if(isset($_POST['opcaoPesquisa'])){
  if(mb_strlen($_POST['numeroDocumento'])==11){
    $opcaoDocumento = 'cpf';
  }else{
    $opcaoDocumento = 'cns';
  }   
}else{
  $opcaoDocumento = $_POST['opcaoDocumento'];
}

  if($opcaoDocumento=="cns" || $opcaoDocumento=="cpf"){
    $numeroDocumento = str_replace("-","",$_POST['numeroDocumento']);
    $numeroDocumento = str_replace(".","",$numeroDocumento);
    $numeroDocumento = str_replace(" ","",$numeroDocumento);
  }

if($opcaoDocumento=="cns"){
  $sqlPacienteExistente = "SELECT tb_paciente.*, date_format(datanasc, '%d/%m/%Y') AS dataNascimento, tb_cidades.nome_cidade FROM tb_paciente INNER JOIN tb_cidades ON (tb_paciente.codigocidade = tb_cidades.codigoibge_cidade) WHERE cns_paciente='$numeroDocumento'";
}else if($opcaoDocumento=="cpf"){
  $sqlPacienteExistente = "SELECT tb_paciente.*, date_format(datanasc, '%d/%m/%Y') AS dataNascimento, tb_cidades.nome_cidade FROM tb_paciente INNER JOIN tb_cidades ON (tb_paciente.codigocidade = tb_cidades.codigoibge_cidade) WHERE cpf_paciente='$numeroDocumento'";
}

$stmPaciente    = $rsConexao->prepare($sqlPacienteExistente);    
$stmPaciente    -> execute();    
$totalPacientes = $stmPaciente->rowCount();			    
$rsPacientes    = $stmPaciente->fetch(PDO::FETCH_OBJ);

if($totalPacientes>0){
    if(isset($_POST['opcaoPesquisa'])){
      $formatarSexo = array(
        'M' => 'MASCULINO',
        'F' => 'FEMININO',
        ''  => 'NÃO INFORMADO'
      );      
    $arrayPaciente = array(
      'idPaciente'      => $rsPacientes->id_paciente,
      'nomePaciente'    => $rsPacientes->nome_paciente,
      'dataNascimento'  => $rsPacientes->datanasc,
      'sexoPaciente'    => $formatarSexo[$rsPacientes->sexo]
    );
    echo json_encode($arrayPaciente);      
    exit;
    }else{
      $resultadoRetorno = $rsPacientes->id_paciente;
    }
}else{

  $options = array(
    "http"=>array(
        "header"=>"User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:10\r\n" // i.e. An iPad
    )
  );
  $context = stream_context_create($options);
  $json_file = file_get_contents("http://cns.essencialws.app.br/v1/crv_cnsws.php?op=$opcaoDocumento&codbusca=$numeroDocumento", false, $context);
  
  if($json_file!='{"array_cns":[{"Paciente n&atilde;o encontrato."}]}' && $json_file!='{"array_cns":[{"Paciente não encontrato."}]}'){
    $json_str = json_decode($json_file, true);
    $itensCNS = $json_str['array_cns']; 
    if ($itensCNS[0]['numero_cns'] != ""){     
          
      /* ATRIBUIÇÃO DE VALORES DE VARIÁVEIS PARA O CADASTRO */    
      $cnsPaciente    = $itensCNS[0]['numero_cns'];
      $CPFPaciente    = $itensCNS[3]['numero_cpf'];
      $nomePaciente   = str_replace("'", "`", $itensCNS[1]['nome_usuario']);
      $dataNascimento = $itensCNS[2]['data_nascimento'];
      $sexoPaciente   = $itensCNS[5]['sexo_usuario'];
      $nomeMae        = $itensCNS[4]['nome_mae'];
      $nomePai        = $itensCNS[16]['nome_pai'];
      $racaCor        = $itensCNS[6]['raca_cor'];
      $cepPaciente    = $itensCNS[10]['numero_cep'];
      $nomeMunicipio  = $itensCNS[14]['nome_municipio'];

      if ($itensCNS[7]['tipo_logradouro'] == "999" || $itensCNS[7]['tipo_logradouro'] == "" || $itensCNS[7]['tipo_logradouro'] == "99"){
        $codLogradouro = '081';
      }else{
        $codLogradouro = $itensCNS[7]['tipo_logradouro'];
      }

      $enderecoPaciente       = str_replace("'", "`", $itensCNS[8]['nome_logradouro']);
      $numeroEnderecoPaciente = str_replace("'", "`", $itensCNS[9]['numero_residencia']);
      $nomeBairro             = str_replace("'", "`", $itensCNS[11]['nome_bairro']);
      $codigoEstado           = $itensCNS[15]['sigla_uf'];
      $codigoCidade           = $itensCNS[13]['codigo_municipio']!="" ? $itensCNS[13]['codigo_municipio'] : '291920';
      $numeroTelefone         = $itensCNS[12]['telefone'];
      $origemRegistro         = "DATASUS";

      $sqlAddPaciente = "INSERT INTO tb_paciente(
        cns_paciente,
        cpf_paciente,
        nome_paciente,
        datanasc,
        sexo,
        nomemae,
        codracacor,
        cep_paciente,
        codlogradouro,
        endereco_paciente,
        numeroend_paciente,
        bairro_paciente,
        codigoestado,
        codigocidade,
        celular1,
        origem,
        idusuario
      )VALUES(
        :setCNSPaciente,
        :setCPFPaciente,
        :setNomepaciente,
        :setdataNascimento,
        :setSexoPaciente,
        :setNomeMae,
        :setRacaCor,
        :setCepPaciente,
        :setLogradouroPaciente,
        :setEnderecoPaciente,
        :setNumeroEndereco,
        :setBairroEndereco,
        :setCodigoestado,
        :setCodigoCidade,
        :setnumeroTelefone,
        :setOrigemRegistro,
        :setIdUsuarop
      )";

      $stmAddPaciente  = $rsConexao->prepare($sqlAddPaciente);
      $stmAddPaciente  -> bindParam(":setCNSPaciente",$cnsPaciente,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setCPFPaciente",$CPFPaciente,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setNomepaciente",$nomePaciente,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setdataNascimento",$dataNascimento,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setSexoPaciente",$sexoPaciente,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setNomeMae",$nomeMae,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setRacaCor",$racaCor,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setCepPaciente",$cepPaciente,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setLogradouroPaciente",$codLogradouro,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setEnderecoPaciente",$enderecoPaciente,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setNumeroEndereco",$numeroEnderecoPaciente,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setBairroEndereco",$nomeBairro,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setCodigoestado",$codigoEstado,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setCodigoCidade",$codigoCidade,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setnumeroTelefone",$numeroTelefone,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setOrigemRegistro",$origemRegistro,PDO::PARAM_STR);
      $stmAddPaciente  -> bindParam(":setIdUsuarop",$UsuarioLogado,PDO::PARAM_STR);
      $stmAddPaciente  -> execute();    

      $resultadoRetorno = $rsConexao->lastInsertId();

    }else{
      $resultadoRetorno = "NaoEncontrado";
    }
  }else{
    $resultadoRetorno = "NaoEncontrado";
  }
}
  echo $resultadoRetorno;
?>
