Ir para o conteúdo principal

Recebimento de Resultados e Registros de Problemas de Coleta

Atenção: Esse capítulo é uma transcrição do arquivo original enviado pela empresa responsável pelo Sistema de Gestão Pública de Saúde, para acessar o documento original na integra realize o download abaixo

Integração laboratório - Recebimento de resultados e problemas.pdf

Objetivo do documento

Este documento tem como objetivo descrever o processo de recebimento de resultados de exames enviados pelo laboratório terceiro, bem como a funcionalidade de registro de problemas na coleta dos exames. Essas informações serão transmitidas por meio da integração SIS (Sistema de Integração de Saúde) por parte do laboratório terceiro, utilizando um serviço web (Webservice). Esse sistema permite que o laboratório contratado entregue de forma eficiente e automatizada os resultados dos exames ao cliente, otimizando assim os procedimentos laboratoriais. Além disso, a funcionalidade de registro de problemas na coleta dos exames proporcionará um controle mais abrangente e preciso sobre eventuais dificuldades encontradas durante o processo de coleta, contribuindo para uma gestão mais eficaz da operação.

Pré requisitos

    • O laboratório terceiro deve ser capaz de consumir o webservice do SIS através do protocolo SOAP.
    • O cliente deve permitir às unidades de saúde que enviem os dados de solicitação de exame, caso contrário nenhuma unidade enviará os dados automaticamente.
    • A unidade de saúde deve criar e recepcionar a solicitação com os respectivos exames que serão integrados para que ocorra a transmissão da mesma via webservice.

Autenticação

O Sistema de Gestão Pública de Saúde aguardará o laboratório consumir o serviço de envio na seguinte estrutura:

ENDPOINT sistema: https://sorocaba-sp.vivver.com

  • Deverá ser solicitado ao suporte a criação do usuário e senha, para ser utilizado no consumo dos serviços disponíveis no webservice. Exemplo:
    • usuário: integracao
    • senha: integracao#senha
  • Para validação da conexão com o ENDPOINT, deverá realizar o consumo do serviço "requisita_token". Exemplo:
    • Verbo -> POST URL:
    • https://sorocaba-sp.vivver.com/lab/integracao_afip/requisita_token?usuario=integr acao&senha=integracao#senha

Response:
O token tem validade de 10 minutos. e94c0dbf34af4564ac23bcc013eaa7e4

Envio dos resultados de exames

Ao consumir o serviço o laboratório terceiro deve enviar um XML conforme a estrutura descrita abaixo. Após o recebimento deste XML o SIS irá traduzir os resultados para a linguagem própria e incluir em sua base junto ao registro do paciente.

Exemplo:
Verbo -> POST EnviaResultadoURI:
https://sorocaba-sp.vivver.com/lab/integracao_afip/envia_resultado

image.png

O Token adquirido no método requisita_token, deve ser informado no cabeçalho da requisição e enviar o xml de resultado, conforme exemplificado abaixo:

image.png

Definição do XML

O XML para recebimento de resultados do laboratório terceiro seguirá o seguinte padrão:

