feat: termina separação Core/EEG no frontend + requisitos vinculados na Biblioteca #77
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/eeg-frontend-separation-linked-requirements"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implementa dois itens do backlog (P2 "vazamento EEG residual no frontend" e o item adiado "requisitos vinculados na Biblioteca").
1. Separação Core/EEG no frontend -- equivalente do vazamento de backend já fechado anteriormente (
Report.eeg_profilefora do extension point).ReportForm.tsx/ReportDetail.tsx/ReportList.tsxembutiam direto o vocabulário EEG (patient code, canais Photic/Cardio/Vídeo). Extraído prafrontend/src/components/EegProfileFields.tsx:EegProfileFields(campos editáveis) eEegProfileReadFields(modo leitura)eegChannelSummary(resumo textual, reaproveitado porReportListeReportDetail)emptyEegProfile/normalizeEegProfile(construção do objeto de formulário)Os 3 componentes genéricos passam a só receber/repassar o objeto
eegadiante, sem interpretar nome de campo nenhum -- mesmo espírito doeeg_extensiondo backend (modules/eeg_reports/report_profile.py), sem precisar de injeção de dependência formal (único consumidor por enquanto, então um componente React reaproveitado basta).2. Requisitos vinculados na Biblioteca -- estava deliberadamente adiado (
RequirementDetailjá geria o vínculo dos dois lados via API, só não aparecia na UI da Biblioteca).ScenarioTemplateOutganhourequirements: List[ScenarioRequirementRef], populado de graça via o backref que já existia (Requirement.scenario_templates,backref="requirements"emmodules/traceability/models.py) -- nenhuma migration, nenhuma mudança no vínculo em si, só exposição.Library.tsxmostra os requisitos vinculados como chips clicáveis, navegando pra/requisitos/:id. Gestão do vínculo continua só viaRequirementDetail, como já era (read-only na Biblioteca por enquanto).Verificação: 263/263 testes de backend (1 novo cobrindo o campo
requirementsemGET/listagem/desvínculo), 163/163 de frontend (1 novo arquivo de teste proEegProfileFields, 2 novos casos emLibrary.test.tsx).tsc/lint/build limpos. Verificado manualmente ponta a ponta no dev server local: criar/editar report com canais EEG (checkboxes + patient code persistindo corretamente em edição e leitura), listagem mostrando "Photic · Vídeo" na coluna Canais, cenário vinculado a um requisito aparecendo na Biblioteca com navegação funcionando atéRequirementDetail.🤖 Generated with Claude Code