UDENTIVA Plateforme intelligente de gestion dentaire
MIGRATION DES DONNÉES & SCHÉMAS DE VIEW

Transfert de Données (Export API)

Transfert de données contrôlé et en lecture seule. Seul l'opérateur de la plateforme (SuperUser) définit une connexion + une clé pour une clinique ; la clé extrait les données de cette clinique à partir des jeux de données « VEM Görüntüsü » (view du Modèle de Données Minimal) sélectionnés. Aucun accès inter-tenant. Conforme à l'obligation de portabilité des données (Règlement n° 39682, Art. 14).

Comment ça marche ?

1
Le SuperUser définit
L'opérateur de la plateforme (super-admin) crée un lien pour un cabinet et sélectionne les jeux de données (Vue VEM) à exporter. Une clé API à usage unique est générée.
2
Accès par clé
Un système externe (ex. comptabilité, reporting, export réglementaire) récupère des données en lecture seule via l'en-tête Authorization: Bearer. La clé ne voit que les données de ce cabinet.
3
Contrôlé & auditable
Chaque extraction est consignée. Le lien est désactivé/révoqué instantanément sur demande. Les données sont fixées par le schéma de la vue ; les modifications des tables internes n'affectent pas l'extérieur.

Authentification

Chaque requête doit porter une clé d'export. Deux méthodes sont prises en charge ; la clé n'est stockée que sous forme de hash SHA-256.

Authorization: Bearer udx_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
— ou —X-Export-Key: udx_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Points d'accès

GET /export/v1 Renvoie les jeux de données autorisés et les informations d'utilisation de la clé (découverte) Clé d'export
GET /export/v1/{dataset} Extrait le jeu de données sélectionné de façon paginée (?limit=1000&offset=0) Clé d'export

Exemple d'usage

Extraire les patients (VEM Görüntüsü)

Requête
curl https://udentiva.com/export/v1/patients?limit=1000 \
  -H "Authorization: Bearer udx_xxxxxxxx"
Réponse
HTTP/1.1 200 OK
{
  "dataset": "patients",
  "count": 1000,
  "limit": 1000,
  "offset": 0,
  "rows": [ { "patient_id": "...", "tenant_id": "...", "first_name": "..." } ]
}

Vue VEM — Schémas de view

Chaque jeu de données exportable est une Vue VEM à colonnes fixes (view du Modèle de Données Minimal). Ci-dessous figurent, pour chaque jeu, le schéma complet des colonnes, les types de données et (le cas échéant) la correspondance avec les champs VEM du Ministère de la Santé. Les champs monétaires sont retournés en décimal (numeric), les identifiants en uuid et les dates en ISO-8601 (timestamptz).

