Slides

Apresentacao CBIS 2010

Description
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…
Categories
Published
of 17
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
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 <ul><li>Identificar e remover pacientes duplicados em uma base com ~30 milhões de pacientes </li></ul><ul><li>Estatísticas erradas </li></ul><ul><li>Consultas incertas </li></ul><ul><li>Registros homônimos ou são a mesma pessoa? </li></ul><ul><li>Informações não confiáveis </li></ul>Os problemas
  • 3. Como resolver? <ul><li>No entanto... </li></ul><ul><li>Nenhum campo é 100% significativo </li></ul><ul><li>Comparação de nomes não é tão simples </li></ul><ul><ul><li>Erros de digitação </li></ul></ul><ul><ul><li>Erros de fonética </li></ul></ul><ul><li>Maior parte dos registros não possuem documentos preenchidos </li></ul>Comparando os registros entre si!
  • 4. Comparar todos com todos? <ul><li>30 mi comparando todos com todos : </li></ul><ul><li>449 .999.985.000.000 comparações! </li></ul><ul><li>Computacionalmente falando*: </li></ul><ul><li>~ 2 anos </li></ul><ul><li>* considerando que cada comparação de pacientes leva 1 ms </li></ul>
  • 5. A solução <ul><li>Criar conjuntos ! (divisão e conquista) </li></ul><ul><li>ou seja, </li></ul><ul><li>Agrupar os possíveis pacientes duplicados </li></ul><ul><li>e depois, </li></ul><ul><li>Comparar todos com todos , porém somente dentro do conjunto </li></ul>
  • 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 <ul><li>Com os grupos de candidatos formados... </li></ul><ul><li>Realizamos as comparações entre os candidatos do mesmo grupo apenas </li></ul>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 <ul><li>É feita uma comparação estatística que gera um percentual de similaridade entre 2 pacientes </li></ul><ul><li>Para os nomes , usamos algoritmos de distância de caracteres considerando fonemas e erros de digitação </li></ul><ul><ul><li>Algoritmo Levenshtein (bastante modificado) </li></ul></ul><ul><ul><li>Ex: Cinthya Fereira Souza x Cintia Ferreira Sousa ~= 92,3% </li></ul></ul><ul><li>Para as datas , algoritmos de consideração de erros de digitação baseados em erros comuns e na disposição do teclado </li></ul><ul><ul><li>Ex: 21 /09/1982 e 12 /09/1982 ~= 89% de similaridade </li></ul></ul>
  • 9. A comparação <ul><li>nome Cinthya Fereira Souza x Cintia Ferreira Sousa </li></ul><ul><li>92,3% * peso (0.29) </li></ul><ul><li>nome da mãe Maria Souza x Maria Sousa </li></ul><ul><li>98,1% * peso (0.26) </li></ul><ul><li>nome do pai Paulo Oliveira Souza x Paulo Oliveira Souza </li></ul><ul><li>100% * peso (0.20) </li></ul><ul><li>data de nascimento 20/09/1982 x 21/09/1982 </li></ul><ul><li>86% * peso (0.25) </li></ul><ul><li>Percentual de similaridade: 93,76 % </li></ul>
  • 10. A comparação <ul><li>if percentual de similaridade >= 68% </li></ul><ul><ul><li>Comparação é considerada candidata e vai para uma base de dados de comparação </li></ul></ul><ul><ul><li>O usuário analisa as comparações candidatas através de uma interface que acessa esta base </li></ul></ul>
  • 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 <ul><li>Feito em Java 6 </li></ul><ul><li>Multi-thread assíncrono sobre TCP/IP </li></ul><ul><li>Interface do usuário em Adobe Flex 3.4 </li></ul><ul><li>Desenvolvido e executando em Linux (CentOS) </li></ul><ul><li>“ Magic numbers ” foram encontrados por análise estatística </li></ul><ul><li>Para processar os 30 milhões ~= 3 dias </li></ul><ul><li>Atualização diária de novos registros (~5.000 pacientes) leva 40s </li></ul><ul><li>Tempo médio de cada comparação: 0,12 ms </li></ul>
  • 16. Obrigado! <ul><li>Emerson Moretto </li></ul><ul><li>[email_address] </li></ul>Financiamento Desenvolvimento
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks