Skip to main content
Dosya, bir kayda bağlı belge, görsel, ses ya da videodur: hastanın röntgeni, tedavi galerisindeki bir fotoğraf, kliniğin kataloğu gibi. Her dosya tam bir kayda bağlanır (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:
Klinikte zaten bir catalog dosyası varken ikincisini yüklemek 500 SERVER_ERROR döndürür. Yeni katalog yüklemeden önce eskisini silin.

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:Lead iznine 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ği 403 LEAD_NOT_ASSIGNED dö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_ERASED döner.
Ayrıntı için İzinler ve görünürlük sayfasına bakın.

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.
Dosyayı yalnızca göstermek istiyorsanız yanıttaki 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çin sort_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çin PUT /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.
Dosya silindiğinde içeriği hemen kaldırılır. Aynı içeriği başka bir dosya kullanmıyorsa küçük resim de silinir. API’de geri alma yoktur. Silinen bir dosyanın Geri Dönüşüm Kutusu’ndan içeriğiyle geri geleceğini varsaymayın. Bkz. Silme ve yaşam döngüsü.
Silinen dosya kota hesabından hemen düşer. Hasta silindiğinde hastanın dosyaları da silinir.

Hatalar

Hata zarfı için Hata yanıtları, tüm kodlar için Hata kodları sayfasına bakın.