public function faturaconvenioAction($cdbilling = 23, $cdcovenant = 1) { /* DADOS DA FATURA */ $billingModel = new BillingModel(); $billingData = $billingModel->fetchRow('cdbilling = ' . $cdbilling); /* EXAMES DA FATURA */ $billingExaminationModel = new BillingExaminationModel(); $billingExaminationData = $billingExaminationModel->fetchAll('cdbilling = ' . $cdbilling); /* DADOS DO CONVÊNIO */ $covenantModel = new CovenantModel(); $covenantData = $covenantModel->fetchRow($cdcovenant); /* VARIÁVEIS DO XML */ $sequencialTransacao = $billingData['nrbatch']; $doc = new DOMDocument(); $doc->formatOutput = true; $root = $doc->appendChild($doc->createElementNS($ans = 'http://www.ans.gov.br/padroes/tiss/schemas http://www.ans.gov.br/padroes/tiss/schemas/tissV2_02_01.xsd', 'ans:mensagemTISS')); $root->setAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation', 'http://www.ans.gov.br/padroes/tiss/schemas http://www.ans.gov.br/padroes/tiss/schemas/tissV2_02_01.xsd'); /* * * Cabeçalho padrão * */ /*$cabecalho = $root->appendChild($doc->createElementNS($ans, 'ans:cabecalho')); $identificacaoTransacao = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:identificacaoTransacao')); $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:tipoTransacao', 'ENVIO_LOTE_GUIAS')); $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:sequencialTransacao', $sequencialTransacao)); // ***************************** ?????????????? ******************************** $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:dataRegistroTransacao', date("Y-m-d"))); $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:horaRegistroTransacao', date("H:i:s"))); $origem = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:origem')); $CNPJ = $origem->appendChild($doc->createElementNS($ans, 'ans:codigoPrestadorNaOperadora')); $CNPJ->appendChild($doc->createElementNS($ans, 'ans:CNPJ', $covenantData->idcnpj)); $destino = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:destino')); $registroANS = $destino->appendChild($doc->createElementNS($ans, 'ans:registroANS', $covenantData->nrans)); // ***************************** ADICIONAR NA TABELA ******************************** $versaoPadrao = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:versaoPadrao', '2.02.01')); $prestadorParaOperadora = $root->appendChild($doc->createElementNS($ans, 'ans:prestadorParaOperadora')); $loteGuias = $prestadorParaOperadora->appendChild($doc->createElementNS($ans, 'ans:loteGuias')); $loteGuias->appendChild($doc->createElementNS($ans, 'ans:numeroLote', $sequencialTransacao)); // ***************************** ?????????????? ******************************** $guias = $loteGuias->appendChild($doc->createElementNS($ans, 'ans:guias')); $guiaFaturamento = $guias->appendChild($doc->createElementNS($ans, 'ans:guiaFaturamento')); /* * * Entra no laço dos dados da guia SP/SADT * */ $numeroRequests = $billingExaminationModel->fetchAll($billingExaminationModel->getDistinctRequests($cdbilling)); /* INSTÂNCIAS DOS MODELS */ $RequestModel = new RequestModel(); foreach ($numeroRequests as $requisicao) { /* DADOS DA REQUISIÇÃO, PACIENTE, CONVÊNIOS VINCULADO E EMPRESA */ $RequestData = $RequestModel->fetchRow($RequestModel->getXMLData($requisicao->requisicao, $cdcovenant)); print_r($RequestData); die; $guiaSP_SADT = $guiaFaturamento->appendChild($doc->createElementNS($ans, 'ans:guiaSP_SADT')); $identificacaoGuiaSADTSP = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:identificacaoGuiaSADTSP')); $identificacaoFontePagadora = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:identificacaoFontePagadora')); $registroANS = $identificacaoFontePagadora->appendChild($doc->createElementNS($ans, 'ans:registroANS', $RequestData->nrans)); $dataEmissaoGuia = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:dataEmissaoGuia', '2012-07-13')); $numeroGuiaPrestador = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:numeroGuiaPrestador')); $numeroGuiaOperadora = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:numeroGuiaOperadora')); $numeroGuiaPrincipal = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:numeroGuiaPrincipal')); $dadosAutorizacao = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dadosAutorizacao')); $dataAutorizacao = $dadosAutorizacao->appendChild($doc->createElementNS($ans, 'ans:dataAutorizacao', date("Y-m-d"))); $senhaAutorizacao = $dadosAutorizacao->appendChild($doc->createElementNS($ans, 'ans:senhaAutorizacao')); $dadosBeneficiario = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dadosBeneficiario')); $numeroCarteira = $dadosBeneficiario->appendChild($doc->createElementNS($ans, 'ans:numeroCarteira', $RequestData->idcovenantcard)); $nomeBeneficiario = $dadosBeneficiario->appendChild($doc->createElementNS($ans, 'ans:nomeBeneficiario', utf8_decode($RequestData->nmcardholder))); $nomePlano = $dadosBeneficiario->appendChild($doc->createElementNS($ans, 'ans:nomePlano', $RequestData->nmcovenantplan)); // ***************************** ADICIONAR NA TABELA ******************************** $dadosSolicitante = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dadosSolicitante')); $contratado = $dadosSolicitante->appendChild($doc->createElementNS($ans, 'ans:contratado')); $identificacao = $contratado->appendChild($doc->createElementNS($ans, 'ans:identificacao')); $CNPJ = $identificacao->appendChild($doc->createElementNS($ans, 'ans:CNPJ', $RequestData->idcnpj)); $nomeContratado = $identificacao->appendChild($doc->createElementNS($ans, 'ans:nomeContratado', utf8_decode($RequestData->nmcompany))); $numeroCNES = $identificacao->appendChild($doc->createElementNS($ans, 'ans:numeroCNES', $RequestData->nrcnes)); $profissional = $dadosSolicitante->appendChild($doc->createElementNS($ans, 'ans:profissional')); $nomeProfissional = $profissional->appendChild($doc->createElementNS($ans, 'ans:nomeProfissional', utf8_decode($RequestData->nmforward))); $conselhoProfissional = $profissional->appendChild($doc->createElementNS($ans, 'ans:conselhoProfissional')); $siglaConselho = $conselhoProfissional->appendChild($doc->createElementNS($ans, 'ans:siglaConselho', $RequestData->nmtypecrm)); $numeroConselho = $conselhoProfissional->appendChild($doc->createElementNS($ans, 'ans:numeroConselho', $RequestData->idmaincrm)); $ufConselho = $conselhoProfissional->appendChild($doc->createElementNS($ans, 'ans:ufConselho', $RequestData->idmaiscrmstate)); $prestadorExecutante = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:prestadorExecutante')); $identificacao = $prestadorExecutante->appendChild($doc->createElementNS($ans, 'ans:identificacao')); $CNPJ = $identificacao->appendChild($doc->createElementNS($ans, 'ans:CNPJ', $RequestData->idcnpj)); $nomeContratado = $prestadorExecutante->appendChild($doc->createElementNS($ans, 'ans:nomeContratado', utf8_decode($RequestData->nmcompany))); $numeroCNES = $prestadorExecutante->appendChild($doc->createElementNS($ans, 'ans:numeroCNES', $RequestData->nrcnes)); $caraterAtendimento = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:caraterAtendimento', 'E')); $dataHoraAtendimento = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dataHoraAtendimento', str_replace(" ", "T", $RequestData->dtrequest))); $tipoSaida = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:tipoSaida', '5')); $tipoAtendimento = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:tipoAtendimento', '05')); $procedimentosRealizados = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:procedimentosRealizados')); /* * * Entra no laço dos dados dos procedimentos * */ for ($j = 0; $j < 5; $j++) { $procedimentos = $procedimentosRealizados->appendChild($doc->createElementNS($ans, 'ans:procedimentos')); $procedimento = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:procedimento')); $codigo = $procedimento->appendChild($doc->createElementNS($ans, 'ans:codigo', '2865')); $tipoTabela = $procedimento->appendChild($doc->createElementNS($ans, 'ans:tipoTabela', '02')); $descricao = $procedimento->appendChild($doc->createElementNS($ans, 'ans:descricao', 'ANTIGENO AUSTRALIA HBSAG')); $data = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:data', '2012-07-13')); $horaInicio = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:horaInicio', '13:02:56')); $horaFim = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:horaFim', '14:05:20')); $quantidadeRealizada = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:quantidadeRealizada', '1')); $viaAcesso = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:viaAcesso', 'U')); $tecnicaUtilizada = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:tecnicaUtilizada', 'C')); $reducaoAcrescimo = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:reducaoAcrescimo', '1.00')); $valor = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:valor', '23.25')); $valorTotal = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:valorTotal', '23.25')); } } /*$epilogo = $root->appendChild($doc->createElementNS($ans, 'ans:epilogo')); $els = $doc->getElementsByTagName('*'); for ($i = 0; $i < $els->length; $i++) { if (!$els->item($i)->hasChildNodes()) { } elseif ($els->item($i)->firstChild->nodeType == 3) { $tmp = $els->item($i)->textContent; if (preg_match("/\n/", $tmp)) { $tmp = preg_replace("/\n/", "", $tmp); } $mensagemTISS = $mensagemTISS . ($tmp); } } $hash = md5($mensagemTISS); $hash2 = $root->appendChild($doc->createElementNS($ans, 'ans:hash', $hash));*/ //header("Content-Type: text/xml"); }