CampoDescriçãoTipo do DadoObrigatório
RecebeResultado.ResultadoLab.ordem ServicoNúmero da solicitação de exames no SISString(13)Sim
RecebeResultado.ResultadoLab.cnesU nidadeExecutanteCódigo CNES - Código Nacional de
Estabelecimentos de Saúde
IntegerNão
RecebeResultado.ResultadoLab.pedido. codigoNúmero do pedido na base do laboratório terceiroString(12)Não
RecebeResultado.ResultadoLab.pedido.
posto
Código posto de coletaIntegerNão
RecebeResultado.ResultadoLab.pedido. postoDescricaoPosto em que foi feito a coletaString(80)Não
RecebeResultado.ResultadoLab.pedido. convenioNúmero do convênioStringNão
RecebeResultado.ResultadoLab.pedido. ordemServicoApoioOrdem de serviço de apoioStringNão
RecebeResultado.ResultadoLab.pedido. dadosCadastraisDados cadastrais adicionaisStringNão
RecebeResultado.ResultadoLab.pacient e.codigoNúmero do prontuário do paciente no SISIntegerNão
RecebeResultado.ResultadoLab.pacient e.nomeNome do paciente no SISStringNão
RecebeResultado.ResultadoLab.pacien te.sexoNome do paciente no SISString(1)Não
RecebeResultado.ResultadoLab.pacient e.Data de nascimento do paciente no SISString(8) AAAAMMDDNão
RecebeResultado.ResultadoLab.pacient e.cpfCPF do paciente no SISString(11)Não
RecebeResultado.ResultadoLab.exame s.exame.codigoCódigo do exame no SISIntegerSim
RecebeResultado.ResultadoLab.exame s.exame.mnemonicoDado adicional sobre exameStringNão
RecebeResultado.ResultadoLab.exame s.exame.descricaoDescrição do exameStringNão
RecebeResultado.ResultadoLab.exame s.exame.mascara.dataData texto máscara. Uso do laboratório terceiroStringNão
RecebeResultado.ResultadoLab.exame s.exame.mascara.horaHora texto máscara. Uso do laboratório terceiroStringNão
RecebeResultado.ResultadoLab.exame
s.exame.mascara.versaoMascara
Versão da máscara. Uso do laboratório terceiroStringNão
RecebeResultado.ResultadoLab.exame s.exame.amostras.amostra.codigoBarraCódigo de barras.Uso do laboratório terceiroStringNão
RecebeResultado.ResultadoLab.exame s.exame.amostras.amostra.tipoTipo da amostra. Uso do laboratório terceiroStringNão
RecebeResultado.ResultadoLab.exame
s.exame.guia
Código da guia. Uso do laboratório terceiroStringNão
RecebeResultado.ResultadoLab.exame s.exame.observacaoObservação do exameStringNão
RecebeResultado.ResultadoLab.exame
s.exame.solicitacao.data
Data da soliciação do exameStringNão
RecebeResultado.ResultadoLab.exame s.exame.solicitacao.horaHora da solicitação do exameStringNão
RecebeResultado.ResultadoLab.exame s.exame.coleta.dataData / hora coleta no laboratório terceiroString DD/MM/AAAA
HH:MM:SS
Não
RecebeResultado.ResultadoLab.exame s.exame.coleta.horaHora coleta no laboratório
terceiro
String HH:MM:SSNão
RecebeResultado.ResultadoLab.exame
s.exame.coleta.codResponsavel
Código do responsável pela
coleta no laboratório terceiro
String(8)Não
RecebeResultado.ResultadoLab.exame s.exame.coleta.nomeResponsavelNome do responsável pela
coleta no laboratório terceiro
StringNão
RecebeResultado.ResultadoLab.exame s.exame.liberacao.dataData / hora liberação no laboratório terceiroString DD/MM/AAAA
HH:MM:SS
Não
RecebeResultado.ResultadoLab.exame s.exame.liberacao.horaHora liberação no laboratório
terceiro
HH:MM:SSNão
RecebeResultado.ResultadoLab.exame
s.exame.liberacao.codResponsavel
Código do responsável pela
liberação no laboratório terceiro
String(8)Não
RecebeResultado.ResultadoLab.exame s.exame.liberacao.nomeResponsavelNome do responsável pela
liberação no laboratório terceiro
StringNão
RecebeResultado.ResultadoLab.exame
s.exame.assinado
Assinatura do resultado do
exame no laboratório terceiro
StringNão
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.apelidoSigla do exame no SISString(5)Sim
RecebeResultado.ResultadoLab.exame
s.exame.resultados.resultado.valor
Valor do resultado do exameDecimalSim
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.tipoTipo do resultado do exame.
Uso do laboratório terceiro
StringNão
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.unMedidaUnidade de medida do
resultado do exame. Uso do laboratório terceiro
StringNão
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.vlReferen
cia
Valor de referência do exame. Uso do laboratório terceiroStringNão
RecebeResultado.ResultadoLab.exame
s.exame.resultados.resultado.limiteSup erior
Limite superior do resultado de exame. Uso do laboratório
terceiro
StringNão
RecebeResultado.ResultadoLab.exame
s.exame.resultados.resultado.limiteInferi or
Limite inferior do resultado de
exame. Uso do laboratório terceiro
StringNão
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.processoProcesso do resultado de
exame. Uso do laboratório terceiro
StringNão
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.metodolo
gia
Metodologia do resultado de exame. Uso do laboratório
terceiro
StringNão
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.culturaPo
sitiva
Resultado do exame cultura foi positivoStringNão
RecebeResultado.ResultadoLab.exame s.exame.resultados.resultado.imagemb
ase64
Imagem do resultado do exame formato base 64Base 64Não
RecebeResultado.ResultadoLab.exame s.exame.resultadosCulturaResultados do exame de
cultuta
StringNão
RecebeResultado.ResultadoLab.exame
s.exame.resultadoPdf
Arquivo PDF dos resultados
dos exames da solicitação
Base 64Não
RecebeResultado.ResultadoLab.exame s.exame.resultadoUrlExameURL do resultado do exame da
solicitação
StringNão
RecebeResultado.ResultadoLab.resulta
doURLPedido
URL do resultado da solicitação
de exames
StringNão

