Platformă publică pentru consultarea medicamentelor și produselor retrase din România.
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.
- 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ă.
| 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.
- 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.
- Node.js 22;
- npm;
- PostgreSQL;
- un bucket privat compatibil S3.
git clone https://github.com/gd-moarph/Retrase.git
cd Retrase
npm ci
npx prisma generate
npm run db:migrate
npm run devAplicația va fi disponibilă implicit la http://localhost:3000.
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 |
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-runOpț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.
npm test
npm run lint
npm run buildGET /api/cautare/medicamenteGET /api/cautare/produse-generaleGET /api/export/farmaceuticeGET /api/export/produse-generaleGET /api/surse-date/stareGET /api/sanatate
Exporturile sunt limitate la 10.000 de înregistrări per cerere. Cererile excesive primesc răspunsul 429 și antetul Retry-After.
Contribuțiile sunt binevenite prin pull request. Înainte de trimitere:
- creează o ramură separată;
- păstrează modificările concentrate pe o singură problemă;
- adaugă sau actualizează testele relevante;
- rulează testele, lint-ul și build-ul de producție;
- 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.
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.
Proiect construit și întreținut de Gabriel Dumitru.
- Website: Retrase.ro
- Contact: dumitruninelgabriel@gmail.com