Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
3
respostas

Criação de Algoritmo de IA para Análise de QT e EA Graves decorrentes de DMIA

PARTE II

Projeto Completo Estruturado pelo Modelo do Duplo Diamante

Autoria

RicArdo Costa Val do Rosário

Título Completo

Criação de Algoritmo de Inteligência Artificial (IA) para Análise de Queixas Técnicas
(QT) e Eventos Adversos (EA) Graves decorrentes de Dispositivos Médicos Inteligentes
(DMIA). 

1. Introdução e Justificativa

Eventos Adversos Graves (EAS) relacionados a DM representam risco elevado à 
segurança do paciente, podendo resultar em sequelas permanentes ou óbito. 

A Tecnovigilância, responsável por monitorar o ciclo de vida dos dispositivos, enfrenta 
desafios como volume crescente de notificações, variabilidade na análise e necessidade
de rastreabilidade regulatória.

O projeto propõe o desenvolvimento de um algoritmo de Inteligência Artificial (IA) capaz 
de apoiar a análise de QT e EAS, funcionando como um checklist inteligente, auditável 
e alinhado às normas da ANVISA e padrões internacionais.

2. Estruturação pelo Duplo Diamante

# 2.1. Primeiro Diamante — Problema

# 2.1.1. Descobrir — Exploração Ampla
1. Principais achados:
•	EAS relacionados a DM podem gerar desfechos graves, comparáveis a falhas 
catastróficas em sistemas aeronáuticos.
•	A análise atual é manual, lenta e sujeita a vieses.
•	Há necessidade de padronização e rastreabilidade para auditorias.
•	Regulamentações como RDC 657/2022, RDC 751/2022 e ISO 13485 exigem 
documentação robusta.
•	Profissionais de Tecnovigilância relatam dificuldade em acompanhar o volume 
crescente de notificações.

2. Problemas identificados:
•	Falta de padronização na classificação de conformidades.
•	Dificuldade em identificar falhas de design, fabricação ou uso.
•	Ausência de ferramentas inteligentes para análise textual de notificações.
•	Tempo elevado entre notificação e conclusão da análise.

# 2.1.2.  Defiinir: Delimitação do Problema

1. Problema central:
“Como reduzir o tempo e aumentar a precisão da análise de QT/EAS em DM,
garantindo conformidade regulatória, rastreabilidade e suporte à decisão?”

2. Objetivo geral:
•	Criar um algoritmo de IA que classifique notificações de QT/EAS e identifique 
conformidade, não conformidade ou falha relacionada ao evento.

3. Objetivos específicos:
•	Automatizar a leitura e interpretação de notificações.
•	Comparar automaticamente com bases regulatórias.
•	Gerar relatórios auditáveis.
•	Apoiar a investigação de causa raiz (RCA).
•	Reduzir variabilidade entre analistas.

3. Segundo Diamante — Solução

# 3.1. Desenvolver: Exploração de Múltiplas Soluções

# 3.1.1. Arquiteturas de IA Consideradas
•	Árvores de decisão — interpretabilidade.
•	Random Forest — robustez.
•	Gradient Boosting (XGBoost) — alta performance.
•	Redes neurais explicáveis (XAI) — LIME, SHAP.
•	Modelos de PLN — BERTimbau, spaCy, transformers.

# 3.1.2. Pipeline Computacional Proposto

1. Etapa 1 — Pré-processamento
•	Tokenização, lematização, remoção de ruído.
•	Extração de entidades regulatórias (NER): “falha”, “rompimento”, “esterilidade”, 
“prazo de validade”.

2. Etapa 2 — Extração de Features
•	Vetorização TF-IDF.
•	Embeddings com BERTimbau.
•	Features regulatórias (match com RDCs).

3. Etapa 3 — Classificação
•	Modelo supervisionado com quatro classes: 
1. Conformidade
2. Não conformidade não relacionada
3. Não conformidade relacionada
4. Falha relacionada ao evento

4. Etapa 4 — Explicabilidade
•	SHAP para explicar decisões.
•	Geração de mapa de calor de termos relevantes.

5. Etapa 5 — Relatório Auditável
•	Exportação em PDF/JSON.
•	Hash criptográfico SHA-256 para rastreabilidade.


# 3.2. Entregar — Validação e Implementação
# 3.2.1. Protótipo Funcional
1. Componentes:
•	Backend em FastAPI.
•	Banco de dados PostgreSQL.
•	Módulo de IA em Python (scikit-learn, TensorFlow, spaCy).
•	Interface web em React.
•	Logs imutáveis com hash SHA-256.
•	Módulo de auditoria com trilha de decisões.

# 3.2.2. Validação
•	Testes com analistas de Tecnovigilância.
•	Comparação entre análise humana e IA.
•	Ajustes iterativos com feedback.
•	Estudo piloto em hospital da rede FHEMIG.

# 3.2.3. Indicadores de Sucesso
•	Redução do tempo de análise (meta: -40%).
•	Aumento da precisão na classificação (meta: +25%).
•	Aderência regulatória comprovada.
•	Aceitação pelos analistas (meta: >80% de aprovação).

