Laravel Patient Intake Form for Filament | FilaForms                                 [ ![Filaforms Logo](https://filaforms.app/logo.svg)FilaForms

 ](https://filaforms.app)  [ Features ](https://filaforms.app#features) [ Pricing ](https://filaforms.app/pricing) [ Blog ](https://filaforms.app/blog) [ Documentation ](https://docs.filaforms.app)  [ Try Demo ](https://filaforms.app/login) [ Buy a license ](https://filaforms.app/pricing#plans) 

 [ Features ](https://filaforms.app#features) [ Pricing ](https://filaforms.app/pricing) [ Blog ](https://filaforms.app/blog) [ Documentation ](https://docs.filaforms.app) [ Try Demo ](https://filaforms.app/login) [ Buy a license ](https://filaforms.app/pricing#plans) 

  1. [Home](https://filaforms.app)
2. /
3. [Form Templates](https://filaforms.app/templates)
4. /
5. Register new patients with contact, insurance and consent details

 Healthcare template

Register new patients with contact, insurance and consent details
=================================================================

Import a Laravel patient intake form for Filament, collect contact, insurance, and consent details, then handle each submission in Laravel.

 [ Open this template in the demo builder ](https://filaforms.app/app/templates/patient-intake) 15 fields, 9 required. Free demo account, no card. 

 Updated September 2, 2026

 This Laravel patient intake form gives new patients one place to provide contact, insurance, and consent details before a first visit. Import it into FilaForms, review the rendered field table, and connect each submission to the clinic workflow your Laravel application already runs.

After submission, the response appears in the dashboard for staff review. Your application can also route the patient's email, treatment consent, and signature to an intake queue, appointment workflow, or protected review record. The template provides the collection point, while your application keeps control of the next step.

Patients should not have to repeat the same information across every intake step. Experian Health's 2024 State of Patient Access report found that 85% of patients dislike repetitive paperwork during intake. Use the form as the earliest shared record of the details staff need before the visit.

[FilaForms is a Laravel form builder for Filament](/) for teams that want to manage forms in the application they run. Staff can adjust the imported form visually, while developers can keep routing and review rules in Laravel code. The settings block controls the form's behaviour without turning the page into a second definition of the template.

  Fields in this template (15 fields, 9 required) 
-------------------------------------------------

 Field types used: Text, Date, Email, Phone Number, Textarea, Select, File Upload, Toggle, Signature. Every field is editable in the builder after import.

### Patient Details

    Field Type Required Validation      Full Name `full_name`   Text  Yes  `required`     Date of Birth `date_of_birth`   Date  Yes  `required`     Email Address `email`   Email  Yes  `required | email`     Phone Number `phone`   Phone Number  Yes  `required`     Home Address `address`   Textarea  Yes  `required`     Preferred Pronouns `pronouns`   Text  No  none     Preferred Language `language`   Select, 7 options  No  none     

### Emergency and Insurance

    Field Type Required Validation      Emergency Contact Name `emergency_name`   Text  Yes  `required`     Emergency Contact Phone `emergency_phone`   Phone Number  Yes  `required`     Insurance Provider `insurer`   Text  No  none     Policy Number `policy_number`   Text  No  none     Insurance Card `insurance_card`   File Upload  No  none     

### Consent

    Field Type Required Validation      I consent to treatment `treatment_consent`   Toggle  Yes  `required`     I consent to my records being shared with my GP `records_consent`   Toggle  No  none     Signature `signature`   Signature  Yes  `required`     

 What happens after someone submits
----------------------------------

The field table above separates patient identity, insurance details, and consent because each supports a different decision. Intake staff need reliable contact details when confirming an appointment. Billing staff may need insurance context later. Clinical staff need a clear record of consent before they act on a submitted request.

Treat the submitted response as an intake record, not an approved patient record. A patient can enter inaccurate information, omit important context, or submit before staff confirm eligibility and appointment details. Keep the original submission available to reviewers, then create verified records through the workflow that owns them.

Decide who receives a new intake first. A smaller clinic may send every submission to a shared review queue. A larger clinic may route by location, appointment type, or service line. Keep the rule in the application process that staff can maintain and explain.

The listener below reads `email`, `treatment_consent`, and `signature` from the submitted data. It logs a structured handoff with the form and submission identifiers. Replace logging with the existing workflow that creates a review task or notifies the responsible staff member.

Save this listener as `app/Listeners/RoutePatientIntakeSubmission.php`. Laravel 12 discovers listeners in `app/Listeners` automatically.

```
submission->data;

        Log::info('Patient intake submission received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'email' => $data['email'] ?? null,
            'treatment_consent' => $data['treatment_consent'] ?? null,
            'signature' => $data['signature'] ?? null,
        ]);
    }
}

```

Avoid copying the full submission into broad email notifications or chat messages. Send staff to the protected record when they need the complete intake. That choice reduces duplicate copies and lets access rules stay with the system that stores the response.

Use the submission identifier when a later workflow creates a patient, appointment, or internal review task. The identifier links the outcome back to what the patient originally provided. It also gives staff a path to investigate a dispute or correction without relying on a paraphrased note.

Adapting this template for a specialist clinic
----------------------------------------------

A specialist clinic that receives patients from other doctors' offices can add a `referring_physician` field. Ask for it when the referring practice affects scheduling, document requests, or the appointment handoff. Keep the question focused on the information your staff will use.

Do not make a referral field substitute for referral review. A patient may not know the clinician's full name, and a referring office may need to provide separate records. Use the form to capture the starting context, then let staff apply the clinic's established referral process.

Specialist clinics can also adjust wording around consent to match the treatment they offer. Review the language with the people responsible for clinical and legal decisions. Make any resulting workflow explicit, including who checks the response and when an appointment can proceed.

The signature field is not a legally binding e-signature, and using this form is not a HIPAA compliance claim by itself. Do not represent the captured signature as either. Your clinic must assess its own legal, privacy, security, retention, access, and audit requirements.

Keeping intake and patient records distinct
-------------------------------------------

An intake submission records information at a particular moment. A patient record may need corrections, verification, retention rules, and permissions that differ from the submission. Keeping these records distinct prevents an unreviewed answer from becoming a confirmed clinical fact by accident.

Define the point where staff move information from intake to a patient record. That may happen after insurance verification, referral review, or an appointment confirmation. Record who made the decision in the workflow that owns the patient record, rather than inferring approval from form completion.

When a patient asks to correct an answer, preserve enough context to understand the change. The original submission and the later verified record can serve different purposes. Your application should make that relationship clear to staff who review the intake later.

Review the [FilaForms features for Laravel and Filament](/features) when the workflow needs conditional questions, multi-step forms, notifications, or submission reporting. Keep the intake form focused on the information your clinic can review and use before the first visit.

 Use this template in your own application
-----------------------------------------

 With FilaForms installed, one call creates the form with every field, rule, and setting listed above. Then edit it in the builder.

```
use FilaForms\Core\Support\FormTemplates;

$form = FormTemplates::createFormFromTemplate('patient-intake');
```

  Template schema (JSON) ```
{
    "name": "Patient Intake Form",
    "description": "Register new patients with contact, insurance and consent",
    "icon": "heroicon-o-clipboard-document",
    "category": "Healthcare",
    "popularity": "Very High",
    "sections": [
        {
            "name": "Patient Details",
            "fields": [
                {
                    "label": "Full Name",
                    "type": "text",
                    "code": "full_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Date of Birth",
                    "type": "date",
                    "code": "date_of_birth",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Email Address",
                    "type": "email",
                    "code": "email",
                    "required": true,
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Phone Number",
                    "type": "phone",
                    "code": "phone",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Home Address",
                    "type": "textarea",
                    "code": "address",
                    "required": true,
                    "width": "100"
                },
                {
                    "label": "Preferred Pronouns",
                    "type": "text",
                    "code": "pronouns",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Preferred Language",
                    "type": "select",
                    "code": "language",
                    "required": false,
                    "options": [
                        {
                            "value": "English"
                        },
                        {
                            "value": "Spanish"
                        },
                        {
                            "value": "French"
                        },
                        {
                            "value": "German"
                        },
                        {
                            "value": "Arabic"
                        },
                        {
                            "value": "Mandarin"
                        },
                        {
                            "value": "Other"
                        }
                    ],
                    "width": "50"
                }
            ]
        },
        {
            "name": "Emergency and Insurance",
            "fields": [
                {
                    "label": "Emergency Contact Name",
                    "type": "text",
                    "code": "emergency_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Emergency Contact Phone",
                    "type": "phone",
                    "code": "emergency_phone",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Insurance Provider",
                    "type": "text",
                    "code": "insurer",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Policy Number",
                    "type": "text",
                    "code": "policy_number",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Insurance Card",
                    "type": "file-upload",
                    "code": "insurance_card",
                    "required": false,
                    "width": "50"
                }
            ]
        },
        {
            "name": "Consent",
            "fields": [
                {
                    "label": "Privacy Notice",
                    "type": "section-divider",
                    "code": "privacy_divider",
                    "required": false,
                    "placeholder": "Privacy Notice",
                    "width": "100"
                },
                {
                    "label": "I consent to treatment",
                    "type": "toggle",
                    "code": "treatment_consent",
                    "required": true,
                    "description": "Your records are held under the practice privacy policy",
                    "width": "50"
                },
                {
                    "label": "I consent to my records being shared with my GP",
                    "type": "toggle",
                    "code": "records_consent",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Signature",
                    "type": "signature",
                    "code": "signature",
                    "required": true,
                    "width": "100"
                }
            ]
        }
    ]
}
```

  Frequently asked questions
--------------------------

  What happens after a patient submits this form? The submission appears in the dashboard, where a Laravel listener can route the patient's email, treatment consent, and signature to a review workflow. 

 Can I adapt this form for a specialist clinic? Yes. Add a `referring\_physician` field when other doctors' offices send patients to your specialist clinic. 

 How do I handle a submitted patient intake form in Laravel? Listen for `FilaForms\\\\Core\\\\Events\\\\FormSubmitted` and read `email`, `treatment\_consent`, and `signature` from the submission data. 

 Does the signature make this form legally binding or HIPAA compliant? No. The signature field is not a legally binding e-signature, and using this form is not a HIPAA compliance claim by itself. 

   Run this form inside your Laravel app.
--------------------------------------

 FilaForms installs as a Filament plugin. Submissions land in your own database.

 [ Try it in the demo ](https://filaforms.app/app/templates/patient-intake) [ See pricing ](https://filaforms.app/pricing) 

More templates
--------------

- [ Record a patient's medical history before their first visit Import a Laravel medical history form for Filament, collect pre-visit health details, and... ](https://filaforms.app/templates/medical-history)
- [ Measure how patients experienced their visit, not just outcomes Import a Laravel patient experience survey for Filament, collect visit feedback, and route... ](https://filaforms.app/templates/patient-experience-survey)
- [ Enroll a student with guardian and medical details in one form Import a Laravel student enrollment form for Filament, collect guardian and medical detail... ](https://filaforms.app/templates/student-enrollment)
- [ Get guardian consent and medical notes before a school trip Import a Laravel field trip permission slip for Filament, collect guardian consent and med... ](https://filaforms.app/templates/field-trip-permission)
- [ Ask attendees how your event went, right after it ends Import a Laravel event feedback form for Filament, collect attendee ratings, and route eac... ](https://filaforms.app/templates/event-feedback)
- [ Brief a writer with everything they need before they start Import a Laravel content request form template for Filament, collect complete writer brief... ](https://filaforms.app/templates/content-request)
- [ Capture honest feedback before an employee's last day Install a Laravel exit interview form for Filament, route sensitive answers carefully, and... ](https://filaforms.app/templates/exit-interview)
- [ Capture scope changes and client approval before work starts Import a Laravel change request form for Filament, record scope, cost, priority, and clien... ](https://filaforms.app/templates/change-request)

    ![FilaForms Logo](/logo.svg) FilaForms 

 Laravel form infrastructure for Filament. Stop rebuilding forms on every project.

 [ Buy a license   ](https://filaforms.app/pricing#plans) 

 ### Product

 [ Features ](https://filaforms.app#features) [ Documentation ](https://docs.filaforms.app) [ Blog ](https://filaforms.app/blog) [ Compare form builders ](https://filaforms.app/compare) [ Templates ](https://filaforms.app/templates) [ Pricing ](https://filaforms.app/pricing) [ About ](https://filaforms.app/about) [ Contact ](mailto:hello@filaforms.app) 

 ### Legal

 [ Terms of Service ](https://filaforms.app/terms-of-service) [ Privacy Policy ](https://filaforms.app/privacy-policy) 

  © 2025-2026 FilaForms. All rights reserved.

 [    ](mailto:hello@filaforms.app) [    ](https://x.com/MinasyanManuk)
