Skip to main content
Bu rehber, kliniğinizdeki bir Form Şablonu’ndan hastaya özel bir link oluşturmayı, linki hastaya ulaştırmayı ve hasta formu doldurduktan sonra yanıtları API’den okumayı anlatır. Anamnez ve onam formları gibi bilgileri randevudan önce toplamak için kullanın.

Senaryo

Bir hasta randevu aldı. Entegrasyonunuz hastaya anamnez formunu göndermek ve hasta doldurunca yanıtları kendi sisteminize almak istiyor. Ön koşullar:
  • Erişim token’ınız form_templates:read, form_templates:write ve customer_forms:read scope’larına sahip olmalı. Tek bir formun yanıtlarını okumak için ayrıca customers:read gerekir. Scope’lar için scope’lar sayfasına bakın.
  • Her istekte X-Tenant başlığını gönderin. Ayrıntı için klinikler ve X-Tenant sayfasına bakın.
  • Token’ın kullanıcısı gerekli izinlere sahip olmalı (aşağıdaki tablo).
ViewAllCustomers:Customer izni olmayan kullanıcılar yalnızca kendilerine atanmış hastaların formlarını görür. Ayrıntı için izinler ve görünürlük sayfasına bakın.

Form şablonunu seçme

Şablonları GET /api/v1/form-templates ile listeleyin. search, is_active ve sort_by (name, created_at, updated_at, is_active) parametrelerini kullanabilirsiniz.
Yanıttaki her kayıtta id, name, system_name, description ve is_active alanları bulunur. Sorular listede gelmez. Soruları görmek için GET /api/v1/form-templates/{id} çağırın; yanıtta questions[] dizisi (label, question_type, required, options[], visibility_rules[]) yer alır.
Link oluşturma endpoint’i şablonun is_active değerini denetlemez. Pasif bir şablondan da link üretebilirsiniz. Yalnızca is_active=1 olan şablonlardan link oluşturun.
Şablonların panelde nasıl hazırlandığı için Form Şablonları sayfasına bakın. POST /api/v1/form-templates/{id}/links her çağrıda yeni bir pending form kaydı ve yeni bir token üretir.
integer
Linkin bağlanacağı hasta. Boş bırakırsanız link anonim olur ve URL’yi bilen herkes doldurabilir.
Başarılı yanıt 201 döner:
Hastaya göndereceğiniz adres url alanıdır; olduğu gibi kullanın. Yanıtta dönen id, doldurulan formu sonradan okurken kullanacağınız customerFormId değeridir. token 6 karakterli, büyük harf ve rakamlardan oluşur.
Yanıtlarını API’den okumak istiyorsanız customer_id göndermelisiniz. Anonim linklerle doldurulan formlar hiçbir liste endpoint’inde görünmez.

Linki hastaya gönderme

Flextell bu linki sizin yerinize hastaya iletmez. url değerini kendi kanalınızdan (e-posta, SMS, WhatsApp) gönderin. Hastanın Flextell’de açık bir sohbeti varsa linki mesaj olarak da gönderebilirsiniz; adımlar için mesaj gönderme rehberine bakın. Hasta linki açtığında:
  • Form tarayıcıda açılır; hastanın giriş yapması gerekmez. Token tek kimlik bilgisidir.
  • Hasta soruları yanıtlayıp gönderir. Koşullu sorular, kural sağlanmadığında gizlenir.
  • Form tek kullanımlıktır. Gönderilen form bir daha doldurulamaz.
Kendi form ekranınızı yapmak isterseniz kimlik doğrulamasız genel endpoint’ler vardır: GET /api/v1/public/forms/{token} ve POST /api/v1/public/forms/{token}. Ayrıntı için herkese açık hasta formları sayfasına bakın. Bu endpoint’ler IP başına varsayılan olarak dakikada 60 okuma ve 10 gönderim ile sınırlıdır; aşıldığında 429 TOO_MANY_REQUESTS döner.

Yanıtları okuma

Form doldurulduğunda status değeri completed olur ve completed_at dolar. Yeni tamamlanan formları yakalamak için listeyi status=completed ve completed_at_from ile belirli aralıklarla sorgulayın.

Doldurulan formları listeleme

GET /api/v1/customer-forms kliniğin formlarını listeler.
Listede yanıtlar yoktur. Kayıtlarda id, template_id, customer_id, status, completed_at, template ve customer bulunur. Panelde aynı liste Form Şablonları → Doldurulan Formlar altında görünür; panel yanıtları göstermez. Panel için Doldurulan Formlar sayfasına bakın.

Bir formun yanıtlarını okuma

Yanıtlar için hastanın formunu tek tek okuyun: GET /api/v1/customers/{customerId}/form/{customerFormId} Yanıtta answers[] dizisi, her kayıtta answer değeri ve ilgili question bulunur. template.questions[] soru metinlerini ve seçenekleri verir. Seçim ve radyo sorularında answer seçenek kimliğidir; onay kutusunda seçenek kimliklerinin listesidir. Evet/Hayır sorusunda “Hayır” 0 olarak gelir ve yanıtsız anlamına gelmez. Bir hastanın tüm formlarını listelemek için GET /api/v1/customers/{customerId}/form kullanın (status, template_id, sort_by, sort_order, per_page, page). Bu liste Laravel sayfalama yapısında data içinde döner.
Lead aşamasındaki kişiler için link oluşturabilirsiniz, ancak bu kişilerin formları GET /customer-forms listesinde çıkmaz. GET /customers/{customerId}/form boş liste, GET /customers/{customerId}/form/{customerFormId} ise 404 döner. Yanıtları okuyacaksanız kişinin hasta olarak kayıtlı olması gerekir.
Kaynağın tam şeması için hasta formları sayfasına bakın.

Hata durumları

Faturalama veya kurulum kilitleri (SUBSCRIPTION_REQUIRED, ACCESS_RESTRICTED_BY_OVERDUE_PAYMENT, SETUP_REQUIRED) yetkili endpoint’lerde de geçerlidir. Bkz. erişim kilitleri ve hata kodları.

Hastanın formu açıp göndermesi

Hasta “Bu form zaten doldurulmuş” uyarısı alırsa yeni bir link oluşturun. Her çağrı yeni bir form kaydı açar; eski kaydın yanıtları yerinde kalır.