Formular für die Patientenaufnahme
Angaben für den ersten Termin in einer Praxis. Lassen Sie alles weg, was für den Termin nicht nötig ist.
Dieses Formular ist keine Patientenakte. Senden Sie keine Diagnosen, Befunde oder andere Gesundheitsangaben, die für die Anfrage nicht nötig sind. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten.
Vorschau
Formularcode
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Formular für die Patientenaufnahme</title>
<style>
body { font-family: "Segoe UI", sans-serif; color: #12263a; margin: 0; background: #fff; }
main { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }
h1 { font-size: 28px; font-weight: 650; letter-spacing: -0.02em; line-height: 1.2; }
h2 { font-size: 18px; margin: 18px 0 0; }
p { line-height: 1.5; }
form { display: grid; gap: 14px; position: relative; }
.field { display: grid; gap: 6px; }
label span, .check span { font-size: 14px; }
input, select, textarea { font: inherit; color: inherit; padding: 10px 12px; border: 1px solid #b4bdce; border-radius: 8px; width: 100%; box-sizing: border-box; background: #fff; }
textarea { min-height: 96px; }
.check { display: flex; gap: 8px; align-items: flex-start; }
.check input { width: auto; margin-top: 4px; }
button { background: #3c4ad8; color: #fff; border: 0; border-radius: 8px; padding: 12px 18px; font: inherit; cursor: pointer; }
.note { background: #fff6eb; padding: 12px 14px; border-radius: 8px; }
form [data-show-if] { display: none; }
form:has(select[name="medications"] option[value="yes"]:checked) [data-show-if="medications"][data-show-equals="yes"] { display: grid; }
</style>
</head>
<body>
<main>
<h1 data-i18n="title">Formular für die Patientenaufnahme</h1>
<p data-i18n="lede">Angaben für den ersten Termin in einer Praxis. Lassen Sie alles weg, was für den Termin nicht nötig ist.</p>
<p class="note" data-i18n="disclaimer">Dieses Formular ist keine Patientenakte. Senden Sie keine Diagnosen, Befunde oder andere Gesundheitsangaben, die für die Anfrage nicht nötig sind. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten.</p>
<form id="fg-form" action="https://formgong.com/submit" method="POST" enctype="multipart/form-data" data-sitekey="" data-lang="de">
<input type="hidden" name="access_key" value="fk_your_access_key">
<input type="hidden" name="_lang" value="de">
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden"><label>Leave this field empty<input name="botcheck" tabindex="-1" autocomplete="off"></label></div>
<section><h2 data-i18n="section.patient">Patient</h2>
<div class="field"><label for="fg-name"><span data-i18n="name">Name</span></label><input id="fg-name" name="name" type="text" required maxlength="80" autocomplete="name"></div>
<div class="field"><label for="fg-birth_date"><span data-i18n="birth_date">Date of birth</span></label><input id="fg-birth_date" name="birth_date" type="date" required></div>
<div class="field"><label for="fg-phone"><span data-i18n="phone">Phone</span></label><input id="fg-phone" name="phone" type="tel" required maxlength="40" autocomplete="tel"></div>
<div class="field"><label for="fg-email"><span data-i18n="email">Email</span></label><input id="fg-email" name="email" type="email" maxlength="120" autocomplete="email"></div></section>
<section><h2 data-i18n="section.visit">This visit</h2>
<div class="field"><label for="fg-first_visit"><span data-i18n="first_visit">Is this your first visit here?</span></label><select id="fg-first_visit" name="first_visit" required><option value="">—</option><option value="yes" data-i18n="first_visit.yes">Yes</option><option value="no" data-i18n="first_visit.no">No</option></select></div>
<div class="field"><label for="fg-reason"><span data-i18n="reason">Why are you coming in?</span></label><textarea id="fg-reason" name="reason" required maxlength="500"></textarea></div>
<div class="field"><label for="fg-medications"><span data-i18n="medications">Do you take regular medication the clinic should know about?</span></label><select id="fg-medications" name="medications" required><option value="">—</option><option value="yes" data-i18n="medications.yes">Yes</option><option value="no" data-i18n="medications.no">No</option></select></div>
<div class="field" data-show-if="medications" data-show-equals="yes"><label for="fg-medication_note"><span data-i18n="medication_note">Which medicines? Leave blank if the visit does not need the list.</span></label><textarea id="fg-medication_note" name="medication_note" maxlength="500"></textarea></div></section>
<section><h2 data-i18n="section.emergency">Emergency contact</h2>
<div class="field"><label for="fg-emergency_name"><span data-i18n="emergency_name">Name</span></label><input id="fg-emergency_name" name="emergency_name" type="text" maxlength="80" autocomplete="name"></div>
<div class="field"><label for="fg-emergency_phone"><span data-i18n="emergency_phone">Phone</span></label><input id="fg-emergency_phone" name="emergency_phone" type="tel" maxlength="40" autocomplete="tel"></div></section>
<section><h2 data-i18n="section.consent">Consent</h2>
<div class="field"><label class="check"><input id="fg-consent_contact" name="consent_contact" type="checkbox" value="yes" required><span data-i18n="consent_contact">I agree to be contacted about this request.</span></label></div>
<div class="field"><label class="check"><input id="fg-consent_privacy" name="consent_privacy" type="checkbox" value="yes" required><span data-i18n="consent_privacy">I agree that these answers are stored so the request can be handled.</span></label></div></section>
<!-- Set data-sitekey on this form to YOUR_TURNSTILE_SITE_KEY. Required for attachments. -->
<div data-turnstile></div>
<button type="submit" data-i18n="submit">Senden</button>
<p data-status role="status"></p>
</form>
</main>
<script type="application/json" id="fg-labels">{"uk":{"title":"Форма первинного прийому пацієнта","lede":"Дані для першого візиту. Не додавайте те, без чого прийом можна провести.","submit":"Надіслати","thanks":"Надіслано. Дякуємо.","file_too_big":"До 3 файлів, по 5 MiB, разом до 10 MiB.","error":"Не вдалося надіслати. Спробуйте ще раз.","disclaimer":"Ця форма не є медичним записом. Не надсилайте діагнози, результати аналізів чи інші дані про здоров'я, без яких заявку не обробити. Дані про здоров'я — особлива категорія за GDPR.","section.patient":"Пацієнт","name":"Ім'я","birth_date":"Дата народження","phone":"Телефон","email":"Електронна пошта","section.visit":"Цей візит","first_visit":"Це ваш перший візит сюди?","first_visit.yes":"Так","first_visit.no":"Ні","reason":"Чому ви приходите?","medications":"Чи є регулярні ліки, про які клініці варто знати?","medications.yes":"Так","medications.no":"Ні","medication_note":"Які ліки? Залиште порожнім, якщо для візиту список не потрібен.","section.emergency":"Екстрений контакт","emergency_name":"Ім'я","emergency_phone":"Телефон","section.consent":"Згода","consent_contact":"Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.","consent_privacy":"Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."},"en":{"title":"Patient intake form","lede":"First-visit details for a clinic. Leave out anything the visit does not need.","submit":"Send","thanks":"Sent. Thank you.","file_too_big":"Up to 3 files, 5 MiB each and 10 MiB combined.","error":"Could not send. Please try again.","disclaimer":"This form is not a medical record. Do not send diagnoses, test results, or other health details you do not need for the request. Health data is a special category under the GDPR.","section.patient":"Patient","name":"Name","birth_date":"Date of birth","phone":"Phone","email":"Email","section.visit":"This visit","first_visit":"Is this your first visit here?","first_visit.yes":"Yes","first_visit.no":"No","reason":"Why are you coming in?","medications":"Do you take regular medication the clinic should know about?","medications.yes":"Yes","medications.no":"No","medication_note":"Which medicines? Leave blank if the visit does not need the list.","section.emergency":"Emergency contact","emergency_name":"Name","emergency_phone":"Phone","section.consent":"Consent","consent_contact":"I agree to be contacted about this request.","consent_privacy":"I agree that these answers are stored so the request can be handled."},"pl":{"title":"Formularz wywiadu pacjenta","lede":"Dane na pierwszą wizytę. Pomiń to, bez czego wizyta może się odbyć.","submit":"Wyślij","thanks":"Wysłano. Dziękujemy.","file_too_big":"Do 3 plików, po 5 MiB, łącznie 10 MiB.","error":"Nie udało się wysłać. Spróbuj ponownie.","disclaimer":"Ten formularz nie jest dokumentacją medyczną. Nie wysyłaj rozpoznań, wyników badań ani innych danych o zdrowiu, które nie są potrzebne do obsługi zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO.","section.patient":"Pacjent","name":"Imię","birth_date":"Data urodzenia","phone":"Telefon","email":"E-mail","section.visit":"Ta wizyta","first_visit":"Czy to pierwsza wizyta tutaj?","first_visit.yes":"Tak","first_visit.no":"Nie","reason":"Po co przychodzisz?","medications":"Czy przyjmujesz leki, o których przychodnia powinna wiedzieć?","medications.yes":"Tak","medications.no":"Nie","medication_note":"Jakie leki? Zostaw puste, jeśli wizyta nie wymaga listy.","section.emergency":"Kontakt alarmowy","emergency_name":"Imię","emergency_phone":"Telefon","section.consent":"Zgoda","consent_contact":"Zgadzam się na kontakt w sprawie tego zgłoszenia.","consent_privacy":"Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."},"tr":{"title":"Hasta kabul formu","lede":"İlk ziyaret için bilgiler. Ziyaret onsuz yapılabiliyorsa eklemeyin.","submit":"Gönder","thanks":"Gönderildi. Teşekkürler.","file_too_big":"En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.","error":"Gönderilemedi. Lütfen tekrar deneyin.","disclaimer":"Bu form bir tıbbi kayıt değildir. Tanı, tahlil sonucu veya talep için gerekmeyen başka sağlık verisi göndermeyin. Sağlık verisi GDPR'de özel nitelikli veridir.","section.patient":"Hasta","name":"Ad","birth_date":"Doğum tarihi","phone":"Telefon","email":"E-posta","section.visit":"Bu ziyaret","first_visit":"Buraya ilk gelişiniz mi?","first_visit.yes":"Evet","first_visit.no":"Hayır","reason":"Neden geliyorsunuz?","medications":"Kliniğin bilmesi gereken düzenli bir ilaç var mı?","medications.yes":"Evet","medications.no":"Hayır","medication_note":"Hangi ilaçlar? Ziyaret için liste gerekmiyorsa boş bırakın.","section.emergency":"Acil durumda","emergency_name":"Ad","emergency_phone":"Telefon","section.consent":"Onay","consent_contact":"Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.","consent_privacy":"Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."},"ar":{"title":"نموذج استقبال المريض","lede":"بيانات الزيارة الأولى للعيادة. اترك كل ما لا تحتاجه الزيارة.","submit":"إرسال","thanks":"تم الإرسال. شكرًا لك.","file_too_big":"حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.","error":"تعذّر الإرسال. يُرجى المحاولة مرة أخرى.","disclaimer":"هذا النموذج ليس سجلاً طبياً. لا ترسل تشخيصات أو نتائج فحوصات أو أي تفاصيل صحية أخرى لا تحتاجها في هذا الطلب. تُعتبر البيانات الصحية فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR).","section.patient":"المريض","name":"الاسم","birth_date":"تاريخ الميلاد","phone":"الهاتف","email":"البريد الإلكتروني","section.visit":"هذه الزيارة","first_visit":"هل هذه زيارتك الأولى هنا؟","first_visit.yes":"نعم","first_visit.no":"لا","reason":"ما سبب زيارتك؟","medications":"هل تتناول أدوية بانتظام يجب أن تعرفها العيادة؟","medications.yes":"نعم","medications.no":"لا","medication_note":"ما الأدوية؟ اترك الحقل فارغًا إذا لم تحتج الزيارة إلى القائمة.","section.emergency":"جهة اتصال للطوارئ","emergency_name":"الاسم","emergency_phone":"الهاتف","section.consent":"الموافقة","consent_contact":"أوافق على التواصل معي بخصوص هذا الطلب.","consent_privacy":"أوافق على حفظ هذه الإجابات لمعالجة الطلب."},"he":{"title":"טופס קליטת מטופל","lede":"פרטים לביקור ראשון במרפאה. השמיטו כל מה שאינו נחוץ לביקור.","submit":"שליחה","thanks":"נשלח. תודה.","file_too_big":"עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.","error":"השליחה נכשלה. נסו שוב.","disclaimer":"הטופס הזה אינו רשומה רפואית. אל תשלחו אבחנות, תוצאות בדיקות או פרטי בריאות אחרים שאינם נחוצים לפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR.","section.patient":"מטופל","name":"שם","birth_date":"תאריך לידה","phone":"טלפון","email":"אימייל","section.visit":"הביקור הזה","first_visit":"האם זה הביקור הראשון שלך כאן?","first_visit.yes":"כן","first_visit.no":"לא","reason":"מה סיבת ההגעה?","medications":"האם את/ה נוטל/ת תרופות קבועות שהמרפאה צריכה לדעת עליהן?","medications.yes":"כן","medications.no":"לא","medication_note":"אילו תרופות? השאירו ריק אם הביקור לא דורש את הרשימה.","section.emergency":"איש קשר לחירום","emergency_name":"שם","emergency_phone":"טלפון","section.consent":"הסכמה","consent_contact":"אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.","consent_privacy":"אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."},"es":{"title":"Formulario de admisión de pacientes","lede":"Datos para la primera visita a una clínica. Omite lo que la visita no necesite.","submit":"Enviar","thanks":"Enviado. Gracias.","file_too_big":"Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.","error":"No se pudo enviar. Inténtalo de nuevo.","disclaimer":"Este formulario no es una historia clínica. No envíes diagnósticos, resultados de pruebas ni otros datos de salud que la solicitud no necesite. Los datos de salud son una categoría especial en el RGPD.","section.patient":"Paciente","name":"Nombre","birth_date":"Fecha de nacimiento","phone":"Teléfono","email":"Correo electrónico","section.visit":"Esta visita","first_visit":"¿Es tu primera visita?","first_visit.yes":"Sí","first_visit.no":"No","reason":"¿Por qué vienes?","medications":"¿Tomas alguna medicación habitual que la clínica deba conocer?","medications.yes":"Sí","medications.no":"No","medication_note":"¿Qué medicamentos? Déjalo en blanco si la visita no necesita la lista.","section.emergency":"Contacto de emergencia","emergency_name":"Nombre","emergency_phone":"Teléfono","section.consent":"Consentimiento","consent_contact":"Acepto que me contacten sobre esta solicitud.","consent_privacy":"Acepto que estas respuestas se guarden para tramitar la solicitud."},"fr":{"title":"Formulaire d’admission du patient","lede":"Informations pour une première visite à la clinique. Omettez tout ce dont la visite n’a pas besoin.","submit":"Envoyer","thanks":"Envoyé. Merci.","file_too_big":"Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.","error":"Envoi impossible. Veuillez réessayer.","disclaimer":"Ce formulaire n’est pas un dossier médical. N’envoyez pas de diagnostic, de résultat d’analyse ni d’autre donnée de santé inutile pour la demande. Les données de santé sont une catégorie particulière au sens du RGPD.","section.patient":"Patient","name":"Nom","birth_date":"Date de naissance","phone":"Téléphone","email":"E-mail","section.visit":"Cette visite","first_visit":"Est-ce votre première visite ici ?","first_visit.yes":"Oui","first_visit.no":"Non","reason":"Pourquoi venez-vous ?","medications":"Prenez-vous un traitement régulier que la clinique doit connaître ?","medications.yes":"Oui","medications.no":"Non","medication_note":"Quels médicaments ? Laissez vide si la visite n’a pas besoin de la liste.","section.emergency":"Contact d’urgence","emergency_name":"Nom","emergency_phone":"Téléphone","section.consent":"Consentement","consent_contact":"J’accepte d’être contacté au sujet de cette demande.","consent_privacy":"J’accepte que ces réponses soient conservées pour traiter la demande."},"pt":{"title":"Formulário de admissão de paciente","lede":"Dados para a primeira consulta numa clínica. Omita o que a consulta não exigir.","submit":"Enviar","thanks":"Enviado. Obrigado.","file_too_big":"Até 3 ficheiros, 5 MiB cada e 10 MiB no total.","error":"Não foi possível enviar. Tente novamente.","disclaimer":"Este formulário não é um registo clínico. Não envie diagnósticos, resultados de exames nem outros dados de saúde que não sejam necessários para o pedido. Os dados de saúde são uma categoria especial no RGPD.","section.patient":"Paciente","name":"Nome","birth_date":"Data de nascimento","phone":"Telefone","email":"Email","section.visit":"Esta consulta","first_visit":"É a sua primeira consulta aqui?","first_visit.yes":"Sim","first_visit.no":"Não","reason":"Qual o motivo da consulta?","medications":"Toma medicação regular que a clínica deva conhecer?","medications.yes":"Sim","medications.no":"Não","medication_note":"Que medicamentos? Deixe em branco se a consulta não precisar da lista.","section.emergency":"Contacto de emergência","emergency_name":"Nome","emergency_phone":"Telefone","section.consent":"Consentimento","consent_contact":"Aceito ser contactado sobre este pedido.","consent_privacy":"Aceito que estas respostas sejam guardadas para tratar o pedido."},"hi":{"title":"मरीज़ पंजीकरण फ़ॉर्म","lede":"क्लिनिक की पहली विज़िट के लिए जानकारी। जो विज़िट के लिए ज़रूरी न हो, उसे छोड़ दें।","submit":"भेजें","thanks":"भेज दिया गया। धन्यवाद।","file_too_big":"अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।","error":"भेजा नहीं जा सका। कृपया फिर से कोशिश करें।","disclaimer":"यह फ़ॉर्म मेडिकल रिकॉर्ड नहीं है। निदान, जाँच के नतीजे या अन्य स्वास्थ्य विवरण न भेजें जिनकी इस अनुरोध के लिए ज़रूरत नहीं है। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है।","section.patient":"मरीज़","name":"नाम","birth_date":"जन्म तिथि","phone":"फ़ोन","email":"ईमेल","section.visit":"यह विज़िट","first_visit":"क्या यह यहाँ आपकी पहली विज़िट है?","first_visit.yes":"हाँ","first_visit.no":"नहीं","reason":"आप किस कारण आ रहे हैं?","medications":"क्या आप नियमित रूप से कोई दवा लेते हैं जिसके बारे में क्लिनिक को पता होना चाहिए?","medications.yes":"हाँ","medications.no":"नहीं","medication_note":"कौन-सी दवाएँ? अगर विज़िट के लिए सूची ज़रूरी नहीं है तो खाली छोड़ें।","section.emergency":"आपातकालीन संपर्क","emergency_name":"नाम","emergency_phone":"फ़ोन","section.consent":"सहमति","consent_contact":"मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।","consent_privacy":"मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"},"ja":{"title":"初診受付フォーム","lede":"クリニック初診のための情報です。受診に不要なことは記入しないでください。","submit":"送信","thanks":"送信しました。ありがとうございます。","file_too_big":"ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。","error":"送信できませんでした。もう一度お試しください。","disclaimer":"このフォームは医療記録ではありません。依頼に必要のない診断結果、検査結果、その他の健康に関する詳細情報は送信しないでください。健康データは、GDPRにおける特別なカテゴリーに該当します。","section.patient":"患者","name":"お名前","birth_date":"生年月日","phone":"電話番号","email":"メールアドレス","section.visit":"今回の受診","first_visit":"当院の受診は初めてですか?","first_visit.yes":"はい","first_visit.no":"いいえ","reason":"受診の理由","medications":"クリニックが知っておくべき常用薬はありますか?","medications.yes":"はい","medications.no":"いいえ","medication_note":"どの薬ですか?受診に一覧が不要な場合は空欄のままにしてください。","section.emergency":"緊急連絡先","emergency_name":"お名前","emergency_phone":"電話番号","section.consent":"同意","consent_contact":"このお問い合わせについて連絡を受けることに同意します。","consent_privacy":"お問い合わせへの対応のため、これらの回答が保存されることに同意します。"},"de":{"title":"Formular für die Patientenaufnahme","lede":"Angaben für den ersten Termin in einer Praxis. Lassen Sie alles weg, was für den Termin nicht nötig ist.","submit":"Senden","thanks":"Gesendet. Vielen Dank.","file_too_big":"Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.","error":"Senden fehlgeschlagen. Bitte versuchen Sie es erneut.","disclaimer":"Dieses Formular ist keine Patientenakte. Senden Sie keine Diagnosen, Befunde oder andere Gesundheitsangaben, die für die Anfrage nicht nötig sind. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten.","section.patient":"Patient","name":"Name","birth_date":"Geburtsdatum","phone":"Telefon","email":"E-Mail","section.visit":"Dieser Termin","first_visit":"Sind Sie zum ersten Mal bei uns?","first_visit.yes":"Ja","first_visit.no":"Nein","reason":"Weshalb kommen Sie?","medications":"Nehmen Sie regelmäßig Medikamente, von denen die Praxis wissen sollte?","medications.yes":"Ja","medications.no":"Nein","medication_note":"Welche Medikamente? Leer lassen, wenn die Liste für den Termin nicht nötig ist.","section.emergency":"Notfallkontakt","emergency_name":"Name","emergency_phone":"Telefon","section.consent":"Einwilligung","consent_contact":"Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.","consent_privacy":"Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."}}</script>
<script>
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
(function () {
var MAX = 5242880;
var form = document.getElementById("fg-form");
var packNode = document.getElementById("fg-labels");
if (!form || !packNode) return;
var pack = JSON.parse(packNode.textContent);
function code() {
var q = new URLSearchParams(location.search).get("lang") || "";
// ?lang= preview override, then the form language chosen when copying, then the page and browser.
var raw = (q || form.getAttribute("data-lang") || document.documentElement.lang || (navigator.language || "en")).slice(0, 2).toLowerCase();
return pack[raw] ? raw : "en";
}
function apply() {
var dict = pack[code()];
document.querySelectorAll("[data-i18n]").forEach(function (node) {
var key = node.getAttribute("data-i18n");
if (key && typeof dict[key] === "string") node.textContent = dict[key];
});
}
apply();
var status = form.querySelector("[data-status]");
form.addEventListener("submit", function (event) {
event.preventDefault();
var dict = pack[code()];
var body = new FormData(form);
var files = Array.from(body.values()).filter(function (value) { return value instanceof File && value.size; });
if (files.length > 3 || files.some(function (file) { return file.size > MAX; }) || files.reduce(function (sum,file) { return sum + file.size; },0) > 10 * 1024 * 1024) {
if (status) status.textContent = dict.file_too_big;
return;
}
var button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
fetch(form.action, { method: "POST", headers: { Accept: "application/json" }, body: body })
.then(function (response) { return response.json(); }).then(function (result) {
if (status) status.textContent = result && result.success ? dict.thanks : ((result && result.message) || dict.error);
}).catch(function () { if (status) status.textContent = dict.error; })
.finally(function () { if (button) button.disabled = false; resetCaptcha(form); });
});
mountCaptcha(form.querySelector("[data-turnstile]"), form.dataset.sitekey);
})();
</script>
</body>
</html>
// Generated from src/content/industries.ts — npm run templates:write
import { useState, useEffect, useRef } from "react";
const ENDPOINT = "https://formgong.com/submit";
const FILE_MAX = 5242880;
const LABELS = {
"uk": {
"title": "Форма первинного прийому пацієнта",
"lede": "Дані для першого візиту. Не додавайте те, без чого прийом можна провести.",
"submit": "Надіслати",
"thanks": "Надіслано. Дякуємо.",
"file_too_big": "До 3 файлів, по 5 MiB, разом до 10 MiB.",
"error": "Не вдалося надіслати. Спробуйте ще раз.",
"disclaimer": "Ця форма не є медичним записом. Не надсилайте діагнози, результати аналізів чи інші дані про здоров'я, без яких заявку не обробити. Дані про здоров'я — особлива категорія за GDPR.",
"section.patient": "Пацієнт",
"name": "Ім'я",
"birth_date": "Дата народження",
"phone": "Телефон",
"email": "Електронна пошта",
"section.visit": "Цей візит",
"first_visit": "Це ваш перший візит сюди?",
"first_visit.yes": "Так",
"first_visit.no": "Ні",
"reason": "Чому ви приходите?",
"medications": "Чи є регулярні ліки, про які клініці варто знати?",
"medications.yes": "Так",
"medications.no": "Ні",
"medication_note": "Які ліки? Залиште порожнім, якщо для візиту список не потрібен.",
"section.emergency": "Екстрений контакт",
"emergency_name": "Ім'я",
"emergency_phone": "Телефон",
"section.consent": "Згода",
"consent_contact": "Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.",
"consent_privacy": "Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."
},
"en": {
"title": "Patient intake form",
"lede": "First-visit details for a clinic. Leave out anything the visit does not need.",
"submit": "Send",
"thanks": "Sent. Thank you.",
"file_too_big": "Up to 3 files, 5 MiB each and 10 MiB combined.",
"error": "Could not send. Please try again.",
"disclaimer": "This form is not a medical record. Do not send diagnoses, test results, or other health details you do not need for the request. Health data is a special category under the GDPR.",
"section.patient": "Patient",
"name": "Name",
"birth_date": "Date of birth",
"phone": "Phone",
"email": "Email",
"section.visit": "This visit",
"first_visit": "Is this your first visit here?",
"first_visit.yes": "Yes",
"first_visit.no": "No",
"reason": "Why are you coming in?",
"medications": "Do you take regular medication the clinic should know about?",
"medications.yes": "Yes",
"medications.no": "No",
"medication_note": "Which medicines? Leave blank if the visit does not need the list.",
"section.emergency": "Emergency contact",
"emergency_name": "Name",
"emergency_phone": "Phone",
"section.consent": "Consent",
"consent_contact": "I agree to be contacted about this request.",
"consent_privacy": "I agree that these answers are stored so the request can be handled."
},
"pl": {
"title": "Formularz wywiadu pacjenta",
"lede": "Dane na pierwszą wizytę. Pomiń to, bez czego wizyta może się odbyć.",
"submit": "Wyślij",
"thanks": "Wysłano. Dziękujemy.",
"file_too_big": "Do 3 plików, po 5 MiB, łącznie 10 MiB.",
"error": "Nie udało się wysłać. Spróbuj ponownie.",
"disclaimer": "Ten formularz nie jest dokumentacją medyczną. Nie wysyłaj rozpoznań, wyników badań ani innych danych o zdrowiu, które nie są potrzebne do obsługi zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO.",
"section.patient": "Pacjent",
"name": "Imię",
"birth_date": "Data urodzenia",
"phone": "Telefon",
"email": "E-mail",
"section.visit": "Ta wizyta",
"first_visit": "Czy to pierwsza wizyta tutaj?",
"first_visit.yes": "Tak",
"first_visit.no": "Nie",
"reason": "Po co przychodzisz?",
"medications": "Czy przyjmujesz leki, o których przychodnia powinna wiedzieć?",
"medications.yes": "Tak",
"medications.no": "Nie",
"medication_note": "Jakie leki? Zostaw puste, jeśli wizyta nie wymaga listy.",
"section.emergency": "Kontakt alarmowy",
"emergency_name": "Imię",
"emergency_phone": "Telefon",
"section.consent": "Zgoda",
"consent_contact": "Zgadzam się na kontakt w sprawie tego zgłoszenia.",
"consent_privacy": "Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."
},
"tr": {
"title": "Hasta kabul formu",
"lede": "İlk ziyaret için bilgiler. Ziyaret onsuz yapılabiliyorsa eklemeyin.",
"submit": "Gönder",
"thanks": "Gönderildi. Teşekkürler.",
"file_too_big": "En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.",
"error": "Gönderilemedi. Lütfen tekrar deneyin.",
"disclaimer": "Bu form bir tıbbi kayıt değildir. Tanı, tahlil sonucu veya talep için gerekmeyen başka sağlık verisi göndermeyin. Sağlık verisi GDPR'de özel nitelikli veridir.",
"section.patient": "Hasta",
"name": "Ad",
"birth_date": "Doğum tarihi",
"phone": "Telefon",
"email": "E-posta",
"section.visit": "Bu ziyaret",
"first_visit": "Buraya ilk gelişiniz mi?",
"first_visit.yes": "Evet",
"first_visit.no": "Hayır",
"reason": "Neden geliyorsunuz?",
"medications": "Kliniğin bilmesi gereken düzenli bir ilaç var mı?",
"medications.yes": "Evet",
"medications.no": "Hayır",
"medication_note": "Hangi ilaçlar? Ziyaret için liste gerekmiyorsa boş bırakın.",
"section.emergency": "Acil durumda",
"emergency_name": "Ad",
"emergency_phone": "Telefon",
"section.consent": "Onay",
"consent_contact": "Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.",
"consent_privacy": "Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."
},
"ar": {
"title": "نموذج استقبال المريض",
"lede": "بيانات الزيارة الأولى للعيادة. اترك كل ما لا تحتاجه الزيارة.",
"submit": "إرسال",
"thanks": "تم الإرسال. شكرًا لك.",
"file_too_big": "حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.",
"error": "تعذّر الإرسال. يُرجى المحاولة مرة أخرى.",
"disclaimer": "هذا النموذج ليس سجلاً طبياً. لا ترسل تشخيصات أو نتائج فحوصات أو أي تفاصيل صحية أخرى لا تحتاجها في هذا الطلب. تُعتبر البيانات الصحية فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR).",
"section.patient": "المريض",
"name": "الاسم",
"birth_date": "تاريخ الميلاد",
"phone": "الهاتف",
"email": "البريد الإلكتروني",
"section.visit": "هذه الزيارة",
"first_visit": "هل هذه زيارتك الأولى هنا؟",
"first_visit.yes": "نعم",
"first_visit.no": "لا",
"reason": "ما سبب زيارتك؟",
"medications": "هل تتناول أدوية بانتظام يجب أن تعرفها العيادة؟",
"medications.yes": "نعم",
"medications.no": "لا",
"medication_note": "ما الأدوية؟ اترك الحقل فارغًا إذا لم تحتج الزيارة إلى القائمة.",
"section.emergency": "جهة اتصال للطوارئ",
"emergency_name": "الاسم",
"emergency_phone": "الهاتف",
"section.consent": "الموافقة",
"consent_contact": "أوافق على التواصل معي بخصوص هذا الطلب.",
"consent_privacy": "أوافق على حفظ هذه الإجابات لمعالجة الطلب."
},
"he": {
"title": "טופס קליטת מטופל",
"lede": "פרטים לביקור ראשון במרפאה. השמיטו כל מה שאינו נחוץ לביקור.",
"submit": "שליחה",
"thanks": "נשלח. תודה.",
"file_too_big": "עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.",
"error": "השליחה נכשלה. נסו שוב.",
"disclaimer": "הטופס הזה אינו רשומה רפואית. אל תשלחו אבחנות, תוצאות בדיקות או פרטי בריאות אחרים שאינם נחוצים לפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR.",
"section.patient": "מטופל",
"name": "שם",
"birth_date": "תאריך לידה",
"phone": "טלפון",
"email": "אימייל",
"section.visit": "הביקור הזה",
"first_visit": "האם זה הביקור הראשון שלך כאן?",
"first_visit.yes": "כן",
"first_visit.no": "לא",
"reason": "מה סיבת ההגעה?",
"medications": "האם את/ה נוטל/ת תרופות קבועות שהמרפאה צריכה לדעת עליהן?",
"medications.yes": "כן",
"medications.no": "לא",
"medication_note": "אילו תרופות? השאירו ריק אם הביקור לא דורש את הרשימה.",
"section.emergency": "איש קשר לחירום",
"emergency_name": "שם",
"emergency_phone": "טלפון",
"section.consent": "הסכמה",
"consent_contact": "אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.",
"consent_privacy": "אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."
},
"es": {
"title": "Formulario de admisión de pacientes",
"lede": "Datos para la primera visita a una clínica. Omite lo que la visita no necesite.",
"submit": "Enviar",
"thanks": "Enviado. Gracias.",
"file_too_big": "Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.",
"error": "No se pudo enviar. Inténtalo de nuevo.",
"disclaimer": "Este formulario no es una historia clínica. No envíes diagnósticos, resultados de pruebas ni otros datos de salud que la solicitud no necesite. Los datos de salud son una categoría especial en el RGPD.",
"section.patient": "Paciente",
"name": "Nombre",
"birth_date": "Fecha de nacimiento",
"phone": "Teléfono",
"email": "Correo electrónico",
"section.visit": "Esta visita",
"first_visit": "¿Es tu primera visita?",
"first_visit.yes": "Sí",
"first_visit.no": "No",
"reason": "¿Por qué vienes?",
"medications": "¿Tomas alguna medicación habitual que la clínica deba conocer?",
"medications.yes": "Sí",
"medications.no": "No",
"medication_note": "¿Qué medicamentos? Déjalo en blanco si la visita no necesita la lista.",
"section.emergency": "Contacto de emergencia",
"emergency_name": "Nombre",
"emergency_phone": "Teléfono",
"section.consent": "Consentimiento",
"consent_contact": "Acepto que me contacten sobre esta solicitud.",
"consent_privacy": "Acepto que estas respuestas se guarden para tramitar la solicitud."
},
"fr": {
"title": "Formulaire d’admission du patient",
"lede": "Informations pour une première visite à la clinique. Omettez tout ce dont la visite n’a pas besoin.",
"submit": "Envoyer",
"thanks": "Envoyé. Merci.",
"file_too_big": "Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.",
"error": "Envoi impossible. Veuillez réessayer.",
"disclaimer": "Ce formulaire n’est pas un dossier médical. N’envoyez pas de diagnostic, de résultat d’analyse ni d’autre donnée de santé inutile pour la demande. Les données de santé sont une catégorie particulière au sens du RGPD.",
"section.patient": "Patient",
"name": "Nom",
"birth_date": "Date de naissance",
"phone": "Téléphone",
"email": "E-mail",
"section.visit": "Cette visite",
"first_visit": "Est-ce votre première visite ici ?",
"first_visit.yes": "Oui",
"first_visit.no": "Non",
"reason": "Pourquoi venez-vous ?",
"medications": "Prenez-vous un traitement régulier que la clinique doit connaître ?",
"medications.yes": "Oui",
"medications.no": "Non",
"medication_note": "Quels médicaments ? Laissez vide si la visite n’a pas besoin de la liste.",
"section.emergency": "Contact d’urgence",
"emergency_name": "Nom",
"emergency_phone": "Téléphone",
"section.consent": "Consentement",
"consent_contact": "J’accepte d’être contacté au sujet de cette demande.",
"consent_privacy": "J’accepte que ces réponses soient conservées pour traiter la demande."
},
"pt": {
"title": "Formulário de admissão de paciente",
"lede": "Dados para a primeira consulta numa clínica. Omita o que a consulta não exigir.",
"submit": "Enviar",
"thanks": "Enviado. Obrigado.",
"file_too_big": "Até 3 ficheiros, 5 MiB cada e 10 MiB no total.",
"error": "Não foi possível enviar. Tente novamente.",
"disclaimer": "Este formulário não é um registo clínico. Não envie diagnósticos, resultados de exames nem outros dados de saúde que não sejam necessários para o pedido. Os dados de saúde são uma categoria especial no RGPD.",
"section.patient": "Paciente",
"name": "Nome",
"birth_date": "Data de nascimento",
"phone": "Telefone",
"email": "Email",
"section.visit": "Esta consulta",
"first_visit": "É a sua primeira consulta aqui?",
"first_visit.yes": "Sim",
"first_visit.no": "Não",
"reason": "Qual o motivo da consulta?",
"medications": "Toma medicação regular que a clínica deva conhecer?",
"medications.yes": "Sim",
"medications.no": "Não",
"medication_note": "Que medicamentos? Deixe em branco se a consulta não precisar da lista.",
"section.emergency": "Contacto de emergência",
"emergency_name": "Nome",
"emergency_phone": "Telefone",
"section.consent": "Consentimento",
"consent_contact": "Aceito ser contactado sobre este pedido.",
"consent_privacy": "Aceito que estas respostas sejam guardadas para tratar o pedido."
},
"hi": {
"title": "मरीज़ पंजीकरण फ़ॉर्म",
"lede": "क्लिनिक की पहली विज़िट के लिए जानकारी। जो विज़िट के लिए ज़रूरी न हो, उसे छोड़ दें।",
"submit": "भेजें",
"thanks": "भेज दिया गया। धन्यवाद।",
"file_too_big": "अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।",
"error": "भेजा नहीं जा सका। कृपया फिर से कोशिश करें।",
"disclaimer": "यह फ़ॉर्म मेडिकल रिकॉर्ड नहीं है। निदान, जाँच के नतीजे या अन्य स्वास्थ्य विवरण न भेजें जिनकी इस अनुरोध के लिए ज़रूरत नहीं है। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है।",
"section.patient": "मरीज़",
"name": "नाम",
"birth_date": "जन्म तिथि",
"phone": "फ़ोन",
"email": "ईमेल",
"section.visit": "यह विज़िट",
"first_visit": "क्या यह यहाँ आपकी पहली विज़िट है?",
"first_visit.yes": "हाँ",
"first_visit.no": "नहीं",
"reason": "आप किस कारण आ रहे हैं?",
"medications": "क्या आप नियमित रूप से कोई दवा लेते हैं जिसके बारे में क्लिनिक को पता होना चाहिए?",
"medications.yes": "हाँ",
"medications.no": "नहीं",
"medication_note": "कौन-सी दवाएँ? अगर विज़िट के लिए सूची ज़रूरी नहीं है तो खाली छोड़ें।",
"section.emergency": "आपातकालीन संपर्क",
"emergency_name": "नाम",
"emergency_phone": "फ़ोन",
"section.consent": "सहमति",
"consent_contact": "मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।",
"consent_privacy": "मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"
},
"ja": {
"title": "初診受付フォーム",
"lede": "クリニック初診のための情報です。受診に不要なことは記入しないでください。",
"submit": "送信",
"thanks": "送信しました。ありがとうございます。",
"file_too_big": "ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。",
"error": "送信できませんでした。もう一度お試しください。",
"disclaimer": "このフォームは医療記録ではありません。依頼に必要のない診断結果、検査結果、その他の健康に関する詳細情報は送信しないでください。健康データは、GDPRにおける特別なカテゴリーに該当します。",
"section.patient": "患者",
"name": "お名前",
"birth_date": "生年月日",
"phone": "電話番号",
"email": "メールアドレス",
"section.visit": "今回の受診",
"first_visit": "当院の受診は初めてですか?",
"first_visit.yes": "はい",
"first_visit.no": "いいえ",
"reason": "受診の理由",
"medications": "クリニックが知っておくべき常用薬はありますか?",
"medications.yes": "はい",
"medications.no": "いいえ",
"medication_note": "どの薬ですか?受診に一覧が不要な場合は空欄のままにしてください。",
"section.emergency": "緊急連絡先",
"emergency_name": "お名前",
"emergency_phone": "電話番号",
"section.consent": "同意",
"consent_contact": "このお問い合わせについて連絡を受けることに同意します。",
"consent_privacy": "お問い合わせへの対応のため、これらの回答が保存されることに同意します。"
},
"de": {
"title": "Formular für die Patientenaufnahme",
"lede": "Angaben für den ersten Termin in einer Praxis. Lassen Sie alles weg, was für den Termin nicht nötig ist.",
"submit": "Senden",
"thanks": "Gesendet. Vielen Dank.",
"file_too_big": "Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.",
"error": "Senden fehlgeschlagen. Bitte versuchen Sie es erneut.",
"disclaimer": "Dieses Formular ist keine Patientenakte. Senden Sie keine Diagnosen, Befunde oder andere Gesundheitsangaben, die für die Anfrage nicht nötig sind. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten.",
"section.patient": "Patient",
"name": "Name",
"birth_date": "Geburtsdatum",
"phone": "Telefon",
"email": "E-Mail",
"section.visit": "Dieser Termin",
"first_visit": "Sind Sie zum ersten Mal bei uns?",
"first_visit.yes": "Ja",
"first_visit.no": "Nein",
"reason": "Weshalb kommen Sie?",
"medications": "Nehmen Sie regelmäßig Medikamente, von denen die Praxis wissen sollte?",
"medications.yes": "Ja",
"medications.no": "Nein",
"medication_note": "Welche Medikamente? Leer lassen, wenn die Liste für den Termin nicht nötig ist.",
"section.emergency": "Notfallkontakt",
"emergency_name": "Name",
"emergency_phone": "Telefon",
"section.consent": "Einwilligung",
"consent_contact": "Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.",
"consent_privacy": "Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."
}
};
export function IndustryForm({ lang = "de", accessKey = "fk_your_access_key", turnstileSiteKey = "" }) {
const t = LABELS[lang] || LABELS.en;
const [status, setStatus] = useState("");
const captcha = useRef(null);
useEffect(() => mountCaptcha(captcha.current, turnstileSiteKey), [turnstileSiteKey]);
const [values, setValues] = useState({ medications: "" });
function setField(name, value) {
setValues((current) => ({ ...current, [name]: value }));
}
async function onSubmit(event) {
const form = event.currentTarget;
event.preventDefault();
const body = new FormData(form);
body.set("_lang", lang);
const files = Array.from(body.values()).filter(value => value instanceof File && value.size);
if (files.length > 3 || files.some(file => file.size > FILE_MAX) || files.reduce((sum,file) => sum + file.size,0) > 10 * 1024 * 1024) {
setStatus(t.file_too_big);
return;
}
const button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
try {
const response = await fetch(ENDPOINT, { method: "POST", headers: { Accept: "application/json" }, body });
const result = await response.json();
setStatus(result.success ? t.thanks : (result.message || t.error));
} catch { setStatus(t.error); }
finally { if (button) button.disabled = false; resetCaptcha(form); }
}
return (
<form onSubmit={onSubmit}>
<h1>{t.title}</h1>
<p>{t.lede}</p>
{t.disclaimer ? <p>{t.disclaimer}</p> : null}
<input type="hidden" name="access_key" value={accessKey} />
<div aria-hidden="true" style={{ position: "absolute", left: "-10000px", width: 1, height: 1, overflow: "hidden" }}>
<input name="botcheck" tabIndex={-1} autoComplete="off" />
</div>
<section><h2>{t["section.patient"]}</h2>
<label><span>{t["name"]}</span><input name="name" type="text" required maxLength={80} autoComplete="name" /></label>
<label><span>{t["birth_date"]}</span><input name="birth_date" type="date" required /></label>
<label><span>{t["phone"]}</span><input name="phone" type="tel" required maxLength={40} autoComplete="tel" /></label>
<label><span>{t["email"]}</span><input name="email" type="email" maxLength={120} autoComplete="email" /></label></section>
<section><h2>{t["section.visit"]}</h2>
<label><span>{t["first_visit"]}</span><select name="first_visit" required><option value="">—</option><option value="yes">{t["first_visit.yes"]}</option><option value="no">{t["first_visit.no"]}</option></select></label>
<label><span>{t["reason"]}</span><textarea name="reason" required maxLength={500} /></label>
<label><span>{t["medications"]}</span><select name="medications" required value={values["medications"]} onChange={(event) => setField("medications", event.target.value)}><option value="">—</option><option value="yes">{t["medications.yes"]}</option><option value="no">{t["medications.no"]}</option></select></label>
{values["medications"] === "yes" ? (<label><span>{t["medication_note"]}</span><textarea name="medication_note" maxLength={500} /></label>) : null}</section>
<section><h2>{t["section.emergency"]}</h2>
<label><span>{t["emergency_name"]}</span><input name="emergency_name" type="text" maxLength={80} autoComplete="name" /></label>
<label><span>{t["emergency_phone"]}</span><input name="emergency_phone" type="tel" maxLength={40} autoComplete="tel" /></label></section>
<section><h2>{t["section.consent"]}</h2>
<label className="check"><input name="consent_contact" type="checkbox" value="yes" required /><span>{t["consent_contact"]}</span></label>
<label className="check"><input name="consent_privacy" type="checkbox" value="yes" required /><span>{t["consent_privacy"]}</span></label></section>
{/* Set turnstileSiteKey to YOUR_TURNSTILE_SITE_KEY. Required for attachments. */}
<div ref={captcha} data-turnstile />
<button type="submit">{t.submit}</button>
<p>{status}</p>
</form>
);
}
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
<!-- Generated from src/content/industries.ts — npm run templates:write -->
<script setup>
import { reactive, ref, computed, onMounted, onBeforeUnmount } from "vue";
const props = defineProps({
lang: { type: String, default: "de" },
accessKey: { type: String, default: "fk_your_access_key" },
turnstileSiteKey: { type: String, default: "" },
});
const ENDPOINT = "https://formgong.com/submit";
const FILE_MAX = 5242880;
const LABELS = {
"uk": {
"title": "Форма первинного прийому пацієнта",
"lede": "Дані для першого візиту. Не додавайте те, без чого прийом можна провести.",
"submit": "Надіслати",
"thanks": "Надіслано. Дякуємо.",
"file_too_big": "До 3 файлів, по 5 MiB, разом до 10 MiB.",
"error": "Не вдалося надіслати. Спробуйте ще раз.",
"disclaimer": "Ця форма не є медичним записом. Не надсилайте діагнози, результати аналізів чи інші дані про здоров'я, без яких заявку не обробити. Дані про здоров'я — особлива категорія за GDPR.",
"section.patient": "Пацієнт",
"name": "Ім'я",
"birth_date": "Дата народження",
"phone": "Телефон",
"email": "Електронна пошта",
"section.visit": "Цей візит",
"first_visit": "Це ваш перший візит сюди?",
"first_visit.yes": "Так",
"first_visit.no": "Ні",
"reason": "Чому ви приходите?",
"medications": "Чи є регулярні ліки, про які клініці варто знати?",
"medications.yes": "Так",
"medications.no": "Ні",
"medication_note": "Які ліки? Залиште порожнім, якщо для візиту список не потрібен.",
"section.emergency": "Екстрений контакт",
"emergency_name": "Ім'я",
"emergency_phone": "Телефон",
"section.consent": "Згода",
"consent_contact": "Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.",
"consent_privacy": "Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."
},
"en": {
"title": "Patient intake form",
"lede": "First-visit details for a clinic. Leave out anything the visit does not need.",
"submit": "Send",
"thanks": "Sent. Thank you.",
"file_too_big": "Up to 3 files, 5 MiB each and 10 MiB combined.",
"error": "Could not send. Please try again.",
"disclaimer": "This form is not a medical record. Do not send diagnoses, test results, or other health details you do not need for the request. Health data is a special category under the GDPR.",
"section.patient": "Patient",
"name": "Name",
"birth_date": "Date of birth",
"phone": "Phone",
"email": "Email",
"section.visit": "This visit",
"first_visit": "Is this your first visit here?",
"first_visit.yes": "Yes",
"first_visit.no": "No",
"reason": "Why are you coming in?",
"medications": "Do you take regular medication the clinic should know about?",
"medications.yes": "Yes",
"medications.no": "No",
"medication_note": "Which medicines? Leave blank if the visit does not need the list.",
"section.emergency": "Emergency contact",
"emergency_name": "Name",
"emergency_phone": "Phone",
"section.consent": "Consent",
"consent_contact": "I agree to be contacted about this request.",
"consent_privacy": "I agree that these answers are stored so the request can be handled."
},
"pl": {
"title": "Formularz wywiadu pacjenta",
"lede": "Dane na pierwszą wizytę. Pomiń to, bez czego wizyta może się odbyć.",
"submit": "Wyślij",
"thanks": "Wysłano. Dziękujemy.",
"file_too_big": "Do 3 plików, po 5 MiB, łącznie 10 MiB.",
"error": "Nie udało się wysłać. Spróbuj ponownie.",
"disclaimer": "Ten formularz nie jest dokumentacją medyczną. Nie wysyłaj rozpoznań, wyników badań ani innych danych o zdrowiu, które nie są potrzebne do obsługi zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO.",
"section.patient": "Pacjent",
"name": "Imię",
"birth_date": "Data urodzenia",
"phone": "Telefon",
"email": "E-mail",
"section.visit": "Ta wizyta",
"first_visit": "Czy to pierwsza wizyta tutaj?",
"first_visit.yes": "Tak",
"first_visit.no": "Nie",
"reason": "Po co przychodzisz?",
"medications": "Czy przyjmujesz leki, o których przychodnia powinna wiedzieć?",
"medications.yes": "Tak",
"medications.no": "Nie",
"medication_note": "Jakie leki? Zostaw puste, jeśli wizyta nie wymaga listy.",
"section.emergency": "Kontakt alarmowy",
"emergency_name": "Imię",
"emergency_phone": "Telefon",
"section.consent": "Zgoda",
"consent_contact": "Zgadzam się na kontakt w sprawie tego zgłoszenia.",
"consent_privacy": "Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."
},
"tr": {
"title": "Hasta kabul formu",
"lede": "İlk ziyaret için bilgiler. Ziyaret onsuz yapılabiliyorsa eklemeyin.",
"submit": "Gönder",
"thanks": "Gönderildi. Teşekkürler.",
"file_too_big": "En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.",
"error": "Gönderilemedi. Lütfen tekrar deneyin.",
"disclaimer": "Bu form bir tıbbi kayıt değildir. Tanı, tahlil sonucu veya talep için gerekmeyen başka sağlık verisi göndermeyin. Sağlık verisi GDPR'de özel nitelikli veridir.",
"section.patient": "Hasta",
"name": "Ad",
"birth_date": "Doğum tarihi",
"phone": "Telefon",
"email": "E-posta",
"section.visit": "Bu ziyaret",
"first_visit": "Buraya ilk gelişiniz mi?",
"first_visit.yes": "Evet",
"first_visit.no": "Hayır",
"reason": "Neden geliyorsunuz?",
"medications": "Kliniğin bilmesi gereken düzenli bir ilaç var mı?",
"medications.yes": "Evet",
"medications.no": "Hayır",
"medication_note": "Hangi ilaçlar? Ziyaret için liste gerekmiyorsa boş bırakın.",
"section.emergency": "Acil durumda",
"emergency_name": "Ad",
"emergency_phone": "Telefon",
"section.consent": "Onay",
"consent_contact": "Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.",
"consent_privacy": "Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."
},
"ar": {
"title": "نموذج استقبال المريض",
"lede": "بيانات الزيارة الأولى للعيادة. اترك كل ما لا تحتاجه الزيارة.",
"submit": "إرسال",
"thanks": "تم الإرسال. شكرًا لك.",
"file_too_big": "حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.",
"error": "تعذّر الإرسال. يُرجى المحاولة مرة أخرى.",
"disclaimer": "هذا النموذج ليس سجلاً طبياً. لا ترسل تشخيصات أو نتائج فحوصات أو أي تفاصيل صحية أخرى لا تحتاجها في هذا الطلب. تُعتبر البيانات الصحية فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR).",
"section.patient": "المريض",
"name": "الاسم",
"birth_date": "تاريخ الميلاد",
"phone": "الهاتف",
"email": "البريد الإلكتروني",
"section.visit": "هذه الزيارة",
"first_visit": "هل هذه زيارتك الأولى هنا؟",
"first_visit.yes": "نعم",
"first_visit.no": "لا",
"reason": "ما سبب زيارتك؟",
"medications": "هل تتناول أدوية بانتظام يجب أن تعرفها العيادة؟",
"medications.yes": "نعم",
"medications.no": "لا",
"medication_note": "ما الأدوية؟ اترك الحقل فارغًا إذا لم تحتج الزيارة إلى القائمة.",
"section.emergency": "جهة اتصال للطوارئ",
"emergency_name": "الاسم",
"emergency_phone": "الهاتف",
"section.consent": "الموافقة",
"consent_contact": "أوافق على التواصل معي بخصوص هذا الطلب.",
"consent_privacy": "أوافق على حفظ هذه الإجابات لمعالجة الطلب."
},
"he": {
"title": "טופס קליטת מטופל",
"lede": "פרטים לביקור ראשון במרפאה. השמיטו כל מה שאינו נחוץ לביקור.",
"submit": "שליחה",
"thanks": "נשלח. תודה.",
"file_too_big": "עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.",
"error": "השליחה נכשלה. נסו שוב.",
"disclaimer": "הטופס הזה אינו רשומה רפואית. אל תשלחו אבחנות, תוצאות בדיקות או פרטי בריאות אחרים שאינם נחוצים לפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR.",
"section.patient": "מטופל",
"name": "שם",
"birth_date": "תאריך לידה",
"phone": "טלפון",
"email": "אימייל",
"section.visit": "הביקור הזה",
"first_visit": "האם זה הביקור הראשון שלך כאן?",
"first_visit.yes": "כן",
"first_visit.no": "לא",
"reason": "מה סיבת ההגעה?",
"medications": "האם את/ה נוטל/ת תרופות קבועות שהמרפאה צריכה לדעת עליהן?",
"medications.yes": "כן",
"medications.no": "לא",
"medication_note": "אילו תרופות? השאירו ריק אם הביקור לא דורש את הרשימה.",
"section.emergency": "איש קשר לחירום",
"emergency_name": "שם",
"emergency_phone": "טלפון",
"section.consent": "הסכמה",
"consent_contact": "אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.",
"consent_privacy": "אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."
},
"es": {
"title": "Formulario de admisión de pacientes",
"lede": "Datos para la primera visita a una clínica. Omite lo que la visita no necesite.",
"submit": "Enviar",
"thanks": "Enviado. Gracias.",
"file_too_big": "Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.",
"error": "No se pudo enviar. Inténtalo de nuevo.",
"disclaimer": "Este formulario no es una historia clínica. No envíes diagnósticos, resultados de pruebas ni otros datos de salud que la solicitud no necesite. Los datos de salud son una categoría especial en el RGPD.",
"section.patient": "Paciente",
"name": "Nombre",
"birth_date": "Fecha de nacimiento",
"phone": "Teléfono",
"email": "Correo electrónico",
"section.visit": "Esta visita",
"first_visit": "¿Es tu primera visita?",
"first_visit.yes": "Sí",
"first_visit.no": "No",
"reason": "¿Por qué vienes?",
"medications": "¿Tomas alguna medicación habitual que la clínica deba conocer?",
"medications.yes": "Sí",
"medications.no": "No",
"medication_note": "¿Qué medicamentos? Déjalo en blanco si la visita no necesita la lista.",
"section.emergency": "Contacto de emergencia",
"emergency_name": "Nombre",
"emergency_phone": "Teléfono",
"section.consent": "Consentimiento",
"consent_contact": "Acepto que me contacten sobre esta solicitud.",
"consent_privacy": "Acepto que estas respuestas se guarden para tramitar la solicitud."
},
"fr": {
"title": "Formulaire d’admission du patient",
"lede": "Informations pour une première visite à la clinique. Omettez tout ce dont la visite n’a pas besoin.",
"submit": "Envoyer",
"thanks": "Envoyé. Merci.",
"file_too_big": "Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.",
"error": "Envoi impossible. Veuillez réessayer.",
"disclaimer": "Ce formulaire n’est pas un dossier médical. N’envoyez pas de diagnostic, de résultat d’analyse ni d’autre donnée de santé inutile pour la demande. Les données de santé sont une catégorie particulière au sens du RGPD.",
"section.patient": "Patient",
"name": "Nom",
"birth_date": "Date de naissance",
"phone": "Téléphone",
"email": "E-mail",
"section.visit": "Cette visite",
"first_visit": "Est-ce votre première visite ici ?",
"first_visit.yes": "Oui",
"first_visit.no": "Non",
"reason": "Pourquoi venez-vous ?",
"medications": "Prenez-vous un traitement régulier que la clinique doit connaître ?",
"medications.yes": "Oui",
"medications.no": "Non",
"medication_note": "Quels médicaments ? Laissez vide si la visite n’a pas besoin de la liste.",
"section.emergency": "Contact d’urgence",
"emergency_name": "Nom",
"emergency_phone": "Téléphone",
"section.consent": "Consentement",
"consent_contact": "J’accepte d’être contacté au sujet de cette demande.",
"consent_privacy": "J’accepte que ces réponses soient conservées pour traiter la demande."
},
"pt": {
"title": "Formulário de admissão de paciente",
"lede": "Dados para a primeira consulta numa clínica. Omita o que a consulta não exigir.",
"submit": "Enviar",
"thanks": "Enviado. Obrigado.",
"file_too_big": "Até 3 ficheiros, 5 MiB cada e 10 MiB no total.",
"error": "Não foi possível enviar. Tente novamente.",
"disclaimer": "Este formulário não é um registo clínico. Não envie diagnósticos, resultados de exames nem outros dados de saúde que não sejam necessários para o pedido. Os dados de saúde são uma categoria especial no RGPD.",
"section.patient": "Paciente",
"name": "Nome",
"birth_date": "Data de nascimento",
"phone": "Telefone",
"email": "Email",
"section.visit": "Esta consulta",
"first_visit": "É a sua primeira consulta aqui?",
"first_visit.yes": "Sim",
"first_visit.no": "Não",
"reason": "Qual o motivo da consulta?",
"medications": "Toma medicação regular que a clínica deva conhecer?",
"medications.yes": "Sim",
"medications.no": "Não",
"medication_note": "Que medicamentos? Deixe em branco se a consulta não precisar da lista.",
"section.emergency": "Contacto de emergência",
"emergency_name": "Nome",
"emergency_phone": "Telefone",
"section.consent": "Consentimento",
"consent_contact": "Aceito ser contactado sobre este pedido.",
"consent_privacy": "Aceito que estas respostas sejam guardadas para tratar o pedido."
},
"hi": {
"title": "मरीज़ पंजीकरण फ़ॉर्म",
"lede": "क्लिनिक की पहली विज़िट के लिए जानकारी। जो विज़िट के लिए ज़रूरी न हो, उसे छोड़ दें।",
"submit": "भेजें",
"thanks": "भेज दिया गया। धन्यवाद।",
"file_too_big": "अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।",
"error": "भेजा नहीं जा सका। कृपया फिर से कोशिश करें।",
"disclaimer": "यह फ़ॉर्म मेडिकल रिकॉर्ड नहीं है। निदान, जाँच के नतीजे या अन्य स्वास्थ्य विवरण न भेजें जिनकी इस अनुरोध के लिए ज़रूरत नहीं है। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है।",
"section.patient": "मरीज़",
"name": "नाम",
"birth_date": "जन्म तिथि",
"phone": "फ़ोन",
"email": "ईमेल",
"section.visit": "यह विज़िट",
"first_visit": "क्या यह यहाँ आपकी पहली विज़िट है?",
"first_visit.yes": "हाँ",
"first_visit.no": "नहीं",
"reason": "आप किस कारण आ रहे हैं?",
"medications": "क्या आप नियमित रूप से कोई दवा लेते हैं जिसके बारे में क्लिनिक को पता होना चाहिए?",
"medications.yes": "हाँ",
"medications.no": "नहीं",
"medication_note": "कौन-सी दवाएँ? अगर विज़िट के लिए सूची ज़रूरी नहीं है तो खाली छोड़ें।",
"section.emergency": "आपातकालीन संपर्क",
"emergency_name": "नाम",
"emergency_phone": "फ़ोन",
"section.consent": "सहमति",
"consent_contact": "मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।",
"consent_privacy": "मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"
},
"ja": {
"title": "初診受付フォーム",
"lede": "クリニック初診のための情報です。受診に不要なことは記入しないでください。",
"submit": "送信",
"thanks": "送信しました。ありがとうございます。",
"file_too_big": "ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。",
"error": "送信できませんでした。もう一度お試しください。",
"disclaimer": "このフォームは医療記録ではありません。依頼に必要のない診断結果、検査結果、その他の健康に関する詳細情報は送信しないでください。健康データは、GDPRにおける特別なカテゴリーに該当します。",
"section.patient": "患者",
"name": "お名前",
"birth_date": "生年月日",
"phone": "電話番号",
"email": "メールアドレス",
"section.visit": "今回の受診",
"first_visit": "当院の受診は初めてですか?",
"first_visit.yes": "はい",
"first_visit.no": "いいえ",
"reason": "受診の理由",
"medications": "クリニックが知っておくべき常用薬はありますか?",
"medications.yes": "はい",
"medications.no": "いいえ",
"medication_note": "どの薬ですか?受診に一覧が不要な場合は空欄のままにしてください。",
"section.emergency": "緊急連絡先",
"emergency_name": "お名前",
"emergency_phone": "電話番号",
"section.consent": "同意",
"consent_contact": "このお問い合わせについて連絡を受けることに同意します。",
"consent_privacy": "お問い合わせへの対応のため、これらの回答が保存されることに同意します。"
},
"de": {
"title": "Formular für die Patientenaufnahme",
"lede": "Angaben für den ersten Termin in einer Praxis. Lassen Sie alles weg, was für den Termin nicht nötig ist.",
"submit": "Senden",
"thanks": "Gesendet. Vielen Dank.",
"file_too_big": "Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.",
"error": "Senden fehlgeschlagen. Bitte versuchen Sie es erneut.",
"disclaimer": "Dieses Formular ist keine Patientenakte. Senden Sie keine Diagnosen, Befunde oder andere Gesundheitsangaben, die für die Anfrage nicht nötig sind. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten.",
"section.patient": "Patient",
"name": "Name",
"birth_date": "Geburtsdatum",
"phone": "Telefon",
"email": "E-Mail",
"section.visit": "Dieser Termin",
"first_visit": "Sind Sie zum ersten Mal bei uns?",
"first_visit.yes": "Ja",
"first_visit.no": "Nein",
"reason": "Weshalb kommen Sie?",
"medications": "Nehmen Sie regelmäßig Medikamente, von denen die Praxis wissen sollte?",
"medications.yes": "Ja",
"medications.no": "Nein",
"medication_note": "Welche Medikamente? Leer lassen, wenn die Liste für den Termin nicht nötig ist.",
"section.emergency": "Notfallkontakt",
"emergency_name": "Name",
"emergency_phone": "Telefon",
"section.consent": "Einwilligung",
"consent_contact": "Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.",
"consent_privacy": "Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."
}
};
const t = computed(() => LABELS[props.lang] || LABELS.en);
const status = ref("");
const captcha = ref(null);
let disposeCaptcha;
onMounted(() => { disposeCaptcha = mountCaptcha(captcha.value, props.turnstileSiteKey); });
onBeforeUnmount(() => disposeCaptcha?.());
const values = reactive({ medications: "" });
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
async function onSubmit(event) {
const form = event.currentTarget;
event.preventDefault();
const body = new FormData(form);
body.set("_lang", props.lang);
const files = Array.from(body.values()).filter(value => value instanceof File && value.size);
if (files.length > 3 || files.some(file => file.size > FILE_MAX) || files.reduce((sum,file) => sum + file.size,0) > 10 * 1024 * 1024) {
status.value = t.value.file_too_big;
return;
}
const button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
try {
const response = await fetch(ENDPOINT, { method: "POST", headers: { Accept: "application/json" }, body });
const result = await response.json();
status.value = result.success ? t.value.thanks : (result.message || t.value.error);
} catch { status.value = t.value.error; }
finally { if (button) button.disabled = false; resetCaptcha(form); }
}
</script>
<template>
<form @submit.prevent="onSubmit">
<h1>{{ t.title }}</h1>
<p>{{ t.lede }}</p>
<p v-if="t.disclaimer">{{ t.disclaimer }}</p>
<input type="hidden" name="access_key" :value="accessKey">
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden">
<input name="botcheck" tabindex="-1" autocomplete="off">
</div>
<section><h2>{{ t["section.patient"] }}</h2>
<label><span>{{ t["name"] }}</span><input name="name" type="text" required maxlength="80" autocomplete="name"></label>
<label><span>{{ t["birth_date"] }}</span><input name="birth_date" type="date" required></label>
<label><span>{{ t["phone"] }}</span><input name="phone" type="tel" required maxlength="40" autocomplete="tel"></label>
<label><span>{{ t["email"] }}</span><input name="email" type="email" maxlength="120" autocomplete="email"></label></section>
<section><h2>{{ t["section.visit"] }}</h2>
<label><span>{{ t["first_visit"] }}</span><select name="first_visit" required><option value="">—</option><option value="yes">{{ t["first_visit.yes"] }}</option><option value="no">{{ t["first_visit.no"] }}</option></select></label>
<label><span>{{ t["reason"] }}</span><textarea name="reason" required maxlength="500"></textarea></label>
<label><span>{{ t["medications"] }}</span><select name="medications" required v-model="values.medications"><option value="">—</option><option value="yes">{{ t["medications.yes"] }}</option><option value="no">{{ t["medications.no"] }}</option></select></label>
<template v-if="values["medications"] === 'yes'"><label><span>{{ t["medication_note"] }}</span><textarea name="medication_note" maxlength="500"></textarea></label></template></section>
<section><h2>{{ t["section.emergency"] }}</h2>
<label><span>{{ t["emergency_name"] }}</span><input name="emergency_name" type="text" maxlength="80" autocomplete="name"></label>
<label><span>{{ t["emergency_phone"] }}</span><input name="emergency_phone" type="tel" maxlength="40" autocomplete="tel"></label></section>
<section><h2>{{ t["section.consent"] }}</h2>
<label class="check"><input name="consent_contact" type="checkbox" value="yes" required><span>{{ t["consent_contact"] }}</span></label>
<label class="check"><input name="consent_privacy" type="checkbox" value="yes" required><span>{{ t["consent_privacy"] }}</span></label></section>
<!-- Set turnstileSiteKey to YOUR_TURNSTILE_SITE_KEY. Required for attachments. -->
<div ref="captcha" data-turnstile></div>
<button type="submit">{{ t.submit }}</button>
<p>{{ status }}</p>
</form>
</template>
<!-- Generated from src/content/industries.ts — npm run templates:write -->
<script>
import { onMount } from "svelte";
let { lang = "de", accessKey = "fk_your_access_key", turnstileSiteKey = "" } = $props();
let captcha;
onMount(() => mountCaptcha(captcha, turnstileSiteKey));
const ENDPOINT = "https://formgong.com/submit";
const FILE_MAX = 5242880;
const LABELS = {
"uk": {
"title": "Форма первинного прийому пацієнта",
"lede": "Дані для першого візиту. Не додавайте те, без чого прийом можна провести.",
"submit": "Надіслати",
"thanks": "Надіслано. Дякуємо.",
"file_too_big": "До 3 файлів, по 5 MiB, разом до 10 MiB.",
"error": "Не вдалося надіслати. Спробуйте ще раз.",
"disclaimer": "Ця форма не є медичним записом. Не надсилайте діагнози, результати аналізів чи інші дані про здоров'я, без яких заявку не обробити. Дані про здоров'я — особлива категорія за GDPR.",
"section.patient": "Пацієнт",
"name": "Ім'я",
"birth_date": "Дата народження",
"phone": "Телефон",
"email": "Електронна пошта",
"section.visit": "Цей візит",
"first_visit": "Це ваш перший візит сюди?",
"first_visit.yes": "Так",
"first_visit.no": "Ні",
"reason": "Чому ви приходите?",
"medications": "Чи є регулярні ліки, про які клініці варто знати?",
"medications.yes": "Так",
"medications.no": "Ні",
"medication_note": "Які ліки? Залиште порожнім, якщо для візиту список не потрібен.",
"section.emergency": "Екстрений контакт",
"emergency_name": "Ім'я",
"emergency_phone": "Телефон",
"section.consent": "Згода",
"consent_contact": "Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.",
"consent_privacy": "Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."
},
"en": {
"title": "Patient intake form",
"lede": "First-visit details for a clinic. Leave out anything the visit does not need.",
"submit": "Send",
"thanks": "Sent. Thank you.",
"file_too_big": "Up to 3 files, 5 MiB each and 10 MiB combined.",
"error": "Could not send. Please try again.",
"disclaimer": "This form is not a medical record. Do not send diagnoses, test results, or other health details you do not need for the request. Health data is a special category under the GDPR.",
"section.patient": "Patient",
"name": "Name",
"birth_date": "Date of birth",
"phone": "Phone",
"email": "Email",
"section.visit": "This visit",
"first_visit": "Is this your first visit here?",
"first_visit.yes": "Yes",
"first_visit.no": "No",
"reason": "Why are you coming in?",
"medications": "Do you take regular medication the clinic should know about?",
"medications.yes": "Yes",
"medications.no": "No",
"medication_note": "Which medicines? Leave blank if the visit does not need the list.",
"section.emergency": "Emergency contact",
"emergency_name": "Name",
"emergency_phone": "Phone",
"section.consent": "Consent",
"consent_contact": "I agree to be contacted about this request.",
"consent_privacy": "I agree that these answers are stored so the request can be handled."
},
"pl": {
"title": "Formularz wywiadu pacjenta",
"lede": "Dane na pierwszą wizytę. Pomiń to, bez czego wizyta może się odbyć.",
"submit": "Wyślij",
"thanks": "Wysłano. Dziękujemy.",
"file_too_big": "Do 3 plików, po 5 MiB, łącznie 10 MiB.",
"error": "Nie udało się wysłać. Spróbuj ponownie.",
"disclaimer": "Ten formularz nie jest dokumentacją medyczną. Nie wysyłaj rozpoznań, wyników badań ani innych danych o zdrowiu, które nie są potrzebne do obsługi zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO.",
"section.patient": "Pacjent",
"name": "Imię",
"birth_date": "Data urodzenia",
"phone": "Telefon",
"email": "E-mail",
"section.visit": "Ta wizyta",
"first_visit": "Czy to pierwsza wizyta tutaj?",
"first_visit.yes": "Tak",
"first_visit.no": "Nie",
"reason": "Po co przychodzisz?",
"medications": "Czy przyjmujesz leki, o których przychodnia powinna wiedzieć?",
"medications.yes": "Tak",
"medications.no": "Nie",
"medication_note": "Jakie leki? Zostaw puste, jeśli wizyta nie wymaga listy.",
"section.emergency": "Kontakt alarmowy",
"emergency_name": "Imię",
"emergency_phone": "Telefon",
"section.consent": "Zgoda",
"consent_contact": "Zgadzam się na kontakt w sprawie tego zgłoszenia.",
"consent_privacy": "Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."
},
"tr": {
"title": "Hasta kabul formu",
"lede": "İlk ziyaret için bilgiler. Ziyaret onsuz yapılabiliyorsa eklemeyin.",
"submit": "Gönder",
"thanks": "Gönderildi. Teşekkürler.",
"file_too_big": "En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.",
"error": "Gönderilemedi. Lütfen tekrar deneyin.",
"disclaimer": "Bu form bir tıbbi kayıt değildir. Tanı, tahlil sonucu veya talep için gerekmeyen başka sağlık verisi göndermeyin. Sağlık verisi GDPR'de özel nitelikli veridir.",
"section.patient": "Hasta",
"name": "Ad",
"birth_date": "Doğum tarihi",
"phone": "Telefon",
"email": "E-posta",
"section.visit": "Bu ziyaret",
"first_visit": "Buraya ilk gelişiniz mi?",
"first_visit.yes": "Evet",
"first_visit.no": "Hayır",
"reason": "Neden geliyorsunuz?",
"medications": "Kliniğin bilmesi gereken düzenli bir ilaç var mı?",
"medications.yes": "Evet",
"medications.no": "Hayır",
"medication_note": "Hangi ilaçlar? Ziyaret için liste gerekmiyorsa boş bırakın.",
"section.emergency": "Acil durumda",
"emergency_name": "Ad",
"emergency_phone": "Telefon",
"section.consent": "Onay",
"consent_contact": "Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.",
"consent_privacy": "Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."
},
"ar": {
"title": "نموذج استقبال المريض",
"lede": "بيانات الزيارة الأولى للعيادة. اترك كل ما لا تحتاجه الزيارة.",
"submit": "إرسال",
"thanks": "تم الإرسال. شكرًا لك.",
"file_too_big": "حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.",
"error": "تعذّر الإرسال. يُرجى المحاولة مرة أخرى.",
"disclaimer": "هذا النموذج ليس سجلاً طبياً. لا ترسل تشخيصات أو نتائج فحوصات أو أي تفاصيل صحية أخرى لا تحتاجها في هذا الطلب. تُعتبر البيانات الصحية فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR).",
"section.patient": "المريض",
"name": "الاسم",
"birth_date": "تاريخ الميلاد",
"phone": "الهاتف",
"email": "البريد الإلكتروني",
"section.visit": "هذه الزيارة",
"first_visit": "هل هذه زيارتك الأولى هنا؟",
"first_visit.yes": "نعم",
"first_visit.no": "لا",
"reason": "ما سبب زيارتك؟",
"medications": "هل تتناول أدوية بانتظام يجب أن تعرفها العيادة؟",
"medications.yes": "نعم",
"medications.no": "لا",
"medication_note": "ما الأدوية؟ اترك الحقل فارغًا إذا لم تحتج الزيارة إلى القائمة.",
"section.emergency": "جهة اتصال للطوارئ",
"emergency_name": "الاسم",
"emergency_phone": "الهاتف",
"section.consent": "الموافقة",
"consent_contact": "أوافق على التواصل معي بخصوص هذا الطلب.",
"consent_privacy": "أوافق على حفظ هذه الإجابات لمعالجة الطلب."
},
"he": {
"title": "טופס קליטת מטופל",
"lede": "פרטים לביקור ראשון במרפאה. השמיטו כל מה שאינו נחוץ לביקור.",
"submit": "שליחה",
"thanks": "נשלח. תודה.",
"file_too_big": "עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.",
"error": "השליחה נכשלה. נסו שוב.",
"disclaimer": "הטופס הזה אינו רשומה רפואית. אל תשלחו אבחנות, תוצאות בדיקות או פרטי בריאות אחרים שאינם נחוצים לפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR.",
"section.patient": "מטופל",
"name": "שם",
"birth_date": "תאריך לידה",
"phone": "טלפון",
"email": "אימייל",
"section.visit": "הביקור הזה",
"first_visit": "האם זה הביקור הראשון שלך כאן?",
"first_visit.yes": "כן",
"first_visit.no": "לא",
"reason": "מה סיבת ההגעה?",
"medications": "האם את/ה נוטל/ת תרופות קבועות שהמרפאה צריכה לדעת עליהן?",
"medications.yes": "כן",
"medications.no": "לא",
"medication_note": "אילו תרופות? השאירו ריק אם הביקור לא דורש את הרשימה.",
"section.emergency": "איש קשר לחירום",
"emergency_name": "שם",
"emergency_phone": "טלפון",
"section.consent": "הסכמה",
"consent_contact": "אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.",
"consent_privacy": "אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."
},
"es": {
"title": "Formulario de admisión de pacientes",
"lede": "Datos para la primera visita a una clínica. Omite lo que la visita no necesite.",
"submit": "Enviar",
"thanks": "Enviado. Gracias.",
"file_too_big": "Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.",
"error": "No se pudo enviar. Inténtalo de nuevo.",
"disclaimer": "Este formulario no es una historia clínica. No envíes diagnósticos, resultados de pruebas ni otros datos de salud que la solicitud no necesite. Los datos de salud son una categoría especial en el RGPD.",
"section.patient": "Paciente",
"name": "Nombre",
"birth_date": "Fecha de nacimiento",
"phone": "Teléfono",
"email": "Correo electrónico",
"section.visit": "Esta visita",
"first_visit": "¿Es tu primera visita?",
"first_visit.yes": "Sí",
"first_visit.no": "No",
"reason": "¿Por qué vienes?",
"medications": "¿Tomas alguna medicación habitual que la clínica deba conocer?",
"medications.yes": "Sí",
"medications.no": "No",
"medication_note": "¿Qué medicamentos? Déjalo en blanco si la visita no necesita la lista.",
"section.emergency": "Contacto de emergencia",
"emergency_name": "Nombre",
"emergency_phone": "Teléfono",
"section.consent": "Consentimiento",
"consent_contact": "Acepto que me contacten sobre esta solicitud.",
"consent_privacy": "Acepto que estas respuestas se guarden para tramitar la solicitud."
},
"fr": {
"title": "Formulaire d’admission du patient",
"lede": "Informations pour une première visite à la clinique. Omettez tout ce dont la visite n’a pas besoin.",
"submit": "Envoyer",
"thanks": "Envoyé. Merci.",
"file_too_big": "Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.",
"error": "Envoi impossible. Veuillez réessayer.",
"disclaimer": "Ce formulaire n’est pas un dossier médical. N’envoyez pas de diagnostic, de résultat d’analyse ni d’autre donnée de santé inutile pour la demande. Les données de santé sont une catégorie particulière au sens du RGPD.",
"section.patient": "Patient",
"name": "Nom",
"birth_date": "Date de naissance",
"phone": "Téléphone",
"email": "E-mail",
"section.visit": "Cette visite",
"first_visit": "Est-ce votre première visite ici ?",
"first_visit.yes": "Oui",
"first_visit.no": "Non",
"reason": "Pourquoi venez-vous ?",
"medications": "Prenez-vous un traitement régulier que la clinique doit connaître ?",
"medications.yes": "Oui",
"medications.no": "Non",
"medication_note": "Quels médicaments ? Laissez vide si la visite n’a pas besoin de la liste.",
"section.emergency": "Contact d’urgence",
"emergency_name": "Nom",
"emergency_phone": "Téléphone",
"section.consent": "Consentement",
"consent_contact": "J’accepte d’être contacté au sujet de cette demande.",
"consent_privacy": "J’accepte que ces réponses soient conservées pour traiter la demande."
},
"pt": {
"title": "Formulário de admissão de paciente",
"lede": "Dados para a primeira consulta numa clínica. Omita o que a consulta não exigir.",
"submit": "Enviar",
"thanks": "Enviado. Obrigado.",
"file_too_big": "Até 3 ficheiros, 5 MiB cada e 10 MiB no total.",
"error": "Não foi possível enviar. Tente novamente.",
"disclaimer": "Este formulário não é um registo clínico. Não envie diagnósticos, resultados de exames nem outros dados de saúde que não sejam necessários para o pedido. Os dados de saúde são uma categoria especial no RGPD.",
"section.patient": "Paciente",
"name": "Nome",
"birth_date": "Data de nascimento",
"phone": "Telefone",
"email": "Email",
"section.visit": "Esta consulta",
"first_visit": "É a sua primeira consulta aqui?",
"first_visit.yes": "Sim",
"first_visit.no": "Não",
"reason": "Qual o motivo da consulta?",
"medications": "Toma medicação regular que a clínica deva conhecer?",
"medications.yes": "Sim",
"medications.no": "Não",
"medication_note": "Que medicamentos? Deixe em branco se a consulta não precisar da lista.",
"section.emergency": "Contacto de emergência",
"emergency_name": "Nome",
"emergency_phone": "Telefone",
"section.consent": "Consentimento",
"consent_contact": "Aceito ser contactado sobre este pedido.",
"consent_privacy": "Aceito que estas respostas sejam guardadas para tratar o pedido."
},
"hi": {
"title": "मरीज़ पंजीकरण फ़ॉर्म",
"lede": "क्लिनिक की पहली विज़िट के लिए जानकारी। जो विज़िट के लिए ज़रूरी न हो, उसे छोड़ दें।",
"submit": "भेजें",
"thanks": "भेज दिया गया। धन्यवाद।",
"file_too_big": "अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।",
"error": "भेजा नहीं जा सका। कृपया फिर से कोशिश करें।",
"disclaimer": "यह फ़ॉर्म मेडिकल रिकॉर्ड नहीं है। निदान, जाँच के नतीजे या अन्य स्वास्थ्य विवरण न भेजें जिनकी इस अनुरोध के लिए ज़रूरत नहीं है। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है।",
"section.patient": "मरीज़",
"name": "नाम",
"birth_date": "जन्म तिथि",
"phone": "फ़ोन",
"email": "ईमेल",
"section.visit": "यह विज़िट",
"first_visit": "क्या यह यहाँ आपकी पहली विज़िट है?",
"first_visit.yes": "हाँ",
"first_visit.no": "नहीं",
"reason": "आप किस कारण आ रहे हैं?",
"medications": "क्या आप नियमित रूप से कोई दवा लेते हैं जिसके बारे में क्लिनिक को पता होना चाहिए?",
"medications.yes": "हाँ",
"medications.no": "नहीं",
"medication_note": "कौन-सी दवाएँ? अगर विज़िट के लिए सूची ज़रूरी नहीं है तो खाली छोड़ें।",
"section.emergency": "आपातकालीन संपर्क",
"emergency_name": "नाम",
"emergency_phone": "फ़ोन",
"section.consent": "सहमति",
"consent_contact": "मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।",
"consent_privacy": "मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"
},
"ja": {
"title": "初診受付フォーム",
"lede": "クリニック初診のための情報です。受診に不要なことは記入しないでください。",
"submit": "送信",
"thanks": "送信しました。ありがとうございます。",
"file_too_big": "ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。",
"error": "送信できませんでした。もう一度お試しください。",
"disclaimer": "このフォームは医療記録ではありません。依頼に必要のない診断結果、検査結果、その他の健康に関する詳細情報は送信しないでください。健康データは、GDPRにおける特別なカテゴリーに該当します。",
"section.patient": "患者",
"name": "お名前",
"birth_date": "生年月日",
"phone": "電話番号",
"email": "メールアドレス",
"section.visit": "今回の受診",
"first_visit": "当院の受診は初めてですか?",
"first_visit.yes": "はい",
"first_visit.no": "いいえ",
"reason": "受診の理由",
"medications": "クリニックが知っておくべき常用薬はありますか?",
"medications.yes": "はい",
"medications.no": "いいえ",
"medication_note": "どの薬ですか?受診に一覧が不要な場合は空欄のままにしてください。",
"section.emergency": "緊急連絡先",
"emergency_name": "お名前",
"emergency_phone": "電話番号",
"section.consent": "同意",
"consent_contact": "このお問い合わせについて連絡を受けることに同意します。",
"consent_privacy": "お問い合わせへの対応のため、これらの回答が保存されることに同意します。"
},
"de": {
"title": "Formular für die Patientenaufnahme",
"lede": "Angaben für den ersten Termin in einer Praxis. Lassen Sie alles weg, was für den Termin nicht nötig ist.",
"submit": "Senden",
"thanks": "Gesendet. Vielen Dank.",
"file_too_big": "Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.",
"error": "Senden fehlgeschlagen. Bitte versuchen Sie es erneut.",
"disclaimer": "Dieses Formular ist keine Patientenakte. Senden Sie keine Diagnosen, Befunde oder andere Gesundheitsangaben, die für die Anfrage nicht nötig sind. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten.",
"section.patient": "Patient",
"name": "Name",
"birth_date": "Geburtsdatum",
"phone": "Telefon",
"email": "E-Mail",
"section.visit": "Dieser Termin",
"first_visit": "Sind Sie zum ersten Mal bei uns?",
"first_visit.yes": "Ja",
"first_visit.no": "Nein",
"reason": "Weshalb kommen Sie?",
"medications": "Nehmen Sie regelmäßig Medikamente, von denen die Praxis wissen sollte?",
"medications.yes": "Ja",
"medications.no": "Nein",
"medication_note": "Welche Medikamente? Leer lassen, wenn die Liste für den Termin nicht nötig ist.",
"section.emergency": "Notfallkontakt",
"emergency_name": "Name",
"emergency_phone": "Telefon",
"section.consent": "Einwilligung",
"consent_contact": "Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.",
"consent_privacy": "Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."
}
};
let status = $state("");
let values = $state({ medications: "" });
const t = $derived(LABELS[lang] || LABELS.en);
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
async function onSubmit(event) {
const form = event.currentTarget;
event.preventDefault();
const body = new FormData(form);
body.set("_lang", lang);
const files = Array.from(body.values()).filter(value => value instanceof File && value.size);
if (files.length > 3 || files.some(file => file.size > FILE_MAX) || files.reduce((sum,file) => sum + file.size,0) > 10 * 1024 * 1024) {
status = t.file_too_big;
return;
}
const button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
try {
const response = await fetch(ENDPOINT, { method: "POST", headers: { Accept: "application/json" }, body });
const result = await response.json();
status = result.success ? t.thanks : (result.message || t.error);
} catch { status = t.error; }
finally { if (button) button.disabled = false; resetCaptcha(form); }
}
</script>
<form onsubmit={onSubmit}>
<h1>{t.title}</h1>
<p>{t.lede}</p>
{#if t.disclaimer}<p>{t.disclaimer}</p>{/if}
<input type="hidden" name="access_key" value={accessKey}>
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden">
<input name="botcheck" tabindex="-1" autocomplete="off">
</div>
<section><h2>{t["section.patient"]}</h2>
<label><span>{t["name"]}</span><input name="name" type="text" required maxlength="80"></label>
<label><span>{t["birth_date"]}</span><input name="birth_date" type="date" required></label>
<label><span>{t["phone"]}</span><input name="phone" type="tel" required maxlength="40"></label>
<label><span>{t["email"]}</span><input name="email" type="email" maxlength="120"></label></section>
<section><h2>{t["section.visit"]}</h2>
<label><span>{t["first_visit"]}</span><select name="first_visit" required><option value="">—</option><option value="yes">{t["first_visit.yes"]}</option><option value="no">{t["first_visit.no"]}</option></select></label>
<label><span>{t["reason"]}</span><textarea name="reason" required maxlength="500"></textarea></label>
<label><span>{t["medications"]}</span><select name="medications" required bind:value={values.medications}><option value="">—</option><option value="yes">{t["medications.yes"]}</option><option value="no">{t["medications.no"]}</option></select></label>
{#if values.medications === "yes"}<label><span>{t["medication_note"]}</span><textarea name="medication_note" maxlength="500"></textarea></label>{/if}</section>
<section><h2>{t["section.emergency"]}</h2>
<label><span>{t["emergency_name"]}</span><input name="emergency_name" type="text" maxlength="80"></label>
<label><span>{t["emergency_phone"]}</span><input name="emergency_phone" type="tel" maxlength="40"></label></section>
<section><h2>{t["section.consent"]}</h2>
<label class="check"><input name="consent_contact" type="checkbox" value="yes" required><span>{t["consent_contact"]}</span></label>
<label class="check"><input name="consent_privacy" type="checkbox" value="yes" required><span>{t["consent_privacy"]}</span></label></section>
<!-- Set turnstileSiteKey to YOUR_TURNSTILE_SITE_KEY. Required for attachments. -->
<div bind:this={captcha} data-turnstile></div>
<button type="submit">{t.submit}</button>
<p>{status}</p>
</form>