3.3. Exemplo de Pseudocódigo

def analisar_qt_eas(texto_notificacao):
    texto_limpo = preprocessar(texto_notificacao)
    entidades = extrair_entidades(texto_limpo)
    features = gerar_features(texto_limpo, entidades)
    classe = modelo.predict(features)
    explicacao = shap_explain(modelo, features)
    regulacao = comparar_com_rdc(texto_limpo)
    
    return {
        "classificacao": classe,
        "explicacao": explicacao,
        "regulacao": regulacao,
        "hash_registro": gerar_hash(texto_notificacao)
    }
3 respostas

4. Inovação, Impacto e Potencial de Patente

# 4.1. Inovação
•	Primeira solução nacional dedicada à Tecnovigilância automatizada.
•	Uso de IA explicável para decisões regulatórias.
•	Integração com normas ANVISA e ISO.
•	Geração de relatórios auditáveis e rastreáveis.

# 4.2. Impacto
•	Aumento da segurança do paciente.
•	Redução de falhas recorrentes.
•	Melhoria da eficiência operacional.
•	Fortalecimento da FHEMIG como referência nacional.

# 4.3. Potencial de Patente
•	Algoritmo de classificação regulatória.
•	Pipeline de análise com explicabilidade integrada.
•	Sistema de auditoria com hash criptográfico.
  1. Cronograma (12 meses)
| Mês | Atividade | 
| -------- | -------- | 
| 1-2    | Levantamento de requisitos, entrevistas, mapeamento de jornada    |
| -------- | -------- | 
| 2-4     | Construção do dataset e pré-processamento    |
| -------- | -------- | 
| 5-7    | Desenvolvimento dos modelos de IA     |
| -------- | -------- | 
| 8-9    | Construção do backend e frontend     |
| -------- | -------- | 
| 10    | Integração e testes internos   |
| -------- | -------- | 
|11    | Estudo Piloto   |
| -------- | -------- | 
| 12     | Ajustes finais, relatório e submissão para patente   |

6. Recursos Necessários

1. Equipe: médico, engenheiro de software, cientista de dados, especialista em Tecnovigilância.
2. Infraestrutura: servidor GPU, banco de dados, ambiente de testes.
3. Acesso a notificações anonimizadas.
4. Consultoria regulatória.

7. Código Completo do Pré-projeto de Software as a Medical Device, baseado em IA

Python

from docx import Document
from docx.shared import Pt, Inches
from docx.oxml.ns import qn
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Preformatted
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import inch

# Criar documento Word
doc = Document()

# Capa Word
doc.add_paragraph("Artigo Científico Original – 9º Fórum Científico da FHEMIG", 'Title')
doc.add_paragraph("Ricardo Costa Val do Rosário, MD, PhD\n2025", 'Subtitle')

doc.add_paragraph("\n\n\n")
doc.add_paragraph("Sugestão de capa ilustrativa: um dispositivo médico em destaque, com algoritmos e checklist digital em segundo plano, transmitindo a ideia de auditoria tecnológica.", style="Intense Quote")

doc.add_page_break()

# Estrutura do Artigo
sections = {
    "Resumo": """Eventos adversos graves (SAE) e queixas técnicas (QT) relacionadas a dispositivos médicos representam um risco elevado à segurança do paciente. 
Este artigo propõe um pré-projeto de Software as a Medical Device (SaMD), baseado em Inteligência Artificial, para análise de QT/SAE, com classificação auditável em conformidade regulatória. 
Metodologias de Machine Learning (ML) e Processamento de Linguagem Natural (PLN) são empregadas para criar relatórios rastreáveis, visando reduzir falhas e fortalecer a Tecnovigilância nacional.""",

    "Introdução": """Falhas em dispositivos médicos, incluindo softwares embarcados, podem resultar em eventos adversos catastróficos, comparáveis a acidentes aéreos. 
A Tecnovigilância no Brasil, regida por normas como a RDC 657/2022 (SaMD) e RDC 751/2022 (classificação de risco), exige metodologias robustas para identificar causas raiz de falhas. 
Apesar dos avanços, ainda não existe um algoritmo específico para análise estruturada de QT e SAE. Este estudo tem como objetivo propor a criação de um SaMD capaz de apoiar profissionais de Tecnovigilância em investigações automatizadas e auditáveis.""",

    "Metodologia": """O desenho do estudo é de pesquisa aplicada em Engenharia de Software Médico. A arquitetura proposta segue as boas práticas internacionais (IEC 62304, ISO 13485, ISO 14971, IEC 62366).
Fluxo de dados: coleta → processamento (ML/PLN) → classificação → relatório auditável.
O sistema deve classificar notificações em três categorias: (i) Conformidade, (ii) Não conformidade não relacionada ao evento, (iii) Falha relacionada ao evento.

Continuação do Código

Exemplo de pseudocódigo em Python:""",

    "Resultados Esperados": """- Protótipo de algoritmo testado em ambiente hospitalar piloto;
- Redução no tempo de análise de notificações de Tecnovigilância;
- Melhoria da acurácia na identificação de falhas críticas;
- Relatórios auditáveis e rastreáveis, em conformidade com LGPD e normas regulatórias.""",

    "Discussão": """O projeto representa avanço inédito no campo da Tecnovigilância computacional. A utilização de algoritmos de IA explicáveis permite maior transparência nas investigações de SAE. 
Trecho de exemplo de código com árvore de decisão para ilustrar aplicabilidade:""",

    "Conclusão": """O artigo propõe a criação de um SaMD específico para análise de QT/SAE, unindo IA auditável, regulamentações nacionais e boas práticas internacionais. 
A iniciativa fortalece a cultura de segurança em saúde e posiciona a FHEMIG como referência nacional em inovação regulatória.""",

    "Referências": """1. ANVISA. RDC nº 657, de 24 de março de 2022.
2. ANVISA. RDC nº 751, de 15 de setembro de 2022.
3. ISO 13485:2016 – Medical devices – Quality management systems.
4. IEC 62304:2006 – Medical device software – Software life cycle processes.
5. ISO 14971:2019 – Risk management for medical devices.
6. IEC 62366-1:2015 – Usability engineering for medical devices."""
}

