Si të Menaxhoni Pacientët përmes API-së

PĂ«rdorni API REST tĂ« Dentare pĂ«r tĂ« krijuar, pĂ«rditĂ«suar, listuar dhe shikuar pacientĂ« nĂ« mĂ«nyrĂ« programatike. Ky udhĂ«zues mbulon krijimin e njĂ« token API, autentifikimin e kĂ«rkesave, dhe pĂ«rdorimin e endpoint-eve tĂ« pacientĂ«ve — tĂ« gjitha pa hapur ndĂ«rfaqen web tĂ« Dentare.

Written by Feti Jashari
Updated over a week ago

Si të Menaxhoni Pacientët përmes API-së

PĂ«rdorni API REST tĂ« Dentare pĂ«r tĂ« krijuar, pĂ«rditĂ«suar, listuar dhe shikuar pacientĂ« nĂ« mĂ«nyrĂ« programatike. Ky udhĂ«zues mbulon krijimin e njĂ« token API, autentifikimin e kĂ«rkesave, dhe pĂ«rdorimin e endpoint-eve tĂ« pacientĂ«ve — tĂ« gjitha pa hapur ndĂ«rfaqen web tĂ« Dentare.


Në këtë artikull:



ÇfarĂ« ju Nevojitet

  • NjĂ« llogari aktive Dentare me akses administratori

  • NjĂ« mjet pĂ«r dĂ«rgimin e kĂ«rkesave HTTP (p.sh., curl, Postman, ose kodi juaj)



Hapi 1 — Krijoni njĂ« Token API

Para se të thërrisni API-në, ju nevojitet një token API. Ky token autentifikon kërkesat tuaja dhe i lidh ato me llogarinë tuaj Dentare.

  1. Identifikohuni në Dentare si administrator i llogarisë

  2. Shkoni te API Tokens nga navigimi i llogarisë (ose navigoni drejtpërdrejt te API Tokens)

  3. Klikoni Create an API Token

  4. Shkruani një emër përshkrues (p.sh., "Integrim Pacientësh" ose "Skript Migrimi")

  5. Klikoni Create

Pas krijimit, Dentare tregon tokenin tuaj. Kopjojeni menjĂ«herĂ« — pĂ«r siguri, tokeni i plotĂ« shihet vetĂ«m nĂ« kĂ«tĂ« moment.

E rëndësishme: Trajtojeni tokenin tuaj API si fjalëkalim. Mos e ndani publikisht dhe mos e vendosni në kontroll versioni. Kushdo me tokenin mund të aksesojë të dhënat e llogarisë suaj.


Për të revokuar një token:

  1. Shkoni te API Tokens

  2. Klikoni emrin e tokenit

  3. Klikoni Revoke

Tokeni fshihet menjëherë dhe nuk mund të përdoret më.



Hapi 2 — Autentifikoni KĂ«rkesat API

Çdo kĂ«rkesĂ« API duhet tĂ« pĂ«rfshijĂ« tokenin tuaj nĂ« header-in Authorization duke pĂ«rdorur skemĂ«n Bearer:

Authorization: Bearer TOKENI_JUAJ_KËTU

Shembull me curl:

curl https://dentare.io/api/v1/me.json -H "Authorization: Bearer TOKENI_JUAJ_KËTU" -H "Accept: application/json"

Një përgjigje e suksesshme kthen profilin tuaj, duke konfirmuar që tokeni funksionon.

Nëse merrni një përgjigje 401 Unauthorized, kontrolloni që:

  • Tokeni Ă«shtĂ« kopjuar saktĂ« (pa hapĂ«sira shtesĂ«)

  • Tokeni nuk Ă«shtĂ« revokuar

  • Header-i Authorization pĂ«rdor prefiksin Bearer



Krijoni një Pacient

Kërkesa:

POST https://dentare.io/api/v1/patients

Header-at:

  • Authorization: Bearer TOKENI_JUAJ_KËTU

  • Content-Type: application/json

Trupi (JSON):

{"first_name": "Arben", "last_name": "Hoxha", "email": "arben@shembull.com", "phone": "+38344123456", "birthdate": "1990-05-15", "gender": "male"}

Shembull me curl:

curl -X POST https://dentare.io/api/v1/patients -H "Authorization: Bearer TOKENI_JUAJ_KËTU" -H "Content-Type: application/json" -d '{"first_name": "Arben", "last_name": "Hoxha", "email": "arben@shembull.com", "phone": "+38344123456"}'

Përgjigja e suksesshme (201 Created):

Kthen regjistrimin e plotë të pacientit në formatin {data: {...}} duke përfshirë id-në e caktuar, display_name, phone_e164 (telefoni i normalizuar), created_at, dhe të gjitha fushat e tjera.

Përgjigja e gabimit (422 Unprocessable Entity):

Kthen {error: "...", errors: {...}} me mesazhe validimi (p.sh., "Emri nuk mund të jetë bosh").

Shënim: Vetëm first_name dhe last_name janë të detyrueshme. Të gjitha fushat e tjera janë opsionale.



Përditësoni një Pacient

Kërkesa:

PATCH https://dentare.io/api/v1/patients/PATIENT_ID

Header-at:

  • Authorization: Bearer TOKENI_JUAJ_KËTU

  • Content-Type: application/json

Trupi (JSON) — pĂ«rfshini vetĂ«m fushat qĂ« dĂ«shironi tĂ« ndryshoni:

{"email": "email_ri@shembull.com", "phone": "+38371999888"}

Shembull me curl:

curl -X PATCH https://dentare.io/api/v1/patients/123 -H "Authorization: Bearer TOKENI_JUAJ_KËTU" -H "Content-Type: application/json" -d '{"email": "email_ri@shembull.com"}'

Përgjigja e suksesshme (200 OK):

Kthen regjistrimin e përditësuar të plotë të pacientit në formatin {data: {...}}.

Përgjigjet e gabimeve:

  • 404 Not Found — pacienti nuk ekziston ose i pĂ«rket njĂ« llogarie tjetĂ«r

  • 422 Unprocessable Entity — gabim validimi



Listoni Pacientët

Kërkesa:

GET https://dentare.io/api/v1/patients

Header-at:

  • Authorization: Bearer TOKENI_JUAJ_KËTU

Parametrat e query-it (të gjitha opsionale):

  • q — kĂ«rkimi (kĂ«rkon nĂ« emĂ«r, email, telefon, numĂ«r personal)

  • page — numri i faqes (parazgjedhur: 1)

  • per_page — artikuj pĂ«r faqe (parazgjedhur: 20, maks: 100)

  • lang — gjuha pĂ«r emrat e shfaqur: en, sq, ose mk

  • email — filtro sipas email-it tĂ« saktĂ«

  • phone — filtro sipas numrit tĂ« telefonit (pĂ«rputhje e pjesshme)

  • personal_no — filtro sipas numrit personal (EMBG)

  • external_id — filtro sipas ID-sĂ« eksterne

  • legacy_id — filtro sipas ID-sĂ« sĂ« vjetĂ«r

  • is_active — filtro sipas statusit aktiv (true ose false; parazgjedhur vetĂ«m aktivĂ«)

Shembull me curl:

curl "https://dentare.io/api/v1/patients?q=Arben&per_page=50" -H "Authorization: Bearer TOKENI_JUAJ_KËTU"

Përgjigja e suksesshme (200 OK):

Përgjigja përmban një listë data dhe një objekt meta:

  • data — lista e regjistrimeve tĂ« pacientĂ«ve, secili me: id, first_name, last_name, display_name, email, phone, phone_e164, locale, is_active, created_at

  • meta — informacioni i faqeve me page, per_page, total

Shënim: Si parazgjedhje, vetëm pacientët aktivë kthehen. Kaloni is_active=false për të përfshirë pacientët joaktivë.



Merrni Detajet e Pacientit

Kërkesa:

GET https://dentare.io/api/v1/patients/PATIENT_ID

Header-at:

  • Authorization: Bearer TOKENI_JUAJ_KËTU

Parametrat e query-it (opsionale):

  • lang — gjuha pĂ«r emrat e shfaqur: en, sq, ose mk

  • fields — listĂ« e ndarĂ« me presje e fushave tĂ« zgjerimit (shiko seksionin Fushat e Zgjerimit mĂ« poshtĂ«)

Shembull me curl:

curl "https://dentare.io/api/v1/patients/123?fields=allergies,medical_conditions,insurance_provider" -H "Authorization: Bearer TOKENI_JUAJ_KËTU"

Përgjigja e suksesshme (200 OK):

Kthen regjistrimin e plotë të pacientit në formatin {data: {...}} duke përfshirë: id, first_name, last_name, display_name, display_first_name, display_last_name, email, phone, phone_e164, phone_country, birthdate, gender, personal_no, external_id, legacy_id, locale, is_active, created_at, updated_at, plus fushat e kërkuara të zgjerimit.

Përgjigja e gabimit:

  • 404 Not Found — pacienti nuk ekziston ose i pĂ«rket njĂ« llogarie tjetĂ«r



Fushat e Disponueshme

Fushat e mëposhtme mund të përdoren kur krijoni ose përditësoni një pacient. Vetëm first_name dhe last_name janë të detyrueshme.

TĂ« detyrueshme:

  • first_name — emri i pacientit

  • last_name — mbiemri i pacientit

Opsionale:

  • email — adresa e email-it

  • phone — numri i telefonit (normalizohet automatikisht nĂ« format ndĂ«rkombĂ«tar E.164)

  • phone_country — kodi dy-shkronjĂ«sh i shtetit pĂ«r normalizimin e telefonit (p.sh., "MK", "XK", "AL")

  • birthdate — data e lindjes nĂ« format ISO 8601 (YYYY-MM-DD)

  • gender — male, female, ose other

  • personal_no — numri personal / EMBG

  • locale — gjuha e preferuar pĂ«r mesazhe: en, sq, ose mk

  • external_id — ID nga njĂ« sistem tjetĂ«r (pĂ«r referencĂ«)

  • blood_type — grupi i gjakut

  • allergies — alergji tĂ« njohura (tekst i lirĂ«)

  • medical_conditions — kushte mjekĂ«sore tĂ« njohura (tekst i lirĂ«)

  • emergency_contact_name — emri i kontaktit tĂ« emergjencĂ«s

  • emergency_contact_relationship — marrĂ«dhĂ«nia me pacientin

  • emergency_contact_phone — numri i telefonit tĂ« kontaktit tĂ« emergjencĂ«s

  • insurance_provider — emri i kompanisĂ« sĂ« sigurimit

  • insurance_id — numri i policĂ«s sĂ« sigurimit

  • is_active — nĂ«se pacienti Ă«shtĂ« aktiv (true ose false)

  • preferred_doctor_id — ID e mjekut tĂ« preferuar



