Ir para conteúdo
  • Cadastre-se

dev botao

Ver Solução Respondido por Sérgio Assunção,
  • Este tópico foi criado há 2472 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá, estou terminando um componente de suporte ao SNGPC exigido pela ANVISA.

Para quem não sabe SNGPC significa Sistema Nacional de Gerenciamento de Produtos Controlados. As farmácias são obrigadas a enviar alguns dados para a Anvisa em formato xml quando fazem movimento de medicamentos controlados e antibióticos. O xml pode ser enviado pelo site ou através dos webservices disponíveis.

Caso alguém se interesse posso disponibilizar os fontes do projeto e se alguém se interessar em colaborar eu agradeço.

  • Curtir 9
Link para o comentário
Compartilhar em outros sites

Olá, estou terminando um componente de suporte ao SNGPC exigido pela ANVISA.

Para quem não sabe SNGPC significa Sistema Nacional de Gerenciamento de Produtos Controlados. As farmácias são obrigadas a enviar alguns dados para a Anvisa em formato xml quando fazem movimento de medicamentos controlados e antibióticos. O xml pode ser enviado pelo site ou através dos webservices disponíveis.

Caso alguém se interesse posso disponibilizar os fontes do projeto e se alguém se interessar em colaborar eu agradeço.

Bom dia a todos

 

Gostaria de informaçoes  sobre esse componete SNGPC se vai ser liberado para o forum

 

 

Grato

 

Designerba

Link para o comentário
Compartilhar em outros sites

Olá, estou terminando um componente de suporte ao SNGPC exigido pela ANVISA.

Para quem não sabe SNGPC significa Sistema Nacional de Gerenciamento de Produtos Controlados. As farmácias são obrigadas a enviar alguns dados para a Anvisa em formato xml quando fazem movimento de medicamentos controlados e antibióticos. O xml pode ser enviado pelo site ou através dos webservices disponíveis.

Caso alguém se interesse posso disponibilizar os fontes do projeto e se alguém se interessar em colaborar eu agradeço.

poderia me fornecer este componente

Att
Rodrigo Guelf
 

Link para o comentário
Compartilhar em outros sites

poderia me ajudar, eu ainda não conseguir validar o inventário, como vc vez para transformar o arquivo zipado em bit64

 

 

Estou utilizando o Delphi XE2, fiz assim:

var
  arquivoZip: TByteDynArray;

begin


  arquivoZip := FIleToByteArray('SNGPC.zip');
  shash := MD5DigestToStr(MD5File('SNGPC.zip'));




    Resp := ws.EnviaArquivoSNGPC(
      edtUsuario.Text,
      edtSenha.Text,
      arq,
      shash);


Link para o comentário
Compartilhar em outros sites

 

Estou utilizando o Delphi XE2, fiz assim:

var
  arquivoZip: TByteDynArray;

begin


  arquivoZip := FIleToByteArray('SNGPC.zip');
  shash := MD5DigestToStr(MD5File('SNGPC.zip'));




    Resp := ws.EnviaArquivoSNGPC(
      edtUsuario.Text,
      edtSenha.Text,
      arq,
      shash);


Alberto poderia me passar estas duas funções:

 

MD5DigestToStr

MD5File

Att
Rodrigo Guelf
 

Link para o comentário
Compartilhar em outros sites

Boa noite, estou concluindo a primeira parte do componente que trata das classes de informações do SNGPC (Movimentação e Inventário). Já é possível gerar os XML's com base nas informações do componente. Até amanhã eu já terei feito todos os testes junto a ANVISA. Ainda não fiz a comunicação com os Webservices, estou enviando os arquivos diretamente pelo site para testar, essa será a próxima etapa. Caso alguém se interesse pelo que já fiz é só pedir que mando o projeto.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Boa noite, estou concluindo a primeira parte do componente que trata das classes de informações do SNGPC (Movimentação e Inventário). Já é possível gerar os XML's com base nas informações do componente. Até amanhã eu já terei feito todos os testes junto a ANVISA. Ainda não fiz a comunicação com os Webservices, estou enviando os arquivos diretamente pelo site para testar, essa será a próxima etapa. Caso alguém se interesse pelo que já fiz é só pedir que mando o projeto.

Primeiro parabéns pela  iniciativa pois é um componente muito importante para quem trabalha com farmácias, drogarias etc.

 

O ideal é que vc hospede em um site tipo 4shared.com

ou outro qualquer

mais de qualquer forma se vc puder mandar no meu e-mail

Editado por Rafael Dias
Nao forneça dados pessoais para isso mande mp
Link para o comentário
Compartilhar em outros sites

Bom dia Fabricio ... se possível compartilhe o componente pra que possamos ajudar. Ja desenvolvi uma rotina de importação do inventário desde a versão 1.0 e conclui nessa semana a versão 2.0 do meu aplicativo, de acordo com a nova exigência.

 

Obrigado

 

Sérgio

Editado por Rafael Dias
Nao forneça dados pessoais para isso mande mp
Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

