Adatfolyam

  1. Minden adat a szerveren, a lib/medio-api modulon keresztül érkezik; a token sosem jut el a böngészőbe.

  2. Ha a MEDIO_API_BASE és a MEDIO_API_TOKEN is be van állítva, a modul az élő API-t hívja (Bearer token, 8 mp időkorlát), különben a mock fixture-öket szolgálja ki.

  3. Az élő válaszokat a Next.js adatgyorsítótára 300 másodpercig tárolja; hiba esetén a modul a mock adatra vált és naplóz.

  4. A HTML-mezőket a szerver tisztítja (sanitize-html, inline stílusok nélkül), a foglalási beágyazás csak engedélyezett hosztról töltődik be.

Végpontok és felhasználásuk

VégpontParaméterHol jelenik megHasznált mezőkGyorsítótár
GET /institutionslib/medio-api · getInstitutions()—

Telephelyek a főoldalon és a kapcsolat oldalon, a telephelyszűrő az árlistán, MedicalClinic JSON-LD.

  • intezmeny_id
  • intezmeny_nev
  • varos
300 mp
GET /specializationslib/medio-api · getSpecializations(intezmenyId?)intezmeny_id

Szakterület-rács, szakterület-oldalak, szűrőchipek az orvoslistán, statisztika.

  • szakterulet
  • link → qualificationId
  • intezmeny_id
  • tipus
300 mp
GET /doctorslib/medio-api · getDoctorsBySpecialization(szakteruletId)szakterulet_id

Orvoslista (szakterületenként összefűzve, azonosító szerint egyedítve), kiemelt orvosok, orvosprofil, Physician JSON-LD.

  • nev
  • profilkep
  • szakteruletek
  • beszelt_nyelvek
  • bemutatkozas
  • tanulmanyok
  • specializaciok (HTML)
  • intezmenyi_hatter (HTML)
  • tagsagok (HTML)
  • naptar_script → doctorId
  • sorrend
300 mp
GET /doctorlib/medio-api · getDoctorPricelist(doctorId)doctor_id

Az orvosprofil saját árlistája.

  • szulo_szolgaltatas
  • szolgaltatas
  • min_ar
  • max_ar
  • tipus
  • info_text
  • link
300 mp
GET /qualification-priceslib/medio-api · getQualificationPrices(qualificationId)qualification_id

A szakterület-oldal árlistája, szülő szolgáltatás szerint csoportosítva.

  • szulo_szolgaltatas_id
  • szulo_szolgaltatas
  • szolgaltatas
  • min_ar
  • max_ar
  • tipus_id
  • info_text
  • link
300 mp
GET /pricelistlib/medio-api · getPricelist()—

A teljes árlista, a szolgáltatások száma, és az angol nevek forrása a többi végponthoz.

  • szakterulet(_eng)
  • szolgaltatas(_eng)
  • info_text(_eng)
  • szulo_szolgaltatas
  • min_ar
  • max_ar
  • tipus
  • intezmeny_id
  • link
300 mp
GET /searchlib/medio-api · searchApi(q)q

A keresés oldal, találattípus szerint csoportosítva.

  • name
  • result_type
  • value
300 mp

Az API hiányosságai és kezelésük

  • A szakterületeknek nincs azonosító mezője: a qualificationId a link mező query paraméteréből származik.
  • Az orvosoknak nincs azonosító mezője: a doctorId a naptar_script iframe-címéből (doctorId paraméter) származik.
  • A szakterület-azonosító (szakterulet_id) és a qualificationId kapcsolata nincs dokumentálva: egyetlen függvény képezi le őket (lib/medio-api/ids.ts), a MEDIO_QUALIFICATION_MAP felülírhatja.
  • Angol (*_eng) mező csak a /pricelist válaszban van; a szakterület- és szolgáltatásnevek angol változatát innen párosítjuk a többi végponthoz.
  • Az API a klinika saját nyelvén (itt románul) küldi a szövegeket, angolul csak a /pricelist-ben: a többi nyelv a weboldal fordítási táblájából jön, és ahol nincs fordítás, ott jelölés jelenik meg.
  • Az árak szövegként érkeznek (min_ar, max_ar), pénznem nélkül: a pénznem telephelyenként konfigurálható (MEDIO_CURRENCY_MAP).
  • Több mező HTML-t tartalmaz inline stílusokkal (specializaciok, intezmenyi_hatter, tagsagok, esetleg bemutatkozas): a szerver tisztítja őket.
  • A /specializations intezmeny_id paramétere a séma szerint kötelező, a leírás szerint opcionális; a demó paraméter nélkül hívja.
  • A /search találattípusai közül csak a „qualification” dokumentált; a többi típus a value URL alapján kap belső linket, ha az azonosító kinyerhető.

