Validador web standalone para arquivos CSV/JSON no padrao NoHarm.
- Recebe 9 arquivos (prescricoes, pessoa, medicamentos, setores, unidades, frequencia, exame, alergia, cultura).
- Valida estrutura e semantica dos dados.
- Aceita CSV ou JSON (lista plana de registros, sem hierarquia).
- Faz validacao cruzada entre chaves (ex.: prescricoes -> medicamentos, setores, unidades, frequencia).
- Campos esperados sao baseados nas views padrão da NoHarm.
- Campos obrigatorios
- Campos permitidos
- Qualquer campo fora da uniao gera erro.
- Datas: ISO —
YYYY-MM-DDouYYYY-MM-DDTHH:MM:SS. Formatos com barra nao sao aceitos:06/08/26e ambiguo (6 de agosto ou 8 de junho?) e o ano de 2 digitos nao diz o seculo. - Numeros decimais: separador ponto (
0.75). Virgula sem aspas quebra a linha em colunas a mais (CUSTO 0,0909vira duas colunas). - Codificacao: UTF-8. Latin-1 / Windows-1252 chega com acento corrompido.
- CSV: delimitador virgula, cabecalho na primeira linha, aspas so nos campos que precisam (nao envolver a linha inteira em aspas).
- JSON: array plano de objetos, sem envelope
{ data: [...] }.
A tela tem uma secao "Modelos para download" com um lote de exemplo por tipo de
arquivo (CSV e JSON), coerente entre si — as chaves estrangeiras fecham entre os
9 arquivos. Os modelos sao gerados a partir de TEMPLATES no validator.js e
tests/validate_templates.js garante que eles continuam passando na validacao.
Erros iguais sao agrupados com a contagem real de ocorrencias e alguns exemplos, em vez de listar cada linha. Para os erros recorrentes o relatorio traz uma dica apontando a causa provavel no arquivo (virgula decimal, data fora do ISO, codificacao, linha inteira entre aspas).
Precisa de um servidor HTTP (nao funciona via file:// por causa do Babel).
cd /home/user/Documentos/validador
python3 -m http.server 8000Acesse:
http://localhost:8000/index.html
Os testes validam os lotes de exemplos (CSV e JSON) e os modelos de download com o mesmo motor do app.
npm install
npm testindex.html: pagina principal + CDN (React, AntD, Babel).styles.css: tema e layout.app.js: UI (upload, resumo, detalhes).validator.js: motor de validacao, dicas (HINTS) e modelos (TEMPLATES), compartilhado entre app e testes.examples/: exemplos CSV/JSON validos.imgs/: favicon e logo.
O deploy usa o branch main e a raiz do repo. O arquivo .nojekyll evita o Jekyll sobrescrever o index.html.