Webservice farmácia popular

11/11/2009

alguém por aqui já fez a comunicação com o webservice farmácia popular?

Tenho que devenvolver aqui e estou agarradão com isso.

Alguém pode me dar uma luz?

Rairo

Respostas

11/11/2009

Alex Maia

Qual é a sua dúvida?
Responder Citar

11/11/2009

Rairo

é o seguinte peguei esse rotina para comunição do farma´cia popular  no antigo fórum

Var
wDataSUS: ServicoSolicitacaoWS ;
Item : Integer;
Autorizacao : AutorizacaoDTO;
Usuario : UsuarioFarmaciaDTO;
Medicamentos : ArrayOfMedicamentoDTO;
Solicitacao : SolicitacaoDTO;
RetornoPesq : RetornoPesquisaDTO ;
begin
HTTPRIO1.URL := 'https://200.214.130.41:9443/farmaciahomologa/services/ServicoSolicitacaoWS';
HTTPRIO1.WSDLLocation := 'https://200.214.130.41:9443/farmaciahomologa/services/ServicoSolicitacaoWS?wsdl';
HTTPRIO1.Service := 'ServicoSolicitacaoWSService';
HTTPRIO1.Port := 'ServicoSolicitacaoWS';
wDaTaSUS := HTTPRIO1 AS ServicoSolicitacaoWS ;
Usuario := UsuarioFarmaciaDTO.Create;
Usuario.usuario :='12397737';
Usuario.senha :='11223344' ;
Item := 0;
SetLength(Medicamentos, 1);
Medicamentos[Item] := MedicamentoDTO.Create;
Medicamentos[Item].coCodigoBarra := '7896523206486';
Medicamentos[Item].qtPrescrita := 1 ;
Medicamentos[Item].qtSolicitada := 1 ;
Medicamentos[Item].vlPrecoVenda := 1 ;
Medicamentos[Item].dsUnidApresentacao := '30';
Solicitacao := SolicitacaoDTO.Create;
Solicitacao.arrMedicamentoDTO := MedicamentoS;
Solicitacao.coSolicitacaoFarmacia := '000256';
Solicitacao.dtEmissaoReceita := TXSDateTime.Create;
Solicitacao.dtEmissaoReceita.AsDateTime := now;
Solicitacao.nuCnpj := '01762416000100';
Solicitacao.nuCpf := '00106384155';
Solicitacao.nuCrm := '85743';
Solicitacao.sgUfCrm := 'SP';
Autorizacao := AutorizacaoDTO.Create;
Autorizacao := wDataSUS.executarSolicitacao(Solicitacao, Usuario);
Memo1.Lines.Add( Autorizacao.descMensagemErro) ;

essa primeira rotina é para fazer a solicitação do medicamento.
Depois tem que ser feita a segunda etapa para a confirmação da autorização. segue abaixo


  Confirmacao  := ConfirmacaoDTO.Create;
  Confirmacao.coSolicitacaoFarmacia := dbedt1.DataBinding.Field.AsString;
  Confirmacao.nuAutorizacao         := dbedt4.DataBinding.Field.AsString;
  Confirmacao.nuCupomFiscal         := dbedt3.DataBinding.Field.AsString;

  mmo1.Lines.Add('***********************************************');
  mmo1.Lines.Add('*   ENVIAR CONFIRMAÇÃO PARA O WEBSERVICE!!!!  *');
  mmo1.Lines.Add('***********************************************');
  mmo1.Lines.Add(' ');
  ConfirmaAutorizacao := ConfirmacaoAutorizacaoDTO.Create;
  ConfirmaAutorizacao := wDataSUS.confirmarAutorizacao(Confirmacao, Usuario);
  mmo1.Lines.Add(' coSolicitacaoFarmacia    : '+ ConfirmaAutorizacao.coSolicitacaoFarmacia);
  mmo1.Lines.Add(' descMensagemErro         : '+ ConfirmaAutorizacao.descMensagemErro);
  mmo1.Lines.Add(' inAutorizacaoSolicitacao : '+ ConfirmaAutorizacao.inAutorizacaoSolicitacao);
  mmo1.Lines.Add(' noPessoa                 : '+ ConfirmaAutorizacao.noPessoa);
  mmo1.Lines.Add(' nuAutorizacao            : '+ ConfirmaAutorizacao.nuAutorizacao);
  mmo1.Lines.Add(' nuCupomFiscal            : '+ ConfirmaAutorizacao.nuCupomFiscal);
  mmo1.Lines.Add(' statusConfirmacao        : '+ ConfirmaAutorizacao.statusConfirmacao);
  mmo1.Lines.Add(' ');


  if ( ( ConfirmaAutorizacao.inAutorizacaoSolicitacao = '00A' ) or
       ( ConfirmaAutorizacao.inAutorizacaoSolicitacao = '01A' ) ) then
  begin
    mmo1.Lines.Add('***********************************************');
    mmo1.Lines.Add('*      DADOS DO RETORNO DO WEBSERVICE!!!!     *');
    mmo1.Lines.Add('***********************************************');
    mmo1.Lines.Add(' ');
    mmo1.Lines.Add('Código de solicitação : '+ConfirmaAutorizacao.coSolicitacaoFarmacia);
    mmo1.Lines.Add('Data de Confirmação   : '+FormatDateTime('dd/mm/yy',Now));
    mmo1.Lines.Add('Status da Confirmação : '+ConfirmaAutorizacao.statusConfirmacao);
    mmo1.Lines.Add('Cupom Fiscal          : '+ConfirmaAutorizacao.nuCupomFiscal);
    mmo1.Lines.Add('Mensagem de Erro      : '+ConfirmaAutorizacao.descMensagemErro);
    mmo1.Lines.Add('Nome do paciente      : '+ConfirmaAutorizacao.noPessoa);

    dm1.tblPreautoriza.Edit;
    dm1.tblPreautoriza.FieldByName('NumeroPreAutorizacao').AsString := ConfirmaAutorizacao.coSolicitacaoFarmacia;
    dm1.tblPreautoriza.FieldByName('DataConfirmacao').AsDateTime    := Now;
    dm1.tblPreautoriza.FieldByName('StatusConfirmacao').AsString    := ConfirmaAutorizacao.statusConfirmacao;
    dm1.tblPreautoriza.FieldByName('NomePaciente').AsString         := ConfirmaAutorizacao.noPessoa;

    dm1.tblPreautoriza.Post;


    dm1.tblItemPreAutoriza.Edit;
    dm1.tblItemPreAutoriza.FieldByName('CodigoRetorno').AsString := Autorizacao.descMensagemErro;
    dm1.tblItemPreAutoriza.Post;
  end;


