Webservice farmácia popular
11/11/2009
0
Tenho que devenvolver aqui e estou agarradão com isso.
Alguém pode me dar uma luz?
Francisco Junior
Posts
11/11/2009
Francisco Junior
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));
11/11/2009
Alex Maia
Clique aqui para fazer login e interagir na Comunidade :)