Skip to main content
Bir AI raporu, kliniğin seçtiğiniz dönemdeki performansını özetleyen belgedir. Sayılar sistem kayıtlarından hesaplanır ve bir önceki karşılaştırılabilir dönemle kıyaslanır. AI yalnızca kısa bir özet ve öneriler yazar; sayıları üretmez. Rapor planı ise bu raporları günlük, haftalık veya aylık olarak kendiliğinden oluşturan tanımdır. Bu sayfa, raporları ve planları API’den yönetmek isteyen entegrasyon geliştiricileri içindir. Panelde aynı işler için AI Raporları ve Rapor Planları sayfaları vardır. Tüm isteklerde Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıkları gerekir. Taban adres https://app.flextell.ai/api/v1 şeklindedir.

Endpoint özeti

AI raporları

Rapor planları

Kullanıcılar varsayılan olarak yalnızca kendi oluşturdukları raporları görür. Kliniğin tüm raporlarını listelemek, yeniden oluşturmak, indirmek veya silmek için ViewAllAIReports:AIReport (Tümünü Görüntüle) izni gerekir. Planlarda sahiplik süzgeci yoktur; View:AIReportSchedule izni olan herkes kliniğin tüm planlarını görür. Genel kurallar için izinler ve görünürlük ve scope’lar sayfalarına bakın.

Rapor nesnesi

Rapor oluşturma işi arka planda çalışır. POST yanıtı pending durumunda bir rapor döndürür; sonucu GET /ai-reports/{id} ile status alanını izleyerek alırsınız. Durum akışı pending → running → completed şeklindedir. Hata olursa rapor failed olur; durumu API’den elle değiştiremezsiniz.

Dönem etiketleri

Dönemler klinik saat dilimine göre çözülür. Karşılaştırma dönemi, önceki eşdeğer penceredir. this_week, this_month ve this_year için önceki dönem, geçen sürenin aynı uzunluğuna kısaltılır.

Rapor oluşturma

POST /ai-reports isteği raporu hemen kaydeder, 202 ile status: "pending" döner ve üretimi kuyruğa alır.

Modüller

systems alanı aşağıdaki değerleri kabul eder. Tüm modüller için ["all"] gönderin.
systems içinde all varsa kayıt tam olarak ["all"] olarak saklanır. Her modülü tek tek seçmek all ile aynı kayda dönüşmez. Listeleme filtresindeki systems[] de bu yüzden ["all"] raporlarla belirli modül raporlarını birbirinden ayrı eşler.

Yeniden oluşturma

POST /ai-reports/{id}/recreate gövde almaz. Kaynak raporun modüllerini, dönem etiketini, başlığını ve özel aralık tarihlerini kopyalayan yeni bir pending rapor döndürür.
  • Kayan dönemler yeniden çözülür. last_7_days raporunu bugün yeniden oluşturursanız bugünün son 7 günü alınır.
  • Yeni raporun sahibi, kaynak raporun sahibi değil isteği yapan kullanıcıdır.
  • İstek idempotent değildir; her çağrı yeni bir rapor oluşturur.

Listeleme

GET /ai-reports genel sayfalama ve filtreleme ve sıralama kurallarını izler. Bu kaynağa özgü parametreler: Metin araması yoktur. Liste her durumdaki raporu (pending, running, failed dahil) döndürür.

Sonuç yapısı

Şablonlu (structured) raporlarda sonuç result_data içindedir ve version: 2 şemasını kullanır. Bu alan hazır HTML içermez; belgeyi kendiniz çizebilir ya da PDF’i indirebilirsiniz.

Metrik değer biçimleri

92 noktadan uzun günlük seriler haftalık gruplara sıkıştırılır.

Özet davranışı

  • Dönemde hiç etkinlik yoksa AI çağrılmaz; narrative.status skipped olur.
  • Özet üretilemezse rapor yine completed olur. narrative.status failed döner ve sayısal bölümler eksiksizdir.
  • Özet 2–3 cümledir (tek günlük dönemlerde 1–2); tam 3 öneri içerir (tek günlük dönemlerde 2).
  • Önceki dönem kliniğin kuruluşundan öncesini kapsıyorsa karşılaştırma kısmidir.

PDF

GET /ai-reports/{id}/pdf A4 dikey PDF döndürür. PDF ilk indirmede hazırlanır, birkaç saniye sürebilir ve sonra saklanır. İndirme için View değil, Download:AIReport izni gerekir.

Hatalar

Rapor üretimi sırasında oluşan hatalar HTTP yanıtı değil, status: "failed" ve error_message ile görünür:
  • Rapor oluşturulurken bir hata oluştu. Sorun sürerse sistem yöneticinize başvurun. Örneğin 731 günden uzun bir özel aralık bu hatayla biter; POST isteği bu süreyi doğrulamaz.
  • Rapor oluşturulamadı: talebi yapan kullanıcının bu klinikte rapor oluşturma yetkisi kalmamış. Rapor çalışmaya başladığında isteyen kullanıcı kliniğe ait olmalı ve hâlâ Create:AIReport iznine sahip olmalıdır.

Rapor planları

Plan, belirlenen zamanda sizin adınıza POST /ai-reports çağırmak gibi çalışır. Plan, raporu oluşturan kullanıcıya ait olur ve plan adı rapor başlığı olur. Yeni klinikler için üç varsayılan plan kapalı (is_active: false) gelir: Günlük Özet, Haftalık Özet ve Aylık Özet. Bu planların sahibi yoktur; ürettikleri raporları yalnızca ViewAllAIReports:AIReport izni olanlar görür ve kimseye bildirim gitmez.

Plan nesnesi

period_label değeri today olan plan her zaman follows_work_hours: true ile kaydedilir; gönderdiğiniz değer yok sayılır.

Çalışma zamanı kuralları

  • follows_work_hours açıkken çalışma saati, o günün kapanış saatidir. Kapalı günlerde plan çalışmaz.
  • starts_at yoksa ve follows_work_hours kapalıysa daily plan her gün, weekly plan pazartesi, monthly plan ayın 1’inde çalışır. follows_work_hours açıksa daily plan her açık günde, weekly plan haftanın, monthly plan ayın son çalışma gününde çalışır.
  • starts_at varsa weekly plan o tarihin haftanın gününde, monthly plan ayın o gününde çalışır. Ay o günü içermiyorsa ayın son gününe çekilir. Plan başlangıç tarihinden önce çalışmaz. Çalışma saatleri açıkken o gün kapalıysa plan, aynı hafta veya ay içindeki en yakın açık güne kayar.
  • Plan her zaman en fazla bir kez çalışır; zamanlayıcı geç kalsa bile aynı gün içinde yakalar.
  • Plan kaydedilince next_run_at yeniden hesaplanır. Kapalı planda null olur.

Plan örneği

Başarılı oluşturma 201 döner. PUT isteğinde tüm alanlar isteğe bağlıdır; timezone güncellemede null olamaz. Listeleme name, frequency, is_active, last_run_at, next_run_at, created_at alanlarıyla sıralanır (varsayılan created_at, yeniden eskiye) ve frequency, period_label, is_active, user_id, systems[] ile aralık filtrelerini destekler. Bulunamayan plan için 404 RESOURCE_NOT_FOUND ve AI rapor planı bulunamadı döner.

Kredi kullanımı

AI raporları SMS veya WhatsApp kredisi harcamaz. Raporun özet kısmı için yapılan AI çağrıları, aboneliğinizin yapay zekâ kullanım hakkına yazılır ve faturalamada Yapay zekâ raporu kalemi altında görünür. Kredi türleri için krediler, abonelik ve kullanım için abonelik ve faturalama sayfalarına bakın. Abonelik bitmişse veya kullanım hakkı dolmuşsa AI çağrısı reddedilir. Rapor yine de tamamlanır; sayısal bölümler gelir, narrative.status failed olur. Erişim kilitleri hakkında ayrıntı için erişim kilitleri sayfasına bakın.