Até então achei que estava tudo bonitinho e tal, só depois que reparei que tenho que receber a lista dos medicamentos. que é devolvida atraves de um array.

tentei fazer o seguinte

cara conversando aqui resolvi o problema...


    Medicamentos := ConfirmaAutorizacao.arrMedicamentoDTO;
    item := 0;
    SetLength(Medicamentos, 1);

    Medicamentos[item].inAutorizacaoMedicamento  := ConfirmaAutorizacao.arrMedicamentoDTO[item].inAutorizacaoMedicamento;
    mmo1.Lines.Add('in autorizacao medicamento'+ConfirmaAutorizacao.arrMedicamentoDTO[item].inAutorizacaoMedicamento);

    Medicamentos[item].coCodigoBarra  := ConfirmaAutorizacao.arrMedicamentoDTO[item].coCodigoBarra;
    mmo1.Lines.Add('codigo de barra'+ConfirmaAutorizacao.arrMedicamentoDTO[item].coCodigoBarra);

    Medicamentos[item].qtPrescrita    := ConfirmaAutorizacao.arrMedicamentoDTO[item].qtPrescrita;
    mmo1.Lines.Add('qt. prescrita : '+floattostr(ConfirmaAutorizacao.arrMedicamentoDTO[item].qtPrescrita));

    Medicamentos[item].qtSolicitada   := ConfirmaAutorizacao.arrMedicamentoDTO[item].qtSolicitada;
    mmo1.Lines.Add('qt. solicitada : '+floattostr(ConfirmaAutorizacao.arrMedicamentoDTO[item].qtSolicitada));

    Medicamentos[item].qtAutorizada   := ConfirmaAutorizacao.arrMedicamentoDTO[item].qtAutorizada;
    mmo1.Lines.Add('qtautorizada : '+floattostr(ConfirmaAutorizacao.arrMedicamentoDTO[item].qtAutorizada));

    Medicamentos[item].vlPrecoVenda   := ConfirmaAutorizacao.arrMedicamentoDTO[item].vlPrecoVenda;
    mmo1.Lines.Add('vl preco venda: '+floattostr(ConfirmaAutorizacao.arrMedicamentoDTO[item].vlPrecoVenda));

    Medicamentos[item].vlPrecoSubsidiadoMS   := ConfirmaAutorizacao.arrMedicamentoDTO[item].vlPrecoSubsidiadoMS;
    mmo1.Lines.Add('vl. preco sub. ms.:'+floattostr(ConfirmaAutorizacao.arrMedicamentoDTO[item].vlPrecoSubsidiadoMS));

    Medicamentos[item].vlPrecoSubsidiadoPaciente   := ConfirmaAutorizacao.arrMedicamentoDTO[item].vlPrecoSubsidiadoPaciente;
    mmo1.lines.add('vl. preco paciente: '+ floattostr(ConfirmaAutorizacao.arrMedicamentoDTO[item].vlPrecoSubsidiadoPaciente));




Responder Citar

11/11/2009

Alex Maia

Você tem algum manual ou roteiro pra ajustes e homologação do seu sistema?
Responder Citar