/** * @expectedException \InvalidArgumentException */ public function testDataPublicacao() { $bula = new Bula(); $bula->setDataPublicacao('2016-01-01'); $this->assertEquals('01/01/2016', $bula->getDataPublicacao()->format('d/m/Y')); }
/** * 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; }