Your SlideShare is downloading. ×
  • Like
Apresentacao CBIS 2010
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Apresentacao CBIS 2010

  • 136 views
Published

Apresentação realizada no CBIS 2010 em Porto de Galinhas em 19/out/10

Apresentação realizada no CBIS 2010 em Porto de Galinhas em 19/out/10

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
136
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Projeto de Identificação de Pacientes do Cartão SUS do estado de São Paulo Secretaria Estadual de Saúde de São Paulo - SESSP Laboratório de Sistemas Integráveis e Tecnológico - LSITEC Organização Pan-Americana da Saúde - OPAS Laboratório de Sistemas Integráveis – LSI EP/USP Emerson Moretto
  • 2. O desafio
    • Identificar e remover pacientes duplicados em uma base com ~30 milhões de pacientes
    • Estatísticas erradas
    • Consultas incertas
    • Registros homônimos ou são a mesma pessoa?
    • Informações não confiáveis
    Os problemas
  • 3. Como resolver?
    • No entanto...
    • Nenhum campo é 100% significativo
    • Comparação de nomes não é tão simples
      • Erros de digitação
      • Erros de fonética
    • Maior parte dos registros não possuem documentos preenchidos
    Comparando os registros entre si!
  • 4. Comparar todos com todos?
    • 30 mi comparando todos com todos :
    • 449 .999.985.000.000 comparações!
    • Computacionalmente falando*:
    • ~ 2 anos
    • * considerando que cada comparação de pacientes leva 1 ms
  • 5. A solução
    • Criar conjuntos ! (divisão e conquista)
    • ou seja,
    • Agrupar os possíveis pacientes duplicados
    • e depois,
    • Comparar todos com todos , porém somente dentro do conjunto
  • 6. Agrupamento Cintia F Souza = CTASZ Cintia Ferreira Sousa = CTASZ Cinthia F Souza = CTASZ Sintia Sousa = CTASZ Basta criarmos um Hash significativo para cada paciente usando fonética e considerações sobre erros de digitação Juliano Moraes = JLNMRE Giuliano Moraes = JLNMRE Giuliano Morais = JLNMRE CTASZ JLNRE Cintia Ferreira Sousa Mãe: Maria Sousa Primeiro nome fonético + último nome fonético + Primeiro nome da mãe fonético + último nome da mãe fonético Hash significativo = CTA SZ MR SZ Ex:
  • 7. Comparando
    • Com os grupos de candidatos formados...
    • Realizamos as comparações entre os candidatos do mesmo grupo apenas
    1 x 2 1 x 3 1 x 4 2 x 3 2 x 4 3 x 4 Progressão aritmética 1. Cintia F Souza = CTASZ 3. Cintia Ferreira Sousa = CTASZ 2. Cinthia F Souza = CTASZ 4. Sintia Sousa = CTASZ Grupo CTASZ
  • 8. A comparação
    • É feita uma comparação estatística que gera um percentual de similaridade entre 2 pacientes
    • Para os nomes , usamos algoritmos de distância de caracteres considerando fonemas e erros de digitação
      • Algoritmo Levenshtein (bastante modificado)
      • Ex: Cinthya Fereira Souza x Cintia Ferreira Sousa ~= 92,3%
    • Para as datas , algoritmos de consideração de erros de digitação baseados em erros comuns e na disposição do teclado
      • Ex: 21 /09/1982 e 12 /09/1982 ~= 89% de similaridade
  • 9. A comparação
    • nome Cinthya Fereira Souza x Cintia Ferreira Sousa
    • 92,3% * peso (0.29)
    • nome da mãe Maria Souza x Maria Sousa
    • 98,1% * peso (0.26)
    • nome do pai Paulo Oliveira Souza x Paulo Oliveira Souza
    • 100% * peso (0.20)
    • data de nascimento 20/09/1982 x 21/09/1982
    • 86% * peso (0.25)
    • Percentual de similaridade: 93,76 %
  • 10. A comparação
    • if percentual de similaridade >= 68%
      • Comparação é considerada candidata e vai para uma base de dados de comparação
      • O usuário analisa as comparações candidatas através de uma interface que acessa esta base
  • 11. Demonstração
  • 12. Tela de listagem
  • 13. Tela de comparação
  • 14. Arquitetura Thread de comparação Thread de comparação Thread de comparação Distribuidor ETL Escalável sobre TCP/IP Comparação >= 68% Decisão do usuário Java 6 Base de dados Cartão SUS Oracle 10g Banco de dados em árvore desenvolvido pelo LSI Banco de comparações PostgreSQL 8.4 Interface do usuário Flex 3.4
  • 15. Algumas informações técnicas
    • Feito em Java 6
    • Multi-thread assíncrono sobre TCP/IP
    • Interface do usuário em Adobe Flex 3.4
    • Desenvolvido e executando em Linux (CentOS)
    • “ Magic numbers ” foram encontrados por análise estatística
    • Para processar os 30 milhões ~= 3 dias
    • Atualização diária de novos registros (~5.000 pacientes) leva 40s
    • Tempo médio de cada comparação: 0,12 ms
  • 16. Obrigado!
    • Emerson Moretto
    • [email_address]
    Financiamento Desenvolvimento