UDENTIVA 智能口腔管理平台
DATA EXPORT & VIEW SCHEMAS

Data Transfer (Export API)

Controlled, read-only data transfer. Only the platform operator (SuperUser) defines a connection + key for a clinic; the key pulls that clinic's data from the selected "VEM" (Minimum Data Model view) datasets. There is no cross-tenant access. It complies with the data portability obligation (Regulation No. 39682, Art. 14).

How does it work?

1
SuperUser defines it
The platform operator (super-admin) creates a connection for a clinic and selects which datasets (VEM View) will be transferred. A single-use API key is generated.
2
Key-based access
An external system (e.g. accounting, reporting, regulatory export) pulls read-only data with an Authorization: Bearer header. The key only sees that clinic's data.
3
Controlled & auditable
Every pull is logged. When requested, the connection is instantly deactivated/revoked. The data is fixed by the view schema; internal table changes don't affect the outside.

Authentication

Every request must carry an export key. Two methods are supported; the key is stored only as a SHA-256 hash.

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

Endpoints

GET /export/v1 Returns the key's permitted datasets and usage information (discovery) Export key
GET /export/v1/{dataset} Pulls the selected dataset with pagination (?limit=1000&offset=0) Export key

Example Usage

Pull patients (VEM)

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

VEM View — View Schemas

Every exportable dataset is a fixed-column VEM View (Minimum Data Model view). Below you'll find each set's full column schema, data types and (where applicable) the corresponding Ministry of Health VEM field. Monetary fields are returned as decimal (numeric), identifiers as uuid, and dates as ISO-8601 (timestamptz).

Hastalar patients VEM: VEM_HASTA 32 column
Hasta demografik kaydı (silinmiş kayıtlar hariç). Özel nitelikli veri içerir; yalnız yetkili kontrollü aktarım içindir.
ColumnType说明
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 column
Hasta başvuru / muayene kaydı (başvuru protokolü, hekim, kabul bilgileri).
ColumnType说明
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 column
Başvuruya bağlı tanılar (ICD-10).
ColumnType说明
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 column
Reçete başlığı (MEDULA e-reçete, e-imza durumu).
ColumnType说明
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 column
Reçetedeki ilaç kalemleri (barkod, doz, kullanım).
ColumnType说明
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 column
Randevu kayıtları (MHRS, gelme durumu, iptal).
ColumnType说明
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 column
Klinik hizmet/işlem kataloğu ve fiyatları.
ColumnType说明
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 column
Tedavi planı kalemleri (uygulanan/planlanan işlemler, fatura durumu).
ColumnType说明
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 column
Odontogram diş durumları (FDI, append-only).
ColumnType说明
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 column
Fatura başlıkları (MEDULA teslim, bütçe kodu, dönem).
ColumnType说明
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 column
Fatura satırları (açıklama, miktar, tutar).
ColumnType说明
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 column
Ödeme/tahsilat kayıtları.
ColumnType说明
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

Security Model

SuperUser-defined: connections are created only in the platform control plane; these endpoints are not discoverable in the public API. Clinics themselves cannot generate keys.
Tenant-locked + fail-closed: each key is bound to a single clinic. Export views run with security_invoker + an embedded tenant filter — with no context, no rows are returned.
Read-only: GET only. The key is stored only as a SHA-256 hash; the plain key is shown once at creation. Deactivation/revocation takes effect immediately.
Auditable: every data retrieval (connection, dataset, row count, IP) is written to the access log.
Full security model →

Other Resources

患者 预约与日程 Odontogram & Treatment Collections & Finance 库存 Imaging 实验室 Lead & CRM 健康旅游 Reporting & BI Webhooks
Want to set up data migration?
Export connections are defined by the platform operator, with your clinic's approval.
联系我们