Hastalar patients VEM: VEM_HASTA 32 colonne
Hasta demografik kaydı (silinmiş kayıtlar hariç). Özel nitelikli veri içerir; yalnız yetkili kontrollü aktarım içindir.
ColonneTypeDescription
patient_iduuidHasta kimliği (birincil anahtar)
tenant_iduuidKlinik kimliği (kayıt bu kliniğe aittir)
national_idtextTCKN / TC Kimlik Numarası
first_nametextAd (AD)
last_nametextSoyad (SOYADI)
full_nametextTam ad (eski tek-alan)
nationalitytextUyruk (UYRUK)
patient_typetextHasta tipi (HASTA_TIPI)
birth_datedateDoğum tarihi
declared_birth_datedateBeyan doğum tarihi (BEYAN_DOGUM_TARIHI)
gendertextCinsiyet (CINSIYET)
birth_placetextDoğum yeri (DOGUM_YERI)
mother_tckntextAnne TCKN
father_tckntextBaba TCKN
mother_nametextAnne adı
father_nametextBaba adı
birth_ordersmallintDoğum sırası (DOGUM_SIRASI)
marital_statustextMedeni hali (MEDENI_HALI)
occupationtextMeslek (MESLEK)
education_leveltextÖğrenim durumu (OGRENIM_DURUMU)
blood_typetextKan grubu (KAN_GRUBU)
disability_statustext[]Engellilik durumu (ENGELLILIK_DURUMU, dizi)
death_datedateÖlüm tarihi (OLUM_TARIHI)
death_placetextÖlüm yeri (OLUM_YERI)
passport_notextPasaport numarası
yupass_notextYUPASS numarası
last_institution_codetextSon kurum kodu
unidentified_infotextKimliksiz hasta bilgisi
phonetextTelefon
emailtextE-posta
created_attimestamptzOluşturulma zamanı
updated_attimestamptzGüncellenme zamanı
Başvurular visits VEM: VEM_HASTA_BASVURU 21 colonne
Hasta başvuru / muayene kaydı (başvuru protokolü, hekim, kabul bilgileri).
ColonneTypeDescription
visit_iduuidBaşvuru kimliği
tenant_iduuidKlinik kimliği
branch_iduuidŞube kimliği
patient_iduuidHasta kimliği
parent_visit_iduuidBağlı olduğu başvuru
doctor_iduuidHekim kodu (HEKIM_KODU)
assistant_doctor_iduuidAsistan hekim kodu
book_notextDefter numarası
daily_seqintegerGünlük sıra numarası
prioritytextMuayene öncelik sırası
institution_codetextKurum kodu
online_protocol_notextOnline protokol numarası
admission_protocol_notextBaşvuru protokol numarası
admitted_attimestamptzHasta kabul zamanı
admission_typetextKabul şekli
social_security_statustextSosyal güvence durumu
case_typetextVaka türü
referral_diagnosistext[]Sevk tanısı (dizi)
doctor_notetextHekim başvuru notu
created_attimestamptzOluşturulma
updated_attimestamptzGüncellenme
Tanılar diagnoses VEM: VEM_BASVURU_TANI 11 colonne
Başvuruya bağlı tanılar (ICD-10).
ColonneTypeDescription
diagnosis_iduuidTanı kimliği
tenant_iduuidKlinik kimliği
patient_iduuidHasta kimliği
visit_iduuidBaşvuru kimliği
icd10_codetext[]Tanı kodu (ICD-10, dizi)
diagnosis_typetextTanı türü
is_primarybooleanBirincil tanı mı
diagnosed_attimestamptzTanı zamanı
doctor_iduuidHekim kodu
created_attimestamptzOluşturulma
updated_attimestamptzGüncellenme
Reçeteler prescriptions VEM: VEM_RECETE 12 colonne
Reçete başlığı (MEDULA e-reçete, e-imza durumu).
ColonneTypeDescription
prescription_iduuidReçete kimliği
tenant_iduuidKlinik kimliği
patient_iduuidHasta kimliği
visit_iduuidBaşvuru kimliği
doctor_iduuidHekim kimliği
prescription_typetextReçete türü
prescription_subtypetextReçete alt türü
medula_erecete_notextMEDULA e-reçete numarası
esign_statustextReçete e-imza durumu
sgk_follow_notextSGK takip numarası
created_attimestamptzOluşturulma
updated_attimestamptzGüncellenme
Reçete İlaçları prescription_items VEM: VEM_RECETE_ILAC 15 colonne
Reçetedeki ilaç kalemleri (barkod, doz, kullanım).
ColonneTypeDescription
item_iduuidKalem kimliği
tenant_iduuidKlinik kimliği
prescription_iduuidReçete kimliği
barcodetextBarkod
drug_nametextİlaç adı
box_countintegerKutu adedi
dose_unittextDoz birimi
usage_formtextİlaç kullanım şekli
usage_countintegerİlaç kullanım sayısı
usage_dosetextİlaç kullanım dozu
usage_periodintegerİlaç kullanım periyodu
period_unittextPeriyot birimi
notetextİlaç açıklama
created_attimestamptzOluşturulma
updated_attimestamptzGüncellenme
Randevular appointments VEM: RANDEVU 19 colonne
Randevu kayıtları (MHRS, gelme durumu, iptal).
ColonneTypeDescription
appointment_iduuidRandevu kimliği
tenant_iduuidKlinik kimliği
branch_iduuidŞube kimliği
patient_iduuidHasta kimliği
doctor_iduuidHekim kimliği
unit_iduuidÜnite/koltuk kimliği
visit_iduuidBaşvuru kimliği
start_attimestamptzBaşlangıç
end_attimestamptzBitiş
statustextDurum
prioritytextÖncelik
appointment_typetextRandevu türü
appointment_subtypetextRandevu alt türü
mhrs_hrntextMHRS HRN kodu
attendance_statustextRandevu gelme durumu
cancelled_attimestamptzİptal zamanı
cancel_reasontextİptal nedeni
created_attimestamptzOluşturulma
updated_attimestamptzGüncellenme
Hizmet Kataloğu services VEM: HIZMET 6 colonne
Klinik hizmet/işlem kataloğu ve fiyatları.
ColonneTypeDescription
service_iduuidHizmet kimliği
tenant_iduuidKlinik kimliği
codetextHizmet kodu
nametextHizmet adı
pricenumericBirim fiyat (para; ondalık)
updated_attimestamptzGüncellenme
Tedavi Kalemleri treatment_items VEM: HASTA_HIZMET 14 colonne
Tedavi planı kalemleri (uygulanan/planlanan işlemler, fatura durumu).
ColonneTypeDescription
item_iduuidKalem kimliği
tenant_iduuidKlinik kimliği
plan_iduuidTedavi planı kimliği
service_iduuidHizmet kimliği
visit_iduuidBaşvuru kimliği
tooth_notextDiş numarası (FDI)
surfacetextYüzey
pricenumericFiyat (para)
statustextPlan durumu
service_statustextHasta hizmet durumu
billing_statustextHizmet fatura durumu
side_infotextTaraf bilgisi
performed_attimestamptzİşlem zamanı
updated_attimestamptzGüncellenme
Diş Durumları tooth_states VEM: DIS_ISLEM 13 colonne
Odontogram diş durumları (FDI, append-only).
ColonneTypeDescription
tooth_state_iduuidDiş durumu kimliği
tenant_iduuidKlinik kimliği
patient_iduuidHasta kimliği
visit_iduuidBaşvuru kimliği
tooth_nointegerDiş numarası (FDI)
surfacetextYüzey
conditiontextDurum/işlem
dental_action_typetextDiş işlem türü
medula_tooth_codetextDiş kodu (MEDULA)
result_codetextSonuç kodu
result_messagetextSonuç mesajı
recorded_attimestamptzKayıt zamanı
updated_attimestamptzGüncellenme
Faturalar invoices VEM: FATURA 14 colonne
Fatura başlıkları (MEDULA teslim, bütçe kodu, dönem).
ColonneTypeDescription
invoice_iduuidFatura kimliği
tenant_iduuidKlinik kimliği
patient_iduuidHasta kimliği
visit_iduuidBaşvuru kimliği
totalnumericToplam tutar (para)
statustextDurum
invoice_typetextFatura türü
invoice_notextFatura numarası
periodtextFatura dönemi
medula_delivery_notextMEDULA teslim numarası
budget_codetextBütçe kodu
einvoice_statustexte-Fatura durumu
created_attimestamptzOluşturulma
updated_attimestamptzGüncellenme
Fatura Kalemleri invoice_lines VEM: FATURA_KALEM 8 colonne
Fatura satırları (açıklama, miktar, tutar).
ColonneTypeDescription
line_iduuidSatır kimliği
tenant_iduuidKlinik kimliği
invoice_iduuidFatura kimliği
descriptiontextAçıklama
qtynumericMiktar
unit_pricenumericBirim fiyat (para)
line_totalnumericSatır toplamı (para)
updated_attimestamptzGüncellenme
Tahsilatlar payments VEM: TAHSILAT 8 colonne
Ödeme/tahsilat kayıtları.
ColonneTypeDescription
payment_iduuidTahsilat kimliği
tenant_iduuidKlinik kimliği
patient_iduuidHasta kimliği
invoice_iduuidFatura kimliği
amountnumericTutar (para)
methodtextÖdeme yöntemi
paid_attimestamptzTahsilat zamanı
updated_attimestamptzGüncellenme

Modèle de sécurité

Défini par le SuperUser : les liaisons ne sont créées que dans le plan de contrôle de la plateforme ; ces points d'accès ne sont pas détectables dans l'API publique. Les cliniques elles-mêmes ne peuvent pas générer de clés.
Verrouillé au locataire + fail-closed : chaque clé est liée à une seule clinique. Les vues d'export fonctionnent avec security_invoker + un filtre de locataire intégré — sans contexte, aucune ligne n'est renvoyée.
Lecture seule : uniquement GET. La clé n'est stockée que sous forme de hash SHA-256 ; la clé en clair est affichée une seule fois lors de sa création. La désactivation/révocation prend effet immédiatement.
Auditable : chaque extraction de données (connexion, jeu de données, nombre de lignes, IP) est inscrite au journal d'accès.
Tout le modèle de sécurité →

Autres ressources

Patients Rendez-vous & Agenda Odontogramme & Traitement Encaissement & Finance Stock Imagerie Laboratoire Lead & CRM Tourisme médical Reporting & BI Webhooks
Souhaitez-vous mettre en place une migration de données ?
Les liens d'export sont définis par l'opérateur de la plateforme, avec l'accord de votre cabinet.
Contacter