use Cube\Forms\Builder\Fields\Date;
use Cube\Forms\Builder\Fields\Email;
use Cube\Forms\Builder\Fields\Hidden;
+use Cube\Forms\Builder\Fields\Password;
use Cube\Forms\Builder\Fields\Radio;
use Cube\Forms\Builder\Fields\Select;
use Cube\Forms\Builder\Fields\Text;
_x('Email', 'Email', 'ccv'),
_x('Phone', 'Phone', 'ccv'),
]),
+ Textarea::field('find_us', 'How did you find us ?'),
Text::field('age', __('Âge :', 'ccv')),
Text::field('occupation', __('Occupation', 'ccv')),
Text::field('nationality', __('Nationality', 'ccv')),
__('No', 'ccv'),
]),
+ Radio::field('idiopathic-ad-scoliosis', __('Have you been diagnosed with Idiopathic Adolescent Scoliosis?', 'ccv'))
+ ->options([
+ __('Yes', 'ccv'),
+ __('No', 'ccv'),
+ ]),
+
Radio::field('chronic-pain', __('Are you suffering with (chronic) back pain and sciatica?', 'ccv'))
->options([
__('Yes', 'ccv'),
__('No', 'ccv'),
]),
- Radio::field('willing-to-travel', __('Are you willing to travel to Montpellier, France? Your stay would be, typically, 9 days in total.', 'ccv'))
+
+ Radio::field('willing-to-travel', __('Are you willing to travel to Montpellier, France? Your stay would typically be, 9 days in total.', 'ccv'))
->options([
__('Yes', 'ccv'),
__('No', 'ccv'),
__('Yes', 'ccv'),
__('No', 'ccv'),
]),
- ]);
+
+ //=== PERSONAL INFORMATION
+ Select::field('surgeon', __('Chirurgien spécifique', 'ccv'))
+ ->required(false)
+ ->options([
+ 'Dr Guilhaume GENESTE' => 'dr.geneste@ccv-montpellier.fr',
+ 'Dr Grégory EDGARD-ROSA' => 'dr.edgard-rosa@ccv-montpellier.fr',
+ 'Dr Martin GRAU ORTIZ' => 'dr.grauortiz@ccv-montpellier.fr',
+ 'Dr Caroline HIRSH' => 'dr.hirsch@ccv-montpellier.fr',
+ ]),
+ Text::field('last-name', __('Nom', 'ccv')),
+ Text::field('first-name', __('Prénom', 'ccv')),
+ Radio::field('sex', __('Sexe :', 'ccv'))
+ ->options([
+ _x('M', 'Sexe (M)', 'ccv'),
+ _x('F', 'Sexe (F)', 'ccv'),
+ ]),
+ Date::field('birthdate', __('Date de naissance', 'ccv')),
+ Text::field('size', 'Height:'),
+ Text::field('weight', 'Weight:'),
+ Text::field('profession', __('Profession', 'ccv')),
+ Text::field('postcode', __('Code postal', 'ccv')),
+ Text::field('city', __('Ville', 'ccv')),
+ Text::field('country', __('Pays', 'ccv')),
+ Text::field('phone', __('Tel', 'ccv')),
+ Email::field('email', __('Email', 'ccv')),
+
+ // Social cover
+ Radio::field('social-cover', __('Couverture sociale :', 'ccv'))
+ ->options([
+ __('Sécurité sociale', 'ccv'),
+ __('Assurance privée', 'ccv'),
+ __('Régime de la CMU/ASC/PUMa/CSS', 'ccv'),
+ __('Accident du travail', 'ccv'),
+ ]),
+ Date::field('work-accident', __('Si accident du travail à quelle date ?', 'ccv'))->required(false),
+
+ // Chirurgical solutions
+ Radio::field('chirurgical-solutions', __('Êtes-vous à la recherche de solutions chirurgicales pour votre problème de dos ?', 'ccv'))
+ ->options([
+ __('Oui, s\'il existe des solutions satisfaisantes', 'ccv'),
+ __('Non, pas encore à ce stade', 'ccv'),
+ ]),
+ //== SYMPTOMS
+ Radio::field('main-problem', __('Problème principal', 'ccv'))
+ ->options([
+ __('Lumbar back pain', 'ccv'),
+ __('Sciatica', 'ccv'),
+ __('Idiopathic Adolescent Scoliosis', 'ccv'),
+ ]),
+ Date::field('date-first-symptoms', __('Date des premiers symptômes :', 'ccv')),
+ Date::field('date-pain-since', __('Douleurs permanentes depuis (le cas échéant) :', 'ccv'))->required(false),
+ Binary::field('pain-arms-legs', __('Avez-vous des douleurs dans les bras ou les jambes (sciatiques, cruralgies, névralgies) ?', 'ccv')),
+ Checkbox::field('pain-arms-legs-detail', 'If yes, please tick the relevant limbs in the diagram below:')
+ ->required(false)
+ ->options([
+ __('Haut du bras droit', 'ccv'),
+ __('Haut du bras gauche', 'ccv'),
+ __('Avant-bras droit', 'ccv'),
+ __('Avant-bras gauche', 'ccv'),
+ __('Haut de la jambe droite', 'ccv'),
+ __('Haut de la jambe gauche', 'ccv'),
+ __('Bas de la jambe droite', 'ccv'),
+ __('Bas de la jambe gauche', 'ccv'),
+ ]),
+
+ Radio::field('main-pain', __('La douleur principale est-elle ?', 'ccv'))
+ ->options([
+ __('Dans la colonne', 'ccv'),
+ __('Dans les membres', 'ccv'),
+ __('Les deux', 'ccv'),
+ ]),
+
+ Binary::field('tingling-numbness', __('Avez-vous des fourmillements ou une sensation d’engourdissement dans un des membres ? ', 'ccv')),
+ Date::field('tingling-numbness-date', __('Si oui depuis quand ?', 'ccv'))->required(false),
+ Binary::field('strength-loss', __('Avez-vous une perte de force importante dans un des membres ?', 'ccv')),
+ Date::field('strength-loss-date', __('Si oui depuis quand ?', 'ccv'))->required(false),
+ Textarea::field('symptoms', 'Tell us in a few words how your symptoms disable you most:'),
+ Textarea::field('surgeries', __('Indiquez ici vos précédentes chirurgies de la colonne et leurs dates (le cas échéant)', 'ccv'))->required(false),
+
+ // Unique session identifier for uploads that go directly to CCV's NAS (upload.ccv-montpellier.fr)
+ // Made up of timestamp YYMMDDHHMM + nonce
+ Hidden::field('imagery-phone-token', __('ID sur le NAS', 'ccv'))->value(date('ymdHi') . '_' . wp_create_nonce('NAS-upload')),
+
+ //=== TREATMENTS
+ Binary::field('kine-osteo', __('Kinésithérapie ou ostéopathie', 'ccv')),
+ Binary::field('infiltration', __('Infiltration ou thermocoagulation', 'ccv')),
+ Binary::field('rheumatological', __('Suivi rhumatologique ou médecine spécialisée', 'ccv')),
+ Binary::field('corset', __('Corset ou ceinture lombaire', 'ccv')),
+ Binary::field('hospitalisation', __('Séjour en hospitalisation', 'ccv')),
+ Textarea::field('medication', __('Indiquez ici les médicaments que vous avez pris pour vos douleurs (le cas échéant)', 'ccv'))->required(false),
+ //=== IMAGERY
+ // This is a special case and will be output manually so only using this for the e-mail label
+ Textarea::field('imagery-online', __('Images en ligne', 'ccv'))->required(false), // Again, a manually handled field
+ Checkbox::field('imagery-posted', __('Images envoyées par courrier', 'ccv'))->required(false),
+ Radio::field('imagery-type', __('Imagerie', 'ccv'))->required(false),
+ Radio::field('imagery-condition', __('IRM de moins de 6 mois', 'ccv'))
+ ->options([
+ __('J\'ai bien noté que mon dossier ne pourra être étudié si je ne fournis pas une IRM de moins de 6 mois', 'ccv'),
+ ]),
+
+ Text::field('link-1', __('Lien internet 1', 'ccv'))->required(false),
+ Text::field('id-1', __('Identifiant', 'ccv'))->required(false),
+ Password::field('pwd-1', __('Mot de passe', 'ccv'))->required(false),
+ Text::field('link-2', __('Lien internet 2', 'ccv'))->required(false),
+ Text::field('id-2', __('Identifiant 2', 'ccv'))->required(false),
+ Password::field('pwd-2', __('Mot de passe 2', 'ccv'))->required(false),
+ Text::field('link-3', __('Lien internet 3', 'ccv'))->required(false),
+ Text::field('id-3', __('Identifiant 3', 'ccv'))->required(false),
+ Password::field('pwd-3', __('Mot de passe 3', 'ccv'))->required(false),
+ Text::field('link-4', __('Lien internet 4', 'ccv'))->required(false),
+ Text::field('id-4', __('Identifiant 4', 'ccv'))->required(false),
+ Password::field('pwd-4', __('Mot de passe 4', 'ccv'))->required(false),
+
+ Textarea::field('message', __('Avez vous un message (ou une demande) spécifique à nous formuler ?', 'ccv'))->required(false),
+
+ ]);
}
/*public function pre_process() {
<div class="spaced-lg">
{!! $form->field('sexe', ['class' => 'flex items-center spaced-horizontal', 'title_class' => 'font-light mb-0']) !!}
+ <div class="flex spaced-horizontal justify-between">
+ {!! $form->field('size', [
+ 'class' => 'flex items-center spaced-horizontal',
+ 'title_class' => 'font-light mb-0',
+ 'input_class' => 'flex items-center w-24',
+ 'placeholder' => '',
+ 'field_after' => __('cm', 'ccv')
+ ]) !!}
+ {!! $form->field('weight', [
+ 'class' => 'flex items-center spaced-horizontal',
+ 'title_class' => 'font-light mb-0',
+ 'input_class' => 'flex items-center w-24',
+ 'placeholder' => '',
+ 'field_after' => __('kg', 'ccv')
+ ]) !!}
+ </div>
{!! $form->field('occupation', ['show_title' => false]) !!}
{!! $form->field('nationality', ['show_title' => false]) !!}
{!! $form->field('contact_preference', ['class' => 'flex items-center spaced-horizontal', 'title_class' => 'font-light mb-0']) !!}
+ {!! $form->field('find_us') !!}
</div>
</div>
<li>{!! $form->field('lumbar-mri-scan') !!}</li>
</ul>
<ul class="spaced-lg">
- <li>{!! $form->field('cortisone-injection') !!}</li>
+ <li>{!! $form->field('idiopathic-ad-scoliosis') !!}</li>
<li>{!! $form->field('ready-for-surgery') !!}</li>
<li>{!! $form->field('willing-to-travel') !!}</li>
<li>{!! $form->field('able-to-self-fund') !!}</li>
</ul>
</div>
+</div>
+
+
+<div class="bg-white text-block-body py-2v pl-4v pr-3v xs:px-2v">
+ <h2>{{ __('1. Vos symptômes', 'ccv') }}</h2>
+
+ @php $date_placeholder = __('JJ/MM/AAAA', 'ccv'); @endphp
+
+ <div class="form-cols-2 mt-1v">
+
+ <ul class="spaced-lg">
+ <li>{!! $form->field('main-problem') !!}</li>
+ <li>
+ {!!
+ $form->field('date-first-symptoms', [
+ 'placeholder' => $date_placeholder,
+ 'class' => 'flex items-center spaced-horizontal',
+ 'title_class' => 'mb-0',
+ 'input_class' => 'date-field-compact',
+ 'flatpickr' => [
+ 'maxDate' => 'today'
+ ]
+ ])
+ !!}
+ </li>
+ <li>
+ {!!
+ $form->field('date-pain-since', [
+ 'placeholder' => $date_placeholder,
+ 'class' => 'flex items-center spaced-horizontal',
+ 'title_class' => 'mb-0',
+ 'input_class' => 'date-field-compact',
+ 'flatpickr' => [
+ 'maxDate' => 'today'
+ ]
+ ])
+ !!}
+ </li>
+ <li>
+ {!! $form->field('pain-arms-legs') !!}
+
+ <div class="form-field mt-6 flex-wrap">
+ {!! $form->title('pain-arms-legs-detail', ['title_class' => 'pr-4']) !!}
+ <div class="custom-checkbox pt-2 mt-0 w-full xs:text-center">
+ <div class="pain-areas">
+ <img src="@asset('images/consultation-body-outline.svg')" class="consultation-body-outline-image">
+
+ <span class="absolute text-2xs font-medium" style="top: 5%; right: 70%">{{ __('Droite', 'ccv') }}</span>
+ <span class="absolute text-2xs font-medium" style="top: 5%; left: 69%">{{ __('Gauche', 'ccv') }}</span>
+
+ @foreach ($form->get_field('pain-arms-legs-detail')->get_options() as $option)
+ <label title="{{ $option }}">
+ <input type="checkbox" name="pain-arms-legs-detail[]" value="{{ $option }}">
+ <span
+ class="form-label">{{-- No label here but the element is needed so custom checkboxes work --}}</span>
+ </label>
+ @endforeach
+ </div>
+ </div>
+ </div>
+
+ </li>
+ <li>{!! $form->field('main-pain') !!}</li>
+ </ul>
+
+ <ul class="spaced-lg">
+ <li>{!! $form->field('tingling-numbness') !!}</li>
+ <li>
+ {!!
+ $form->field('tingling-numbness-date', [
+ 'placeholder' => $date_placeholder,
+ 'class' => 'flex items-center spaced-horizontal',
+ 'title_class' => 'mb-0',
+ 'input_class' => 'date-field-compact',
+ 'flatpickr' => [
+ 'maxDate' => 'today'
+ ]
+ ])
+ !!}
+ </li>
+ <li>{!! $form->field('strength-loss') !!}</li>
+ <li>
+ {!!
+ $form->field('strength-loss-date', [
+ 'placeholder' => $date_placeholder,
+ 'class' => 'flex items-center spaced-horizontal',
+ 'title_class' => 'mb-0',
+ 'input_class' => 'date-field-compact',
+ 'flatpickr' => [
+ 'maxDate' => 'today'
+ ]
+ ])
+ !!}
+ </li>
+ {!! $form->field('symptoms', ['title_class' => 'font-light']) !!}
+ </ul>
+
+ </div>
+
+</div>
+
+
+<div class="bg-light py-2v pl-4v pr-3v xs:px-2v">
+ <h2>{{ __('2. Vos traitements réalisés', 'ccv') }}</h2>
+
+ <div class="spaced-lg mt-1v">
+ {!! $form->field('medication', ['title_class' => 'font-light']) !!}
+
+ <div class="form-cols-4">
+ {!! $form->field('kine-osteo') !!}
+ {!! $form->field('corset') !!}
+ {!! $form->field('hospitalisation') !!}
+ {!! $form->field('infiltration') !!}
+ </div>
+
+ {!! $form->field('rheumatological') !!}
+
+ {!! $form->field('surgeries', ['title_class' => 'font-light']) !!}
+ </div>
+
+</div>
+
+
+<div class="bg-white py-2v pl-4v pr-3v xs:px-2v">
+ <h2>{{ __('3. Votre imagerie', 'ccv') }}</h2>
+
+ <div class="custom-checkbox my-1v">
+ <label>
+ <input type="checkbox" name="imagery-condition" value="Oui" required>
+ <span
+ class="form-label text-lg font-normal leading-tight">{{ __('J\'ai bien noté que mon dossier ne pourra être étudié si je ne fournis pas une IRM de moins de 6 mois.', 'ccv') }}</span>
+ <span class="text-sm font-normal" style="margin-left: 33px;">{{ __("En cas de pathologie de scoliose, envoyez-nous impérativement une radiographie du rachis en totalité, en place de l'IRM.", 'ccv') }}</span>
+ </label>
+ </div>
+
+ <p class="text-lg my-1v font-normal leading-tight">
+ {{ __("Faites-nous parvenir également vos imageries les plus récentes (Scanner, Radiographies…) en utilisant l'une des méthodes suivantes :", 'ccv') }}
+ </p>
+
+ <div class="mt-8">
+ {{-- IMAGES ONLINE --}}
+ <div class="imagery-type-wrapper mb-8">
+ <div class="flex mb-8">
+ <label for="imagery_web" class="imagery-icon">@svg('imagery-web', 'w-22 md:w-20 sm:w-16')</label>
+ <div class="ml-4">
+ <div class="text-lg sm:text-base font-normal leading-tight mb-1">
+ {{ __('Vous avez reçu un lien pour consulter vos images en ligne ?', 'ccv') }}
+ </div>
+ <p class="mt-0 mb-0! pb-2 sm:text-sm">
+ {{ __('Collez votre lien ci-dessous ainsi que vos identifiant et mot de passe :', 'ccv') }}
+ </p>
+ </div>
+ </div>
+ <div class="ml-4">
+ <div class="form-cols-2 flex">
+ @for($i = 1; $i < 5; $i++)
+ <div class="mb-8 spaced-lg imagery-link-block">
+ {!! $form->field("link-$i", ['show_title' => false, 'placeholder' => __('Lien internet', 'ccv').' '.$i]) !!}
+ {!! $form->field("id-$i", ['show_title' => false, 'placeholder' => __('Identifiant','ccv')]) !!}
+ {!! $form->field("pwd-$i", ['show_title' => false, 'placeholder' => __('Mot de passe', 'ccv')]) !!}
+ </div>
+ @endfor
+ </div>
+ </div>
+ </div>
+ </div>
+ <p class="text-xs italic ml-4">
+ {{ __("Aucune demande d’avis ne pourra être étudiée sans imagerie médicale associée.", 'ccv') }}
+ </p>
+
+
{!!
$form->button(__('Submit', 'ccv'), [
'class' => 'btn block mt-2v mx-auto',
</div>
+
{{-- Custom classes for form message container --}}
@push('message_class')
py-2v pl-4v pr-3v xs:px-2v