# Adicionar conteúdo ao Word
for title, content in sections.items():
    doc.add_heading(title, level=1)
    doc.add_paragraph(content)
    if title == "Metodologia":
        code_example = """
def classificar_evento(notificacao):
    if notificacao["causa"] in ["falha_design", "falha_software"]:
        return "Não Conformidade Relacionada ao Evento"
    elif notificacao["irregularidade_documental"]:
        return "Não Conformidade Não Relacionada ao Evento"
    else:
        return "Conformidade"
"""
        doc.add_paragraph(code_example, style="Intense Quote")
    if title == "Discussão":
        code_example = """
from sklearn.tree import DecisionTreeClassifier

X = [[1,0,0], [0,1,0], [0,0,1], [0,0,0]]
y = ["Relacionado ao Evento", "Relacionado ao Evento",
     "Não Relacionado ao Evento", "Conformidade"]

modelo = DecisionTreeClassifier()
modelo.fit(X, y)
print(modelo.predict([[0,1,0]]))  # → "Relacionado ao Evento"
"""
        doc.add_paragraph(code_example, style="Intense Quote")

word_filename = "/mnt/data/Artigo_Cientifico_SaMD_Tecnovigilancia.docx"
doc.save(word_filename)

# Criar PDF com ReportLab
pdf_filename = "/mnt/data/Artigo_Cientifico_SaMD_Tecnovigilancia.pdf"
pdf = SimpleDocTemplate(pdf_filename, pagesize=A4)
styles = getSampleStyleSheet()
story = []

title_style = ParagraphStyle('TitleStyle', parent=styles['Title'], fontSize=20, alignment=1, spaceAfter=20)
subtitle_style = ParagraphStyle('SubTitle', parent=styles['Normal'], fontSize=12, alignment=1, textColor=colors.grey)

# Capa PDF
story.append(Paragraph("Artigo Científico Original – 9º Fórum Científico da FHEMIG", title_style))
story.append(Paragraph("Ricardo Costa Val do Rosário, MD, PhD<br/>2025", subtitle_style))
story.append(Spacer(1, 1*inch))
story.append(Paragraph("Sugestão de capa ilustrativa: um dispositivo médico em destaque, com algoritmos e checklist digital em segundo plano, transmitindo a ideia de auditoria tecnológica.", styles['Italic']))
story.append(Spacer(1, 1.5*inch))

# Conteúdo PDF
for title, content in sections.items():
    story.append(Paragraph(f"<b>{title}</b>", styles['Heading2']))
    story.append(Paragraph(content, styles['Normal']))
    if title == "Metodologia":
        code1 = """def classificar_evento(notificacao):
    if notificacao["causa"] in ["falha_design", "falha_software"]:
        return "Não Conformidade Relacionada ao Evento"
    elif notificacao["irregularidade_documental"]:
        return "Não Conformidade Não Relacionada ao Evento"
    else:
        return "Conformidade"
"""
        story.append(Preformatted(code1, styles['Code']))
    if title == "Discussão":
        code2 = """from sklearn.tree import DecisionTreeClassifier

X = [[1,0,0], [0,1,0], [0,0,1], [0,0,0]]
y = ["Relacionado ao Evento", "Relacionado ao Evento",
     "Não Relacionado ao Evento", "Conformidade"]

modelo = DecisionTreeClassifier()
modelo.fit(X, y)
print(modelo.predict([[0,1,0]]))  # → "Relacionado ao Evento"
"""
        story.append(Preformatted(code2, styles['Code']))
    story.append(Spacer(1, 0.3*inch))

pdf.build(story)

word_filename, pdf_filename

FIM
```
solução!

Oi, Ricardo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Chamou atenção como você estruturou o projeto no Duplo Diamante e conectou muito bem a parte de conformidade regulatória, rastreabilidade e explicabilidade (ex.: SHAP), além de pensar no relatório auditável com SHA-256. Isso fortalece bastante a proposta, principalmente no contexto de Tecnovigilância e alinhamento com normas como a RDC 657/2022 e ISO 13485.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!