Mintaválaszok az aktuális adatforrásból

Minden végpont első eleme, ahogy a lib/medio-api visszaadja.

GET /institutions1
{
  "intezmeny_id": 132,
  "intezmeny_nev": "Medio Demo Clinic S.R.L",
  "varos": ""
}
GET /specializations?intezmeny_id=13218
{
  "intezmeny_id": 132,
  "intezmeny_nev": "Medio Demo Clinic S.R.L",
  "szakterulet": "Acupunctură",
  "tipus_id": 2,
  "tipus": "Felnőtt",
  "link": "https://mediodemoclinicsrl.medflow.ro/services/10000087?qualificationId=10000087"
}
GET /doctors?szakterulet_id=100000871
{
  "intezmeny_id": 132,
  "nev": "Prof. Mihai Stan",
  "profilkep": "/doctors/102363.jpg",
  "szakteruletek": "Acupunctură, Competenţă imunitară, ONCOLOGIE MEDICALĂ",
  "bemutatkozas": "Atenție la detalii și utilizarea celor mai noi tehnologii medicale.",
  "beszelt_nyelvek": "",
  "specializaciok": "[HTML] Chirurgie minim invazivă",
  "tanulmanyok": "[HTML] UMF 'Carol Davila', București",
  "intezmenyi_hatter": "[HTML] Rețeaua Privată de Sănătate",
  "tagsagok": "[HTML] Colegiul Medicilor din România, Societatea Română de Acupunctură",
  "naptar_script": "[HTML iframe + script] https://mediodemoclinicsrl.medflow.ro/doctors/102363?doctorId=102363&qualificationId…",
  "naptar_script_2": "[HTML iframe + script] https://mediodemoclinicsrl.medflow.ro/doctors/102363?doctorId=102363&qualificationId…",
  "sorrend": 6
}
GET /doctor?doctor_id=1023606
{
  "intezmeny_id": 132,
  "szakterulet_id": 10000083,
  "szakterulet": "Competenţă imunitară",
  "szulo_szolgaltatas_id": 10000083,
  "szulo_szolgaltatas": "Competenţă imunitară",
  "szolgaltatas": "Consultație imunologie",
  "min_ar": "240",
  "max_ar": "300",
  "tipus_id": 2,
  "tipus": "Felnőtt",
  "link": "https://mediodemoclinicsrl.medflow.ro/services/10000083?serviceId=10000996,10001067,10001106,10001132,10001…",
  "info_text": "Serviciu medical de consultație imunologie oferit în cadrul departamentului de Competenţă imunitară."
}
GET /qualification-prices?qualification_id=100000873
{
  "intezmeny_id": 132,
  "szakterulet_id": 10000087,
  "szakterulet": "Acupunctură",
  "szakterulet_eng": "",
  "szulo_szolgaltatas_id": 10000087,
  "szulo_szolgaltatas": "Acupunctură",
  "szolgaltatas": "Evaluare energetică și diagnostic acupunctură",
  "szolgaltatas_eng": "",
  "min_ar": "220",
  "max_ar": "220",
  "tipus_id": 2,
  "tipus": "Felnőtt",
  "link": "https://mediodemoclinicsrl.medflow.ro/services/10000087?serviceId=10001248",
  "info_text": "Serviciu medical de evaluare energetică și diagnostic acupunctură oferit în cadrul departamentului de Acupu…",
  "info_text_eng": ""
}
GET /pricelist55
{
  "intezmeny_id": 132,
  "szakterulet_id": 10000087,
  "szakterulet": "Acupunctură",
  "szakterulet_eng": "",
  "szulo_szolgaltatas_id": 10000087,
  "szulo_szolgaltatas": "Acupunctură",
  "szolgaltatas": "Evaluare energetică și diagnostic acupunctură",
  "szolgaltatas_eng": "",
  "min_ar": "220",
  "max_ar": "220",
  "tipus_id": 2,
  "tipus": "Felnőtt",
  "link": "https://mediodemoclinicsrl.medflow.ro/services/10000087?serviceId=10001248",
  "info_text": "Serviciu medical de evaluare energetică și diagnostic acupunctură oferit în cadrul departamentului de Acupu…",
  "info_text_eng": ""
}
GET /search?q=kardio0
null