Fushat e Zgjerimit

Si parazgjedhje, përgjigja e detajeve të pacientit përfshin vetëm fushat bazë. Për të përfshirë fusha shtesë, kaloni ato si parametër fields të ndarë me presje në kërkesën GET.

Fushat e disponueshme të zgjerimit:

  • allergies — alergji tĂ« njohura

  • medical_conditions — kushte mjekĂ«sore tĂ« njohura

  • blood_type — grupi i gjakut

  • emergency_contact_name — emri i kontaktit tĂ« emergjencĂ«s

  • emergency_contact_relationship — marrĂ«dhĂ«nia e kontaktit tĂ« emergjencĂ«s

  • emergency_contact_phone — telefoni i kontaktit tĂ« emergjencĂ«s

  • insurance_provider — emri i kompanisĂ« sĂ« sigurimit

  • insurance_id — numri i policĂ«s sĂ« sigurimit

  • vip — statusi VIP

  • vip_start_date — data e fillimit VIP

  • vip_expiration_date — data e skadimit VIP

  • vip_notes — shĂ«nimet VIP

  • preferences — preferencat e pacientit

  • medical_issues — çështje mjekĂ«sore

Shembull:

GET /api/v1/patients/123?fields=allergies,insurance_provider,emergency_contact_name



Përmbledhja e Referencës API

Autentifikimi:

  • Header: Authorization: Bearer TOKENI_JUAJ_KËTU

  • Lloji i pĂ«rmbajtjes: application/json

Endpoint-et:

  • POST /api/v1/patients — krijo njĂ« pacient

  • PATCH /api/v1/patients/:id — pĂ«rditĂ«so njĂ« pacient

  • GET /api/v1/patients — listo pacientĂ«t (me faqe, kĂ«rkim, filtra)

  • GET /api/v1/patients/:id — merr detajet e pacientit (me fusha opsionale zgjerimi)

Kodet e zakonshme HTTP të statusit:

  • 200 — sukses

  • 201 — krijuar me sukses

  • 401 — i paautorizuar (token i pavlefshĂ«m ose mungesĂ«)

  • 404 — nuk u gjet

  • 422 — gabim validimi (fusha tĂ« detyrueshme mungojnĂ«, format i gabuar)



Zgjidhja e Problemeve

401 Unauthorized nĂ« çdo kĂ«rkesĂ« Kontrolloni qĂ« header-i juaj Authorization pĂ«rdor formatin e saktĂ«: Bearer TOKENI_JUAJ_KËTU. Sigurohuni qĂ« tokeni nuk Ă«shtĂ« revokuar.

404 Not Found kur aksesoni njĂ« pacient Pacienti ose nuk ekziston ose i pĂ«rket njĂ« llogarie tjetĂ«r. KĂ«rkesat API janĂ« tĂ« kufizuara nĂ« llogarinĂ« tuaj — nuk mund tĂ« aksesoni pacientĂ« nga llogari tĂ« tjera.

422 Gabim validimi gjatë krijimit Minimalisht, first_name dhe last_name janë të detyrueshme. Kontrolloni objektin errors në përgjigje për gabimet specifike të fushave.

Numri i telefonit shfaqet ndryshe pas krijimit/përditësimit Dentare normalizon automatikisht numrat e telefonit në formatin ndërkombëtar E.164 (p.sh., +38970123456). Numri i normalizuar kthehet në fushën phone_e164. Kaloni phone_country për të ndihmuar normalizimin nëse numrat tuaj të telefonit nuk përfshijnë kodin e shtetit.

KĂ«rkimi nuk kthen rezultate Parametri q kĂ«rkon nĂ« emĂ«r, email, telefon, dhe numĂ«r personal. Sigurohuni qĂ« termi i kĂ«rkimit pĂ«rputhet me tĂ« paktĂ«n njĂ«rĂ«n nga kĂ«to fusha. Si parazgjedhje, vetĂ«m pacientĂ«t aktivĂ« kthehen — kaloni is_active=false pĂ«r tĂ« pĂ«rfshirĂ« ata joaktivĂ«.

Karakteret speciale shfaqen të prishura Sigurohuni që kërkesa juaj përdor kodimin UTF-8. Vendosni header-in Content-Type: application/json; charset=utf-8.

Keni nevojë për ndihmë? Kontaktoni Mbështetjen.

Updated over a week ago

On this page