Exemplo da requisição de recebimento de resultados

# Envio de requisição via HTTP para envio de resultados laboratoriais
Method: POST
RequestUri: 'https://www.municipio-mg.vivver.com/lab/integracao_afip/envia_resultado'
Version: 1.1
Content: System.Net.Http.StringContent
Headers:
{
    Accept-Encoding: deflate
    Cache-Control: no-cache, max-age=0
    Authorization: Token AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    SOAPAction: http://tempuri.org/IServicoRecebeResultado/RecebeResultado
    Content-Type: text/xml; charset=utf-8
}
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"
          xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Body>
        <RecebeResultado>
            <ResultadoLab xmlns="">
                <ordemServico>2022120014372</ordemServico>
                <cnesUnidadeExecutante/>

                <pedido>
                    <codigo>123456</codigo>
                    <posto i:nil="true"/>
                    <postoDescricao i:nil="true"/>
                    <convenio i:nil="true"/>
                    <ordemServicoApoio i:nil="true"/>
                    <dadosCadastrais i:nil="true"/>
                </pedido>

                <paciente>
                    <codigo>29727</codigo>
                    <nome>NOME DO CIDADÃO</nome>
                    <sexo>F</sexo>
                    <dtNascimento>20020708</dtNascimento>
                    <cpf i:nil="true"/>
                </paciente>

                <exames>
                    <exame>
                        <codigo>91</codigo>
                        <mnemonico>HEMOGRAMA COMPLETO</mnemonico>
                        <descricao i:nil="true"/>

                        <mascara>
                            <data i:nil="true"/>
                            <hora i:nil="true"/>
                            <versaoMascara i:nil="true"/>
                        </mascara>

                        <amostras>
                            <amostra>
                                <codigoBarra>047876500108</codigoBarra>
                                <tipo/>
                            </amostra>
                        </amostras>

                        <guia i:nil="true"/>
                        <observacao i:nil="true"/>

                        <solicitacao>
                            <data i:nil="true"/>
                            <hora i:nil="true"/>
                        </solicitacao>

                        <coleta>
                            <data>08/07/2022 15:39:00</data>
                            <hora i:nil="true"/>
                            <codResponsavel>DANUZAMX</codResponsavel>
                            <nomeResponsavel i:nil="true"/>
                        </coleta>

                        <liberacao>
                            <data>08/01/2022 16:50:00</data>
                            <hora i:nil="true"/>
                            <codResponsavel>BIOQUIM1</codResponsavel>
                            <nomeResponsavel i:nil="true"/>
                        </liberacao>

                        <assinado i:nil="true"/>

                        <resultados>
                            <resultado>
                                <apelido>GRUABODET</apelido>
                                <valor>A</valor>
                                <tipo i:nil="true"/>
                                <unMedida i:nil="true"/>
                                <vlReferencia i:nil="true"/>
                                <limiteSuperior i:nil="true"/>
                                <limiteInferior i:nil="true"/>
                                <processo i:nil="true"/>
                                <metodologia i:nil="true"/>
                                <culturaPositiva i:nil="true"/>
                                <imagembase64 i:nil="true"/>
                            </resultado>
                            <resultado>
                                <apelido>OBS</apelido>
                                <valor/>
                                <tipo i:nil="true"/>
                                <unMedida i:nil="true"/>
                                <vlReferencia i:nil="true"/>
                                <limiteSuperior i:nil="true"/>
                                <limiteInferior i:nil="true"/>
                                <processo i:nil="true"/>
                                <metodologia i:nil="true"/>
                                <culturaPositiva i:nil="true"/>
                                <imagembase64 i:nil="true"/>
                            </resultado>
                        </resultados>

                        <resultadosCultura/>
                        <PDF i:nil="true"/>
                        <resultadoUrlExame i:nil="true"/>
                    </exame>
                </exames>

                <resultadoURLPedido/>
            </ResultadoLab>
        </RecebeResultado>
    </Body>
</Envelope>

Envio de problemas na coleta dos exames