fileable_type ve fileable_id). Bu sayfa /v1/files kaynağını anlatır. Yükleme akışının ayrıntıları (ön imzalı yükleme, MIME türleri, boyut sınırları, depolama kotası) için Dosya yükleme sayfasına bakın.
Her istek Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıklarını taşır. Bkz. Klinikler ve X-Tenant.
Endpoint özeti
Hastanın dosyalarını gruplanmış hâlde almak için
GET /v1/customers/{id}/files kullanılır. Bu endpoint customers:read scope’u, View:Customer ve View:File izinlerini ister. Bkz. Hastalar.
Dosya nesnesi
Dosya yanıtlarının alanları:fileable_name değeri bağlı kayda göre şöyle belirlenir: hasta ve lead için ad soyad (yoksa telefon), sohbet mesajı için hastanın adı, kullanıcı, klinik, tedavi ve tedavi grubu için name, AI raporu için title.
record_state, hasta, lead ve sohbet mesajı dosyalarında hastanın durumunu izler. Hasta verileri imha edilmişse is_read_only true olur (reason_code: CUSTOMER_ERASED). Lead size atanmamışsa neden LEAD_NOT_ASSIGNED olur. Diğer bağlı kayıtlarda dosya her zaman yazılabilirdir.
Dosya türleri
type alanı şu değerlerden birini alır:
Bağlanabilen kayıtlar
fileable_type sekiz değerden birini alır. Kayıt, çağırdığınız kliniğe ait olmalıdır.
Tedavi ve tedavi grubu galerileri yalnızca görsel (
image/*) kabul eder ve hastaya gönderilen içeriktir. Bu galerilerde yükleme, sıralama ve silme için dosya izninin yanında Update:Treatment ya da Update:TreatmentGroup izni de gerekir. Eksikse 403 FORBIDDEN döner. Bkz. Tedaviler.
Kimin hangi dosyayı gördüğü
- Dosya izinleri klinik geneldir; yalnızca kendi dosyalarınızı gösteren bir izin yoktur.
ViewAllLeads:Leadiznine sahip olmayan kullanıcılar, yalnızca kendilerine atanmış lead’lerin dosyalarını görür. Başkasının lead’i için yazma isteği403 LEAD_NOT_ASSIGNEDdöner.- Sohbet mesajına bağlı dosyalar, o sohbeti görme yetkiniz yoksa listelenmez ve indirilemez.
- İmha edilmiş hastanın dosyalarını yüklemek ya da silmek
409 CUSTOMER_ERASEDdöner.
Dosyaları listeleme
GET /v1/files sayfalanmış bir liste döner. Silinen dosyalar listelenmez.
Yükleme ve indirme
Dosya iki yolla yüklenir:POST /v1/files ile tek istekte (en çok 50 MB) ya da POST /v1/uploads/presign ve POST /v1/uploads/confirm ile üç adımda (en çok 50 MB, video/* için 5 GB). İkinci yolda aynı group_id ile birden çok dosyayı tek gruba toplayabilirsiniz. POST /v1/files her dosyayı kendi grubuna koyar. Alanlar, MIME türleri, depolama sınırı ve hata kodları Dosya yükleme sayfasındadır.
Tek dosyayı indirme
GET /v1/files/{id}/download dosyayı Content-Disposition: attachment ile bayt akışı olarak döner. Dosya adında uzantı yoksa kayıtlı uzantı eklenir. Dosyanın saklanan içeriğine ulaşılamıyorsa 404 FILE_CONTENT_UNAVAILABLE döner.
temporary_url değerini kullanın.
Grubu ZIP olarak indirme
GET /v1/files/group/{id}/download isteğinde {id}, grubun herhangi bir dosyasının kimliğidir. Yanıt group-{group_id}.zip adlı bir ZIP’tir. Gruba şu dosyalar girer: aynı group_id, fileable_type, fileable_id ve type değerine sahip dosyalar. Aynı ada sahip dosyalar ad_1.uzanti biçiminde yeniden adlandırılır. İçeriği olmayan dosyalar ve size görünmeyen lead dosyaları ZIP’e girmez. Dosyanın grubu yoksa 404 RESOURCE_NOT_FOUND, hiçbir dosyanın içeriği yoksa 404 FILE_CONTENT_UNAVAILABLE döner.
Sıralama
Liste sıralaması içinsort_by şu anahtarları kabul eder: name, size, type, sort_order, created_at, updated_at. Varsayılan created_at alanıdır, yeniden eskiye doğru. sort_order yalnızca asc ya da desc olabilir. Anahtar listede yoksa istek 422 VALIDATION_FAILED ile reddedilir. sort_by göndermezseniz ve search kullanırsanız sonuçlar önce arama alaka düzeyine göre gelir. Genel kurallar için Arama, filtreleme ve sıralama sayfasına bakın.
Sıralamayı her zaman sort_order ile birlikte açıkça verin:
Galeri sırasını değiştirme
Yeni yüklenen galeri görseli listenin sonuna eklenir. Sırayı değiştirmek içinPUT /v1/files/reorder kullanın. İstek Reorder:File iznini ve ilgili Update:Treatment ya da Update:TreatmentGroup iznini ister.
ids listesi, galerideki bütün dosyaları eksiksiz içermelidir; eksik ya da yabancı kimlik varsa istek 422 FILE_REORDER_MISMATCH ile reddedilir ve hiçbir şey değişmez. Başarılı yanıt, dosyaları yeni sırasıyla ve sort_order 1’den n’e olacak biçimde döner.
Silme
DELETE /v1/files/{id} isteği başarılı olursa 200 ve {"success": true, "data": {"message": "Dosya başarıyla silindi"}} döner.
Silinen dosya kota hesabından hemen düşer. Hasta silindiğinde hastanın dosyaları da silinir.