001 Retrieving XML by Using FOR XML
--#############################################################################
-- Using XML
--#############################################################################
-- Situações em que podemos usar XML:
--
-- Recuperando dados que serão publicados em um site na Internet.
-- Recuperando dados para troca com um parceiro comercial, independente
-- da plataforma utilizada.
USE master
GO
IF EXISTS (SELECT * FROM sys.databases
WHERE [name] = 'DB6232')
DROP DATABASE DB6232
GO
CREATE DATABASE DB6232
GO
USE DB6232
GO
CREATE TABLE contatos
(
codigo INT IDENTITY,
nome VARCHAR(50)
)
GO
INSERT INTO contatos VALUES('Aline')
INSERT INTO contatos VALUES('Vivian')
INSERT INTO contatos VALUES('Eduardo')
INSERT INTO contatos VALUES('Rodrigo')
INSERT INTO contatos VALUES('Michele')
SELECT codigo, nome FROM contatos
--#############################################################################
-- RAW
--#############################################################################
SELECT codigo AS cod, nome FROM contatos
FOR XML RAW
SELECT codigo AS cod, nome FROM contatos
FOR XML RAW, ELEMENTS
SELECT codigo AS cod, nome FROM contatos
FOR XML RAW ('code'), ROOT('contatos')
-- Ou
SELECT codigo AS cod, nome FROM contatos
FOR XML RAW ('code'), ROOT('contatos'), ELEMENTS
--#############################################################################
-- AUTO
--#############################################################################
SELECT codigo AS cod, nome FROM contatos
FOR XML AUTO
SELECT * FROM contatos
FOR XML AUTO , XMLDATA
SELECT * FROM contatos FOR
XML AUTO , ELEMENTS
SELECT * FROM contatos
FOR XML RAW , XMLDATA
002 Shredding XML by Using OPENXML
--####################################################################-- Inserindo dados
--####################################################################
USE master
GO
IF EXISTS (SELECT * FROM sys.databases
WHERE [name] = 'DB6232')
DROP DATABASE DB6232
GO
CREATE DATABASE DB6232
GO
USE DB6232
GO
--Criar tabela
CREATE TABLE funcionario
(
cod_func INT,
nome_func VARCHAR(50) NOT NULL,
sal_func MONEY NOT NULL
)
GO
--Criar User Stored Procedure
CREATE PROC proc_ProcessandoFuncionario
@doc XML
AS
DECLARE @hdoc INT
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc
INSERT funcionario
SELECT *
FROM OPENXML(@hdoc, 'dados/func')
WITH funcionario
EXEC sp_XML_removedocument @hdoc
--Inserindo dados na tabela funcionario
DECLARE @Dados XML
SET @Dados='
<dados>
<func cod_func="1" nome_func="Pedro" sal_func="7000" />
<func cod_func="2" nome_func="Maria" sal_func="3000" />
<func cod_func="3" nome_func="Melissa" sal_func="2500" />
<func cod_func="4" nome_func="Daniel" sal_func="2000" />
<func cod_func="5" nome_func="Julia" sal_func="2000" />
<func cod_func="6" nome_func="Julieta" sal_func="2000" />
</dados>'
exec proc_ProcessandoFuncionario @Dados
--Verificando os dados na tabela
SELECT * FROM funcionario
--Inserindo MAIS dados na tabela funcionario
DECLARE @Dados XML
SET @Dados='
<dados>
<func cod_func="7" nome_func="Julius" sal_func="4500" />
<func cod_func="8" nome_func="Marcos" sal_func="2400" />
<func cod_func="9" nome_func="Isabela" sal_func="1500" />
<func cod_func="10" nome_func="Marina" sal_func="1000" />
</dados>'
exec proc_ProcessandoFuncionario @Dados
--Verificando NOVAMENTE os dados na tabela
SELECT * FROM funcionario
--####################################################################
-- Exportando e Importando dados
--####################################################################
USE master
GO
IF EXISTS (SELECT * FROM sys.databases
WHERE [name] = 'DB6232')
DROP DATABASE DB6232
GO
CREATE DATABASE DB6232
GO
USE AdventureWorks
GO
--Extraindo os dados no formato XML
SELECT C.CustomerID AS CustID, CustomerType, SalesOrderID
FROM Sales.Customer C JOIN Sales.SalesOrderHeader O
ON C.CustomerID = O.CustomerID
WHERE C.CustomerID = 1
ORDER BY C.CustomerID
FOR XML RAW, ROOT('dados')
USE DB6232
GO
--Criar tabela
CREATE TABLE customer
(
CustID INT,
CustomerType CHAR(01),
SalesOrderID CHAR(05)
)
GO
--Criar User Stored Procedure
CREATE PROC proc_customer
@doc XML
AS
DECLARE @hdoc INT
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc
--
INSERT customer
SELECT *
FROM OPENXML(@hdoc, 'dados/row')
WITH customer
--
EXEC sp_XML_removedocument @hdoc
--Inserindo dados na tabela customer
DECLARE @Dados XML
SET @Dados='
<dados>
<row CustID="1" CustomerType="S" SalesOrderID="43860" />
<row CustID="1" CustomerType="S" SalesOrderID="44501" />
<row CustID="1" CustomerType="S" SalesOrderID="45283" />
<row CustID="1" CustomerType="S" SalesOrderID="46042" />
</dados>'
exec proc_customer @Dados
SELECT * FROM customer
--####################################################################
-- OPENXML
--####################################################################
--Consultando dados no formato XML - somente um nível
USE DB6232
GO
DECLARE @hdoc int
DECLARE @doc varchar(1000)
SET @doc ='
<?xml version="1.0" ?>
<Produto>
<Prod Cod_Prod="1" Nome_Prod="Arroz" Val_Prod="7,99" Qtda="30" />
<Prod Cod_Prod="2" Nome_Prod="Banana" Val_Prod="1,33" Qtda="45" />
<Prod Cod_Prod="3" Nome_Prod="Cenoura" Val_Prod="2,10" Qtda="20" />
<Prod Cod_Prod="4" Nome_Prod="Farinha" Val_Prod="1,89" Qtda="190" />
<Prod Cod_Prod="5" Nome_Prod="Laranja" Val_Prod="2,50" Qtda="210" />
</Produto>'
-- Entendendo alguns componentes do XML
-- Produto é um ELEMENTO
-- Prod é um ELEMENTO
-- Cod_Prod, Nome_Prod, Val_Prod e Qtda são ATRIBUTO
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc
SELECT *
FROM OPENXML (@hdoc, '/Produto/Prod', 1)
WITH ( Cod_Prod int,
Nome_Prod varchar(20),
Val_Prod money,
Qtda smallint)
EXEC sp_xml_removedocument @hdoc
--Consultando dados no formato XML - mais de um nível
DECLARE @hdoc int
DECLARE @doc varchar(1000)
SET @doc ='
<Cliente Cod_Cli="1" Tipo_Cli="J">
<Pedido Cod_Pedido="0001" Data_Pedido="2008-03-19">
<Detalhe_Pedido Cod_Prod="609" Qtda="2"/>
<Detalhe_Pedido Cod_Prod="109" Qtda="5"/>
<Detalhe_Pedido Cod_Prod="604" Qtda="3"/>
<Detalhe_Pedido Cod_Prod="117" Qtda="7"/>
<Detalhe_Pedido Cod_Prod="199" Qtda="9"/>
</Pedido>
<Pedido Cod_Pedido="0002" Data_Pedido="2008-03-26">
<Detalhe_Pedido Cod_Prod="911" Qtda="2"/>
<Detalhe_Pedido Cod_Prod="923" Qtda="5"/>
<Detalhe_Pedido Cod_Prod="945" Qtda="3"/>
<Detalhe_Pedido Cod_Prod="919" Qtda="7"/>
<Detalhe_Pedido Cod_Prod="934" Qtda="9"/>
</Pedido>
</Cliente>'
-- Entendendo alguns componentes do XML
-- Cliente é um ELEMENTO
-- Cod_Cli e Tipo_Cli são ATRIBUTO
-- Pedido é um ELEMENTO
-- Cod_Pedido e Data_Pedido são ATRIBUTO
-- Detalhe_Pedido é um ELEMENTO
-- Cod_Prod e Qtda são ATRIBUTO
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc
SELECT *
FROM OPENXML (@hdoc, '/Cliente/Pedido/Detalhe_Pedido', 3)
WITH (Cod_Cli int '../../@Cod_Cli',
Cod_Pedido int '../@Cod_Pedido',
Data_Pedido smalldatetime '../@Data_Pedido',
Cod_Prod int '@Cod_Prod',
Qtda int '@Qtda')
EXEC sp_xml_removedocument @hdoc
003 Using the xml Data Type
--####################################################################-- Data Type - XML
--####################################################################
USE master
GO
IF EXISTS (SELECT * FROM sys.databases
WHERE [name] = 'DB6232')
DROP DATABASE DB6232
GO
CREATE DATABASE DB6232
GO
USE DB6232
GO
-- Create the table.
CREATE TABLE produtos
(
cod_prod INT PRIMARY KEY,
Descricao XML
)
GO
-- Insert sample data.
INSERT INTO produtos values(1,'<Descricao cod_prod="1" nome="Batata" />')
INSERT INTO produtos values(2,'<Descricao cod_prod="2" nome="Cenoura" />')
INSERT INTO produtos values(3,'<Descricao cod_prod="3" nome="Beterraba" />')
GO
SELECT * FROM produtos
-- Create view (note the value() method used to retrieve ProductName
-- attribute value from the XML).
CREATE VIEW vw_produtos AS
SELECT cod_prod,
Descricao.value('(/Descricao/@nome)[1]', 'varchar(40)') AS Nome
FROM produtos
GO
SELECT * FROM vw_produtos
004 Inserting
USE masterGO
IF EXISTS (SELECT * FROM sys.databases
WHERE [name] = 'DB6232')
DROP DATABASE DB6232
GO
CREATE DATABASE DB6232
GO
USE DB6232
GO
CREATE TABLE livros
(
id int IDENTITY(1,1) PRIMARY KEY,
isbn char(10) NOT NULL,
titulo varchar(250) NOT NULL,
autor_id int NOT NULL,
Descricao xml NULL
)
GO
SELECT * FROM livros
INSERT livros (isbn, titulo, autor_id, Descricao)
VALUES ('570X000000',
'SQL Server 2005 T-SQL Recipes',
55,
CAST('<Book name="SQL Server 2005 T-SQL Recipes">
<Chapters>
<Chapter id="1"> SELECT </Chapter>
<Chapter id="2"> INSERT,UPDATE,DELETE </Chapter>
<Chapter id="3"> Transactions, Locking, Blocking, and Deadlocking </Chapter>
<Chapter id="4"> Tables </Chapter>
<Chapter id="5"> Indexes </Chapter>
<Chapter id="6"> Full-text search </Chapter>
</Chapters>
</Book>' as XML))
SELECT * FROM livros
script_XML_ANINHADO_AUTO
--XML Aninhado
--No XML AUTO, permite especificar se as colunas serao mapeadas para elementos ou atributos
-- no fragmento XML usando a opcao ELEMENTS. Ou quando definimos um JOIN. Porem so podemos
--especificar uma ou outra opcao para os elementos.
--XML AUTO
SELECT cust.CustomerID,cust.TerritoryID,SalesOrderID
FROM Sales.Customer cust
JOIN Sales.SalesOrderHeader ord ON cust.CustomerID = ord.CustomerID
ORDER BY cust.CustomerID
FOR XML AUTO
--XML AUTO - ELEMENTS
SELECT cust.CustomerID,cust.TerritoryID,SalesOrderID
FROM Sales.Customer cust
JOIN Sales.SalesOrderHeader ord ON cust.CustomerID = ord.CustomerID
ORDER BY cust.CustomerID
FOR XML AUTO,ELEMENTS
--XML AUTO ANINHADO
select Name as CategoryName,
(select Name SubCategory
from Production.ProductSubcategory SubCategory
where SubCategory.ProductCategoryID=Category.ProductCategoryID
FOR XML AUTO, TYPE, ELEMENTS)
from Production.ProductCategory Category
FOR XML AUTO
script_XML_ANINHADO_EXPLICIT
--XML EXPLICIT
select 1 as Tag,
NULL as Parent,
sls.SalesOrderID as [Invoice!1!InvoiceNo!Element],
sls.ModifiedDate as [Invoice!1!Date!Element]
from Sales.SalesOrderDetail sls
FOR XML EXPLICIT
--XML EXPLICIT - ANINHADO
select 1 as TAG,
NULL as Parent,
SalesOrderID as [Invoice!1!InvoiceNo],
OrderDate as [Invoice!1!Date!Element],
NULL as [LineItem!2!ProductID],
NULL as [LineItem!2]
from Sales.SalesOrderHeader
UNION ALL
Select 2 as Tag,
1 as Parent,
OrderDetail.SalesOrderID,
NULL,
OrderDetail.ProductID,
Product.Name
from Sales.SalesOrderDetail OrderDetail
JOIN Sales.SalesOrderHeader OrderHeader on
OrderDetail.SalesOrderID=OrderHeader.SalesOrderID
JOIN Production.Product Product on
OrderDetail.ProductID=Product.ProductID
order by [Invoice!1!InvoiceNo],[LineItem!2!ProductID]
FOR XML EXPLICIT
script_XML_AUTO
--XML - Modo AUTO
--O modo AUTO retorna os resultados da consulta como elementos XML simples e aninhados,
--ou seja, cada tabela indicada depois da cláusula FROM, é um elemento do XML ,
--as colunas indicadas no SELECT são atributos. Utilizamos o AS para nomear os elementos
--Representacao XML de entidade de dados
--Aninham dados com base na precedencia da juncao
--Podem usar opcoes como ELEMENTS e ROOT
--.Cada linha retornada pela consulta e representada por um elemento XML como mesmo nome
--da tabela da qual foi recuperada
--.Cada instrucao JOIN na consulta resulta em um elemento XML aninhado, o que reduz a
--duplicacao de dados fragmentados. A ordem da instrucao JOIN afeta a ordem dos elementos
--.Para assegurar que os elementos filhos sejam agrupados corretamente com seu respectivo
--pai, usa-se a clausula ORDER BY
--Nao ha suporte para GROUP BY
SELECT cust.CustomerID,cust.TerritoryID,SalesOrderID
FROM Sales.Customer cust
JOIN Sales.SalesOrderHeader ord ON cust.CustomerID = ord.CustomerID
ORDER BY cust.CustomerID
FOR XML AUTO
--Especificando a opcao ELEMENTS
SELECT cust.CustomerID,cust.TerritoryID,SalesOrderID
FROM Sales.Customer cust
JOIN Sales.SalesOrderHeader ord ON cust.CustomerID = ord.CustomerID
ORDER BY cust.CustomerID
FOR XML AUTO,ELEMENTS
--Especificando um ROOT
SELECT cust.CustomerID,cust.TerritoryID,SalesOrderID
FROM Sales.Customer cust
JOIN Sales.SalesOrderHeader ord ON cust.CustomerID = ord.CustomerID
ORDER BY cust.CustomerID
FOR XML AUTO,ELEMENTS,ROOT('Orders')
script_XML_EXPLICIT
--XML Modo EXPLICT
--Permite personalizar nosso arquivo XML
--Temos que especificar
--ElementName!TagNumber!AttibuteName!Directive
select 1 as Tag,
NULL as Parent,
sls.SalesOrderID as [Invoice!1!InvoiceNo!Element],
sls.ModifiedDate as [Invoice!1!Date!Element]
from Sales.SalesOrderDetail sls
FOR XML EXPLICIT
script_XML_PATH
--XML PATH
--O Modo PATH personaliza o XML, criando um mapeamento com os seguintes valores
--atributos-elementos-subelementos-nos de texto-valores
--Os nos XML de uma arvore sao expressos como caminho e separados por barras
--Os atributos sao indicados com um prefixo de arroba
--Os caminhos relativos podem ser indicados com um unico ponto
use AdventureWorks
go
--XML Path Personalizado
--No Pai - ContactID Nos Filhos - FirstName-LastName
select c.ContactID "@ContactID",
c.FirstName "EmpName/First",
c.LastName "LastName/Last"
from Person.Contact c
for XML PATH
--Mudar o nome do Elemento Raiz
select c.ContactID "@ContactID",
c.FirstName "EmpName/First",
c.LastName "LastName/Last"
from Person.Contact c
for XML PATH('Contact')
script_XML_RAW
--No modo RAW cada resultado da instrução SELECT vem em linha de acordo com o nome
--fornecido ao RAW (que se não for fornecido é raw mesmo)
--Representacao XML em um conjunto de Linhas
--Contem elementos ou atributos
--Nome opcional do elemento raiz e do elemento
--Um elemento representa cada linha no conjunto de resultados retornados pela consulta
--Um atributo como mesmo nome da coluna ou alias usado na consulta representa cada coluna do conjunto de resultados
--Modo RAW pode incluir consultas agregadas e clausulas group by
use AdventureWorks2008
go
--tabela de produtos
select * from Production.Product
--select normal
select ProductID,Name,ProductNumber,Color
from Production.Product
--recuperando os dados modo raw-generico
select ProductID,Name,ProductNumber,Color,SafetyStockLevel
from Production.Product
for xml raw
--recuperando os dados como elementos
select ProductID,Name,ProductNumber,Color,SafetyStockLevel
from Production.Product
for xml raw,elements
--recuperando dados com um elemento raiz e um nome de elemento row personalizado
select cust.CustomerID CustID,[Order].SalesOrderID,[order].Status
from Sales.Customer cust
join Sales.SalesOrderHeader [Order] on cust.CustomerID = [order].CustomerID
order by cust.CustomerID
for XML RAW('Order'), ROOT('Orders')
--usando funcao agregada - group by
select cust.CustomerID CustID,[Order].SalesOrderID,[order].Status,SUM(SubTotal) as Total
from Sales.Customer cust
join Sales.SalesOrderHeader [Order] on cust.CustomerID = [order].CustomerID
group by cust.CustomerID,[Order].SalesOrderID,[order].Status
order by cust.CustomerID
for XML RAW('Order'), ROOT('Orders')
--Arquivo de exemplo FATURA.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--1.1.608 -->
<ans:mensagemTISS xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas" xmlns:xsi="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_01_03.xsd">
<ans:cabecalho>
<ans:identificacaoTransacao>
<ans:tipoTransacao>ENVIO_LOTE_GUIAS</ans:tipoTransacao>
<ans:sequencialTransacao>754</ans:sequencialTransacao>
<ans:dataRegistroTransacao>13/05/2010</ans:dataRegistroTransacao>
<ans:horaRegistroTransacao>14:55</ans:horaRegistroTransacao>
</ans:identificacaoTransacao>
<ans:origem>
<ans:codigoPrestadorNaOperadora>
<ans:codigoPrestadorNaOperadora>90016</ans:codigoPrestadorNaOperadora>
</ans:codigoPrestadorNaOperadora>
</ans:origem>
<ans:destino>
<ans:registroANS>000043</ans:registroANS>
</ans:destino>
<ans:versaoPadrao>2.01.03</ans:versaoPadrao>
</ans:cabecalho>
<ans:prestadorParaOperadora>
<ans:loteGuias>
<ans:numeroLote>738</ans:numeroLote>
<ans:guias>
<ans:guiaFaturamento>
<ans:guiaResumoInternacao>
<ans:identificacaoGuiaInternacao>
<ans:registroANS>000043</ans:registroANS>
<ans:dataEmissaoGuia>15/04/2010</ans:dataEmissaoGuia>
<ans:numeroGuiaPrestador>341050</ans:numeroGuiaPrestador>
<ans:numeroGuiaOperadora></ans:numeroGuiaOperadora>
</ans:identificacaoGuiaInternacao>
<ans:numeroGuiaSolicitacao>341050</ans:numeroGuiaSolicitacao>
<ans:dadosBeneficiario>
<ans:numeroCarteira>81236000002430011</ans:numeroCarteira>
<ans:nomeBeneficiario>ALEXANDRO MENDES PEREIRA</ans:nomeBeneficiario>
<ans:nomePlano>S A APART EMPRESARIAL</ans:nomePlano>
<ans:validadeCarteira>30/04/2010</ans:validadeCarteira>
<ans:numeroCNS></ans:numeroCNS>
<ans:identificadorBeneficiario></ans:identificadorBeneficiario>
</ans:dadosBeneficiario>
<ans:identificacaoExecutante>
<ans:identificacao>
<ans:codigoPrestadorNaOperadora>90016</ans:codigoPrestadorNaOperadora>
</ans:identificacao>
<ans:nomeContratado>HOSPITAL PIO XII</ans:nomeContratado>
<ans:enderecoContratado>
<ans:tipoLogradouro>081</ans:tipoLogradouro>
<ans:logradouro>RUA PARAGUASSU</ans:logradouro>
<ans:numero>51</ans:numero>
<ans:complemento></ans:complemento>
<ans:codigoIBGEMunicipio>0354990</ans:codigoIBGEMunicipio>
<ans:municipio>SAO JOSE DOS CAMPOS</ans:municipio>
<ans:codigoUF>SP</ans:codigoUF>
<ans:cep>12212110</ans:cep>
</ans:enderecoContratado>
<ans:numeroCNES>0009601</ans:numeroCNES>
</ans:identificacaoExecutante>
<ans:dadosAutorizacao>
<ans:dataAutorizacao>15/04/2010</ans:dataAutorizacao>
<ans:senhaAutorizacao>1000433749</ans:senhaAutorizacao>
<ans:validadeSenha>15/05/2010</ans:validadeSenha>
</ans:dadosAutorizacao>
<ans:caraterInternacao>U</ans:caraterInternacao>
<ans:acomodacao>1</ans:acomodacao>
<ans:dataHoraInternacao>15/04/2010H13:15</ans:dataHoraInternacao>
<ans:dataHoraSaidaInternacao>17/04/2010H13:15</ans:dataHoraSaidaInternacao>
<ans:tipoInternacao>1</ans:tipoInternacao>
<ans:regimeInternacao>1</ans:regimeInternacao>
<ans:obitoNeonatal>
<ans:qtdeobitoPrecoce>0</ans:qtdeobitoPrecoce>
</ans:obitoNeonatal>
<ans:diagnosticosSaidaInternacao>
<ans:diagnosticoPrincipal>
<ans:nomeTabela>CID-10</ans:nomeTabela>
<ans:codigoDiagnostico>C719</ans:codigoDiagnostico>
<ans:descricaoDiagnostico>NEOPLASIA MALIGNA ENCEFALO NE</ans:descricaoDiagnostico>
</ans:diagnosticoPrincipal>
<ans:motivoSaidaInternacao>12</ans:motivoSaidaInternacao>
</ans:diagnosticosSaidaInternacao>
<ans:procedimentosRealizados>
<ans:procedimentos>
<ans:equipe>
<ans:membroEquipe>
<ans:codigoProfissional>
<ans:cpf>14269387807</ans:cpf>
</ans:codigoProfissional>
<ans:identificacaoProfissional>
<ans:nomeExecutante>MARCELO FALOTICO TABORDA DR</ans:nomeExecutante>
<ans:conselhoProfissional>
<ans:siglaConselho>CRM</ans:siglaConselho>
<ans:numeroConselho>088470</ans:numeroConselho>
<ans:ufConselho>SP</ans:ufConselho>
</ans:conselhoProfissional>
<ans:codigoCBOS>06129</ans:codigoCBOS>
</ans:identificacaoProfissional>
<ans:cpf>14269387807</ans:cpf>
<ans:posicaoProfissional>12</ans:posicaoProfissional>
</ans:membroEquipe>
</ans:equipe>
<ans:procedimento>
<ans:codigo>00020010</ans:codigo>
<ans:tipoTabela>01</ans:tipoTabela>
<ans:descricao>VISITA HOSPITALAR PACIENTE INTERNADO</ans:descricao>
</ans:procedimento>
<ans:data>15/04/2010</ans:data>
<ans:horaInicio>13:15</ans:horaInicio>
<ans:quantidadeRealizada>01</ans:quantidadeRealizada>
<ans:viaAcesso>U</ans:viaAcesso>
<ans:tecnicaUtilizada>C</ans:tecnicaUtilizada>
<ans:reducaoAcrescimo>2.00</ans:reducaoAcrescimo>
<ans:valor>37.80</ans:valor>
<ans:valorTotal>37.80</ans:valorTotal>
</ans:procedimentos>
<ans:procedimentos>
<ans:equipe>
<ans:membroEquipe>
<ans:codigoProfissional>
<ans:cpf>25112907827</ans:cpf>
</ans:codigoProfissional>
<ans:identificacaoProfissional>
<ans:nomeExecutante>HENRIQUE ZANONI FERNANDES DR</ans:nomeExecutante>
<ans:conselhoProfissional>
<ans:siglaConselho>CRM</ans:siglaConselho>
<ans:numeroConselho>103166</ans:numeroConselho>
<ans:ufConselho>SP</ans:ufConselho>
</ans:conselhoProfissional>
<ans:codigoCBOS>06129</ans:codigoCBOS>
</ans:identificacaoProfissional>
<ans:cpf>25112907827</ans:cpf>
<ans:posicaoProfissional>12</ans:posicaoProfissional>
</ans:membroEquipe>
</ans:equipe>
<ans:procedimento>
<ans:codigo>00020010</ans:codigo>
<ans:tipoTabela>01</ans:tipoTabela>
<ans:descricao>VISITA HOSPITALAR PACIENTE INTERNADO</ans:descricao>
</ans:procedimento>
<ans:data>15/04/2010</ans:data>
<ans:horaInicio>13:15</ans:horaInicio>
<ans:quantidadeRealizada>01</ans:quantidadeRealizada>
<ans:viaAcesso>U</ans:viaAcesso>
<ans:tecnicaUtilizada>C</ans:tecnicaUtilizada>
<ans:reducaoAcrescimo>2.00</ans:reducaoAcrescimo>
<ans:valor>37.80</ans:valor>
<ans:valorTotal>37.80</ans:valorTotal>
</ans:procedimentos>
</ans:procedimentosRealizados>
<ans:outrasDespesas>
<ans:despesa>
<ans:identificadorDespesa>
<ans:codigo>80042627</ans:codigo>
<ans:tipoTabela>97</ans:tipoTabela>
<ans:descricao>INSTALACAO DE EQUIPO SORO SESSAO</ans:descricao>
</ans:identificadorDespesa>
<ans:tipoDespesa>4</ans:tipoDespesa>
<ans:dataRealizacao>15/04/2010</ans:dataRealizacao>
<ans:horaInicial>13:15</ans:horaInicial>
<ans:reducaoAcrescimo>1.00</ans:reducaoAcrescimo>
<ans:quantidade>4.00</ans:quantidade>
<ans:valorUnitario>3.37</ans:valorUnitario>
<ans:valorTotal>13.48</ans:valorTotal>
</ans:despesa>
<ans:despesa>
<ans:identificadorDespesa>
<ans:codigo>80011012</ans:codigo>
<ans:tipoTabela>97</ans:tipoTabela>
<ans:descricao>DIARIA APARTAMENTO</ans:descricao>
</ans:identificadorDespesa>
<ans:tipoDespesa>5</ans:tipoDespesa>
<ans:dataRealizacao>15/04/2010</ans:dataRealizacao>
<ans:horaInicial>13:15</ans:horaInicial>
<ans:reducaoAcrescimo>1.00</ans:reducaoAcrescimo>
<ans:quantidade>2.00</ans:quantidade>
<ans:valorUnitario>170.00</ans:valorUnitario>
<ans:valorTotal>340.00</ans:valorTotal>
</ans:despesa>
<ans:despesa>
<ans:identificadorDespesa>
<ans:codigo>00000096</ans:codigo>
<ans:tipoTabela>05</ans:tipoTabela>
<ans:descricao>MEDICAMENTOS</ans:descricao>
</ans:identificadorDespesa>
<ans:tipoDespesa>2</ans:tipoDespesa>
<ans:dataRealizacao>15/04/2010</ans:dataRealizacao>
<ans:horaInicial>13:15</ans:horaInicial>
<ans:horaFinal>00:00</ans:horaFinal>
<ans:reducaoAcrescimo>1.00</ans:reducaoAcrescimo>
<ans:quantidade>1</ans:quantidade>
<ans:valorUnitario>71.30</ans:valorUnitario>
<ans:valorTotal>71.30</ans:valorTotal>
</ans:despesa>
<ans:despesa>
<ans:identificadorDespesa>
<ans:codigo>00000095</ans:codigo>
<ans:tipoTabela>12</ans:tipoTabela>
<ans:descricao>MATERIAIS</ans:descricao>
</ans:identificadorDespesa>
<ans:tipoDespesa>3</ans:tipoDespesa>
<ans:dataRealizacao>15/04/2010</ans:dataRealizacao>
<ans:horaInicial>13:15</ans:horaInicial>
<ans:horaFinal>00:00</ans:horaFinal>
<ans:reducaoAcrescimo>1.00</ans:reducaoAcrescimo>
<ans:quantidade>1</ans:quantidade>
<ans:valorUnitario>328.70</ans:valorUnitario>
<ans:valorTotal>328.70</ans:valorTotal>
</ans:despesa>
</ans:outrasDespesas>
<ans:tipoFaturamento>T</ans:tipoFaturamento>
<ans:valorTotal>
<ans:servicosExecutados>75.60</ans:servicosExecutados>
<ans:diarias>340.00</ans:diarias>
<ans:taxas>13.48</ans:taxas>
<ans:materiais>328.70</ans:materiais>
<ans:medicamentos>71.30</ans:medicamentos>
<ans:gases>0.00</ans:gases>
<ans:totalGeral>829.08</ans:totalGeral>
</ans:valorTotal>
<ans:observacao></ans:observacao>
</ans:guiaResumoInternacao>
<ans:guiaResumoInternacao>
<ans:identificacaoGuiaInternacao>
<ans:registroANS>000043</ans:registroANS>
<ans:dataEmissaoGuia>23/03/2010</ans:dataEmissaoGuia>
<ans:numeroGuiaPrestador>335821</ans:numeroGuiaPrestador>
<ans:numeroGuiaOperadora></ans:numeroGuiaOperadora>
</ans:identificacaoGuiaInternacao>
<ans:numeroGuiaSolicitacao>335821</ans:numeroGuiaSolicitacao>
<ans:dadosBeneficiario>
<ans:numeroCarteira>00202000543470022</ans:numeroCarteira>
<ans:nomeBeneficiario>CRISTIANE CORRA PIRES RIBEIRO</ans:nomeBeneficiario>
<ans:nomePlano>S A ENFER EMPRESARIAL</ans:nomePlano>
<ans:validadeCarteira>31/03/2010</ans:validadeCarteira>
<ans:numeroCNS></ans:numeroCNS>
<ans:identificadorBeneficiario></ans:identificadorBeneficiario>
</ans:dadosBeneficiario>
<ans:identificacaoExecutante>
<ans:identificacao>
<ans:codigoPrestadorNaOperadora>90016</ans:codigoPrestadorNaOperadora>
</ans:identificacao>
<ans:nomeContratado>HOSPITAL PIO XII</ans:nomeContratado>
<ans:enderecoContratado>
<ans:tipoLogradouro>081</ans:tipoLogradouro>
<ans:logradouro>RUA PARAGUASSU</ans:logradouro>
<ans:numero>51</ans:numero>
<ans:complemento></ans:complemento>
<ans:codigoIBGEMunicipio>0354990</ans:codigoIBGEMunicipio>
<ans:municipio>SAO JOSE DOS CAMPOS</ans:municipio>
<ans:codigoUF>SP</ans:codigoUF>
<ans:cep>12212110</ans:cep>
</ans:enderecoContratado>
<ans:numeroCNES>0009601</ans:numeroCNES>
</ans:identificacaoExecutante>
<ans:dadosAutorizacao>
<ans:dataAutorizacao>04/03/2010</ans:dataAutorizacao>
<ans:senhaAutorizacao>1000247113</ans:senhaAutorizacao>
<ans:validadeSenha>03/04/2010</ans:validadeSenha>
</ans:dadosAutorizacao>
<ans:caraterInternacao>U</ans:caraterInternacao>
<ans:acomodacao>7</ans:acomodacao>
<ans:dataHoraInternacao>23/03/2010H05:53</ans:dataHoraInternacao>
<ans:dataHoraSaidaInternacao>24/03/2010H12:40</ans:dataHoraSaidaInternacao>
<ans:tipoInternacao>2</ans:tipoInternacao>
<ans:regimeInternacao>1</ans:regimeInternacao>
<ans:obitoNeonatal>
<ans:qtdeobitoPrecoce>0</ans:qtdeobitoPrecoce>
</ans:obitoNeonatal>
<ans:diagnosticosSaidaInternacao>
<ans:diagnosticoPrincipal>
<ans:nomeTabela>CID-10</ans:nomeTabela>
<ans:codigoDiagnostico>K801</ans:codigoDiagnostico>
<ans:descricaoDiagnostico>CALCULOSE VESICULA BILIAR COM OUTRAS FORMAS COLECISTITE</ans:descricaoDiagnostico>
</ans:diagnosticoPrincipal>
<ans:motivoSaidaInternacao>11</ans:motivoSaidaInternacao>
</ans:diagnosticosSaidaInternacao>
<ans:procedimentosRealizados>
<ans:procedimentos>
<ans:equipe>
<ans:membroEquipe>
<ans:codigoProfissional>
<ans:cpf>78935032891</ans:cpf>
</ans:codigoProfissional>
<ans:identificacaoProfissional>
<ans:nomeExecutante>JOAO MOREIRA DOS SANTOS DR</ans:nomeExecutante>
<ans:conselhoProfissional>
<ans:siglaConselho>CRM</ans:siglaConselho>
<ans:numeroConselho>042914</ans:numeroConselho>
<ans:ufConselho>SP</ans:ufConselho>
</ans:conselhoProfissional>
<ans:codigoCBOS>06110</ans:codigoCBOS>
</ans:identificacaoProfissional>
<ans:cpf>78935032891</ans:cpf>
<ans:posicaoProfissional>00</ans:posicaoProfissional>
</ans:membroEquipe>
</ans:equipe>
<ans:procedimento>
<ans:codigo>43050182</ans:codigo>
<ans:tipoTabela>01</ans:tipoTabela>
<ans:descricao>COLECISTECTOMIA SEM COLANGIOGRAFIA</ans:descricao>
</ans:procedimento>
<ans:data>23/03/2010</ans:data>
<ans:horaInicio>07:45</ans:horaInicio>
<ans:horaFim>09:15</ans:horaFim>
<ans:quantidadeRealizada>01</ans:quantidadeRealizada>
<ans:viaAcesso>U</ans:viaAcesso>
<ans:tecnicaUtilizada>C</ans:tecnicaUtilizada>
<ans:reducaoAcrescimo>1.30</ans:reducaoAcrescimo>
<ans:valor>284.57</ans:valor>
<ans:valorTotal>284.57</ans:valorTotal>
</ans:procedimentos>
</ans:procedimentosRealizados>
<ans:outrasDespesas>
<ans:despesa>
<ans:identificadorDespesa>
<ans:codigo>65600703</ans:codigo>
<ans:tipoTabela>97</ans:tipoTabela>
<ans:descricao>COLECISTECTOMIA C OU S COLANG VIDEO ENF SEM HM</ans:descricao>
</ans:identificadorDespesa>
<ans:tipoDespesa>4</ans:tipoDespesa>
<ans:dataRealizacao>23/03/2010</ans:dataRealizacao>
<ans:horaInicial>05:53</ans:horaInicial>
<ans:reducaoAcrescimo>1.00</ans:reducaoAcrescimo>
<ans:quantidade>1.00</ans:quantidade>
<ans:valorUnitario>2438.00</ans:valorUnitario>
<ans:valorTotal>2438.00</ans:valorTotal>
</ans:despesa>
</ans:outrasDespesas>
<ans:tipoFaturamento>T</ans:tipoFaturamento>
<ans:valorTotal>
<ans:servicosExecutados>284.57</ans:servicosExecutados>
<ans:diarias>0.00</ans:diarias>
<ans:taxas>2438.00</ans:taxas>
<ans:materiais>0.00</ans:materiais>
<ans:medicamentos>0.00</ans:medicamentos>
<ans:gases>0.00</ans:gases>
<ans:totalGeral>2722.57</ans:totalGeral>
</ans:valorTotal>
<ans:observacao></ans:observacao>
</ans:guiaResumoInternacao>
</ans:guiaFaturamento>
</ans:guias>
</ans:loteGuias>
</ans:prestadorParaOperadora>
<ans:epilogo>
<ans:hash>4935153821c2da667ed9171df67f3729</ans:hash>
</ans:epilogo>
</ans:mensagemTISS>
Nenhum comentário:
Postar um comentário