Pessoal pelo que estou sabendo e tambem estou passando pelo mesmo problema o site do SNGPC não esta recebendo nenhum arquivo, eu mesmo peguei o proprio arquivo xml do inventario que o site deles gera e tentei importar para ver se aceitava, tambem deu o mesmo erro que o meu arquivo esta dando.

Liguei em outras farmacia que conheço e tem outros sistemas, tambem estão aguardando os seus programadores conseguirem uma solução, por outro lado eu liguei no 0800 da anvisa e o antendente me disse que o sistema encontra-se normal, pediu para que eu envia-se um email com o erro para o suporte da anvisa que dentro de 15 dias eles me retornariam.

 

alguem esta conseguindo enviar os arquivos normalmente?

 

Grato a quem responder!

Att
Rodrigo Guelf
 

Link para o comentário
Compartilhar em outros sites

Boa noite, coloquei os fontes do componente em: https://sourceforge.net/projects/sngpc/files/latest/download?source=files

Como não tive muito tempo eu criei as classes para inclusão dos dados e gerão dos arquivos somente. Não tive tempo de fazer nenhuma rotina validação dos dados e nem as rotinas de consumo dos WebServices, caso alguém se habilite pode ficar a vontade. Tá difícil enviar dados para ANVISA pois os serviços estão muito instáveis.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Que a Anvisa iria ferrar com todos os programadores isso eu já sabia.
Ontem tentando transmitir o Inventario de um cliente, depois de muito tentar e não conseguir pelo programa,
acabei enviando diretamente pelo site e deu certo.
Voltando ao programa descobri que o webservice do SNGPC de homologação está diferente do de produção

Homologação : http://homologacao.anvisa.gov.br/sngpc/webservice/sngpc.asmx?WSDL

Produção : http://sngpc.anvisa.gov.br/webservice/sngpc.asmx?WSDL

Tentando adequar o programa para envio, a aplicação trava, então estou tentando fazer um procedimento mais simples que é
checar se a senha do usuário está correta
Mesmo assim não consegui fazer funcionar, a aplicação trava.
Postei aqui o código para que os colegas com mais experiência consigam ajudar.

procedure TSge078b.BitBtn1Click(Sender: TObject);
var
  Ws: SngpcSoap;
  ChecaUsu: ValidarUsuario;
  MensRet: ValidarUsuarioResponse;
begin
  ChecaUsu:= ValidarUsuario.Create;
  ChecaUsu.Email:= '[email protected]';
  ChecaUsu.Senha:= 'senha';
  MensRet:= ValidarUsuarioResponse.Create;
  Ws:= GetSngpcSoap;
  try
    MensRet:= Ws.ValidarUsuario(ChecaUsu);
    Mensagem(MensRet.ValidarUsuarioResult);
    Self.Close;
  except
    Mensagem('Não foi possível enviar o arquivo XML. Verifique se sua conexão com a internet está funcionando');
  end;
end;

Link para o comentário
Compartilhar em outros sites

Renan você precisa comprimir o texto do xml usando a ZLib e depois codificar em base64. Criei esta rotina para comprimir e codificar:

function ZEncodeB64(const Input: AnsiString): AnsiString;
var
  MStream: TMemoryStream;
  ZLibStream: TCompressionStream;
  StringStream: TStringStream;
begin
  MStream := TMemoryStream.Create;
  try
    ZLibStream := TCompressionStream.Create(clDefault, MStream);
    try
      ZLibStream.Write(Input[1], Length(Input));
    finally
      FreeAndNil(ZLibStream);
    end;
    StringStream := TStringStream.Create('');
    try
      MStream.Position := 0;
      EncodeStream(MStream, StringStream);
      Result := StringStream.datastring;
    finally
      FreeAndNil(StringStream);
    end;
  finally
    FreeAndNil(MStream);
  end;
end;
Link para o comentário
Compartilhar em outros sites

Pessoal uma dica:

para testar a comunicação e retorno dos dados utilize o WebService de produção http://sngpc.anvisa.gov.br/webservice/sngpc.asmx?WSDL pois a homologação não está funcionando. Para evitar que os arquivos sejam processados, coloque alguma informação inválida no final do arquivo xml como uma tag com valor inválido por exemplo, pois assim o sistema vai validar todo o arquivo e caso seus dados esteja consistentes o único erro retornado será o que você inclui propositalmente. É assim que estou fazendo.

Ex.:

            <dataPerdaInsumo>***ERRO***</dataPerdaInsumo>

        <insumoCNPJFornecedor>99900099900000</insumoCNPJFornecedor>

    </saidaInsumoPerda>

</insumos>

Link para o comentário
Compartilhar em outros sites

Boa tarde .. em modo homologação eu finalizei o meu inventário dia 16/04, transmiti o inventário ontem (18/04) e amanha irei fazer o envio da primeira movimentação depois dessa instalabilidade. Parece que ta tudo Ok ja com o WS da Anvisa, inclusive ja tenho clientes em modo de produção ja enviando arquivos a partir de hoje.

Estou a disposição para qualquer ajuda.

 

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2472 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...