Skip to content

Repository files navigation

Simbol Retrase.ro

Retrase.ro

Platformă publică pentru consultarea medicamentelor și produselor retrase din România.

Site Retrase.ro Licență AGPL-3.0 Acces gratuit Fără cont

ANMDMR — Medicamente ANSVSA — Produse retrase Next.js 16 PostgreSQL

Despre proiect

Retrase.ro centralizează și structurează informații publicate de instituțiile competente despre:

  • notificările de discontinuitate pentru medicamente;
  • nomenclatorul medicamentelor autorizate în România;
  • retragerile și rechemările de produse generale.

Platforma este gratuită, nu necesită înregistrare și nu include abonamente, plăți, profiluri sau notificări comerciale. Căutarea și exporturile XLSX sunt disponibile public, cu limite tehnice anonime pentru protejarea serviciului.

Funcționalități

  • căutare și filtrare în notificările de discontinuitate ANMDMR;
  • căutare în nomenclatorul medicamentelor autorizate;
  • consultarea produselor retrase sau rechemate de ANSVSA;
  • export XLSX pentru seturile publice de date;
  • pagină publică pentru starea surselor și a importurilor;
  • importuri automate, tranzacționale și protejate împotriva execuțiilor simultane;
  • păstrarea versiunilor distincte ale documentelor oficiale în stocare S3 privată.

Surse oficiale

Set de date Instituție Sursă
Discontinuități medicamente ANMDMR Notificări de discontinuitate
Nomenclator medicamente ANMDMR Nomenclatorul medicamentelor
Produse retrase și rechemate ANSVSA Portalul ANSVSA

Retrase.ro nu este afiliat și nu reprezintă oficial ANMDMR sau ANSVSA. Pentru decizii medicale ori comerciale trebuie consultate documentele oficiale și profesioniștii autorizați.

Arhitectură

  • Next.js 16 și React 19 pentru interfața publică și rutele API;
  • TypeScript pentru aplicație, importatoare și comenzi operaționale;
  • PostgreSQL și Prisma pentru date normalizate, starea importurilor și metadate;
  • stocare compatibilă S3 pentru fișierele PDF și XLSX originale;
  • Railway Cron pentru actualizarea periodică a surselor;
  • Vitest pentru testele unitare și de regresie.

Fișierele oficiale sunt identificate prin SHA-256. O versiune neschimbată nu este procesată din nou, iar publicarea datelor are loc numai după validarea completă a documentului.

Rulare locală

Cerințe

  • Node.js 22;
  • npm;
  • PostgreSQL;
  • un bucket privat compatibil S3.

Instalare

git clone https://github.com/gd-moarph/Retrase.git
cd Retrase
npm ci
npx prisma generate
npm run db:migrate
npm run dev

Aplicația va fi disponibilă implicit la http://localhost:3000.

Configurare

Variabilele de mai jos trebuie definite în mediul local sau în platforma de găzduire. Valorile de producție și datele sensibile nu trebuie adăugate în Git.

Variabilă Rol
DATABASE_URL Conexiunea PostgreSQL
AWS_ENDPOINT_URL Endpoint-ul serviciului S3
AWS_ACCESS_KEY_ID Identificatorul de acces S3
AWS_SECRET_ACCESS_KEY Cheia secretă S3
AWS_S3_BUCKET_NAME Numele bucketului privat
AWS_DEFAULT_REGION Regiunea bucketului
AWS_S3_URL_STYLE Stilul adreselor S3, de regulă virtual
RATE_LIMIT_SALT Salt secret pentru anonimizarea identificatorilor de limitare

Importuri

npm run import:anm-nomenclature -- --dry-run
npm run import:anm-discontinuities -- --dry-run
npm run import:ansvsa -- --dry-run
npm run import:all -- --dry-run

Opțiunea --dry-run descarcă și validează sursa fără a publica modificări. Opțiunea --force trebuie folosită numai după verificarea manuală a documentului oficial.

Verificări locale

npm test
npm run lint
npm run build

API public

  • GET /api/cautare/medicamente
  • GET /api/cautare/produse-generale
  • GET /api/export/farmaceutice
  • GET /api/export/produse-generale
  • GET /api/surse-date/stare
  • GET /api/sanatate

Exporturile sunt limitate la 10.000 de înregistrări per cerere. Cererile excesive primesc răspunsul 429 și antetul Retry-After.

Contribuții

Contribuțiile sunt binevenite prin pull request. Înainte de trimitere:

  1. creează o ramură separată;
  2. păstrează modificările concentrate pe o singură problemă;
  3. adaugă sau actualizează testele relevante;
  4. rulează testele, lint-ul și build-ul de producție;
  5. descrie clar comportamentul modificat și modul de verificare.

Problemele de securitate trebuie raportate în mod privat la dumitruninelgabriel@gmail.com, nu într-un issue public.

Licență

Codul este distribuit sub GNU Affero General Public License v3.0. Orice versiune modificată oferită utilizatorilor printr-o rețea trebuie să pună la dispoziție codul sursă corespunzător, conform condițiilor licenței.

Autor

Proiect construit și întreținut de Gabriel Dumitru.

About

Platformă open-source pentru monitorizarea medicamentelor și produselor retrase, pe baza datelor oficiale ANMDMR și ANSVSA.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages