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:writevecustomer_forms:readscope’larına sahip olmalı. Tek bir formun yanıtlarını okumak için ayrıcacustomers:readgerekir. Scope’lar için scope’lar sayfasına bakın. - Her istekte
X-Tenantbaş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.
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.
Şablonların panelde nasıl hazırlandığı için Form Şablonları sayfasına bakın.
Link oluşturma
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.
201 döner:
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.
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ğundastatus 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.
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.
Kaynağın tam şeması için hasta formları sayfasına bakın.
Hata durumları
Link oluşturma ve okuma
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ı.