Пример #1
0
 /**
  * @expectedException \InvalidArgumentException
  */
 public function testDataPublicacao()
 {
     $bula = new Bula();
     $bula->setDataPublicacao('2016-01-01');
     $this->assertEquals('01/01/2016', $bula->getDataPublicacao()->format('d/m/Y'));
 }
Пример #2
-1
 /**
  * Obtém a lista de medicamentos do sistema da Anvisa e retorna um array
  * com os resultados.
  *
  * @param string $medicamento Nome de medicamento
  * @param string $empresa     Nome da fabricante do medicamento
  * @param string $expediente  Número do expediente da bula
  *
  * @throws \Exception Caso não for possível trazer os resultados
  *
  * @return \Collections\ArrayList Todas as bulas encontradas
  */
 public static function buscarMedicamentos($medicamento = '', $empresa = '', $expediente = '')
 {
     if (empty($medicamento) && empty($empresa) && empty($expediente)) {
         throw new \InvalidArgumentException('Informe pelo menos um parâmetro para o método!');
     }
     $Client = new Client();
     $crawler = $Client->request('POST', 'http://www.anvisa.gov.br/datavisa/fila_bula/frmResultado.asp', ['hddLetra' => '', 'txtMedicamento' => $medicamento, 'txtEmpresa' => $empresa, 'txtNuExpediente' => $expediente, 'txtDataPublicacaoI' => '', 'txtDataPublicacaoF' => '', 'txtPageSize' => '1000', 'btnPesquisar' => '']);
     $Medicamentos = new ArrayList();
     try {
         $trs = $crawler->filter('#tblResultado > tbody > tr');
         if ($trs->first()->filter('td')->count() > 1) {
             $trs->each(function ($node) use(&$Medicamentos) {
                 if (trim($node->filter('td')->eq(0)->text()) != 'Nenhuma bula na fila de análise') {
                     $nomeMedicamento = trim($node->filter('td')->eq(0)->text());
                     $nomeEmpresa = trim($node->filter('td')->eq(1)->text());
                     $exp = trim($node->filter('td')->eq(2)->text());
                     $dataPub = trim($node->filter('td')->eq(3)->text());
                     $dadosBulaPaciente = self::stripJsFunction($node->filter('td')->eq(4)->filter('a')->attr('onclick'));
                     $dadosBulaProfissional = self::stripJsFunction($node->filter('td')->eq(5)->filter('a')->attr('onclick'));
                     $Bula = new Bula();
                     $Bula->setMedicamento($nomeMedicamento);
                     $Bula->setEmpresa($nomeEmpresa);
                     $Bula->setExpediente($exp);
                     $Bula->setDataPublicacao($dataPub);
                     $Bula->setBulaPaciente(new DadosBula($dadosBulaPaciente['transacao'], $dadosBulaPaciente['anexo']));
                     $Bula->setBulaProfissional(new DadosBula($dadosBulaProfissional['transacao'], $dadosBulaProfissional['anexo']));
                     $Medicamentos->add($Bula);
                 }
             });
         }
     } catch (\Exception $ex) {
         throw new Exception('Houve um erro ao obter os medicamentos do sistema da Anvisa!');
     }
     return $Medicamentos;
 }