{"id":39137,"date":"2024-11-26T14:11:30","date_gmt":"2024-11-26T19:11:30","guid":{"rendered":"https:\/\/dormalab.com\/?page_id=39137"},"modified":"2026-09-03T15:03:43","modified_gmt":"2026-09-03T19:03:43","slug":"questionnaire-medical","status":"publish","type":"page","link":"https:\/\/dormalab.com\/fr\/questionnaire-medical\/","title":{"rendered":"Questionnaire m\u00e9dical"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"39137\" class=\"elementor elementor-39137 elementor-39126\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e3e57a6 e-flex e-con-boxed e-con e-parent\" data-id=\"e3e57a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a85166d elementor-widget elementor-widget-html\" data-id=\"a85166d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!doctype html>\n<html lang=\"fr\">\n\n\n<head>\n\n    <!-- Required meta tags -->\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n    <!-- Bootstrap CSS -->\n    <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.0.1\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\"\n          integrity=\"sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x\" crossorigin=\"anonymous\">\n    <script src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.7.0\/jquery.min.js\"><\/script>\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/5.15.3\/css\/all.min.css\"\n          integrity=\"sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM\/gI1w==\"\n          crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"\/>\n    <link rel=\"stylesheet\"\n          href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bootstrap-datepicker\/1.10.0\/css\/bootstrap-datepicker.min.css\"\/>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bootstrap-datepicker\/1.10.0\/js\/bootstrap-datepicker.min.js\">\n    <\/script>\n    <script>\n        jQuery.noConflict();\n    <\/script>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\"><\/script>\n\n\n    <title>Questionnaire<\/title>\n    <style>\n                form input[type=\"text\"],\nform input[type=\"email\"],\nform input[type=\"password\"],\nform input[type=\"tel\"],\nform input[type=\"phone\"], \/* Targets your specific case *\/\nform input[type=\"number\"],\nform input[type=\"url\"],\nform input[type=\"search\"],\nform input[type=\"date\"],\nform input[type=\"datetime-local\"],\nform input[type=\"month\"],\nform input[type=\"week\"],\nform input[type=\"time\"],\nform input[type=\"color\"],\nform select,\nform textarea {\n    background-color: white !important;\n    color: black;\n    border: 1px solid #ccc; \/* Optional: Adds a subtle border *\/\n    padding: 10px; \/* Optional: Adds padding for better usability *\/\n    border-radius: 4px; \/* Optional: Adds rounded corners *\/\n    box-shadow: none; \/* Removes any default shadow *\/\n    padding:10px !important;\n}\n\/* General checkbox styling *\/\n\/* General checkbox styling *\/\nform input[type=\"checkbox\"],\nform .form-check-input {\n    width: 20px; \/* Standard size *\/\n    height: 20px; \/* Standard size *\/\n    background-color: white; \/* Ensure white background *\/\n    border: 1px solid #ccc; \/* Subtle border *\/\n    border-radius: 3px; \/* Optional: Slightly rounded corners *\/\n    cursor: pointer; \/* Pointer cursor for interactivity *\/\n    -webkit-appearance: checkbox; \/* Restore default checkbox appearance for WebKit browsers *\/\n    -moz-appearance: checkbox; \/* Restore default checkbox appearance for Mozilla browsers *\/\n    appearance: checkbox; \/* Restore default checkbox appearance *\/\n}\n\n        p {\n            font-weight: 600;\n        }\n\n        .astrisc {\n            color: red;\n        }\n\n        .other-section {\n            display: none;\n        }\n\n        .error-message {\n            width: 100%;\n            margin-top: .25rem;\n            font-size: .875em;\n            color: #dc3545;\n        }\n\n        .form-control.is-invalid,\n        .was-validated .form-control:invalid {\n            border-color: #dc3545 !important;\n            padding-right: calc(1.5em + .75rem);\n            background-image: none !important;\n            background-repeat: no-repeat !important;\n            background-position: right calc(.375em + .1875rem) center !important;\n            background-size: calc(.75em + .375rem) calc(.75em + .375rem) !important;\n        }\n\n        \/* Erreur au niveau du groupe de cases \u00e0 cocher *\/\n        .has-checkbox-error {\n            border: 1px dashed #dc3545;\n            padding: 10px;\n            border-radius: 8px;\n            background-color: #fff8f8;\n        }\n        .error-message.group { margin-top: 6px; }\n\n        td {\n            width: 25%;\n        }\n\n        \/* autocomplete styles *\/\n\n        .autocomplete {\n            \/*the container must be positioned relative:*\/\n            position: relative;\n            display: inline-block;\n        }\n\n        .autocomplete-items {\n            position: absolute;\n            border: 1px solid #d4d4d4;\n            border-bottom: none;\n            border-top: none;\n            z-index: 99;\n            \/*position the autocomplete items to be the same width as the container:*\/\n            top: 100%;\n            left: 0;\n            right: 0;\n        }\n\n        .autocomplete-items div {\n            padding: 10px;\n            cursor: pointer;\n            background-color: #fff;\n            border-bottom: 1px solid #d4d4d4;\n        }\n\n        .autocomplete-items div:hover {\n            \/*when hovering an item:*\/\n            background-color: #e9e9e9;\n        }\n\n        .autocomplete-active {\n            \/*when navigating through the items using the arrow keys:*\/\n            background-color: DodgerBlue !important;\n            color: #ffffff;\n        }\n\n        .question {\n            margin-top: 25px;\n        }\n\n        .question > p {\n            margin-bottom: 0px;\n        }\n\n        .emergency-section {\n            margin-top: 25px;\n        }\n\n        .form-label {\n            margin-bottom: .5rem;\n            font-weight: 600;\n            margin-top: 15px;\n        }\n\n        .section {\n            background-color: #0083ff12;\n            border-radius: 15px;\n            padding: 20px;\n            margin-top: 5px;\n            margin-bottom: 5px;\n        }\n\n        .fa-calendar {\n            height: 100%;\n            cursor: pointer;\n        }\n\n        .datepicker table tr td,\n        .datepicker table tr th {\n            width: 2.5em;\n            height: 2.0em;\n            text-align: center;\n            vertical-align: middle;\n            border-radius: 0 !important;\n        }\n\n        .swal2-container .swal2-confirm.btn.btn-primary:focus {\n            outline: none !important;\n            box-shadow: none !important;\n        }\n\n        \/* end autocomplete styles *\/\n    <\/style>\n\n    <!--    StopBang-->\n    <style>\n        .error {\n            border: 1px solid #dc3545 !important;\n            background-color: #ffe6e6;\n        }\n\n        #height-error {\n            background-color: transparent !important;\n            border: none !important;\n            box-shadow: none !important;\n            outline: none !important;\n            font-size: 14px;\n        }\n\n        #height-error.invalid-feedback {\n            margin-top: 0 !important;\n            margin-bottom: 10px !important;\n            padding: 0 !important;\n        }\n\n        .OSAQuizeResultWrapper {\n            display: none;\n        }\n\n        .OSAQuizeWrapper {\n            width: 100%;\n            max-width: 600 px;\n            margin: auto;\n            font: 400 14 px 'Calibri', 'Arial';\n        }\n\n        .OSAQuizeWrapper .OSAQuizeResultWrapper {\n            width: 100%;\n            border-bottom: 1px solid #eeeeee;\n            border-top: 1px solid #eeeeee;\n        }\n\n        .OSAQuizeWrapper .submitActionZone {\n            text-align: right;\n            margin: 20px 0px;\n        }\n\n        .OSAQuizeWrapper .submitBtn {\n            background-color: rgb(16, 111, 173);\n            border: none;\n            border-radius: 5px;\n            color: white;\n            padding: 16px 40px;\n            text-align: center;\n            text-decoration: none;\n            display: inline-block;\n            font-size: 16px;\n            margin: 4px 2px;\n            -webkit-transition-duration: 0.4s;\n            \/* Safari *\/\n            transition-duration: 0.4s;\n            cursor: pointer;\n        }\n\n        .singleQuestion {\n            overflow: hidden;\n            line-height: 1.2rem;\n            padding: 10px 0px;\n            border-bottom: 1px solid #eeeeee;\n        }\n\n        .singleQuestion .inputWrapper,\n        .questionWrapper {\n            width: 50%;\n            float: left;\n        }\n\n        .singleQuestion .questionTitle {\n            color: black;\n            font-weight: 600;\n        }\n\n        .singleQuestion .quesitonDesc {\n            color: #555555;;\n        }\n\n        .inputWrapper div {\n            box-sizing: border-box;\n            background-color: #f1f1f1;\n            \/* Green background *\/\n            border-bottom: 1px solid #aaaaaa;\n            \/* Green border *\/\n            border-top: 1px solid #aaaaaa;\n            \/* Green border *\/\n            border-right: 1px solid #aaaaaa;\n            \/* Green border *\/\n            padding: 10px 24px;\n            \/* Some padding *\/\n            cursor: pointer;\n            \/* Pointer\/hand icon *\/\n            float: left;\n            width: 50%;\n        }\n\n        .inputWrapper div:first-of-type {\n            border-left: 1px solid #aaaaaa;\n            \/* Green border *\/\n            border-top-left-radius: 4px;\n            border-bottom-left-radius: 4px;\n        }\n\n        .inputWrapper div:last-of-type {\n            border-right: 1px solid #aaaaaa;\n            \/* Green border *\/\n            border-top-right-radius: 4px;\n            border-bottom-right-radius: 4px;\n        }\n\n        .inputWrapper .selectedBtn {\n            background-color: #0d6efd;\n            color: white;\n        }\n\n        .inputWrapper .bmi-filed-wrapper {\n            width: 100%;\n            padding: 0px;\n            display: flex;\n            flex-direction: row;\n            box-sizing: border-box;\n            margin-bottom: 10px;\n            overflow: hidden;\n            border: 1px solid #aaaaaa;;\n            border-radius: 4px;\n        }\n\n        .inputWrapper .bmi-filed-wrapper input {\n            margin: 0px;\n            \/* border: none; *\/\n            padding: 10px 10px;\n            display: block;\n            border-radius: 4px;\n            flex-grow: initial;\n            width: 70%;\n        }\n\n        .inputWrapper .bmi-filed-wrapper div {\n            margin: 0px;\n            padding: 10px 10px;\n            width: 30%;\n            display: block;\n            border: none;\n            border-top-right-radius: 3px;\n            border-bottom-right-radius: 3px;\n            background-color: #f1f1f1\n        }\n\n        .inputWrapper .bmi-filed-wrapper div:hover {\n            cursor: pointer;\n            background-color: #e1e1e1;\n        }\n\n        .inputWrapper .bmi-result {\n            background: none;\n            border: none;\n            float: right;\n            padding: 5px 10px;\n        }\n\n        @media screen and (max-width: 45.5em) {\n\n            .singleQuestion .inputWrapper,\n            .questionWrapper {\n                width: 100%;\n                float: left;\n            }\n        }\n    <\/style>\n\n    <!--    Epworth-->\n    <style>\n        .epworthQuizeResultWrapper {\n            display: none;\n        }\n\n        div.sleepinessQuizeWrapper {\n            max-width: 1000 px;\n            margin: auto;\n            font: 400 14 px 'Calibri', 'Arial';\n        }\n\n        table.sleepinessQuize {\n            border-spacing: 0;\n            border-collapse: separate; \n            background: white;\n            border-radius: 6px; \n            overflow: hidden; \n            width: 100%;\n            margin: 0 auto;\n            position: relative;\n        }\n\n        table.sleepinessQuize .quizeQuestion {\n            text-align: left;\n        }\n\n\n        table.sleepinessQuize * {\n            position: relative;\n        }\n\n        table.sleepinessQuize td,\n        table.sleepinessQuize th {\n            padding-left: 8px;\n            width: auto;\n        }\n\n        td input {\n            display: inline-block;\n            padding-left: 10px;\n            background-color: rgb(204, 204, 204);\n            cursor: pointer;\n        }\n\n        td input:hover {\n            background-color: rgb(240, 238, 238);\n            text-align: center;\n            cursor: pointer;\n        }\n\n        table.sleepinessQuize thead tr {\n            height: 60px;\n            background: #f1f1f1f1;\n            font-size: 16px;\n        }\n\n        table.sleepinessQuize tbody tr {\n            height: 48px;\n            border-bottom: 1px solid #E3F1D5;\n        }\n\n        table.sleepinessQuize tbody tr:last-child {\n            border-bottom: none;\n        }\n\n        table.sleepinessQuize tbody td {\n            border-bottom: 1px solid #E3F1D5;\n        }\n\n        table.sleepinessQuize td,\n        table.sleepinessQuize th {\n            text-align: center;\n        }\n\n        table.sleepinessQuize td.l,\n        table.sleepinessQuize th.l {\n            text-align: right;\n        }\n\n        table.sleepinessQuize td.c,\n        table.sleepinessQuize th.c {\n            text-align: center;\n        }\n\n        table.sleepinessQuize td.r,\n        table.sleepinessQuize th.r {\n            text-align: center;\n        }\n\n        table.sleepinessQuize th:first {\n            text-align: right;\n        }\n\n        div.sleepinessQuizeWrapper .submitBtn {\n            background-color: #FFED86;\n            \/* Green *\/\n            border: none;\n            border-radius: 5px;\n            color: black;\n            padding: 16px 40px;\n            text-align: center;\n            text-decoration: none;\n            display: inline-block;\n            font-size: 16px;\n            margin: 4px 2px;\n            -webkit-transition-duration: 0.4s;\n            \/* Safari *\/\n            transition-duration: 0.4s;\n            cursor: pointer;\n        }\n\n        div.sleepinessQuizeWrapper .submitActionZone {\n            text-align: right;\n            margin-bottom: 20px;\n        }\n\n        div.sleepinessQuizeWrapper button:hover {\n            background-color: rgb(240, 222, 122);\n        }\n\n        .sleepinessQuizeErrorMsg {\n            color: #D8000C;\n            margin-top: 10px;\n            margin-bottom: 10px;\n            visibility: hidden;\n        }\n\n        .epworthQuizeResultWrapper {\n            width: 100%;\n            border-bottom: 1px solid #E3F1D5;\n            border-top: 1px solid #E3F1D5;\n        }\n\n\n        @media screen and (max-width: 45.5em) {\n            table.sleepinessQuize {\n                display: block;\n            }\n\n            table.sleepinessQuize > *,\n            table.sleepinessQuize tr,\n            table.sleepinessQuize td,\n            table.sleepinessQuize th {\n                display: block;\n            }\n\n            table.sleepinessQuize thead {\n                display: none;\n            }\n\n            table.sleepinessQuize tbody tr {\n                height: auto;\n                padding: 18px 0;\n            }\n\n            table.sleepinessQuize tbody tr td {\n                padding-left: 45%;\n                margin-bottom: 16px;\n                width: 100%;\n                font-size: 12px;\n                line-height: 1;\n            }\n\n            table.sleepinessQuize tbody tr td:last-child {\n                margin-bottom: 0;\n            }\n\n            table.sleepinessQuize tbody tr td:before {\n                position: absolute;\n                font-weight: 700;\n                width: 40%;\n                left: 10px;\n                top: 0;\n            }\n\n            table.sleepinessQuize tbody tr td:nth-child(1):before {\n                content: \"\";\n            }\n\n            table.sleepinessQuize tbody tr td:nth-child(2):before {\n                content: \"No chance of dozing\t\";\n            }\n\n            table.sleepinessQuize tbody tr td:nth-child(3):before {\n                content: \"Slight chance of dozing\t\";\n            }\n\n            table.sleepinessQuize tbody tr td:nth-child(4):before {\n                content: \"Moderate chance of dozing\t\";\n            }\n\n            table.sleepinessQuize tbody tr td:nth-child(5):before {\n                content: \"High chance of dozing\";\n            }\n        }\n\n        body {\n            padding: 20px;\n        }\n\n        blockquote {\n            color: white;\n            text-align: center;\n        }\n    <\/style>\n\n\n<script>\n(function (root, factory) {\n  var api = factory(root);\n\n  if (typeof module === \"object\" && module.exports) {\n    module.exports = api;\n  }\n\n  root.SummitQuestionnaireV2 = api;\n\n  \/\/ Expose helper functions as globals so legacy HTML call sites that reference them\n  \/\/ by bare name (e.g. `resolvePublicApiBase(...)`) keep working after the helper is\n  \/\/ inlined into the page. Without this, the IIFE only exposes the api object via\n  \/\/ `window.SummitQuestionnaireV2`, which causes a ReferenceError in code paths that\n  \/\/ do not use the defensive `window.SummitQuestionnaireV2 && ...` pattern.\n  if (api && typeof api === \"object\") {\n    var _helperExports = [\n      \"resolveStage\",\n      \"resolveApiBase\",\n      \"resolvePublicApiBase\",\n      \"resolvePublicApiBases\",\n      \"setActivePublicApiBase\",\n      \"rewriteUrl\",\n      \"rewriteLegacyUrl\",\n      \"rewriteManagedTargets\",\n      \"attachManagedForms\",\n      \"normalizeBirthdate\",\n      \"notifyEmbeddedQuestionnaireComplete\",\n    ];\n    for (var _i = 0; _i < _helperExports.length; _i++) {\n      var _name = _helperExports[_i];\n      if (typeof api[_name] === \"function\" && typeof root[_name] !== \"function\") {\n        root[_name] = api[_name];\n      }\n    }\n  }\n})(typeof globalThis !== \"undefined\" ? globalThis : this, function (root) {\n  var PROD_BASE = \"https:\/\/api.ascentemr.com\/v2\";\n  var DEV_BASE = \"https:\/\/dev.ascentemr.com\/v2\";\n  var STAGING_BASE = \"https:\/\/staging.ascentemr.com\/v2\";\n  var LOCAL_BASE = \"http:\/\/localhost:4010\/dev\/v2\";\n  var DOM_READY_EVENTS = [\"DOMContentLoaded\", \"load\"];\n\n  function asSearchParams(input) {\n    if (typeof URLSearchParams === \"undefined\") {\n      return {\n        get: function () {\n          return null;\n        },\n      };\n    }\n\n    if (!input && root.location && typeof root.location.search === \"string\") {\n      return new URLSearchParams(root.location.search);\n    }\n\n    if (input instanceof URLSearchParams) {\n      return input;\n    }\n\n    if (typeof input === \"string\") {\n      return new URLSearchParams(input.charAt(0) === \"?\" ? input.slice(1) : input);\n    }\n\n    if (input && typeof input === \"object\" && typeof input.toString === \"function\") {\n      return new URLSearchParams(String(input));\n    }\n\n    return new URLSearchParams(\"\");\n  }\n\n  function normalize(value) {\n    return String(value || \"\").trim().toLowerCase();\n  }\n\n  \/\/ Pad a numeric component to two digits (\"1\" -> \"01\").\n  function pad2(value) {\n    var s = String(value);\n    return s.length === 1 ? \"0\" + s : s;\n  }\n\n  \/\/ Validate a year\/month\/day triple as a real calendar date using LOCAL\n  \/\/ getters (never toISOString, which shifts the day in non-UTC zones).\n  \/\/ Returns canonical \"yyyy-mm-dd\" or null.\n  function buildCanonicalDate(year, month, day) {\n    if (!(year >= 1000 && year <= 9999)) return null;\n    if (!(month >= 1 && month <= 12)) return null;\n    if (!(day >= 1 && day <= 31)) return null;\n    var d = new Date(year, month - 1, day);\n    if (\n      d.getFullYear() !== year ||\n      d.getMonth() !== month - 1 ||\n      d.getDate() !== day\n    ) {\n      return null;\n    }\n    return String(year) + \"-\" + pad2(month) + \"-\" + pad2(day);\n  }\n\n  \/\/ Bug #942: normalize a loosely-typed birthdate into \"yyyy-mm-dd\" so the\n  \/\/ datepicker never silently falls back to today's date. UNPARSEABLE input\n  \/\/ returns null (caller leaves the field for validation) \u2014 never \"today\".\n  function normalizeBirthdate(value) {\n    if (value === null || value === undefined) return null;\n    var raw = String(value).trim();\n    if (!raw) return null;\n\n    var iso = raw.match(\/^(\\d{4})-(\\d{2})-(\\d{2})$\/);\n    if (iso) {\n      return buildCanonicalDate(Number(iso[1]), Number(iso[2]), Number(iso[3]));\n    }\n\n    var digitsOnly = raw.replace(\/\\D\/g, \"\");\n    if (\/^\\d+$\/.test(raw) && digitsOnly.length === 8) {\n      return buildCanonicalDate(\n        Number(digitsOnly.slice(0, 4)),\n        Number(digitsOnly.slice(4, 6)),\n        Number(digitsOnly.slice(6, 8))\n      );\n    }\n\n    var parts = raw.split(\/[\\\/.\\-\\s]+\/).filter(function (p) {\n      return p.length > 0;\n    });\n    if (parts.length === 3 && parts.every(function (p) { return \/^\\d+$\/.test(p); })) {\n      var a = parts[0];\n      var c = parts[2];\n      if (a.length === 4) {\n        return buildCanonicalDate(Number(a), Number(parts[1]), Number(c));\n      }\n      if (c.length === 4) {\n        return buildCanonicalDate(Number(c), Number(parts[1]), Number(a));\n      }\n    }\n\n    return null;\n  }\n\n  function currentOrigin() {\n    if (root.location && typeof root.location.origin === \"string\" && root.location.origin) {\n      return root.location.origin.replace(\/\\\/$\/, \"\");\n    }\n    if (typeof URL !== \"undefined\" && root.location && typeof root.location.href === \"string\") {\n      try {\n        return new URL(root.location.href).origin.replace(\/\\\/$\/, \"\");\n      } catch (_error) {}\n    }\n    return \"\";\n  }\n\n  function isProductionWordpressHost() {\n    var hostname = normalize(root.location && root.location.hostname);\n    if (!hostname) {\n      return false;\n    }\n    if (\n      hostname.indexOf(\"dev.\") === 0 ||\n      hostname.indexOf(\"dev-\") === 0 ||\n      hostname.indexOf(\"staging.\") === 0 ||\n      hostname.indexOf(\"staging-\") === 0 ||\n      hostname.indexOf(\".staging.\") >= 0 ||\n      hostname.indexOf(\".vercel.app\") >= 0\n    ) {\n      return false;\n    }\n\n    return (\n      hostname === \"dormalab.com\" ||\n      hostname === \"www.dormalab.com\" ||\n      hostname === \"summithealth.ca\" ||\n      hostname === \"www.summithealth.ca\" ||\n      hostname === \"cliniquevoyageur.ca\" ||\n      hostname === \"www.cliniquevoyageur.ca\"\n    );\n  }\n\n  function resolveStage(searchLike) {\n    var params = asSearchParams(searchLike);\n    var requestedStage = normalize(params.get(\"stage\"));\n    var testMode = normalize(params.get(\"test\"));\n    var hostname = normalize(root.location && root.location.hostname);\n\n    if (requestedStage === \"local\" || testMode === \"true\") {\n      return \"local\";\n    }\n    if (requestedStage === \"dev\") {\n      return \"dev\";\n    }\n    if (requestedStage === \"staging\") {\n      return \"staging\";\n    }\n    if (requestedStage === \"prod\" || requestedStage === \"production\") {\n      return \"prod\";\n    }\n\n    if (!hostname || hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\") {\n      return \"local\";\n    }\n    if (\n      hostname === \"staging.ascentemr.com\" ||\n      hostname.indexOf(\"staging.\") === 0 ||\n      hostname.indexOf(\"staging-\") === 0 ||\n      hostname.indexOf(\".staging.\") >= 0\n    ) {\n      return \"staging\";\n    }\n    if (\n      hostname === \"dev.ascentemr.com\" ||\n      hostname === \"dev.ascent.summithealth.ca\" ||\n      hostname.indexOf(\"dev.\") === 0 ||\n      hostname.indexOf(\"dev-\") === 0 ||\n      hostname.indexOf(\".vercel.app\") >= 0\n    ) {\n      return \"dev\";\n    }\n\n    return \"prod\";\n  }\n\n  function resolveApiBase(searchLike) {\n    var stage = resolveStage(searchLike);\n\n    if (isProductionWordpressHost() && stage !== \"dev\" && stage !== \"staging\" && stage !== \"local\") {\n      return PROD_BASE;\n    }\n    if (stage === \"local\") {\n      return LOCAL_BASE;\n    }\n    if (stage === \"dev\") {\n      return DEV_BASE;\n    }\n    if (stage === \"staging\") {\n      return STAGING_BASE;\n    }\n\n    return currentOrigin() ? currentOrigin() + \"\/api\/v2\" : DEV_BASE;\n  }\n\n  \/\/ 2026-07-28 root-cause fix: some patients' networks silently drop direct\n  \/\/ requests to api.ascentemr.com while this page (served via Cloudflare)\n  \/\/ loads fine, so initialization spun forever on every device they owned.\n  \/\/ The ladder below lists equivalent public-API bases in preference order:\n  \/\/   1. the canonical AWS host,\n  \/\/   2. the same-origin Cloudflare Worker proxy (\/qapi\/* on this site \u2014\n  \/\/      reachable by definition for anyone who loaded this page),\n  \/\/   3. the existing Cloudflare public-form proxy on CliniqueVoyageur\n  \/\/      (the questionnaire remains on Dorma; this is only a transport path),\n  \/\/   4. the Ascent web app proxy on Vercel (an independent network path).\n  \/\/ Once any base succeeds, it becomes the active base for every later call\n  \/\/ (submit, countries, allergens, referring professionals).\n  var CLOUDFLARE_PUBLIC_PROXY_BASE = \"https:\/\/cliniquevoyageur.ca\/qapi\/v2\/public\";\n  var VERCEL_PUBLIC_PROXY_BASE = \"https:\/\/ascent.summithealth.ca\/api\/qproxy\";\n  var activePublicApiBaseOverride = null;\n\n  function setActivePublicApiBase(base) {\n    activePublicApiBaseOverride =\n      typeof base === \"string\" && base ? base.replace(\/\\\/$\/, \"\") : null;\n  }\n\n  \/\/ The Ascent preview\/test harness injects its own global\n  \/\/ resolvePublicApiBase (the \"preview bridge\") to pin API calls same-origin.\n  \/\/ The ladder's primary rung must honor that override when present, or every\n  \/\/ preview-served page would bypass the bridge and call unreachable hosts.\n  function resolveCanonicalPublicApiBase(searchLike) {\n    var globalResolver = root && root.resolvePublicApiBase;\n    if (\n      typeof globalResolver === \"function\" &&\n      globalResolver !== resolvePublicApiBase\n    ) {\n      try {\n        var resolved = String(globalResolver(searchLike) || \"\").replace(\/\\\/$\/, \"\");\n        if (resolved) return resolved;\n      } catch (_error) {\n        \/\/ Fall through to the local resolution below.\n      }\n    }\n    return resolveApiBase(searchLike).replace(\/\\\/$\/, \"\") + \"\/public\";\n  }\n\n  function resolvePublicApiBases(searchLike) {\n    var params = asSearchParams(searchLike);\n    var stage = resolveStage(searchLike);\n    \/\/ Test hook: NEVER honored on the production WordPress hosts, regardless\n    \/\/ of query parameters \u2014 stage\/test are URL-controlled, so gating on stage\n    \/\/ alone would let a crafted production link redirect patient data to an\n    \/\/ attacker-chosen API base.\n    var testBases = params.get(\"qapibases\");\n    if (!isProductionWordpressHost() && stage !== \"prod\" && typeof testBases === \"string\" && testBases) {\n      var parsed = testBases.split(\",\").map(function (b) {\n        return String(b || \"\").trim().replace(\/\\\/$\/, \"\");\n      }).filter(function (b) { return b.length > 0; });\n      if (parsed.length > 0) return parsed;\n    }\n    var primary = resolveCanonicalPublicApiBase(searchLike);\n    if (!(isProductionWordpressHost() && stage === \"prod\")) {\n      return [primary];\n    }\n    var bases = [primary];\n    var origin = currentOrigin();\n    if (origin) {\n      bases.push(origin + \"\/qapi\/v2\/public\");\n    }\n    bases.push(CLOUDFLARE_PUBLIC_PROXY_BASE);\n    bases.push(VERCEL_PUBLIC_PROXY_BASE);\n    return bases;\n  }\n\n  function resolvePublicApiBase(searchLike) {\n    if (activePublicApiBaseOverride) {\n      return activePublicApiBaseOverride;\n    }\n    return resolveApiBase(searchLike).replace(\/\\\/$\/, \"\") + \"\/public\";\n  }\n\n  function getQuestionnaireSearchParams() {\n    try {\n      return new URLSearchParams(root.location && root.location.search ? root.location.search : \"\");\n    } catch (error) {\n      return new URLSearchParams(\"\");\n    }\n  }\n\n  function isEmbeddedQuestionnaire() {\n    var params = getQuestionnaireSearchParams();\n    return params.get(\"embedded\") === \"1\" || params.get(\"embedded\") === \"true\";\n  }\n\n  function getEmbeddedParentOrigin() {\n    return root.location && root.location.origin ? root.location.origin : \"https:\/\/dormalab.com\";\n  }\n\n  function notifyEmbeddedQuestionnaireComplete() {\n    if (!isEmbeddedQuestionnaire() || !root.parent || root.parent === root) {\n      return false;\n    }\n    var questionnaireId = getQuestionnaireSearchParams().get(\"questionnaireId\") || \"\";\n    root.parent.postMessage(\n      { type: \"questionnaireComplete\", questionnaireId: questionnaireId },\n      getEmbeddedParentOrigin()\n    );\n    return true;\n  }\n\n  function startsWith(value, prefix) {\n    return String(value || \"\").slice(0, prefix.length) === prefix;\n  }\n\n  function isAscentApiHost(host) {\n    var normalizedHost = normalize(host);\n    return (\n      normalizedHost === \"api.ascentemr.com\" ||\n      normalizedHost === \"dev.ascentemr.com\" ||\n      normalizedHost === \"staging.ascentemr.com\" ||\n      normalizedHost === \"api.summittravelhealthdev.com\" ||\n      normalizedHost === \"dev.summittravelhealthdev.com\" ||\n      normalizedHost === \"staging.summittravelhealthdev.com\" ||\n      normalizedHost.indexOf(\"localhost:3000\") === 0 ||\n      normalizedHost.indexOf(\"127.0.0.1:3000\") === 0 ||\n      normalizedHost.indexOf(\"localhost:4010\") === 0 ||\n      normalizedHost.indexOf(\"127.0.0.1:4010\") === 0\n    );\n  }\n\n  function normalizePublicPath(pathname) {\n    var normalized = String(pathname || \"\");\n    if (!normalized) {\n      return \"\/public\";\n    }\n\n    if (startsWith(normalized, \"\/public\")) {\n      return normalized;\n    }\n    if (startsWith(normalized, \"\/v2\/public\")) {\n      return normalized.slice(3);\n    }\n    if (startsWith(normalized, \"\/dev\/v2\/public\")) {\n      return normalized.slice(7);\n    }\n    if (startsWith(normalized, \"\/dev\/v2\/\")) {\n      return \"\/public\" + normalized.slice(7);\n    }\n    if (startsWith(normalized, \"\/dev\")) {\n      return \"\/public\" + normalized.slice(4);\n    }\n    if (startsWith(normalized, \"\/v2\/\")) {\n      return \"\/public\" + normalized.slice(3);\n    }\n\n    return normalized;\n  }\n\n  function shouldRewriteUrl(parsed, rawUrl) {\n    var pathname = String(parsed && parsed.pathname || \"\");\n    if (\n      startsWith(pathname, \"\/public\") ||\n      startsWith(pathname, \"\/v2\/public\") ||\n      startsWith(pathname, \"\/dev\/v2\/public\") ||\n      startsWith(pathname, \"\/dev\") ||\n      startsWith(pathname, \"\/v2\/\")\n    ) {\n      var rawValue = String(rawUrl || \"\");\n      var isRelative =\n        startsWith(rawValue, \"\/\") ||\n        startsWith(rawValue, \".\/\") ||\n        startsWith(rawValue, \"..\/\");\n      return isRelative || isAscentApiHost(parsed.host) || normalize(parsed.host) === normalize(root.location && root.location.host);\n    }\n\n    return false;\n  }\n\n  function rewriteUrl(rawUrl, searchLike) {\n    var value = String(rawUrl || \"\");\n    if (!value || typeof URL === \"undefined\") {\n      return value;\n    }\n\n    try {\n      var parsed = new URL(value, root.location && root.location.href ? root.location.href : undefined);\n      if (!shouldRewriteUrl(parsed, value)) {\n        return value;\n      }\n\n      var apiBase = resolveApiBase(searchLike);\n      var normalizedPath = normalizePublicPath(parsed.pathname);\n\n      return apiBase.replace(\/\\\/$\/, \"\") + normalizedPath + parsed.search + parsed.hash;\n    } catch (_error) {\n      return value;\n    }\n  }\n\n  function patchFetch() {\n    if (typeof root.fetch !== \"function\" || root.fetch.__summitQuestionnaireV2Patched) {\n      return;\n    }\n\n    var originalFetch = root.fetch.bind(root);\n\n    var patchedFetch = function (input, init) {\n      if (typeof Request !== \"undefined\" && input instanceof Request) {\n        var rewrittenRequestUrl = rewriteUrl(input.url);\n        if (rewrittenRequestUrl !== input.url) {\n          input = new Request(rewrittenRequestUrl, input);\n        }\n      } else if (typeof input === \"string\" || (typeof URL !== \"undefined\" && input instanceof URL)) {\n        input = rewriteUrl(String(input));\n      }\n\n      return originalFetch(input, init);\n    };\n\n    patchedFetch.__summitQuestionnaireV2Patched = true;\n    root.fetch = patchedFetch;\n  }\n\n  function patchXmlHttpRequest() {\n    if (\n      typeof XMLHttpRequest === \"undefined\" ||\n      !XMLHttpRequest.prototype ||\n      XMLHttpRequest.prototype.open.__summitQuestionnaireV2Patched\n    ) {\n      return;\n    }\n\n    var originalOpen = XMLHttpRequest.prototype.open;\n    XMLHttpRequest.prototype.open = function (method, url) {\n      var rewrittenUrl = rewriteUrl(url);\n      return originalOpen.apply(this, [method, rewrittenUrl].concat([].slice.call(arguments, 2)));\n    };\n    XMLHttpRequest.prototype.open.__summitQuestionnaireV2Patched = true;\n  }\n\n  function rewriteManagedTargets(documentLike) {\n    var doc = documentLike || root.document;\n    if (!doc || typeof doc.querySelectorAll !== \"function\") {\n      return;\n    }\n\n    doc.querySelectorAll(\"form[action], a[href]\").forEach(function (element) {\n      var attributeName = element.tagName === \"FORM\" ? \"action\" : \"href\";\n      var currentValue = element.getAttribute(attributeName);\n      var rewrittenValue = rewriteUrl(currentValue);\n      if (rewrittenValue && rewrittenValue !== currentValue) {\n        element.setAttribute(attributeName, rewrittenValue);\n      }\n    });\n  }\n\n  function getRecaptchaSiteKey(form) {\n    if (!form || !form.querySelector) {\n      return null;\n    }\n\n    var localWidget = form.querySelector(\".g-recaptcha[data-sitekey]\");\n    if (localWidget) {\n      return localWidget.getAttribute(\"data-sitekey\");\n    }\n\n    var globalWidget =\n      root.document && root.document.querySelector(\".g-recaptcha[data-sitekey]\");\n    return globalWidget ? globalWidget.getAttribute(\"data-sitekey\") : null;\n  }\n\n  function collectFormPayload(form) {\n    var payload = {};\n    var formData = new FormData(form);\n\n    formData.forEach(function (value, key) {\n      if (payload[key] !== undefined) {\n        if (!Array.isArray(payload[key])) {\n          payload[key] = [payload[key]];\n        }\n        payload[key].push(value);\n        return;\n      }\n\n      payload[key] = value;\n    });\n\n    payload.formKey = form.getAttribute(\"data-v2-form-key\") || \"\";\n    payload.pageUrl = root.location ? root.location.href : \"\";\n    payload.recaptchaToken =\n      payload.recaptchaToken ||\n      payload[\"g-recaptcha-response\"] ||\n      \"\";\n    payload.recaptchaSiteKey = payload.recaptchaSiteKey || getRecaptchaSiteKey(form);\n\n    return payload;\n  }\n\n  function ensureStatusElement(form, kind) {\n    var attributeName = kind === \"error\" ? \"data-v2-form-error\" : \"data-v2-form-success\";\n    var existing = form.querySelector(\"[\" + attributeName + \"]\");\n    if (existing) {\n      return existing;\n    }\n\n    var element = root.document.createElement(\"div\");\n    element.setAttribute(attributeName, \"true\");\n    element.style.display = \"none\";\n    element.style.marginBottom = \"12px\";\n    element.style.padding = \"12px\";\n    element.style.borderRadius = \"4px\";\n    element.style.fontSize = \"14px\";\n    element.style.background = kind === \"error\" ? \"#fbe9e7\" : \"#e8f5e9\";\n    element.style.color = kind === \"error\" ? \"#b71c1c\" : \"#1b5e20\";\n    form.insertBefore(element, form.firstChild);\n    return element;\n  }\n\n  function setStatusMessage(form, kind, message) {\n    var element = ensureStatusElement(form, kind);\n    element.textContent = message || \"\";\n    element.style.display = message ? \"block\" : \"none\";\n  }\n\n  function disableSubmitButtons(form, disabled) {\n    var buttons = form.querySelectorAll(\"button[type=submit], input[type=submit]\");\n    buttons.forEach(function (button) {\n      button.disabled = Boolean(disabled);\n    });\n  }\n\n  async function submitManagedForm(form) {\n    var payload = collectFormPayload(form);\n    var action = rewriteUrl(form.getAttribute(\"action\"));\n    var response = await root.fetch(action, {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application\/json\",\n      },\n      body: JSON.stringify(payload),\n    });\n\n    var contentType = String(response.headers && response.headers.get && response.headers.get(\"content-type\") || \"\");\n    var data =\n      contentType.indexOf(\"application\/json\") >= 0\n        ? await response.json()\n        : { success: response.ok, message: await response.text() };\n\n    if (!response.ok || data.success === false) {\n      throw new Error(data.error || data.message || \"Form submission failed.\");\n    }\n\n    return data;\n  }\n\n  function attachFormHandler(form) {\n    if (!form || form.__summitQuestionnaireV2Attached) {\n      return;\n    }\n\n    form.__summitQuestionnaireV2Attached = true;\n    form.addEventListener(\"submit\", async function (event) {\n      event.preventDefault();\n\n      if (form.__summitQuestionnaireV2Submitting) {\n        return;\n      }\n\n      if (typeof form.checkValidity === \"function\" && !form.checkValidity()) {\n        if (typeof form.reportValidity === \"function\") {\n          form.reportValidity();\n        }\n        return;\n      }\n\n      form.__summitQuestionnaireV2Submitting = true;\n      setStatusMessage(form, \"error\", \"\");\n      setStatusMessage(form, \"success\", \"\");\n      disableSubmitButtons(form, true);\n\n      try {\n        var result = await submitManagedForm(form);\n        var redirectUrl = result.redirectUrl || collectFormPayload(form).retURL;\n\n        if (redirectUrl && root.location && typeof root.location.assign === \"function\") {\n          root.location.assign(redirectUrl);\n          return;\n        }\n\n        setStatusMessage(form, \"success\", \"Votre formulaire a ete soumis avec succes.\");\n      } catch (error) {\n        setStatusMessage(form, \"error\", error && error.message ? error.message : \"Le formulaire n'a pas pu etre soumis.\");\n        if (root.console && typeof root.console.error === \"function\") {\n          root.console.error(\"SummitQuestionnaireV2 form submission failed\", error);\n        }\n      } finally {\n        disableSubmitButtons(form, false);\n        form.__summitQuestionnaireV2Submitting = false;\n      }\n    });\n  }\n\n  function attachManagedForms(documentLike) {\n    var doc = documentLike || root.document;\n    if (!doc || typeof doc.querySelectorAll !== \"function\") {\n      return;\n    }\n\n    var managedForms = doc.querySelectorAll(\"form[data-v2-form-key]\");\n    managedForms.forEach(attachFormHandler);\n  }\n\n  function bootstrap() {\n    patchFetch();\n    patchXmlHttpRequest();\n\n    if (!root.document || typeof root.document.addEventListener !== \"function\") {\n      return;\n    }\n\n    rewriteManagedTargets(root.document);\n    attachManagedForms(root.document);\n    DOM_READY_EVENTS.forEach(function (eventName) {\n      root.document.addEventListener(eventName, function () {\n        rewriteManagedTargets(root.document);\n        attachManagedForms(root.document);\n      });\n    });\n\n    root.document.addEventListener(\"submit\", function (event) {\n      var form = event && event.target;\n      if (form && typeof form.getAttribute === \"function\") {\n        var currentAction = form.getAttribute(\"action\");\n        var rewrittenAction = rewriteUrl(currentAction);\n        if (rewrittenAction && rewrittenAction !== currentAction) {\n          form.setAttribute(\"action\", rewrittenAction);\n        }\n      }\n    }, true);\n  }\n\n  bootstrap();\n\n  return {\n    resolveStage: resolveStage,\n    resolveApiBase: resolveApiBase,\n    resolvePublicApiBase: resolvePublicApiBase,\n    resolvePublicApiBases: resolvePublicApiBases,\n    setActivePublicApiBase: setActivePublicApiBase,\n    rewriteUrl: rewriteUrl,\n    rewriteLegacyUrl: rewriteUrl,\n    rewriteManagedTargets: rewriteManagedTargets,\n    attachManagedForms: attachManagedForms,\n    normalizeBirthdate: normalizeBirthdate,\n    notifyEmbeddedQuestionnaireComplete: notifyEmbeddedQuestionnaireComplete,\n    bootstrap: bootstrap,\n  };\n});\n<\/script>\n<\/head>\n\n<body>\n<!-- Optional JavaScript; choose one of the two! -->\n\n<!-- Option 1: Bootstrap Bundle with Popper -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.0.1\/dist\/js\/bootstrap.bundle.min.js\"\n        integrity=\"sha384-gtEjrD\/SeCtmISkJkNUaaKMoLD0\/\/ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4\" crossorigin=\"anonymous\">\n<\/script>\n<script>\n    \/\/test params\n    \/\/?formType=travel&questionnaireId=a075e000000lYd9AAE\n    var countryArray = [];\n    var countryIds = [];\n    let selectedDoctorId;\n    let selectedDentistId;\n\n    \/\/ Construit le dossier de consentement transmis avec la soumission.\n    \/\/\n    \/\/ Le bloc de consentement pour la perfusion est le dossier l\u00e9gal de\n    \/\/ consentement de la clinique : l'acceptation, l'identit\u00e9 de la personne\n    \/\/ qui l'a donn\u00e9 et la VERSION DU LIBELL\u00c9 accept\u00e9e doivent donc toutes \u00eatre\n    \/\/ conserv\u00e9es \u2014 un `true` enregistr\u00e9 sans version ne peut \u00eatre rattach\u00e9 \u00e0\n    \/\/ aucun texte pr\u00e9cis.\n    \/\/\n    \/\/ Les champs propres \u00e0 la perfusion sont enti\u00e8rement omis pour les autres\n    \/\/ types de formulaire plut\u00f4t qu'envoy\u00e9s \u00e0 `false` : un questionnaire de\n    \/\/ voyage n'a aucun consentement de perfusion, et \u00e9crire `false`\n    \/\/ repr\u00e9senterait faussement cela comme un refus.\n    function buildConsentInformation(formType) {\n        const consent = {\n            termsAccepted: jQuery('#agreementCheckbox').is(':checked')\n        };\n\n        if (formType !== \"infusion\") {\n            return consent;\n        }\n\n        const completedBy = jQuery('input[name=\"infusionCompletedBy\"]:checked').val() || null;\n        const isProxy = completedBy === \"proxy\";\n        const attestations = jQuery('.infusion-proxy-attestation');\n\n        consent.infusionConsentAccepted = jQuery('#infusionConsentAccepted').is(':checked');\n        \/\/ Lire l'attribut directement plut\u00f4t que jQuery .data(), qui met en\n        \/\/ cache et conserverait une version p\u00e9rim\u00e9e si le bloc \u00e9tait r\u00e9affich\u00e9.\n        consent.infusionConsentVersion =\n            jQuery('#infusionConsentBlock').attr('data-consent-version') || null;\n        consent.consentSignedByName =\n            (jQuery('#infusionConsentSignedByName').val() || '').trim() || null;\n        consent.consentGivenBySelf = completedBy === \"self\";\n        consent.proxyName = isProxy ? (jQuery('#infusionProxyName').val() || '').trim() || null : null;\n        consent.proxyRelationship = isProxy\n            ? jQuery('#infusionProxyRelationship').val() || null\n            : null;\n        consent.proxyPhone = isProxy ? (jQuery('#infusionProxyPhone').val() || '').trim() || null : null;\n        consent.proxyAttestationsAccepted = isProxy\n            ? attestations.length > 0 && attestations.length === attestations.filter(':checked').length\n            : null;\n\n        return consent;\n    }\n\n    \/\/ Iron-infusion eligibility screening.\n    \/\/\n    \/\/ These three answers gated online booking client-side and were then\n    \/\/ discarded \u2014 never placed in the payload, never stored \u2014 so the nurse\n    \/\/ preparing the infusion could not see the screening the patient had just\n    \/\/ completed. They now travel with the submission.\n    \/\/\n    \/\/ Returned as null for every other form type rather than as `false`: a\n    \/\/ travel questionnaire has no iron-infusion screening, and a stored `false`\n    \/\/ would misrepresent that as the patient answering \"no\". Pregnancy and\n    \/\/ immunocompromise are only ASKED when the infusion is iron, so they stay\n    \/\/ null otherwise for exactly the same reason.\n    function buildInfusionInformation(formType) {\n        if (formType !== \"infusion\") {\n            return null;\n        }\n\n        const ironAnswer = jQuery('input[name=\"infusionIsIron\"]:checked').val() || null;\n        if (!ironAnswer) {\n            return null;\n        }\n\n        const isIron = ironAnswer === \"yes\";\n        const pregnantAnswer = jQuery('input[name=\"infusionPregnant\"]:checked').val() || null;\n        const immunoAnswer = jQuery('input[name=\"infusionImmuno\"]:checked').val() || null;\n\n        return {\n            infusionIsIron: isIron,\n            infusionPregnant: isIron && pregnantAnswer ? pregnantAnswer === \"yes\" : null,\n            infusionImmunocompromised: isIron && immunoAnswer ? immunoAnswer === \"yes\" : null\n        };\n    }\n\n    async function dataSubmit() {\n        console.log('submitting data');\n\n        function isValidDate(dateString) {\n            var regEx = \/^\\d{4}-\\d{2}-\\d{2}$\/;\n            if (!dateString.match(regEx)) return false; \/\/ Invalid format\n            var d = new Date(dateString);\n            var dNum = d.getTime();\n            if (!dNum && dNum !== 0) return false; \/\/ NaN value, Invalid date\n            return d.toISOString().slice(0, 10) === dateString;\n        }\n\n        function isValidBirthdate(dateString) {\n            if (!isValidDate(dateString)) return false;\n            var d = new Date(dateString);\n            var today = new Date();\n            var year = d.getFullYear();\n            var currentYear = today.getFullYear();\n            var minYear = currentYear - 150; \/\/ Maximum age of 150 years\n            \n            \/\/ Check if date is in the future\n            if (d > today) return false;\n            \n            \/\/ Check if year is reasonable (not before 1900 and not more than 150 years ago)\n            if (year < 1900 || year < minYear) return false;\n            \n            return true;\n        }\n\n        \/\/validate birthdate first\n        var birthdateValue = jQuery('#birthdate').val();\n        if (!isValidDate(birthdateValue)) {\n            alert(\"Votre date de naissance doit \u00eatre au format AAAA-MM-JJ. Veuillez corriger cela avant de soumettre \u00e0 nouveau\");\n            return;\n        }\n        if (!isValidBirthdate(birthdateValue)) {\n            var birthdateYear = new Date(birthdateValue).getFullYear();\n            var currentYear = new Date().getFullYear();\n            if (birthdateYear < 1900) {\n                alert(\"L'ann\u00e9e de naissance \" + birthdateYear + \" semble incorrecte. Veuillez v\u00e9rifier votre date de naissance et r\u00e9essayer.\");\n            } else if (birthdateYear > currentYear) {\n                alert(\"La date de naissance ne peut pas \u00eatre dans le futur. Veuillez v\u00e9rifier votre date de naissance et r\u00e9essayer.\");\n            } else {\n                alert(\"La date de naissance semble invalide. Veuillez v\u00e9rifier que l'ann\u00e9e est correcte (devrait \u00eatre entre 1900 et \" + currentYear + \").\");\n            }\n            jQuery(\"#loadingDiv\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            return;\n        }\n        if (!isValidDate(jQuery('#departureDate').val()) && jQuery('#departureDate').val() != \"\") {\n            alert(\"La date de d\u00e9part doit \u00eatre au format AAAA-MM-JJ. Veuillez corriger cela avant de soumettre \u00e0 nouveau\");\n            return;\n        }\n\n        \/\/validate allergiesOther field length (max 500 characters for the public API)\n        var allergiesOtherValue = jQuery(\"#allergiesOther\").val();\n        if (allergiesOtherValue && allergiesOtherValue.length > 500) {\n            alert(\"Le champ 'Autres allergies' est trop long (\" + allergiesOtherValue.length + \" caract\u00e8res). Veuillez le r\u00e9duire \u00e0 500 caract\u00e8res ou moins.\");\n            jQuery(\"#loadingDiv\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            return;\n        }\n\n        \/\/validate cardioDiseaseOther field length (max 250 characters for the public API)\n        var cardioDiseaseOtherValue = jQuery(\"#cardioDiseaseOther\").val();\n        if (cardioDiseaseOtherValue && cardioDiseaseOtherValue.length > 250) {\n            alert(\"Le champ 'Autre maladie cardiaque' est trop long (\" + cardioDiseaseOtherValue.length + \" caract\u00e8res). Veuillez le r\u00e9duire \u00e0 250 caract\u00e8res ou moins.\");\n            jQuery(\"#loadingDiv\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            return;\n        }\n\n        \/\/validate vaccineReceivingCountry field length (max 255 characters for the public API)\n        var vaccineReceivingCountryValue = jQuery(\"#radioVaccineCountry\").val();\n        if (vaccineReceivingCountryValue && vaccineReceivingCountryValue.length > 255) {\n            alert(\"Le champ 'Province\/pays de vaccination' est trop long (\" + vaccineReceivingCountryValue.length + \" caract\u00e8res). Veuillez le r\u00e9duire \u00e0 255 caract\u00e8res ou moins.\");\n            jQuery(\"#loadingDiv\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            return;\n        }\n\n        \/\/validate departure date now too. #countrySearch holds text the patient\n        \/\/ typed but has not added to their destination list yet. addCountryFromInputs\n        \/\/ is defined inside a document-ready closure, so resolve it via window here \u2014\n        \/\/ a bare call previously threw an uncaught ReferenceError that killed submit\n        \/\/ silently (the \"black frame around the submit button\" report).\n        if (jQuery(\"#countrySearch\").val() != \"\") {\n            var addCountry = (typeof addCountryFromInputs === \"function\")\n                ? addCountryFromInputs\n                : window.addCountryFromInputs;\n            if (typeof addCountry !== \"function\" || !addCountry()) {\n                jQuery(\"#loadingDiv\").hide();\n                jQuery(\"#questionnaireForm\").show();\n                var csEl = document.getElementById(\"countrySearch\");\n                var countryMsg = \"Veuillez s\u00e9lectionner un pays dans la liste d\u00e9roulante et cliquer sur \u00ab Ajouter \u00bb, ou videz le champ du pays avant de soumettre.\";\n                if (typeof Swal !== \"undefined\") {\n                    await Swal.fire({\n                        icon: \"error\",\n                        title: \"Destination non ajout\u00e9e\",\n                        text: countryMsg,\n                        confirmButtonText: \"OK\",\n                        customClass: { confirmButton: \"btn btn-primary\" },\n                        buttonsStyling: false\n                    });\n                    if (csEl) { csEl.scrollIntoView({ behavior: \"smooth\", block: \"center\" }); csEl.focus(); }\n                } else {\n                    alert(countryMsg);\n                    if (csEl) { csEl.scrollIntoView({ behavior: \"smooth\", block: \"center\" }); csEl.focus(); }\n                }\n                return;\n            }\n        }\n        jQuery(\"#loadingDiv\").show();\n        jQuery(\"#questionnaireForm\").hide();\n        \/\/get the action-url of the form\n        var url = new URL(window.location.href);\n        var formType = url.searchParams.get(\"formType\");\n        var questionnaireId = url.searchParams.get(\"questionnaireId\");\n        var TBSymptoms = \"\";\n        var cardioDisease = \"\";\n        var respiratoryIllness = \"\";\n        var liverDisease = \"\";\n        var neurologicalDisorder = \"\";\n        var psychiatricDisorder = \"\";\n        var skinDisorder = \"\";\n        var immunoSuppressed = \"\";\n        var contactPopulation = \"\";\n        var adverseReactionToVaccine = \"\";\n        var travelPurpose = \"\";\n        var travelActivities = \"\";\n        var travelAccommodation = \"\";\n        var digestiveIllness = \"\";\n        var destinations = [];\n        var destinationCity = {};\n\n        \/\/ Sleep\n        var sleepSymptoms = \"\"\n\n        jQuery('.destination-section .repeatingSection table tbody tr').each(function () {\n            var idIndex = countryArray.indexOf(jQuery(this).find('.countrySearchtd').html())\n            destinationCity = {\n                \"id\": countryIds[idIndex],\n                \"country\": jQuery(this).find('.countrySearchtd').html(),\n                \"citiesToVisit\": jQuery(this).find('.citiesVisitedtd').html(),\n                \"daysToVisit\": jQuery(this).find('.daystd').html()\n            }\n            destinations.push(destinationCity);\n        });\n\n\n        if (!destinations.length && formType === \"travel\") {\n            console.log(\"no destinations added. Clicking\");\n            alert(\n                \"Il semble que vous n'ayez ajout\u00e9 aucune destination. Veuillez vous assurer d'ajouter au moins une destination \u00e0 votre liste\")\n            \/\/jQuery('.addCountry').click();\n            jQuery(\"#loadingDiv\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            return;\n        }\n        jQuery('input[name=\"TBSymptoms\"]:checked').each(function () {\n            TBSymptoms = TBSymptoms + this.value + ';';\n        });\n        jQuery('input[name=\"cardioDisease\"]:checked').each(function () {\n            cardioDisease = cardioDisease + this.value + ';';\n        });\n        jQuery('input[name=\"respiratoryIllness\"]:checked').each(function () {\n            respiratoryIllness = respiratoryIllness + this.value + ';';\n        });\n        jQuery('input[name=\"liverDisease\"]:checked').each(function () {\n            liverDisease = liverDisease + this.value + ';';\n        });\n        jQuery('input[name=\"neurologicalDisorder\"]:checked').each(function () {\n            neurologicalDisorder = neurologicalDisorder + this.value + ';';\n        });\n        jQuery('input[name=\"psychiatricDisorder\"]:checked').each(function () {\n            psychiatricDisorder = psychiatricDisorder + this.value + ';';\n        });\n        jQuery('input[name=\"skinDisorder\"]:checked').each(function () {\n            skinDisorder = skinDisorder + this.value + ';';\n        });\n        jQuery('input[name=\"immunoSuppressed\"]:checked').each(function () {\n            immunoSuppressed = immunoSuppressed + this.value + ';';\n        });\n        jQuery('input[name=\"contactPopulation\"]:checked').each(function () {\n            contactPopulation = contactPopulation + this.value + ';';\n        });\n        jQuery('input[name=\"adverseReactionToVaccine\"]:checked').each(function () {\n            adverseReactionToVaccine = adverseReactionToVaccine + this.value + ';';\n        });\n        jQuery('input[name=\"travelPurpose\"]:checked').each(function () {\n            travelPurpose = travelPurpose + this.value + ';';\n        });\n        jQuery('input[name=\"travelActivities\"]:checked').each(function () {\n            travelActivities = travelActivities + this.value + ';';\n        });\n        jQuery('input[name=\"travelAccommodation\"]:checked').each(function () {\n            travelAccommodation = travelAccommodation + this.value + ';';\n        });\n        jQuery('input[name=\"digestiveIllness\"]:checked').each(function () {\n            digestiveIllness = digestiveIllness + this.value + ';';\n        });\n\n        \/\/ Sleep\n        jQuery('input[name=\"sleepSymptoms\"]:checked').each(function () {\n            sleepSymptoms = sleepSymptoms + this.value + ';';\n        });\n\n        var timeOfDay = '';\n        jQuery('input[name=\"timeOfDay\"]:checked').each(function () {\n            timeOfDay += this.value + ';';\n        });\n\n        \/**handle file upload section **\/\n        let justfileData;\n        let fileType;\n\n        async function getBase64(file) {\n            return new Promise((resolve, reject) => {\n                const reader = new FileReader();\n                reader.readAsDataURL(file);\n                reader.onload = () => resolve(reader.result);\n                reader.onerror = error => reject(error);\n            });\n        }\n\n        let fileUploadBody = {}\n        var file = document.querySelector('#immunizationRecordUpload').files[0];\n        if (file) {\n            let data = await getBase64(file);\n            let justFileData = data.substring(data.indexOf(\",\") + 1);\n            let uploadedFileType = data.substring(data.indexOf(\"\/\") + 1, data.indexOf(\";\")).trim();\n            \/\/ console.log(\"filedata: \",justFileData);\n            console.log(\"filetype: \", fileType);\n            fileUploadBody.fileType = uploadedFileType;\n            fileUploadBody.documentData = justFileData;\n        }\n        \/** end of file upload section **\/\n       \/\/ const selectedDoctorId = document.querySelector('input[name=\"doctorSelection\"]:checked')?.value || null;\n   \/\/ const selectedDentistId = document.querySelector('input[name=\"dentistSelection\"]:checked')?.value || null;\n  \n   var formData = {\n            \"questionnaireId\": questionnaireId,\n            \"websiteDomain\": window.location.hostname,\n            \"demographicInformation\": {\n                \"firstName\": jQuery(\"#firstName\").val(),\n                \"lastName\": jQuery(\"#lastName\").val(),\n                \"birthdate\": jQuery(\"#birthdate\").val(),\n                \"street\": jQuery(\"#street\").val(),\n                \"city\": jQuery(\"#city\").val(),\n                \"province\": jQuery(\"#province\").val(),\n                \"postalCode\": jQuery(\"#postalCode\").val(),\n                \"email\": jQuery(\"#email\").val(),\n                \"phone\": jQuery(\"#phone\").val(),\n                \"healthCardNumber\": jQuery(\"#healthCardNumber\").val(),\n                \"healthCardExpirationDate\": jQuery(\"#healthCardExpirationDate\").val(),\n                \"occupation\": jQuery(\"#occupation\").val(),\n                \"language\": jQuery(\"#language\").val()\n            },\n            \"pharmacyInformation\": {\n                \"pharmacyName\": jQuery(\"#pharmacyName\").val(),\n                \"pharmacyStreet\": jQuery(\"#pharmacyStreet\").val(),\n                \"pharmacyCity\": jQuery(\"#pharmacyCity\").val(),\n                \"pharmacyPhone\": jQuery(\"#pharmacyPhone\").val().replace(\/\\D\/g, ''),\n                \"pharmacyFax\": jQuery(\"#pharmacyFax\").val().replace(\/\\D\/g, '')\n            },\n            \"medicalInformation\": {\n                \"tbSymptoms\": TBSymptoms,\n                \"previousPositiveTBTest\": jQuery(\"#previousPositiveTBTest\").val(),\n                \"previousPositiveTBTestOther\": jQuery(\"#previousPositiveTBTestOther\").val(),\n                \"contactWithTB\": jQuery(\"#contactWithTB\").val(),\n                \"contactWithTBOther\": jQuery(\"#contactWithTBOther\").val(),\n                \"BCGVaccinated\": jQuery(\"#BCGVaccinated\").val(),\n                \"BCGVaccinatedOther\": jQuery(\"#BCGVaccinatedOther\").val(),\n                \"reasonForTBTest\": jQuery(\"#reasonForTBTest\").val(),\n\n                \"cardioDisease\": cardioDisease,\n                \"cardioDiseaseOther\": jQuery(\"#cardioDiseaseOther\").val(),\n                \"allergies\": jQuery('#allergies').val(),\n                \"allergiesOther\": jQuery(\"#allergiesOther\").val(),\n                \"selectedAllergens\": collectSelectedAllergenSlugs(),\n                \"allergyEntries\": buildAllergyEntries(),\n                \"respiratoryIllness\": respiratoryIllness,\n                \"respiratoryIllnessOther\": jQuery(\"#respiratoryIllnessOther\").val(),\n                \"digestiveIllness\": digestiveIllness,\n                \"digestiveIllnessOther\": jQuery(\"#digestiveIllnessOther\").val(),\n                \"liverDisease\": liverDisease,\n                \"liverDiseaseOther\": jQuery(\"#liverDiseaseOther\").val(),\n                \"kidneyIllness\": jQuery('input[name=radiokidney]:checked').val(),\n                \"kidneyIllnessOther\": jQuery(\"#kidneyIllnessOther\").val(),\n                \"cancer\": jQuery('input[name=\"radioCancer\"]:checked').val(),\n                \"cancerOther\": jQuery(\"#cancerOther\").val(),\n                \"neurologicalDisorder\": neurologicalDisorder,\n                \"neurologicalDisorderOther\": jQuery(\"#neurologicalDisorderOther\").val(),\n                \"psychiatricDisorder\": psychiatricDisorder,\n                \"psychiatricDisorderOther\": jQuery(\"#psychiatricDisorderOther\").val(),\n                \"skinDisorder\": skinDisorder,\n                \"skinDisorderOther\": jQuery(\"#skinDisorderOther\").val(),\n                \"immunoSuppressed\": immunoSuppressed,\n                \"immunoSuppressedOther\": jQuery('#immunoSuppressedOther').val(),\n                \"diabetes\": jQuery('input[name=\"radiodiabetes\"]:checked').val(),\n                \"diabetesOther\": jQuery(\"#diabetesOther\").val(),\n                \"chronicIllness\": jQuery(\"#chronicIllness\").val(),\n                \"maternity\": jQuery(\"#maternity\").val(),\n                \"medications\": jQuery(\"#medications\").val(),\n                \"receivedChildhoodVaccines\": jQuery('input[name=\"radioVaccine\"]:checked').val(),\n                \"vaccineReceivingCountry\": jQuery(\"#radioVaccineCountry\").val(),\n                \"contactPopulation\": contactPopulation,\n                \"adverseReactionToVaccine\": adverseReactionToVaccine,\n                \"adverseReactionToVaccineOther\": jQuery(\"#adverseReactionToVaccineOther\").val(),\n                \"smokeCigarettes\": jQuery('input[name=\"radioSmoke\"]:checked').val(),\n            },\n            \"lifeStyle\": {\n                \"tobacco\": {\n                    \"everSmoked\": jQuery('input[name=everSmoke]:checked').val(),\n                    \"stillSmoking\": jQuery('input[name=stillSmoking]:checked').val(),\n                    \"cigarettesPerDay\": jQuery('input[name=cigarettesPerDay]').val(),\n                    \"yearsSmoking\": jQuery('input[name=yearsSmoking]').val(),\n                    \"yearsStopped\": jQuery('input[name=yearsStopped]').val(),\n                },\n                \"alcohol\": {\n                    \"doDrink\": jQuery('input[name=alcohol]:checked').val(),\n                    \"timeOfDay\": timeOfDay,\n                    \"drinksPerWeek\": jQuery('input[name=drinksPerWeek]').val()\n                },\n                \"drugs\": {\n                    \"doUseDrugs\": jQuery('input[name=drugs]:checked').val(),\n                    \"drugType\": jQuery('input[name=drugType]').val()\n                },\n                \"coffee\": {\n                    \"cupsPerDay\": jQuery('#coffeeCupsPerDay').val()\n                }\n            },\n            \"referrerInformation\":{\n                    \"referringDoctorFirstName\": document.getElementById('doctorFirstName')?.value.trim(),\n                    \"referringDoctorLastName\": document.getElementById('doctorLastName')?.value.trim(),\n                    \"referringDoctorId\": selectedDoctorId,\n                    \"referringDentistFirstName\": document.getElementById('dentistFirstName')?.value.trim(),\n                    \"referringDentistLastName\": document.getElementById('dentistLastName')?.value.trim(),\n                    \"referringDentistId\": selectedDentistId,\n            },\n\n            \"newsletterSubscription\": formType === \"sleep\" ? jQuery('#newsletterSubscription').is(':checked') : null,\n            \"sleepScreening\": {\n                \"stopBangTotal\": getStopBangData(),\n                \"epworthScaleTotal\": getEpworthData(),\n                \"sleepSymptoms\": sleepSymptoms,\n                \"stopBang\": {\n                    \"snoreLoudly\": jQuery('div[name=\"first\"].choice.selectedBtn').text().trim(),\n                    \"feelTired\": jQuery('div[name=\"second\"].choice.selectedBtn').text().trim(),\n                    \"observedStopBreathing\": jQuery('div[name=\"third\"].choice.selectedBtn').text().trim(),\n                    \"highBloodPressure\": jQuery('div[name=\"fourth\"].choice.selectedBtn').text().trim(),\n                    \"bmi\": {\n                        \"weight\": jQuery('#bmi-weight').val(),\n                        \"weightUnit\": jQuery('#weightUnit').text(),\n                        \"height\": jQuery('#bmi-height').val(),\n                        \"heightUnit\": jQuery('#heightUnit').text(),\n                    },\n                    \"ageGroup\": jQuery('div[name=\"sixth\"].choice.selectedBtn').text().trim(),\n                    \"neckCircumference\": document.getElementById('neck-circumference').value,\n                    \"gender\": jQuery('div[name=\"eighth\"].choice.selectedBtn').text().trim(),\n                },\n                \"epworthScale\": {\n                    \"sittingReading\": jQuery('input[name=\"question1\"]:checked').val(),\n                    \"watchingTV\": jQuery('input[name=\"question2\"]:checked').val(),\n                    \"sittingInactive\": jQuery('input[name=\"question3\"]:checked').val(),\n                    \"lyingDownRest\": jQuery('input[name=\"question4\"]:checked').val(),\n                    \"talkingToSomeone\": jQuery('input[name=\"question5\"]:checked').val(),\n                    \"sittingQuietly\": jQuery('input[name=\"question6\"]:checked').val(),\n                    \"passengerInCar\": jQuery('input[name=\"question7\"]:checked').val(),\n                    \"stoppedInTraffic\": jQuery('input[name=\"question8\"]:checked').val(),\n                },\n            },\n\n            \"destinations\": destinations,\n            \"travelInformation\": {\n                \"departureDate\": jQuery(\"#departureDate\").val(),\n                \"returnDate\": jQuery(\"#returnDate\").val() || null,\n                \"travelPurpose\": travelPurpose,\n                \"travelActivities\": travelActivities,\n                \"travelActivitiesOther\": jQuery(\"#travelActivitiesOther\").val(),\n                \"travelAccommodation\": travelAccommodation,\n                \"travelAccommodationOther\": jQuery(\"#travelAccommodationOther\").val()\n            },\n            \"emergencyInformation\": {\n                \"emergencyContactName\": jQuery('#emergencyContactName').val(),\n                \"emergencyContactNumber\": jQuery('#emergencyContactNumber').val(),\n                \"guardianName\": jQuery('#guardianName').val()\n            },\n            \/\/ Le consentement fait partie des donn\u00e9es soumises, et non d'une\n            \/\/ simple case coch\u00e9e dans l'interface. Auparavant,\n            \/\/ #agreementCheckbox et #infusionConsentAccepted n'\u00e9taient jamais\n            \/\/ transmis, si bien que la clinique n'avait aucune trace qu'un\n            \/\/ consentement avait \u00e9t\u00e9 donn\u00e9. consentVersion fixe QUEL libell\u00e9 a\n            \/\/ \u00e9t\u00e9 accept\u00e9.\n            \"consentInformation\": buildConsentInformation(formType),\n            \/\/ Iron-infusion eligibility screening \u2014 see\n            \/\/ buildInfusionInformation. null for non-infusion form types.\n            \"infusionInformation\": buildInfusionInformation(formType),\n            \"fileUpload\": fileUploadBody\n        };      \n        \n        if (jQuery(\"#state\").val()) {\n            console.log(\"there is a state. Changing province val\")\n            formData.demographicInformation.province = jQuery(\"#state\").val();\n        }\n        if (jQuery(\"#zipCode\").val()) {\n            formData.demographicInformation.postalCode = jQuery(\"#zipCode\").val();\n        }\n        console.log('formData: ',formData);\n        const questionnaireApiBase = resolvePublicApiBase(window.location.search).replace(\/\\\/$\/, \"\");\n        jQuery.ajax({\n            type: \"POST\",\n            url: questionnaireApiBase + \"\/questionnaire\/submitQuestionnaire\",\n            data: JSON.stringify(formData),\n            dataType: \"json\",\n        }).done(function (data) {\n            console.log('sent data: ',data);\n            \/**MAKE SURE YOU DON\"T COMENT THIS OUT BELOW ONLY FOR TESTING **\/\n            if (notifyEmbeddedQuestionnaireComplete()) {\n                return;\n            }\n            window.location.href = \"\/fr\/questionnaire-complet\";\n        }).fail(function (data) {\n            console.log(\"Error from Api\", data);\n            jQuery(\"#loadingDiv\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            \/\/ Afficher la vraie raison renvoy\u00e9e par le serveur (ex. le contr\u00f4le de\n            \/\/ rendez-vous li\u00e9) au lieu du message g\u00e9n\u00e9rique trompeur \u00ab toutes les\n            \/\/ dates au format AAAA-MM-JJ \u00bb, qui s'affichait pour TOUTE r\u00e9ponse non-2xx (Trello 944).\n            var serverMessage = \"\";\n            try {\n                serverMessage =\n                    (data && data.responseJSON && data.responseJSON.message) ||\n                    (data && data.message) ||\n                    \"\";\n                if (!serverMessage && data && typeof data.responseText === \"string\" && data.responseText) {\n                    try { serverMessage = (JSON.parse(data.responseText) || {}).message || \"\"; }\n                    catch (parseErr) { serverMessage = \"\"; }\n                }\n            } catch (extractErr) {\n                serverMessage = \"\";\n            }\n            console.log(\"Error from Api message\", serverMessage || (data && data.message));\n            if (serverMessage) {\n                alert(\"Il y a eu un probl\u00e8me lors de la soumission de votre questionnaire : \" + serverMessage + \" Si ce probl\u00e8me persiste, veuillez contacter l'\u00e9quipe de support de Summit \u00e0 support@\" + window.location.hostname);\n            } else {\n                alert(\"Il y a eu un probl\u00e8me lors de la soumission de votre questionnaire. Veuillez vous assurer que tous les champs obligatoires sont remplis, puis r\u00e9essayer. Si ce probl\u00e8me persiste, veuillez contacter l'\u00e9quipe de support de Summit \u00e0 support@\" + window.location.hostname);\n            }\n\n        });\n\n\n    }\n\n    function customValidation() {\n        if (jQuery(\"#postalCode\").val().length !== 6) {\n            jQuery('.postal .error-message').remove();\n            jQuery('.postal').append('<div class=\"error-message\">Le code postal doit comporter 6 chiffres<\/div>');\n            jQuery('.postal .form-control').addClass(\"is-invalid\");\n            jQuery('.postal .form-control').removeClass(\"is-valid\");\n            return false;\n        } else if (jQuery(\"#postalCode\").val().length === 6) {\n            jQuery('.postal .error-message').remove();\n            jQuery('.postal .form-control').addClass(\"is-valid\");\n            jQuery('.postal .form-control').removeClass(\"is-invalid\");\n            return true;\n\n        }\n\n    }\n\n    function normalizeForMatch(str) {\n        return str.normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '').toUpperCase();\n    }\n\n    function autocomplete(inp, arr) {\n        \/*the autocomplete function takes two arguments,\n        the text field element and an array of possible autocompleted values:*\/\n        var currentFocus;\n        \/*execute a function when someone writes in the text field:*\/\n        inp.addEventListener(\"input\", function (e) {\n            var a, b, i, val = this.value;\n            \/*close any already open lists of autocompleted values*\/\n            closeAllLists();\n            if (!val) {\n                return false;\n            }\n            currentFocus = -1;\n            \/*create a DIV element that will contain the items (values):*\/\n            a = document.createElement(\"DIV\");\n            a.setAttribute(\"id\", this.id + \"autocomplete-list\");\n            a.setAttribute(\"class\", \"autocomplete-items\");\n            \/*append the DIV element as a child of the autocomplete container:*\/\n            this.parentNode.appendChild(a);\n            \/*for each item in the array...*\/\n            for (i = 0; i < arr.length; i++) {\n                \/*check if the item starts with the same letters as the text field value (accent-insensitive):*\/\n                if (arr[i].length >= val.length && normalizeForMatch(arr[i].substr(0, val.length)) === normalizeForMatch(val)) {\n                    \/*create a DIV element for each matching element:*\/\n                    b = document.createElement(\"DIV\");\n                    \/*make the matching letters bold:*\/\n                    b.innerHTML = \"<strong>\" + arr[i].substr(0, val.length) + \"<\/strong>\";\n                    b.innerHTML += arr[i].substr(val.length);\n                    \/*insert a input field that will hold the current array item's value:*\/\n                    b.innerHTML += \"<input type='hidden' value='\" + arr[i] + \"'>\";\n                    \/*execute a function when someone clicks on the item value (DIV element):*\/\n                    b.addEventListener(\"click\", function (e) {\n                        \/*insert the value for the autocomplete text field:*\/\n                        inp.value = this.getElementsByTagName(\"input\")[0].value;\n                        \/*close the list of autocompleted values,\n                        (or any other open lists of autocompleted values:*\/\n                        closeAllLists();\n                    });\n                    a.appendChild(b);\n                }\n            }\n        });\n        \/*execute a function presses a key on the keyboard:*\/\n        inp.addEventListener(\"keydown\", function (e) {\n            var x = document.getElementById(this.id + \"autocomplete-list\");\n            if (x) x = x.getElementsByTagName(\"div\");\n            if (e.keyCode == 40) {\n                \/*If the arrow DOWN key is pressed,\n                increase the currentFocus variable:*\/\n                currentFocus++;\n                \/*and and make the current item more visible:*\/\n                addActive(x);\n            } else if (e.keyCode == 38) { \/\/up\n                \/*If the arrow UP key is pressed,\n                decrease the currentFocus variable:*\/\n                currentFocus--;\n                \/*and and make the current item more visible:*\/\n                addActive(x);\n            } else if (e.keyCode == 13) {\n                \/*If the ENTER key is pressed, prevent the form from being submitted,*\/\n                e.preventDefault();\n                if (currentFocus > -1) {\n                    \/*and simulate a click on the \"active\" item:*\/\n                    if (x) x[currentFocus].click();\n                }\n            }\n        });\n\n        function addActive(x) {\n            \/*a function to classify an item as \"active\":*\/\n            if (!x) return false;\n            \/*start by removing the \"active\" class on all items:*\/\n            removeActive(x);\n            if (currentFocus >= x.length) currentFocus = 0;\n            if (currentFocus < 0) currentFocus = (x.length - 1);\n            \/*add class \"autocomplete-active\":*\/\n            x[currentFocus].classList.add(\"autocomplete-active\");\n        }\n\n        function removeActive(x) {\n            \/*a function to remove the \"active\" class from all autocomplete items:*\/\n            for (var i = 0; i < x.length; i++) {\n                x[i].classList.remove(\"autocomplete-active\");\n            }\n        }\n\n        function closeAllLists(elmnt) {\n            \/*close all autocomplete lists in the document,\n            except the one passed as an argument:*\/\n            var x = document.getElementsByClassName(\"autocomplete-items\");\n            for (var i = 0; i < x.length; i++) {\n                if (elmnt != x[i] && elmnt != inp) {\n                    x[i].parentNode.removeChild(x[i]);\n                }\n            }\n        }\n\n        \/*execute a function when someone clicks in the document:*\/\n        document.addEventListener(\"click\", function (e) {\n            closeAllLists(e.target);\n        });\n    }\n\n    function calculateAge(birthdate) {\n        const today = new Date();\n        const birthDate = new Date(birthdate);\n        let age = today.getFullYear() - birthDate.getFullYear();\n        const m = today.getMonth() - birthDate.getMonth();\n        if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\n            age--;\n        }\n        return age;\n    }\n \n    \/\/ getInvalidSections() n'inspecte que les s\u00e9lecteurs list\u00e9s ici. Une section\n    \/\/ absente de ce tableau n'est PAS valid\u00e9e, peu importe le nombre de champs\n    \/\/ marqu\u00e9s `required` \u2014 le bouton de soumission est type=\"button\", donc la\n    \/\/ validation HTML5 native ne s'ex\u00e9cute jamais. Les sections de consentement\n    \/\/ pour la perfusion et \u00ab qui remplit ce formulaire \u00bb en \u00e9taient absentes, ce\n    \/\/ qui rendait leurs indicateurs `required` purement d\u00e9coratifs et permettait\n    \/\/ \u00e0 un patient de soumettre sans aucun consentement.\n    const sections = [\n        { selector: '.main-info',       label: 'Information d\u00e9mographique' },\n        { selector: '.medical-section', label: 'Informations m\u00e9dicales' },\n        { selector: '.lifestyle-section', label: 'Informations sur le mode de vie' },\n        { selector: '.sleep-screening-section', label: 'D\u00e9pistage du sommeil' },\n        { selector: '.destination-section', label: 'Informations sur la destination' },\n        { selector: '.trip-section',    label: 'Information sur le voyage' },\n        { selector: '.emergency-section', label: 'Personne \u00e0 contacter en cas d\\'urgence' },\n        { selector: '.infusion-completed-by-section', label: 'Qui remplit ce formulaire' },\n        { selector: '.infusion-section', label: 'D\u00e9tails et consentement pour la perfusion' }\n    ];\n\n    \/\/ Valider les groupes de cases \u00e0 cocher comme une seule exigence\n    function validateCheckboxGroups() {\n        jQuery('.question.required:visible').each(function () {\n            const $group = jQuery(this);\n            const $boxes = $group.find('input[type=\"checkbox\"]:visible');\n            if ($boxes.length === 0) return; \/\/ Pas de cases \u00e0 cocher dans cette question\n\n            const anyChecked = $boxes.is(':checked');\n            \/\/ Utiliser la validation HTML5 en ne rendant obligatoire que la premi\u00e8re case si aucune n'est coch\u00e9e\n            $boxes.prop('required', false);\n            if (!anyChecked) {\n                $boxes.first().prop('required', true);\n                $group.addClass('has-checkbox-error');\n                if ($group.find('.error-message.group').length === 0) {\n                    const hasNoneChoice = $boxes.filter('[value=\"None\"]').length > 0;\n                    const message = hasNoneChoice\n                        ? \"Veuillez s\u00e9lectionner au moins une option ou cochez \u00ab Aucun \u00bb s'il y a lieu.\"\n                        : \"Veuillez s\u00e9lectionner au moins une option.\";\n                    $group.append('<div class=\"error-message group\">' + message + '<\/div>');\n                }\n            } else {\n                $group.removeClass('has-checkbox-error');\n                $group.find('.error-message.group').remove();\n            }\n        });\n    }\n\n    \/\/ Revalider lorsqu'une case change\n    jQuery(document).on('change', '.question.required input[type=\"checkbox\"]', function(){\n        validateCheckboxGroups();\n    });\n\n    function getInvalidSections() {\n        \/\/ Normaliser d'abord les exigences des groupes de cases \u00e0 cocher\n        validateCheckboxGroups();\n\n        let invalidSections = [];\n        for (let s of sections) {\n            let sectionIsInvalid = false;\n            console.log(`[DEBUG] Checking section: ${s.label} (${s.selector})`);\n\n            \/\/ V\u00e9rifier les champs requis classiques (textes, selects, radios)\n            jQuery(s.selector).find('.form-control[required]:visible, input[type=\"radio\"][required]:visible').each(function(){\n                if (!this.checkValidity()) {\n                    console.log(`[DEBUG] Invalid field found in ${s.label}:`, this.id || this.name, this.type);\n                    sectionIsInvalid = true;\n                    return false; \/\/ break\n                }\n            });\n            if (sectionIsInvalid) { \n                console.log(`[DEBUG] Section ${s.label} is invalid due to form controls`);\n                invalidSections.push(s.label); \n                continue; \n            }\n\n            \/\/ V\u00e9rifier chaque groupe de cases \u00e0 cocher requis\n            jQuery(s.selector).find('.question.required:visible').each(function(){\n                const $boxes = jQuery(this).find('input[type=\"checkbox\"]:visible');\n                if ($boxes.length > 0 && !$boxes.is(':checked')) {\n                    console.log(`[DEBUG] Invalid checkbox group found in ${s.label}:`, this);\n                    sectionIsInvalid = true;\n                    return false; \/\/ break\n                }\n            });\n\n            if (sectionIsInvalid) {\n                console.log(`[DEBUG] Section ${s.label} is invalid due to checkbox groups`);\n                invalidSections.push(s.label);\n            } else {\n                console.log(`[DEBUG] Section ${s.label} is valid`);\n            }\n        }\n        console.log(`[DEBUG] Invalid sections:`, invalidSections);\n        return invalidSections;\n    }\n\n\/\/ Barri\u00e8re de consentement (perfusion). Volontairement distincte de\n\/\/ getInvalidSections() :\n\/\/\n\/\/  * validateCheckboxGroups() traite un groupe de cases `.question.required`\n\/\/    comme \u00ab au moins une coch\u00e9e \u00bb, ce qui est la mauvaise r\u00e8gle pour des\n\/\/    attestations qui doivent CHACUNE \u00eatre affirm\u00e9es individuellement.\n\/\/  * #agreementCheckbox se trouve \u00e0 l'ext\u00e9rieur de tous les conteneurs de\n\/\/    section, donc aucun s\u00e9lecteur de section ne l'atteint.\n\/\/\n\/\/ Retourne une liste d'obstacles lisibles; une liste vide signifie que le\n\/\/ consentement est complet. C'est la derni\u00e8re barri\u00e8re avant dataSubmit(), et\n\/\/ elle doit rester bloquante \u2014 une perfusion soumise sans consentement cr\u00e9e une\n\/\/ r\u00e9servation sur laquelle la clinique ne peut pas l\u00e9galement agir.\nfunction getConsentBlockers(formType) {\n  if (formType !== \"infusion\") {\n    \/\/ Les autres types de formulaire exigent tout de m\u00eame la case des termes et\n    \/\/ conditions, qui n'\u00e9tait auparavant valid\u00e9e pour aucun type de formulaire.\n    return jQuery('#agreementCheckbox').is(':checked')\n      ? []\n      : ['Vous devez accepter les termes et conditions avant de soumettre.'];\n  }\n\n  const blockers = [];\n\n  if (!jQuery('input[name=\"infusionCompletedBy\"]:checked').length) {\n    blockers.push('Veuillez nous indiquer qui remplit ce formulaire.');\n  }\n\n  if (jQuery('input[name=\"infusionCompletedBy\"]:checked').val() === 'proxy') {\n    const attestations = jQuery('.infusion-proxy-attestation');\n    if (attestations.length !== attestations.filter(':checked').length) {\n      blockers.push(\n        'Veuillez confirmer chacun des \u00e9nonc\u00e9s concernant le fait de remplir ce formulaire au nom du patient.'\n      );\n    }\n  }\n\n  if (!jQuery('#infusionConsentAccepted').is(':checked')) {\n    blockers.push('Vous devez accepter le consentement pour la perfusion avant de soumettre.');\n  }\n\n  if (!(jQuery('#infusionConsentSignedByName').val() || '').trim()) {\n    blockers.push('Veuillez inscrire le nom complet de la personne qui donne le consentement.');\n  }\n\n  if (!jQuery('#agreementCheckbox').is(':checked')) {\n    blockers.push('Vous devez accepter les termes et conditions avant de soumettre.');\n  }\n\n  return blockers;\n}\n\n    jQuery(document).ready(function () {\n        jQuery('.sib_signup_form').remove()\n        var url = new URL(window.location.href);\n        var formType = \"\";\n        formType = url.searchParams.get(\"formType\");\n        var clientName = url.searchParams.get(\"clientName\");\n        \/\/ console.log(\"the client name is: \" + clientName);\n        var questionnaireId = url.searchParams.get(\"questionnaireId\");\n        \/\/ Ordered fallback bases (canonical AWS host, same-origin \/qapi proxy,\n        \/\/ Vercel app proxy). Attempt N uses base N so a patient whose network\n        \/\/ black-holes the primary host still initializes via a path that is\n        \/\/ reachable whenever this page itself loaded.\n        var questionnaireApiBases = resolvePublicApiBases(window.location.search);\n        function questionnaireApiBaseForAttempt(attempt) {\n            var index = Math.min(attempt - 1, questionnaireApiBases.length - 1);\n            return String(questionnaireApiBases[index] || \"\").replace(\/\\\/$\/, \"\");\n        }\n        function questionnaireApiBaseHost(base) {\n            try {\n                return new URL(base, window.location.href).host || \"unknown\";\n            } catch (_error) {\n                return \"unknown\";\n            }\n        }\n        \/\/ When initialization only succeeded through a fallback base, the\n        \/\/ reference-data loads that raced against it on the primary base very\n        \/\/ likely failed too \u2014 re-run them on the now-active base.\n        function refreshQuestionnaireReferenceDataAfterFallback(activeBase) {\n            try {\n                if (typeof window.loadQuestionnaireCountries === \"function\") {\n                    window.loadQuestionnaireCountries(activeBase);\n                }\n            } catch (_error) {\n                \/\/ Reference data must never block initialization.\n            }\n            try {\n                if (\n                    typeof window.loadStructuredAllergens === \"function\" &&\n                    jQuery(\"#structuredAllergensList\").children().length === 0\n                ) {\n                    window.loadStructuredAllergens(activeBase);\n                }\n            } catch (_error) {\n                \/\/ Reference data must never block initialization.\n            }\n        }\n        jQuery('#continueQuestionnaireButton').hide()\n        var questionnaireInitializationTimer = null;\n        var questionnaireInitializationMaxAttempts = Math.max(3, questionnaireApiBases.length);\n        var questionnaireInitializationRequestTimeoutMs = 10000;\n        var questionnaireInitializationRetryDelays = [0, 1000, 2500, 4000];\n        var nonResubmittableQuestionnaireIds = ['a07OJ00001sxLBqYAM', 'a07OJ00001sxLBpYAM'];\n        var blockedQuestionnaireIdsUpper = nonResubmittableQuestionnaireIds.map(function (id) {\n            return id.toUpperCase();\n        });\n\n        function trackQuestionnaireInitialization(status, failureReason) {\n            try {\n                if (typeof window.clarity !== \"function\") return;\n                window.clarity(\"set\", \"questionnaire_initialization_status\", status);\n                window.clarity(\n                    \"set\",\n                    \"questionnaire_initialization_failure_reason\",\n                    failureReason || \"none\"\n                );\n                window.clarity(\"event\", \"questionnaire_initialization_\" + status);\n            } catch (_error) {\n                \/\/ Le chargement du questionnaire ne doit jamais d\u00e9pendre des analyses.\n            }\n        }\n\n        function trackQuestionnaireInitializationAttempt(status, attempt) {\n            try {\n                if (typeof window.clarity !== \"function\") return;\n                window.clarity(\"set\", \"questionnaire_initialization_attempt_status\", status);\n                window.clarity(\"set\", \"questionnaire_initialization_attempt_number\", String(attempt));\n                window.clarity(\"event\", \"questionnaire_initialization_attempt_\" + status);\n            } catch (_error) {\n                \/\/ Le chargement du questionnaire ne doit jamais d\u00e9pendre des analyses.\n            }\n        }\n\n        function setQuestionnaireInitializationMessage(title, message, showRetry, isError) {\n            jQuery(\"#questionnaireInitialization\")\n                .removeClass(\"alert-info alert-danger\")\n                .addClass(isError ? \"alert-danger\" : \"alert-info\")\n                .show();\n            jQuery(\"#questionnaireInitializationTitle\").text(title);\n            jQuery(\"#questionnaireInitializationMessage\").text(message);\n            jQuery(\"#questionnaireInitializationSpinner\").toggle(!showRetry && !isError);\n            jQuery(\"#retryQuestionnaireButton\").toggle(showRetry);\n            jQuery(\"#questionnaireForm\").hide().attr(\"aria-busy\", \"true\");\n            jQuery(\"#continueQuestionnaireContainer\").hide();\n            jQuery(\"#confirmNoChangesDiv\").hide();\n        }\n\n        function finishQuestionnaireInitialization() {\n            jQuery(\"#questionnaireInitialization\").hide();\n            jQuery(\"#retryQuestionnaireButton\").hide();\n            jQuery(\"#questionnaireForm\").attr(\"aria-busy\", \"false\");\n            trackQuestionnaireInitialization(\"succeeded\");\n        }\n\n        function showQuestionnaireInitializationFailure(failureReason, request) {\n            var status = request && Number(request.status);\n            var title = \"Impossible de charger votre questionnaire\";\n            var message = \"Impossible de se connecter pour charger votre questionnaire. Ouvrez ce lien dans Safari, Chrome ou Edge, passez du Wi-Fi aux donn\u00e9es cellulaires (ou inversement) et d\u00e9sactivez tout VPN ou bloqueur de contenu avant de r\u00e9essayer.\";\n\n            if (failureReason === \"timeout\") {\n                title = \"La connexion a expir\u00e9\";\n                message = \"La connexion a expir\u00e9 avant le chargement de votre questionnaire. Ouvrez ce lien dans Safari, Chrome ou Edge, passez du Wi-Fi aux donn\u00e9es cellulaires (ou inversement) et d\u00e9sactivez tout VPN ou bloqueur de contenu avant de r\u00e9essayer. Si le probl\u00e8me persiste, communiquez avec Summit Sant\u00e9.\";\n            } else if (failureReason === \"patient_details\") {\n                title = \"Impossible de charger vos renseignements\";\n                message = \"La connexion a r\u00e9ussi, mais vos renseignements n'ont pas \u00e9t\u00e9 charg\u00e9s. R\u00e9essayez. Si le probl\u00e8me persiste, communiquez avec Summit Sant\u00e9.\";\n            } else if (status === 400 || status === 404 || status === 410) {\n                title = \"Impossible de charger ce lien de questionnaire\";\n                message = \"Utilisez le lien de questionnaire le plus r\u00e9cent que vous avez re\u00e7u ou communiquez avec Summit Sant\u00e9.\";\n                failureReason = \"link_unavailable\";\n            }\n\n            setQuestionnaireInitializationMessage(title, message, true, true);\n            trackQuestionnaireInitialization(\"failed\", failureReason || \"connection\");\n        }\n\n        function showIncompleteQuestionnaireLink() {\n            setQuestionnaireInitializationMessage(\n                \"Ce lien de questionnaire est incomplet\",\n                \"Ouvrez le lien complet re\u00e7u par courriel ou message texte, ou communiquez avec Summit Sant\u00e9.\",\n                false,\n                true\n            );\n            trackQuestionnaireInitialization(\"failed\", \"missing_id\");\n        }\n\n        function showBlockedQuestionnaire() {\n            jQuery(\"#continueQuestionnaireContainer\").show();\n            jQuery(\"#questionnaireForm\").hide();\n            jQuery(\"#continueQuestionnaireText\").text(\"Ce questionnaire est termin\u00e9 et ne peut pas \u00eatre soumis \u00e0 nouveau.\");\n            jQuery('#continueQuestionnaireButton').hide();\n            finishQuestionnaireInitialization();\n        }\n\n        function responseHasBlockedQuestionnaireId(data) {\n            if (!data || typeof data !== \"object\") return false;\n            return (data.Id && blockedQuestionnaireIdsUpper.indexOf(String(data.Id).toUpperCase()) !== -1) ||\n                (data.id && blockedQuestionnaireIdsUpper.indexOf(String(data.id).toUpperCase()) !== -1);\n        }\n\n        function handleQuestionnaireInitializationSuccess(data) {\n            if (!data || typeof data !== \"object\") {\n                return false;\n            }\n            if (responseHasBlockedQuestionnaireId(data)) {\n                showBlockedQuestionnaire();\n                return true;\n            }\n\n            var firstName = String(data.firstName || \"\").trim();\n            var lastName = String(data.lastName || \"\").trim();\n            if (!firstName || !lastName) {\n                return false;\n            }\n\n            jQuery(\"#firstName\").val(firstName);\n            jQuery(\"#lastName\").val(lastName);\n\n            if (data.datecompleted) {\n                if (notifyEmbeddedQuestionnaireComplete()) {\n                    return true;\n                }\n                finishQuestionnaireInitialization();\n                let formattedDate = data.datecompleted.substr(0, 10);\n                jQuery(\"#continueQuestionnaireContainer\").show();\n                jQuery(\"#questionnaireForm\").hide();\n                jQuery(\"#continueQuestionnaireText\").text(\n                    \"Il semble que ce questionnaire ait \u00e9t\u00e9 soumis le \" +\n                    formattedDate + \" par \" + data.email +\n                    \". Veuillez confirmer si vous souhaitez continuer et refaire le questionnaire.\"\n                );\n                jQuery('#continueQuestionnaireButton').show();\n                jQuery('#confirmNoChangesDiv').hide();\n            } else if (data.type == \"Booster\") {\n                jQuery(\"#questionnaireForm\").hide();\n                jQuery('#confirmNoChangesDiv').show();\n                finishQuestionnaireInitialization();\n            } else {\n                jQuery(\"#questionnaireForm\").show();\n                finishQuestionnaireInitialization();\n            }\n            return true;\n        }\n\n        function loadQuestionnaire(attempt) {\n            window.clearTimeout(questionnaireInitializationTimer);\n            setQuestionnaireInitializationMessage(\n                attempt > 1 ? \"Chargement toujours en cours\u2026\" : \"Chargement de votre questionnaire\u2026\",\n                attempt > 1\n                    ? \"La connexion prend plus de temps que pr\u00e9vu. Nous r\u00e9essayons automatiquement.\"\n                    : \"Veuillez patienter pendant le chargement s\u00e9curis\u00e9 de vos renseignements.\",\n                false,\n                false\n            );\n            trackQuestionnaireInitializationAttempt(\"started\", attempt);\n            var attemptBase = questionnaireApiBaseForAttempt(attempt);\n            var attemptBaseIndex = Math.min(attempt - 1, questionnaireApiBases.length - 1);\n            try {\n                if (typeof window.clarity === \"function\") {\n                    window.clarity(\"set\", \"questionnaire_api_base_attempted\", questionnaireApiBaseHost(attemptBase));\n                }\n            } catch (_error) {\n                \/\/ Questionnaire loading must never depend on analytics.\n            }\n\n            jQuery.ajax({\n                url: attemptBase + \"\/questionnaire\/\" + questionnaireId,\n                method: 'GET',\n                dataType: 'json',\n                timeout: questionnaireInitializationRequestTimeoutMs,\n                success: function (data) {\n                    console.log(\"returned the following info from questionnaire: \", data);\n                    if (handleQuestionnaireInitializationSuccess(data)) {\n                        \/\/ Every later API call (submit, countries, allergens,\n                        \/\/ referring professionals) sticks with the base that\n                        \/\/ actually worked for this patient.\n                        setActivePublicApiBase(attemptBase);\n                        try {\n                            if (typeof window.clarity === \"function\") {\n                                window.clarity(\"set\", \"questionnaire_api_base_active\", questionnaireApiBaseHost(attemptBase));\n                                if (attemptBaseIndex > 0) {\n                                    window.clarity(\"event\", \"questionnaire_initialization_fallback_base_used\");\n                                }\n                            }\n                        } catch (_error) {\n                            \/\/ Questionnaire loading must never depend on analytics.\n                        }\n                        if (attemptBaseIndex > 0) {\n                            refreshQuestionnaireReferenceDataAfterFallback(attemptBase);\n                        }\n                        trackQuestionnaireInitializationAttempt(\"succeeded\", attempt);\n                        return;\n                    }\n                    trackQuestionnaireInitializationAttempt(\"invalid_response\", attempt);\n                    handleQuestionnaireInitializationFailure(attempt, \"patient_details\", { status: 200 });\n                },\n                error: function (request, textStatus) {\n                    console.log(\"error fetching questionnaire\", request);\n                    var failureReason = textStatus === \"timeout\" ? \"timeout\" : \"connection\";\n                    trackQuestionnaireInitializationAttempt(\n                        failureReason === \"timeout\" ? \"timed_out\" : \"failed\",\n                        attempt\n                    );\n                    handleQuestionnaireInitializationFailure(attempt, failureReason, request);\n                }\n            });\n        }\n\n        function handleQuestionnaireInitializationFailure(attempt, failureReason, request) {\n            if (attempt < questionnaireInitializationMaxAttempts) {\n                var nextAttempt = attempt + 1;\n                var retryDelay = questionnaireInitializationRetryDelays[nextAttempt - 1];\n                setQuestionnaireInitializationMessage(\n                    \"Chargement toujours en cours\u2026\",\n                    \"La connexion prend plus de temps que pr\u00e9vu. Nous r\u00e9essayons automatiquement.\",\n                    false,\n                    false\n                );\n                questionnaireInitializationTimer = window.setTimeout(function () {\n                    loadQuestionnaire(nextAttempt);\n                }, retryDelay);\n                return;\n            }\n            showQuestionnaireInitializationFailure(failureReason, request);\n        }\n\n        function startQuestionnaireInitialization() {\n            trackQuestionnaireInitialization(\"started\");\n            if (!questionnaireId) {\n                showIncompleteQuestionnaireLink();\n                return;\n            }\n            if (blockedQuestionnaireIdsUpper.indexOf(questionnaireId.toUpperCase()) !== -1) {\n                showBlockedQuestionnaire();\n                return;\n            }\n            loadQuestionnaire(1);\n        }\n\n        jQuery(\"#retryQuestionnaireButton\").on(\"click\", function () {\n            startQuestionnaireInitialization();\n        });\n\n        \/\/ Trello #986: normalize the birthdate on Enter BEFORE bootstrap-datepicker\n        \/\/ gets the keydown. This handler is bound *before* .datepicker() below, so\n        \/\/ it runs first; stopImmediatePropagation then prevents the datepicker's own\n        \/\/ Enter handler from committing its view date (today) over a dash-less value\n        \/\/ like \"20010413\". normalizeBirthdateField is hoisted (function declaration).\n        jQuery('#birthdate').on('keydown', function (event) {\n            if (event.key === 'Enter' || event.keyCode === 13) {\n                normalizeBirthdateField();\n                event.preventDefault();\n                event.stopImmediatePropagation();\n            }\n        });\n\n        \/\/birthdate datepicker\n        jQuery('.birthdate-date-picker').datepicker({\n            format: 'yyyy-mm-dd',\n            todayHighlight: true,\n            autoclose: true,\n        }).on('change', function () {\n            console.log(\"birthdate change function\")\n            jQuery('.datepicker').hide();\n            if (!isValidDate(jQuery('#birthdate').val()) && jQuery('#birthdate').val() != \"\") {\n                console.log(\"date is not valid\");\n                \/\/jQuery('.birthdate .error-message').remove();\n                \/**\n                 jQuery('.birthdate').append(\n                 '<div class=\"error-message\">Date format must be formatted YYYY-MM-DD<\/div>');\n                 jQuery('.birthdate .form-control').addClass(\"is-invalid\");\n                 jQuery('.birthdate .form-control').removeClass(\"is-valid\");\n                 console.log(\"marked invalid\");\n                 **\/\n            } else {\n                jQuery('.birthdate .error-message').remove();\n                jQuery('.birthdate .form-control').addClass(\"is-valid\");\n                jQuery('.birthdate .form-control').removeClass(\"is-invalid\");\n            }\n        });\n\n        \/\/ Trello #986: with data-provide=\"datepicker\" removed (it caused the\n        \/\/ duplicate-init Enter bug), the calendar addon icon is no longer wired\n        \/\/ by bootstrap-datepicker's component mode, so wire it explicitly to\n        \/\/ open the single datepicker instance on the input.\n        jQuery('.birthdate .input-group-addon, .birthdate .start_date_calendar').on('click', function () {\n            jQuery('#birthdate').datepicker('show');\n        });\n\n        jQuery('div[name=\"sixth\"]').css('pointer-events', 'none');\n\n        \/\/ Bug #942: normalize a loosely-typed birthdate (\"19900115\",\n        \/\/ \"1990\/01\/15\", \"15-01-1990\", ...) into canonical yyyy-mm-dd BEFORE the\n        \/\/ datepicker tries to parse it. Without this, an improperly formatted\n        \/\/ value made the bootstrap-datepicker silently fall back to today's\n        \/\/ date on Enter. Unparseable input is left untouched so the existing\n        \/\/ submit-time validation rejects it (it must NEVER become \"today\").\n        function normalizeBirthdateField() {\n            var el = jQuery('#birthdate');\n            var raw = el.val();\n            if (!raw) return;\n            var normalizer =\n                (window.SummitQuestionnaireV2 && window.SummitQuestionnaireV2.normalizeBirthdate) ||\n                (typeof normalizeBirthdate === \"function\" ? normalizeBirthdate : null);\n            if (!normalizer) return;\n            var canonical = normalizer(raw);\n            if (canonical && canonical !== raw) {\n                try {\n                    el.datepicker('setDate', canonical);\n                } catch (_e) {}\n                if (el.val() !== canonical) {\n                    el.val(canonical);\n                }\n                el.trigger('change');\n            }\n        }\n\n        \/\/ Enter is handled by the pre-init keydown binding above (Trello #986);\n        \/\/ also normalize on blur (tab-out \/ click-away).\n        jQuery('#birthdate').on('blur', function () {\n            normalizeBirthdateField();\n        });\n\n        jQuery('#birthdate').on('change', function () {\n            const birthdateValue = jQuery(this).val();\n            const sleepScreeningVisible = jQuery('.sleep-screening-section').is(':visible');\n            if (birthdateValue && sleepScreeningVisible) {\n                const age = calculateAge(birthdateValue);\n                if (age > 50) {\n                    onAnswerChose('sixth', 5, 1); \n                } else {\n                    onAnswerChose('sixth', 5, 0); \n                }\n            }\n        });\n\n        \/\/\/departure date picker\n        jQuery('.depart-date-picker').datepicker({\n            format: 'yyyy-mm-dd',\n            todayHighlight: true,\n            autoclose: true,\n        }).on('change', function () {\n            console.log(\"departure change function\")\n            jQuery('.datepicker').hide();\n            if (!isValidDate(jQuery('#departureDate').val()) && jQuery('#departureDate').val() != \"\") {\n                console.log(\"date is not valid\");\n                \/\/jQuery('.birthdate .error-message').remove();\n                \/**\n                 jQuery('.departureDate').append(\n                 '<div class=\"error-message\">Date format must be YYYY-MM-DD<\/div>');\n                 jQuery('.departureDate .form-control').addClass(\"is-invalid\");\n                 jQuery('.departureDate .form-control').removeClass(\"is-valid\");\n                 console.log(\"marked invalid\");\n                 **\/\n            } else {\n                jQuery('.departureDate .error-message').remove();\n                jQuery('.departureDate .form-control').addClass(\"is-valid\");\n                jQuery('.departureDate .form-control').removeClass(\"is-invalid\");\n            }\n\n        });\n\n        \/\/sisnett testing this\n        function isValidDate(dateString) {\n            var regEx = \/^\\d{4}-\\d{2}-\\d{2}$\/;\n            if (!dateString.match(regEx)) return false; \/\/ Invalid format\n            var d = new Date(dateString);\n            var dNum = d.getTime();\n            if (!dNum && dNum !== 0) return false; \/\/ NaN value, Invalid date\n            return d.toISOString().slice(0, 10) === dateString;\n        }\n\n        function isValidBirthdate(dateString) {\n            if (!isValidDate(dateString)) return false;\n            var d = new Date(dateString);\n            var today = new Date();\n            var year = d.getFullYear();\n            var currentYear = today.getFullYear();\n            var minYear = currentYear - 150; \/\/ Maximum age of 150 years\n            \n            \/\/ Check if date is in the future\n            if (d > today) return false;\n            \n            \/\/ Check if year is reasonable (not before 1900 and not more than 150 years ago)\n            if (year < 1900 || year < minYear) return false;\n            \n            return true;\n        }\n\n        jQuery(\"#birthdate\").focus(function () {\n            console.log('in birthdate');\n            jQuery('.birthdate .error-message').remove();\n        }).blur(function () {\n            console.log(\"date picker is\", jQuery('#birthdate').val())\n            var birthdateValue = jQuery('#birthdate').val();\n            if (birthdateValue != \"\") {\n                if (!isValidDate(birthdateValue)) {\n                    console.log(\"date is not valid\");\n                    jQuery('.birthdate .error-message').remove();\n                    jQuery('.birthdate').append(\n                        '<div class=\"error-message\">Le format de date doit \u00eatre AAAA-MM-JJ<\/div>');\n                    jQuery('.birthdate .form-control').addClass(\"is-invalid\");\n                    jQuery('.birthdate .form-control').removeClass(\"is-valid\");\n                    console.log(\"marked invalid\");\n                } else if (!isValidBirthdate(birthdateValue)) {\n                    console.log(\"date is not a valid birthdate\");\n                    jQuery('.birthdate .error-message').remove();\n                    var birthdateYear = new Date(birthdateValue).getFullYear();\n                    var currentYear = new Date().getFullYear();\n                    var errorMsg = \"La date de naissance semble invalide. \";\n                    if (birthdateYear < 1900) {\n                        errorMsg = \"L'ann\u00e9e de naissance \" + birthdateYear + \" semble incorrecte. Veuillez v\u00e9rifier votre date de naissance.\";\n                    } else if (birthdateYear > currentYear) {\n                        errorMsg = \"La date de naissance ne peut pas \u00eatre dans le futur. Veuillez v\u00e9rifier votre date de naissance.\";\n                    } else {\n                        errorMsg = \"La date de naissance semble invalide. Veuillez v\u00e9rifier que l'ann\u00e9e est correcte (devrait \u00eatre entre 1900 et \" + currentYear + \").\";\n                    }\n                    jQuery('.birthdate').append('<div class=\"error-message\">' + errorMsg + '<\/div>');\n                    jQuery('.birthdate .form-control').addClass(\"is-invalid\");\n                    jQuery('.birthdate .form-control').removeClass(\"is-valid\");\n                    console.log(\"marked invalid\");\n                } else {\n                    jQuery('.birthdate .error-message').remove();\n                    jQuery('.birthdate .form-control').addClass(\"is-valid\");\n                    jQuery('.birthdate .form-control').removeClass(\"is-invalid\");\n                }\n            }\n            console.log(\"focus out detected, hiding\");\n            \/\/ jQuery('.datepicker').datepicker('update');\n            \/\/jQuery('.datepicker').hide();\n        });\n        \n        \/\/newly added for departure date\n        jQuery(\"#departureDate\").focus(function () {\n            console.log('in departure date');\n            jQuery('.departureDate .error-message').remove();\n        }).blur(function () {\n            console.log(\"departure date picker is\", jQuery('#departureDate').val())\n            if (!isValidDate(jQuery('#departureDate').val()) && jQuery('#departureDate').val() != \"\") {\n                console.log(\"date is not valid\");\n                \/\/jQuery('.birthdate .error-message').remove();\n                jQuery('.departureDate').append(\n                    '<div class=\"error-message\">Date format must be YYYY-MM-DD<\/div>');\n                jQuery('.departureDate .form-control').addClass(\"is-invalid\");\n                jQuery('.departureDate .form-control').removeClass(\"is-valid\");\n                console.log(\"marked invalid\");\n            } else {\n                jQuery('.departureDate .error-message').remove();\n                jQuery('.departureDate .form-control').addClass(\"is-valid\");\n                jQuery('.departureDate .form-control').removeClass(\"is-invalid\");\n            }\n            console.log(\"focus out detected, hiding\");\n            \/\/ jQuery('.datepicker').datepicker('update');\n            \/\/jQuery('.datepicker').hide();\n        });\n        \/\/end of sisnett\n\n        jQuery.fn.datepicker.defaults.format = \"yyyy-mm-dd\";\n        startQuestionnaireInitialization();\n\n        \/\/do the work for the state and provinces\n        jQuery('#country USA:selected').hide();\n\n        jQuery('select[name=\"country\"]').change(function () {\n\n            if (jQuery(this).val() != \"Canada\") {\n                \/\/hide show divs\n                jQuery('#provinceDiv').hide();\n                jQuery('#stateDiv').show();\n                jQuery('#postalCodeDiv').hide();\n                jQuery('#zipCodeDiv').show();\n                \/\/set required .removeAttr('required'\n                jQuery('#province').removeAttr('required');\n                jQuery('#postalCode').removeAttr('required');\n                \/\/ alert(\"call the do something function on option USA\");\n            }\n        })\n\n        jQuery('#stateDiv').click(function () {\n            jQuery(\"#continueQuestionnaireContainer\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            jQuery(\"#confirmNoChangesDiv\").hide();\n        });\n        \/\/end of the state and province stuff\n\n        jQuery('.continueQuestionnaireButton').click(function () {\n            jQuery(\"#continueQuestionnaireContainer\").hide();\n            jQuery(\"#questionnaireForm\").show();\n            jQuery(\"#confirmNoChangesDiv\").hide();\n        });\n\n        jQuery('#confirmNoChangesButton').click(function () {\n            if (!jQuery(\"#confirmNoChangeCheckbox\").is(':checked')) {\n                alert(\"Vous devez cocher la case pour confirmer\");\n                return\n            }\n            jQuery(\"#confirmNoChangesDiv\").hide();\n            jQuery(\"#loadingDiv\").show();\n            var url = new URL(window.location.href);\n            var questionnaireId = url.searchParams.get(\"questionnaireId\");\n            let formData = {\n                \"questionnaireId\": questionnaireId\n            }\n            console.log(\"confirming no changes\", formData);\n            jQuery.ajax({\n                type: \"POST\",\n                url: resolvePublicApiBase(window.location.search).replace(\/\\\/$\/, \"\") + \"\/questionnaire\/submitNoChangesQuestionnaire\",\n                data: JSON.stringify(formData),\n                dataType: \"json\",\n            }).done(function (data) {\n                console.log(data);\n                \/\/ console.log(\"success\");\n                if (notifyEmbeddedQuestionnaireComplete()) {\n                    return;\n                }\n                window.location.href = \"\/fr\/questionnaire-complet\";\n            }).fail(function (data) {\n                console.log(\"Error from Api\", data);\n            });\n        });\n        var countrySearch = document.getElementById('countrySearch') \/\/jQuery('#countrySearch').val();\n        function loadQuestionnaireCountries(apiBaseOverride) {\n            \/\/ Idempotent: a successful load binds autocomplete once; the\n            \/\/ post-fallback refresh only re-fetches after a failed first load.\n            if (countryArray.length > 0) {\n                return;\n            }\n            var countriesApiBase = (typeof apiBaseOverride === \"string\" && apiBaseOverride)\n                ? apiBaseOverride.replace(\/\\\/$\/, \"\")\n                : resolvePublicApiBase(window.location.search).replace(\/\\\/$\/, \"\");\n            jQuery.ajax({\n                url: countriesApiBase + '\/questionnaire\/countries',\n                method: 'GET',\n                dataType: 'json',\n                success: function (data) {\n                    if (countryArray.length > 0) {\n                        return;\n                    }\n                    for (var i = 0; i < data.countries.length; i++) {\n                        countryArray[i] = data.countries[i][\"CountryNameFR\"];\n                        countryIds[i] = data.countries[i][\"Id\"];\n                    }\n                    \/\/ console.log(countryArray);\n                    autocomplete(countrySearch, countryArray);\n                }\n            });\n        }\n        window.loadQuestionnaireCountries = loadQuestionnaireCountries;\n        loadQuestionnaireCountries();\n        \/**Client specific section for different requirements **\/\n        if (clientName === \"paladin\") {\n            console.log(\"the client is paladin, show the approval checkbox\");\n            jQuery(\"#paladinBullet\").show();\n            jQuery(\"#paladinCheckbox\").prop('required', true);\n\n        }\n\n        function disableItemsExceptSLeep() {\n            \/\/ Setup initial hide and show\n            jQuery(\"#occupation\").parent(\"div\").hide();\n            jQuery(\"#occupation\").prop('required', false);\n\n            \/\/ Hide lifestyle-section\n            jQuery('.lifestyle-section').hide().find('input, select, textarea').prop('required', false);\n            jQuery('.lifestyle-section').next('hr').hide();\n\n            \/\/ Hide sleep-screening-section\n            jQuery('.sleep-screening-section').hide().find('input, select, textarea').prop('required', false);\n            jQuery('.sleep-screening-section').next('hr').hide();\n\n            \/\/ Hide sleep-screening-section\n            jQuery('.only-sleep-question').hide().find('input, select, textarea').prop('required', false);\n            jQuery('.only-sleep-question').next('hr').hide();\n\n\n            jQuery('.sleep-section-terms').hide();\n\n            jQuery('.referrer-section').hide();\n            jQuery('.referrer-section').next('hr').hide();\n        }\n\n        \/\/Validation Functions\n        if (formType === \"travel\") {\n            jQuery(\".pharmacy-section\").show();\n            jQuery(\"#departureDate\").prop('required', true);\n            jQuery(\"#countrySearch\").prop('required', true);\n            jQuery(\"#citiesVisited\").prop('required', true);\n            jQuery(\"#days\").prop('required', true);\n            jQuery('.question.trip-info').addClass('required');\n            jQuery(\".travel-question\").show();\n            jQuery(\".tb-question\").hide();\n            jQuery(\".tb-question\").prop('required', false);\n\n            disableItemsExceptSLeep();\n\n        } else if (formType === \"COVID\") {\n            jQuery(\"#departureDate\").prop('required', false);\n            jQuery(\"#countrySearch\").prop('required', false);\n            jQuery(\"#citiesVisited\").prop('required', false);\n            jQuery(\"#days\").prop('required', false);\n            jQuery(\"#medications\").prop('required', false);\n            jQuery(\"#chronicIllness\").prop('required', false);\n            jQuery('.question.trip-info.required input[type=checkbox]').prop('required', false);\n            jQuery(\".medical-section .question.required .form-check input[type=checkbox]\").prop('required',\n                false);\n            jQuery(\".medical-section .question.required .form-check input[type=radio]\").prop('required',\n                false);\n            jQuery(\".medical-section .question.required\").removeClass(\"required\");\n            jQuery(\".tb-question\").prop('required', false);\n            \/\/hide the sections\n            jQuery(\".destination-section\").hide();\n            jQuery(\".trip-section\").hide();\n            jQuery(\".medical-section\").hide();\n            jQuery(\"#covidBullet\").show();\n\n            disableItemsExceptSLeep();\n\n        } else if (formType === \"TB\") {\n            jQuery(\"#departureDate\").prop('required', false);\n            jQuery(\"#countrySearch\").prop('required', false);\n            jQuery(\"#citiesVisited\").prop('required', false);\n            jQuery(\"#days\").prop('required', false);\n            jQuery(\"#chronicIllness\").prop('required', false);\n            jQuery('.question.trip-info.required input[type=checkbox]').prop('required', false);\n            jQuery(\".medical-section .question.required .form-check input[type=checkbox]\").prop('required',\n                false);\n            jQuery(\".medical-section .question.required .form-check input[type=radio]\").prop('required',\n                false);\n            jQuery(\".medical-section .question.required\").removeClass(\"required\");\n            jQuery(\"#medications\").prop('required', true);\n            jQuery(\"#reasonForTBTest\").prop('required', true);\n            jQuery(\"#previousPositiveTBTest\").prop('required', true);\n\n            \/\/hide the sections\n            jQuery(\".destination-section\").hide();\n            jQuery(\".trip-section\").hide();\n            jQuery(\"#covidBullet\").hide();\n            jQuery(\".travel-question\").hide();\n            jQuery(\".tb-question\").show();\n\n            disableItemsExceptSLeep();\n\n        } else if (formType == \"sleep\") {\n            jQuery(document).ready(function () {\n\n                \/\/ Modify Terms\n                jQuery('.not-sleep-section-terms').hide();\n                jQuery('#agreementCheckbox').next('label').text('J\\'accepte les termes et conditions ci-dessus');\n\n                \/\/ Neck circumference\n                jQuery(\"#neck-circumference\").prop(\"required\", true);\n\n                \/\/ Tobacco Section: Show \"Are you still smoking?\" only if \"Have you ever smoked?\" is \"Yes\"\n                jQuery('.smoke-ever').on('change', function () {\n                    const stillSmokingInputs = jQuery('input[name=\"stillSmoking\"]');\n                    if (jQuery(this).val() === 'yes') {\n                        jQuery('.still-smoking-question').show();\n                        stillSmokingInputs.prop('required', true);\n                    } else {\n                        jQuery('.still-smoking-question').hide();\n                        stillSmokingInputs.prop('required', false).prop('checked', false);\n                        jQuery('.tobacco-details').hide().find('input').prop('required', false);\n                    }\n                });\n\n                \/\/ Show tobacco details if either question is answered \"Yes\"\n                jQuery('.smoke-ever, .smoke-still').on('change', function () {\n                    const everSmokeYes = jQuery('input[name=\"everSmoke\"]:checked').val() === 'yes';\n                    const stillSmokeYes = jQuery('input[name=\"stillSmoking\"]:checked').val() === 'yes';\n\n                    if (everSmokeYes || stillSmokeYes) {\n                        jQuery('.tobacco-details').show().find('input').prop('required', true);\n                    } else {\n                        jQuery('.tobacco-details').hide().find('input').prop('required', false);\n                    }\n                });\n\n                \/\/ Alcohol Section\n                jQuery('.alcohol-answer').on('change', function () {\n                    if (jQuery(this).val() === 'yes') {\n                        jQuery('.alcohol-details').show().find('input').prop('required', true);\n                        jQuery('.question.sleep-question').addClass('required');\n                    } else {\n                        jQuery('.alcohol-details').hide().find('input').prop('required', false);\n                        jQuery('.question.sleep-question').removeClass('required');\n                    }\n                });\n\n                \/\/ Drugs Section\n                jQuery('.drugs-answer').on('change', function () {\n                    if (jQuery(this).val() === 'yes') {\n                        jQuery('.drugs-details').show().find('input').prop('required', true);\n                    } else {\n                        jQuery('.drugs-details').hide().find('input').prop('required', false);\n                    }\n                });\n            });\n\n\n            jQuery(\"#healthCardNumber\").prop('required', true);\n            jQuery(\"#healthCardNumber\").prev(\"label\").append('<span class=\"astrisc\">*<\/span>');\n            jQuery(\"#healthCardNumber\").after('<div class=\"invalid-feedback\">Le num\u00e9ro de carte de sant\u00e9 est un champ obligatoire<\/div>');\n\n            jQuery(\"#occupation\").parent(\"div\").show();\n            jQuery(\"#occupation\").prop('required', true);\n            jQuery(\"#occupation\").prev(\"label\").append('<span class=\"astrisc\">*<\/span>');\n            jQuery(\"#occupation\").after('<div class=\"invalid-feedback\">La profession est un champ obligatoire<\/div>');\n\n            jQuery('.medical-section .question, .medical-section .question-group').not('.sleep-question').removeClass('required').hide().find('input, select, textarea').prop('required', false);\n            \/\/jQuery('.medical-section > div').not('.sleep-question').removeClass('required').hide().find('input, select, textarea').prop('required', false);\n\n            \/\/destination-section\n            jQuery('.destination-section').hide().find('input, select, textarea').prop('required', false);\n            jQuery('.destination-section').next('hr').hide();\n\n            \/\/trip-section\n            jQuery('.trip-section').hide().find('input, select, textarea').prop('required', false);\n            jQuery('.trip-section').next('hr').hide();\n\n            jQuery('.referrer-section').show();\n            jQuery('.referrer-section').next('hr').show();\n\n            \/\/sleep section \n            jQuery('.sleep-screening-section').show();\n            jQuery('.sleep-screening-section')\n                .find('input, select, textarea')\n                .prop('required', true);\n\n            jQuery('.only-sleep-question').show();\n            jQuery('.only-sleep-question')\n                .find('input, select, textarea')\n                .not('#newsletterSubscription, #healthCardExpirationDate')\n                .prop('required', true);\n            jQuery('#newsletterSubscription').prop('required', false);\n            jQuery('#healthCardExpirationDate').prop('required', false);\n\n            \/\/adding information from Francois email\n             jQuery('.emergency-section').hide();\n             jQuery(\"#emergencyContactName\").prop('required', false);\n             jQuery(\"#emergencyContactNumber\").prop('required', false);\n            \/\/end of information from Francois email\n\n        } else if (formType === \"infusion\") {\n            \/\/ Perfusion : conserver le questionnaire m\u00e9dical, masquer les\n            \/\/ questions voyage\/TB et afficher la section de consentement pour\n            \/\/ la perfusion (confirmations obligatoires). Doit rester AVANT le\n            \/\/ `else` final \u2014 un `else if` ne peut pas suivre un `else` final.\n            jQuery(\"#departureDate\").prop('required', false);\n            jQuery(\"#countrySearch\").prop('required', false);\n            jQuery(\"#citiesVisited\").prop('required', false);\n            jQuery(\"#days\").prop('required', false);\n            jQuery('.question.trip-info.required input[type=checkbox]').prop('required', false);\n            jQuery(\".destination-section\").hide();\n            jQuery(\".trip-section\").hide();\n            jQuery(\".travel-question\").hide();\n            jQuery(\".travel-question\").prop('required', false);\n            jQuery(\".tb-question\").hide();\n            jQuery(\".tb-question\").prop('required', false);\n            jQuery(\"#covidBullet\").hide();\n            \/\/ Les engagements propres au voyage (recommandations de vaccins,\n            \/\/ documents de voyage, 15 minutes apr\u00e8s la vaccination, r\u00e9frig\u00e9ration\n            \/\/ des vaccins, frais de consultation\/vaccination) ne s'appliquent pas\n            \/\/ aux perfusions.\n            jQuery(\".travel-only-term\").hide();\n\n            jQuery(\".infusion-section\").show();\n            jQuery(\"#infusionConsentAccepted\").prop('required', true);\n            jQuery('input[name=\"infusionIsIron\"]').prop('required', true);\n            syncInfusionEligibility();\n\n            \/\/ \u00ab Qui remplit ce formulaire \u00bb \u2014 le parcours du repr\u00e9sentant.\n            \/\/ Affich\u00e9 au-dessus des questions de sant\u00e9 afin qu'un proche aidant\n            \/\/ sache que chaque r\u00e9ponse ci-dessous porte sur le patient avant de\n            \/\/ commencer.\n            jQuery(\".infusion-completed-by-section\").show();\n            jQuery('input[name=\"infusionCompletedBy\"]').prop('required', true);\n            jQuery(\"#infusionConsentSignedByName\").prop('required', true);\n            \/\/ L'ancien champ libre \u00ab Parent ou tuteur l\u00e9gal \u00bb pose la m\u00eame\n            \/\/ question sans aucune structure. Le vider en plus de le masquer\n            \/\/ pour qu'une valeur p\u00e9rim\u00e9e ne puisse pas atteindre les donn\u00e9es\n            \/\/ soumises.\n            jQuery(\".guardian-name-field\").hide();\n            jQuery(\"#guardianName\").val('');\n            syncInfusionProxyVisibility();\n\n            disableItemsExceptSLeep();\n        } else {\n            jQuery(\"#departureDate\").prop('required', false);\n            jQuery(\"#countrySearch\").prop('required', false);\n            jQuery(\"#citiesVisited\").prop('required', false);\n            jQuery(\"#days\").prop('required', false);\n            jQuery('.question.trip-info.required input[type=checkbox]').prop('required', false);\n            \/\/hide the sections\n            jQuery(\".destination-section\").hide();\n            jQuery(\".trip-section\").hide();\n            jQuery(\".tb-question\").hide();\n\n            disableItemsExceptSLeep();\n        }\n\n        \/\/ Iron-infusion eligibility gate (see English form for full notes). Iron\n        \/\/ infusions exclude pregnant \/ immunocompromised \/ 75+ (age derived from\n        \/\/ the birthdate field); all other infusions allow everyone.\n        function getInfusionAgeFromBirthdate() {\n            var raw = jQuery('#birthdate').val();\n            if (!raw) return null;\n            var dob = new Date(raw);\n            if (isNaN(dob.getTime())) return null;\n            var now = new Date();\n            var age = now.getFullYear() - dob.getFullYear();\n            var monthDelta = now.getMonth() - dob.getMonth();\n            if (monthDelta < 0 || (monthDelta === 0 && now.getDate() < dob.getDate())) age--;\n            return age;\n        }\n        function syncInfusionEligibility() {\n            if (formType !== \"infusion\") return;\n            var isIron = jQuery('input[name=\"infusionIsIron\"]:checked').val() === \"yes\";\n            jQuery('#infusionIronEligibility').toggle(isIron);\n            jQuery('input[name=\"infusionPregnant\"], input[name=\"infusionImmuno\"]').prop('required', isIron);\n            if (!isIron) {\n                jQuery('#infusionIronBlockAlert').hide();\n                jQuery('#submitBtnId').prop('disabled', false);\n                return;\n            }\n            var pregnant = jQuery('input[name=\"infusionPregnant\"]:checked').val() === \"yes\";\n            var immuno = jQuery('input[name=\"infusionImmuno\"]:checked').val() === \"yes\";\n            var age = getInfusionAgeFromBirthdate();\n            \/\/ Iron infusions are restricted to ages 18-74. Block under-18 and 75+.\n            var elderly = age != null && age >= 75;\n            var tooYoung = age != null && age < 18;\n            var blocked = pregnant || immuno || elderly || tooYoung;\n            jQuery('#infusionIronBlockAlert').toggle(blocked);\n            jQuery('#submitBtnId').prop('disabled', blocked);\n        }\n        jQuery('input[name=\"infusionIsIron\"], input[name=\"infusionPregnant\"], input[name=\"infusionImmuno\"]').on('change', syncInfusionEligibility);\n        jQuery('#birthdate').on('change blur', syncInfusionEligibility);\n\n        \/\/ Renseignements sur le repr\u00e9sentant. Affich\u00e9s uniquement lorsque le\n        \/\/ formulaire est rempli au nom du patient. Vider les champs au retour\n        \/\/ vers \u00ab moi-m\u00eame \u00bb n'est pas qu'une question de propret\u00e9 : un nom de\n        \/\/ repr\u00e9sentant laiss\u00e9 dans un champ masqu\u00e9 serait conserv\u00e9 comme \u00e9tant\n        \/\/ la personne ayant consenti sur un dossier auto-consenti.\n        function syncInfusionProxyVisibility() {\n            if (formType !== \"infusion\") return;\n            var isProxy = jQuery('input[name=\"infusionCompletedBy\"]:checked').val() === \"proxy\";\n            jQuery('#infusionProxyDetails').toggle(isProxy);\n            jQuery('#infusionProxyName, #infusionProxyRelationship, #infusionProxyPhone')\n                .prop('required', isProxy);\n            if (!isProxy) {\n                jQuery('#infusionProxyName, #infusionProxyRelationship, #infusionProxyPhone').val('');\n                jQuery('.infusion-proxy-attestation').prop('checked', false);\n            }\n        }\n        jQuery('input[name=\"infusionCompletedBy\"]').on('change', syncInfusionProxyVisibility);\n\n        jQuery('#submitBtnId').click(function () {\n            if (jQuery(\"table tr\").length > 0 || formType !== \"travel\") {\n                jQuery(\"#countrySearch\").prop('required', false);\n                jQuery(\"#citiesVisited\").prop('required', false);\n                jQuery(\"#days\").prop('required', false);\n            } else {\n                jQuery(\"#countrySearch\").prop('required', true);\n                jQuery(\"#citiesVisited\").prop('required', true);\n                jQuery(\"#days\").prop('required', true);\n            }\n        });\n        \/\/end validation functions\n\n        \/\/Hide other field on selection\n        jQuery('input#Other').each(function () {\n\n            jQuery('input#Other').on('click', function () {\n                if (jQuery(this).prop('checked')) {\n                    jQuery(this).parents('.question').find('.other-section').css('display',\n                        'block');\n                } else {\n                    jQuery(this).parents('.question').find('.other-section').css('display',\n                        'none');\n                }\n            });\n        });\n        jQuery('input#radioOther').each(function () {\n\n            jQuery('input#radioOther').on('click', function () {\n                if (jQuery(this).prop('checked') && jQuery(this).val() == \"true\") {\n                    jQuery(this).parents('.question').find('.other-section').css('display',\n                        'block');\n                } else if (jQuery(this).prop('checked') && jQuery(this).val() == \"false\") {\n                    jQuery(this).parents('.question').find('.other-section').css('display',\n                        'none');\n                }\n            });\n        });\n        function syncImmunoSuppressedDetailsVisibility() {\n            const shouldShowImmunoDetails = jQuery('input[name=\"immunoSuppressed\"][value=\"Hereditary Conditions\"]').is(':checked') ||\n                jQuery('input[name=\"immunoSuppressed\"][value=\"Other\"]').is(':checked');\n            jQuery('#immunoSuppressedOther').closest('.other-section').css('display',\n                shouldShowImmunoDetails ? 'block' : 'none');\n            if (!shouldShowImmunoDetails) {\n                \/\/ Clear stale input so a hidden field can't leak into the payload.\n                jQuery('#immunoSuppressedOther').val('');\n            }\n        }\n        jQuery('input[name=\"immunoSuppressed\"]').on('change', function () {\n            syncImmunoSuppressedDetailsVisibility();\n        });\n        syncImmunoSuppressedDetailsVisibility();\n        \/\/ Synchronise le champ h\u00e9rit\u00e9 #allergies avec la liste structur\u00e9e et\n        \/\/ le champ libre : \u00ab Yes \u00bb d\u00e8s qu'une case est coch\u00e9e ou qu'un texte\n        \/\/ est saisi, sinon \u00ab No Known Allergies \u00bb.\n        function syncLegacyAllergiesField() {\n            var anyChecked = jQuery(\".structured-allergen-checkbox:checked\").length > 0;\n            var freeText = (jQuery(\"#allergiesOther\").val() || \"\").trim();\n            \/\/ Si une allergie est saisie apr\u00e8s avoir coch\u00e9 \u00ab Aucune allergie\n            \/\/ connue \u00bb, on rel\u00e2che l'option pour rester coh\u00e9rent.\n            if ((anyChecked || freeText.length > 0) && jQuery(\"#noKnownAllergies\").is(\":checked\")) {\n                jQuery(\"#noKnownAllergies\").prop(\"checked\", false);\n                jQuery(\".structured-allergen-checkbox\").prop(\"disabled\", false);\n                jQuery(\"#allergiesOther\").prop(\"disabled\", false);\n            }\n            var nextValue = anyChecked || freeText.length > 0 ? \"Yes\" : \"No Known Allergies\";\n            jQuery(\"#allergies\").val(nextValue);\n        }\n        \/\/ Option \u00ab Aucune allergie connue \u00bb : vide + d\u00e9sactive la liste et le\n        \/\/ champ libre, puis resynchronise le champ h\u00e9rit\u00e9 masqu\u00e9.\n        jQuery(document).on(\"change\", \"#noKnownAllergies\", function () {\n            if (jQuery(this).is(\":checked\")) {\n                jQuery(\".structured-allergen-checkbox\").prop(\"checked\", false).prop(\"disabled\", true);\n                jQuery(\"#allergiesOther\").val(\"\").prop(\"disabled\", true).trigger(\"input\");\n            } else {\n                jQuery(\".structured-allergen-checkbox\").prop(\"disabled\", false);\n                jQuery(\"#allergiesOther\").prop(\"disabled\", false);\n            }\n            syncLegacyAllergiesField();\n        });\n        jQuery(document).on(\"change\", \".structured-allergen-checkbox\", syncLegacyAllergiesField);\n        jQuery(document).on(\"input change\", \"#allergiesOther\", syncLegacyAllergiesField);\n\n        \/\/ Charge le catalogue d'allerg\u00e8nes depuis l'API publique (mis en cache 5 min c\u00f4t\u00e9 CDN).\n        function loadStructuredAllergens(apiBaseOverride) {\n            var apiBase = (typeof apiBaseOverride === \"string\" && apiBaseOverride)\n                ? apiBaseOverride.replace(\/\\\/$\/, \"\")\n                : resolvePublicApiBase(window.location.search).replace(\/\\\/$\/, \"\");\n            jQuery.ajax({\n                url: apiBase + \"\/allergens?lang=fr\",\n                method: \"GET\",\n                dataType: \"json\",\n                cache: true,\n                timeout: 8000\n            }).done(function (response) {\n                var allergens = (response && response.allergens) || [];\n                var listEl = jQuery(\"#structuredAllergensList\").empty();\n                if (allergens.length === 0) {\n                    return;\n                }\n                allergens.forEach(function (allergen) {\n                    var safeSlug = String(allergen.slug || \"\").replace(\/[^a-z0-9_-]\/gi, \"\");\n                    if (!safeSlug) return;\n                    var safeName = jQuery(\"<div\/>\").text(allergen.name || allergen.slug).html();\n                    listEl.append(\n                        '<div class=\"form-check form-check-inline\">' +\n                          '<input class=\"form-check-input structured-allergen-checkbox\" type=\"checkbox\" ' +\n                          'id=\"allergen-' + safeSlug + '\" value=\"' + safeSlug + '\">' +\n                          '<label class=\"form-check-label\" for=\"allergen-' + safeSlug + '\">' + safeName + '<\/label>' +\n                        '<\/div>'\n                    );\n                });\n                \/\/ Si le patient a coch\u00e9 l'option avant le chargement du\n                \/\/ catalogue, d\u00e9sactiver aussi les cases nouvellement ajout\u00e9es.\n                if (jQuery(\"#noKnownAllergies\").is(\":checked\")) {\n                    jQuery(\".structured-allergen-checkbox\").prop(\"checked\", false).prop(\"disabled\", true);\n                }\n                syncLegacyAllergiesField();\n            });\n        }\n        window.loadStructuredAllergens = loadStructuredAllergens;\n        loadStructuredAllergens();\n\n        \/\/ Helpers de soumission \u2014 fournissent les entr\u00e9es structur\u00e9es au backend\n        \/\/ en plus des champs h\u00e9rit\u00e9s allergies \/ allergiesOther.\n        window.collectSelectedAllergenSlugs = function () {\n            var slugs = [];\n            jQuery(\".structured-allergen-checkbox:checked\").each(function () {\n                slugs.push(jQuery(this).val());\n            });\n            return slugs;\n        };\n        window.buildAllergyEntries = function () {\n            var entries = window.collectSelectedAllergenSlugs().map(function (slug) {\n                return { allergenSlug: slug };\n            });\n            var freeText = jQuery(\"#allergiesOther\").val();\n            if (freeText && freeText.trim().length > 0) {\n                entries.push({ freeText: freeText.trim() });\n            }\n            return entries;\n        };\n\n        \/\/ Character count and validation for allergiesOther field\n        function updateAllergiesCharCount() {\n            var value = jQuery(\"#allergiesOther\").val() || \"\";\n            var length = value.length;\n            var maxLength = 500;\n            var charCountEl = jQuery(\"#allergiesOtherCharCount\");\n            var errorEl = jQuery(\"#allergiesOtherError\");\n            \n            charCountEl.text(length + \" \/ \" + maxLength + \" caract\u00e8res\");\n            \n            if (length > maxLength) {\n                charCountEl.css(\"color\", \"red\");\n                charCountEl.css(\"font-weight\", \"bold\");\n                errorEl.text(\"Ce champ d\u00e9passe la longueur maximale de \" + maxLength + \" caract\u00e8res. Veuillez raccourcir votre texte.\");\n                errorEl.show();\n                jQuery(\"#allergiesOther\").addClass(\"is-invalid\");\n            } else if (length > maxLength * 0.9) {\n                charCountEl.css(\"color\", \"orange\");\n                charCountEl.css(\"font-weight\", \"normal\");\n                errorEl.hide();\n                jQuery(\"#allergiesOther\").removeClass(\"is-invalid\");\n            } else {\n                charCountEl.css(\"color\", \"\");\n                charCountEl.css(\"font-weight\", \"normal\");\n                errorEl.hide();\n                jQuery(\"#allergiesOther\").removeClass(\"is-invalid\");\n            }\n        }\n        \n        jQuery(\"#allergiesOther\").on(\"input keyup paste\", function() {\n            updateAllergiesCharCount();\n        });\n        \n        \/\/ Initialize character count on page load\n        updateAllergiesCharCount();\n\n        \/\/ Character count and validation for cardioDiseaseOther field\n        function updateCardioDiseaseOtherCharCount() {\n            var value = jQuery(\"#cardioDiseaseOther\").val() || \"\";\n            var length = value.length;\n            var maxLength = 250;\n            var charCountEl = jQuery(\"#cardioDiseaseOtherCharCount\");\n            var errorEl = jQuery(\"#cardioDiseaseOtherError\");\n            \n            charCountEl.text(length + \" \/ \" + maxLength + \" caract\u00e8res\");\n            \n            if (length > maxLength) {\n                charCountEl.css(\"color\", \"red\");\n                charCountEl.css(\"font-weight\", \"bold\");\n                errorEl.text(\"Ce champ d\u00e9passe la longueur maximale de \" + maxLength + \" caract\u00e8res. Veuillez raccourcir votre texte.\");\n                errorEl.show();\n                jQuery(\"#cardioDiseaseOther\").addClass(\"is-invalid\");\n            } else if (length > maxLength * 0.9) {\n                charCountEl.css(\"color\", \"orange\");\n                charCountEl.css(\"font-weight\", \"normal\");\n                errorEl.hide();\n                jQuery(\"#cardioDiseaseOther\").removeClass(\"is-invalid\");\n            } else {\n                charCountEl.css(\"color\", \"\");\n                charCountEl.css(\"font-weight\", \"normal\");\n                errorEl.hide();\n                jQuery(\"#cardioDiseaseOther\").removeClass(\"is-invalid\");\n            }\n        }\n        \n        jQuery(\"#cardioDiseaseOther\").on(\"input keyup paste\", function() {\n            updateCardioDiseaseOtherCharCount();\n        });\n        \n        \/\/ Initialize character count on page load\n        updateCardioDiseaseOtherCharCount();\n\n        function resolveProvinceFromPostalCode(rawPostalCode) {\n            const normalizedPostalCode = String(rawPostalCode || \"\").replace(\/\\s+\/g, \"\").toUpperCase();\n            if (normalizedPostalCode.length < 1) return \"\";\n\n            const prefix = normalizedPostalCode.charAt(0);\n            const secondChar = normalizedPostalCode.charAt(1);\n            const provinceByPrefix = {\n                A: \"NL\",\n                B: \"NS\",\n                C: \"PE\",\n                E: \"NB\",\n                G: \"QC\",\n                H: \"QC\",\n                J: \"QC\",\n                K: \"ON\",\n                L: \"ON\",\n                M: \"ON\",\n                N: \"ON\",\n                P: \"ON\",\n                R: \"MB\",\n                S: \"SK\",\n                T: \"AB\",\n                V: \"BC\",\n                Y: \"YT\"\n            };\n\n            if (prefix === \"X\") {\n                return secondChar === \"0\" ? \"NU\" : \"NT\";\n            }\n\n            return provinceByPrefix[prefix] || \"\";\n        }\n\n        \/\/ Tracks whether the current province value was set by auto-fill.\n        \/\/ We only overwrite an auto-filled province; a manual pick is preserved.\n        var provinceAutoFilled = false;\n        jQuery(\"#province\").on(\"change\", function () {\n            provinceAutoFilled = false;\n        });\n\n        function syncProvinceFromPostalCode() {\n            const selectedCountry = String(jQuery(\"#country\").val() || \"\").trim();\n            if (selectedCountry !== \"Canada\") return;\n\n            const resolvedProvince = resolveProvinceFromPostalCode(jQuery(\"#postalCode\").val());\n            if (!resolvedProvince) return;\n\n            const currentProvince = String(jQuery(\"#province\").val() || \"\").trim();\n            if (!currentProvince || provinceAutoFilled) {\n                jQuery(\"#province\").val(resolvedProvince);\n                provinceAutoFilled = true;\n            }\n        }\n\n        function parseIsoDate(value) {\n            const normalizedValue = String(value || \"\").trim();\n            if (!\/^\\d{4}-\\d{2}-\\d{2}$\/.test(normalizedValue)) return null;\n\n            const parts = normalizedValue.split(\"-\").map(Number);\n            const parsedDate = new Date(parts[0], parts[1] - 1, parts[2]);\n            if (\n                parsedDate.getFullYear() !== parts[0] ||\n                parsedDate.getMonth() !== parts[1] - 1 ||\n                parsedDate.getDate() !== parts[2]\n            ) {\n                return null;\n            }\n\n            parsedDate.setHours(0, 0, 0, 0);\n            return parsedDate;\n        }\n\n        function updateTripDurationNote() {\n            const noteElement = document.getElementById(\"tripDurationNote\");\n            if (!noteElement) return;\n\n            const departureDate = parseIsoDate(jQuery(\"#departureDate\").val());\n            const returnDate = parseIsoDate(jQuery(\"#returnDate\").val());\n\n            if (!returnDate) {\n                noteElement.textContent = \"Ajoutez une date de retour facultative pour estimer le nombre de jours d'absence.\";\n                noteElement.classList.remove(\"text-danger\");\n                return;\n            }\n\n            if (!departureDate) {\n                noteElement.textContent = \"Ajoutez d'abord une date de d\u00e9part pour calculer la dur\u00e9e estim\u00e9e du voyage.\";\n                noteElement.classList.add(\"text-danger\");\n                return;\n            }\n\n            const dayDifference = Math.round((returnDate.getTime() - departureDate.getTime()) \/ 86400000);\n            if (dayDifference < 0) {\n                noteElement.textContent = \"La date de retour doit \u00eatre \u00e9gale ou post\u00e9rieure \u00e0 la date de d\u00e9part.\";\n                noteElement.classList.add(\"text-danger\");\n                return;\n            }\n\n            const totalDaysAway = dayDifference + 1;\n            noteElement.textContent =\n                \"Dur\u00e9e estim\u00e9e du voyage : \" + totalDaysAway + \" jour\" + (totalDaysAway === 1 ? \"\" : \"s\") + \".\";\n            noteElement.classList.remove(\"text-danger\");\n        }\n\n        \/\/TB select options stuff\n        jQuery(\"select#previousPositiveTBTest\").change(function () {\n            if (jQuery('#previousPositiveTBTest').val() == \"Yes\") {\n                jQuery(this).parent().find(\".other-section\").css(\"display\", \"block\");\n            } else {\n                jQuery(this).parent().find(\".other-section\").css(\"display\", \"none\");\n            }\n        });\n\n        jQuery(\"select#contactWithTB\").change(function () {\n            if (jQuery('#contactWithTB').val() == \"Yes\") {\n                jQuery(this).parent().find(\".other-section\").css(\"display\", \"block\");\n            } else {\n                jQuery(this).parent().find(\".other-section\").css(\"display\", \"none\");\n            }\n        });\n\n        jQuery(\"select#BCGVaccinated\").change(function () {\n            if (jQuery('#BCGVaccinated').val() == \"Yes\") {\n                jQuery(this).parent().find(\".other-section\").css(\"display\", \"block\");\n            } else {\n                jQuery(this).parent().find(\".other-section\").css(\"display\", \"none\");\n            }\n        });\n        \/\/end hide functions\n\n        jQuery(\"#postalCode\").on(\"input blur change\", function () {\n            syncProvinceFromPostalCode();\n        });\n\n        jQuery(\"#departureDate, #returnDate\").on(\"input blur change\", function () {\n            updateTripDurationNote();\n        });\n\n        syncProvinceFromPostalCode();\n        updateTripDurationNote();\n\n        function addCountryFromInputs() {\n\n            var idIndex = countryArray.indexOf(jQuery(\"#countrySearch\").val())\n            console.log(\"got index of the country searched\", idIndex);\n            if (idIndex < 0) {\n                \/\/alert(\"Veuillez s\u00e9lectionner un pays dans le menu d\u00e9roulant des r\u00e9sultats de recherche\");\n                jQuery(\"#addCountryError\").html(\n                    '<p style=\"color:red\">Veuillez s\u00e9lectionner un pays dans le menu d\u00e9roulant des r\u00e9sultats de recherche<\/p>'\n                );\n                return false;\n            } else {\n                jQuery(\"#addCountryError\").html(\"\");\n            }\n\n            console.log(\"Country Search\", jQuery(\"#countrySearch\").val());\n            if (jQuery(\"#countrySearch\").val().length !== 0 || jQuery(\"#citiesVisited\").val()\n                    .length !== 0 ||\n                jQuery(\"#days\").val().length !== 0) {\n                jQuery('.repeatingSection table ').append(\"<tr><td class='countrySearchtd'>\" +\n                    jQuery(\n                        \"#countrySearch\").val() + \"<\/td>\" + \"<td class='citiesVisitedtd'>\" +\n                    jQuery(\"#citiesVisited\").val() + \"<\/td>\" + \"<td class='daystd'>\" +\n                    jQuery(\"#days\").val() + \"<\/td>\" +\n                    '<td><i class=\"far fa-trash-alt deleteCountry\"><\/i><\/td><\/tr>'\n                )\n                console.log(\"clearing searchbox\");\n                jQuery(\"#countrySearch\").val(\"\");\n                jQuery(\"#citiesVisited\").val(\"\");\n                jQuery(\"#days\").val(\"\");\n            }\n            return true;\n        }\n\n        \/\/ Expose to the global scope so dataSubmit() (defined in an outer scope,\n        \/\/ outside this document-ready closure) can call it without a ReferenceError.\n        window.addCountryFromInputs = addCountryFromInputs;\n\n        jQuery('.addCountry').click(function () {\n            addCountryFromInputs();\n        });\n\n        \/\/ Delete a repeating section\n        jQuery(document).on('click', '.deleteCountry', function () {\n            jQuery(this).closest('tr').remove();\n            return false;\n        });\n        \"use-strict\"\n\n\n        document.getElementById('submitBtnId').addEventListener('click', function (e) {\n            e.preventDefault();\n            document.getElementById('questionnaireForm').classList.add('was-validated');\n            validateCheckboxGroups();\n            \n            let epworthValid = true;\n            \/\/ Check if Epworth section is visible and should be validated\n            const epworthSection = document.querySelector(\".sleepinessQuize\");\n            if (epworthSection && epworthSection.offsetParent !== null) {\n                \/\/ Epworth section is visible, validate all 8 questions\n                for (let i = 1; i <= 8; i++) {\n                    if (!document.querySelector(`input[name=\"question${i}\"]:checked`)) {\n                        epworthValid = false;\n                        console.log(`[DEBUG] La question ${i} de l'\u00e9chelle Epworth n'a PAS \u00e9t\u00e9 r\u00e9pondue.`);\n                        break;\n                    }\n                }\n            }\n\n            const invalidSections = getInvalidSections();\n            \n            \/\/ Debug: Show what fields are required in sleep screening section\n            console.log('[DEBUG] Sleep screening section required fields:');\n            jQuery('.sleep-screening-section').find('input[required], select[required], textarea[required]').each(function(){\n                console.log(`- ${this.type || 'select\/textarea'}: ${this.id || this.name || 'unnamed'} (valid: ${this.checkValidity()})`);\n            });\n            \n            const sleepSectionContainer = document.querySelector(\".sleepinessQuize\");\n            if (sleepSectionContainer) {\n                if (!epworthValid) {\n                    sleepSectionContainer.style.border = \"4px solid #dc3545\";\n                } else {\n                    sleepSectionContainer.style.border = \"\";\n                }\n            }\n\n            \/\/ Valider l'email et le t\u00e9l\u00e9phone avant la soumission\n            validateEmail();\n            validatePhone();\n            const emailField = document.getElementById('email');\n            if (emailField.classList.contains('is-invalid')) {\n                Swal.fire({\n                    icon: 'error',\n                    title: 'Email invalide',\n                    text: 'Veuillez entrer une adresse email valide avant de soumettre.',\n                    confirmButtonText: 'OK',\n                    customClass: { confirmButton: 'btn btn-primary' },\n                    buttonsStyling: false\n                }).then(() => {\n                    emailField.scrollIntoView({ behavior: 'smooth', block: 'center' });\n                    emailField.focus();\n                });\n                return;\n            }\n            const phoneField = document.getElementById('phone');\n            if (phoneField && phoneField.classList.contains('is-invalid')) {\n                Swal.fire({\n                    icon: 'error',\n                    title: 'T\u00e9l\u00e9phone invalide',\n                    text: 'Veuillez entrer un num\u00e9ro de t\u00e9l\u00e9phone valide avant de soumettre.',\n                    confirmButtonText: 'OK',\n                    customClass: { confirmButton: 'btn btn-primary' },\n                    buttonsStyling: false\n                }).then(() => {\n                    phoneField.scrollIntoView({ behavior: 'smooth', block: 'center' });\n                    phoneField.focus();\n                });\n                return;\n            }\n\n            if (invalidSections.length > 0) {\n                let message = '<p style=\"text-align: center; font-size: 17px;\">Veuillez corriger l\\'erreur ou les erreurs avant de soumettre<\/p><ul>';\n                invalidSections.forEach(sectionName => {\n                    message += `<li style=\"text-align: left; font-size: 17px\">La section <strong>${sectionName}<\/strong> est incompl\u00e8te<\/li>`;\n                });\n                \n                \/\/ if (!epworthValid) {\n                \/\/     message += '<li>La section de l\\'<strong>\u00c9chelle de somnolence d\\'Epworth<\/strong> est incompl\u00e8te<\/li>';\n                \/\/ }\n                \n                message += '<\/ul>';\n\n                Swal.fire({\n                icon: 'error',\n                title: 'Erreur',\n                html: message,\n                confirmButtonText: 'OK',\n                customClass: {\n                    confirmButton: 'btn btn-primary' \n                },\n                buttonsStyling: false\n                }).then(() => {\n                    setTimeout(() => {\n                        const firstGroupError = document.querySelector('.question.required.has-checkbox-error');\n                        if (firstGroupError) {\n                            firstGroupError.scrollIntoView({ behavior: 'smooth', block: 'center' });\n                            return;\n                        }\n                        if (invalidSections.length > 0) {\n                        const firstInvalidSelector = sections.find(sec => sec.label === invalidSections[0]).selector;\n                        const firstInvalidField = document.querySelector(firstInvalidSelector);\n                        if (firstInvalidField) {\n                            firstInvalidField.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                            firstInvalidField.focus();\n                        }\n                        }\n                    }, 300);\n                });\n                return;\n            }\n\n            \/\/ Le consentement est la derni\u00e8re barri\u00e8re avant la soumission et\n            \/\/ ne peut jamais \u00eatre contourn\u00e9.\n            const consentBlockers = getConsentBlockers(formType);\n            if (consentBlockers.length > 0) {\n                let consentMessage =\n                    '<p style=\"text-align: center; font-size: 17px;\">Veuillez compl\u00e9ter votre consentement avant de soumettre<\/p><ul>';\n                consentBlockers.forEach(blocker => {\n                    consentMessage += `<li style=\"text-align: left; font-size: 17px\">${blocker}<\/li>`;\n                });\n                consentMessage += '<\/ul>';\n\n                Swal.fire({\n                    icon: 'error',\n                    title: 'Consentement requis',\n                    html: consentMessage,\n                    confirmButtonText: 'OK',\n                    customClass: { confirmButton: 'btn btn-primary' },\n                    buttonsStyling: false\n                }).then(() => {\n                    setTimeout(() => {\n                        const consentAnchor =\n                            document.querySelector('#infusionConsentBlock') ||\n                            document.querySelector('#agreementCheckbox');\n                        if (consentAnchor) {\n                            consentAnchor.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                        }\n                    }, 300);\n                });\n                return;\n            }\n\n            dataSubmit();\n        });\n        validateCheckboxGroups();\n    }); \/\/end of document ready\n\n\n    function logInvalidFields() {\n        let invalidFields = [];\n\n        \/\/ Iterate over each required field and check if it's valid\n        jQuery('#questionnaireForm .form-control[required], #questionnaireForm input[type=\"checkbox\"][required], #questionnaireForm input[type=\"radio\"][required]').each(function () {\n            if (!this.checkValidity()) {\n                const paragraphText = jQuery(this).prevAll(\"p\").first().text().trim() || \"No associated text\";\n\n                invalidFields.push({\n                    id: this.id || this.name,\n                    type: this.type,\n                    label: jQuery(this).siblings(\"label\").text().trim() || \"Unnamed Field\",\n                    text: paragraphText\n                });\n                jQuery(this).addClass('is-invalid'); \/\/ Optional: Highlight the field\n            } else {\n                jQuery(this).removeClass('is-invalid'); \/\/ Clear invalid highlight\n            }\n        });\n\n        \/\/ Log invalid fields\n        if (invalidFields.length > 0) {\n            console.log(\"Invalid Fields:\");\n            invalidFields.forEach(field => {\n                console.log(\"text: \", field.text);\n                console.log(`Field Label: ${field.label}, Field ID\/Name: ${field.id}, Type: ${field.type}`);\n            });\n            alert(\"Veuillez corriger les champs surlign\u00e9s.\");\n        } else {\n            console.log(\"All fields are valid.\");\n            \/\/dataSubmit(); \/\/ Call dataSubmit function if all fields are valid\n        }\n    }\n<\/script>\n\n\n<script>\n    let choices = [0, 0, 0, 0, 0, 0, 0, 0]\n\n    let units = [\n        ['kg', 'lbs'],\n        ['cm', 'in']\n    ]\n\n    let chosenUnits = [0, 0]\n\n    function onAnswerChose(name, questionNumber, value) {\n        choices[questionNumber] = value\n\n        const elements = document.getElementsByName(name)\n        if (!elements || elements.length <= value || !elements[value]) {\n            return;\n        }\n        elements.forEach(element => {\n            element.className = 'choice'\n        });\n        elements[value].className = \"choice selectedBtn\"\n    }\n\n    function changeWeight(value, to) {\n        console.log(to)\n        return (to === 0) ? value \/ 2.2 : value * 2.2\n    }\n\n    function changeHeight(value, to) {\n        return (to === 0) ? value * 2.54 : value \/ 2.54\n    }\n\n    function onBmiUnitChange(index) {\n        chosenUnits[index] = (chosenUnits[index] + 1) % 2\n        const unitId = (index == 0) ? 'weightUnit' : 'heightUnit'\n        document.getElementById(unitId).innerText = units[index][chosenUnits[index]]\n\n        const bmiFieldId = (index == 0) ? 'bmi-weight' : 'bmi-height'\n\n        const inputField = document.getElementById(bmiFieldId)\n        let value = inputField.value\n        value = Number(value)\n\n\n        if (!isNaN(value)) {\n            if (index === 0) {\n                value = changeWeight(value, chosenUnits[index])\n            } else if (index == 1) {\n                value = changeHeight(value, chosenUnits[index])\n            }\n            inputField.value = Math.round(value * 100) \/ 100\n        }\n        \n        \/\/ Recalculate BMI after unit change\n        onBmiFieldValueChange(index);\n    }\n\n    function getStopBangData() {\n        let sum = 0;\n        choices.forEach(element => {\n            sum += element\n        });\n        let neckCircumference = parseFloat(document.getElementById('neck-circumference').value) || 0;\n\n        \/\/ Add to the STOP-BANG score if neck circumference is 40 cm or more\n        let neckCircumferenceScore = neckCircumference >= 40 ? 1 : 0;\n\n        sum += neckCircumferenceScore; \/\/ Add neck score\n        choices[6] = neckCircumferenceScore;\n        return {\n            \"choices\": choices,\n            \"sum\": sum\n        }\n    }\n\n\n    function validateStopBang() {\n        let isValid = true;\n        const questionNames = [\"first\",\"second\",\"third\",\"fourth\",\"sixth\",\"eighth\"];\n\n        questionNames.forEach(name => {\n            const choices = document.querySelectorAll('div[name=\"'+name+'\"]');\n            const answered = Array.from(choices).some(c => c.classList.contains('selectedBtn'));\n            if (!answered) {\n                isValid = false;\n                choices.forEach(c => c.classList.add('error'));\n            } else {\n                choices.forEach(c => c.classList.remove('error'));\n            }\n        });\n\n        const weightField = document.getElementById('bmi-weight');\n        const heightField = document.getElementById('bmi-height');\n        const neckField   = document.getElementById('neck-circumference');\n\n        if (!weightField.value) {\n            isValid = false;\n            weightField.classList.add('error');\n        } else {\n            weightField.classList.remove('error');\n        }\n\n        if (!heightField.value) {\n            isValid = false;\n            heightField.classList.add('error');\n        } else {\n            heightField.classList.remove('error');\n        }\n\n        if (!neckField.value) {\n            isValid = false;\n            neckField.classList.add('error');\n        } else {\n            neckField.classList.remove('error');\n        }\n\n        return isValid;\n    }\n\n    function onBmiFieldValueChange(index) {\n        let weight = document.getElementById('bmi-weight').value;\n        let height = document.getElementById('bmi-height').value;\n        let weightUnit = document.getElementById('weightUnit').innerText.trim();\n        let heightUnit = document.getElementById('heightUnit').innerText.trim();\n        let heightInput = document.getElementById('bmi-height');\n        let errorMsg = document.getElementById('height-error');\n\n        if (!errorMsg) return; \n\n        weight = Number(weight);\n        height = Number(height);\n\n        if (isNaN(height) || height <= 0) {\n            heightInput.classList.add('is-invalid');\n            heightInput.classList.remove('is-valid');\n            errorMsg.innerText = \"Veuillez entrer une grandeur valide.\";\n            errorMsg.style.display = \"block\"; \n            choices[4] = 0; \/\/ Reset BMI score if height is invalid\n            return;\n        }\n\n        let heightInInches = (heightUnit === \"cm\") ? height \/ 2.54 : height;\n\n        if (heightInInches < 48) {\n            heightInput.classList.add('is-invalid');\n            heightInput.classList.remove('is-valid');\n            errorMsg.innerText = \"La grandeur doit \u00eatre d'au moins 48 pouces.\";\n            errorMsg.style.display = \"block\"; \n            choices[4] = 0; \/\/ Reset BMI score if height is invalid\n        } else {\n            heightInput.classList.remove('is-invalid');\n            heightInput.classList.add('is-valid');\n            errorMsg.innerText = \"\"; \n            errorMsg.style.display = \"none\"; \n        }\n\n        \/\/ Calculate BMI if both weight and height are valid\n        if (weight > 0 && height > 0) {\n            \/\/ Convert weight to kg\n            let weightInKg = (weightUnit === \"lbs\") ? weight \/ 2.2 : weight;\n            \n            \/\/ Convert height to meters\n            let heightInMeters = (heightUnit === \"cm\") ? height \/ 100 : height * 0.0254;\n            \n            \/\/ Calculate BMI\n            let bmi = Math.round((weightInKg \/ (heightInMeters * heightInMeters)) * 100) \/ 100;\n            \n            \/\/ Set choices[4] based on BMI > 35\n            choices[4] = Number(bmi > 35);\n        } else {\n            choices[4] = 0; \/\/ Reset BMI score if values are invalid\n        }\n    }\n<\/script>\n\n<!--Epworth-->\n<script>\n    jQuery(document).ready(function () {\n        let a = jQuery(\"#sleepinessQuizeForm\").find(\"input[name='question1']\");\n        \/\/ console.log('val', a.value); \/\/ Check if it finds the inputs\n    });\n\n    window.addEventListener(\"load\", function () {\n        \/\/ Access the form element...\n        var form = document.getElementById(\"sleepinessQuizeForm\");\n\n        \/\/ console.log(form[\"question1\"]);\n        var errorMessage = document.getElementById('sleepinessQuizeErrorMsg');\n\n        var scoreValue = this.document.getElementById('sleepinessQuizeResultVal')\n        var scoreTitle = this.document.getElementById('sleepinessResultTitle')\n        var scoreDesc = this.document.getElementById('sleepinessResultDesc')\n    });\n\n    \/\/ ...and take over its submit event.\n    function getEpworthData() {\n        \/\/ Access the form element\n        var form = jQuery(\"#sleepinessQuizeForm\");\n\n        \/\/ Result analysis data\n        const resultsAnalysisDesc = [\n            'indicates that you do not currently have problems getting sufficient sleep. You do not suffer from daytime sleepiness',\n            'is average. This indicates that you probably currently get enough quality sleep and are not usually adversely affected by daytime sleepiness',\n            'indicates that you are sleepy. Your levels of daytime sleepiness are higher than normal.',\n            'indicates that you are excessively sleepy. You are very sleepy in the daytime and this could be an indication of a sleep disorder'\n        ];\n\n        const resultTitle = [\n            'You are not sleepy', 'Normal', 'Sleepy', 'Excessively Sleepy'\n        ];\n\n        \/\/ Initialize sum and error flag\n        let sum = 0;\n        let error = false;\n\n        \/\/ Loop through questions 1 to 8\n        for (let i = 1; i <= 8; i++) {\n            let input = form.find(\"input[name='question\" + i + \"']:checked\"); \/\/ Select checked input for each question\n            if (input.length === 0) { \/\/ Check if no option is selected\n                error = true;\n                break;\n            }\n            sum += parseInt(input.val()); \/\/ Add the value to sum\n        }\n\n        if (error) {\n            console.error(\"Please answer all questions.\");\n            return false;\n        } else {\n            \/\/ Determine message index based on the sum\n            let messageIndex = 0;\n            if (sum <= 6) {\n                messageIndex = 0;\n            } else if (sum <= 9) {\n                messageIndex = 1;\n            } else if (sum <= 17) {\n                messageIndex = 2;\n            } else {\n                messageIndex = 3;\n            }\n\n            \/\/ Access and update the result display elements\n            let scoreValue = document.getElementById('sleepinessQuizeResultVal');\n            let scoreTitle = document.getElementById('sleepinessResultTitle');\n            let scoreDesc = document.getElementById('sleepinessResultDesc');\n\n            if (scoreValue && scoreTitle && scoreDesc) {\n                scoreValue.innerText = sum;\n                scoreTitle.innerText = resultTitle[messageIndex];\n                scoreDesc.innerText = 'Your score of: ' + sum + ' ' + resultsAnalysisDesc[messageIndex];\n            }\n\n            \/\/ Return the result object\n            return {\n                \"sum\": sum,\n                \"resultTitle\": resultTitle[messageIndex],\n                \"score\": 'Your score of: ' + sum + ' ' + resultsAnalysisDesc[messageIndex]\n            };\n        }\n    }\n<\/script>\n\n<script>\n    function validateEmail() {\n        var emailField = document.getElementById('email');\n        var errorMessage = document.querySelector(\"#email + .invalid-feedback\"); \n        const emailPattern = \/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$\/;\n\n        if (emailField.value === \"\") {\n            errorMessage.textContent = \"L'email est un champ requis\"; \n            emailField.classList.add('is-invalid');\n            emailField.classList.remove('is-valid');\n            emailField.setCustomValidity(\"\");\n        } else if (!emailPattern.test(emailField.value)) {\n            errorMessage.textContent = \"Veuillez entrer une adresse email valide\"; \n            emailField.classList.add('is-invalid');  \n            emailField.classList.remove('is-valid');\n            emailField.setCustomValidity(\"\");\n        } else {\n            emailField.classList.remove('is-invalid');\n            emailField.classList.add('is-valid');\n            emailField.setCustomValidity(\"\");\n        }\n    }\n\n    function validatePhone() {\n        var phoneField = document.getElementById('phone');\n        if (!phoneField) return;\n        var errorMessage = document.querySelector(\"#phone + .invalid-feedback\");\n        const phonePattern = \/^\\+?\\d{10,15}$\/; \n        \n        \/\/ Strip dashes, spaces, and other non-digit characters (except +)\n        var cleanedValue = phoneField.value.replace(\/[^\\d+]\/g, '');\n        \n        \/\/ Update the field value if it was cleaned\n        if (cleanedValue !== phoneField.value) {\n            phoneField.value = cleanedValue;\n        }\n\n        if (phoneField.value === \"\") {\n            errorMessage.textContent = \"Le t\u00e9l\u00e9phone est un champ requis\"; \n            phoneField.classList.add('is-invalid');\n            phoneField.classList.remove('is-valid');\n            phoneField.setCustomValidity(\"\");\n        } else if (!phonePattern.test(phoneField.value)) {\n            errorMessage.textContent = \"Veuillez entrer un num\u00e9ro de t\u00e9l\u00e9phone valide (sans tirets ni espaces)\"; \n            phoneField.classList.add('is-invalid');\n            phoneField.classList.remove('is-valid');\n            phoneField.setCustomValidity(\"\");\n        } else {\n            phoneField.classList.remove('is-invalid');\n            phoneField.classList.add('is-valid');\n            phoneField.setCustomValidity(\"\");\n        }\n    }\n\n    function validateFax() {\n        var faxField = document.getElementById('pharmacyFax');\n        var errorMessage = document.querySelector(\"#pharmacyFax + .invalid-feedback\");\n        const faxPattern = \/^\\+?\\d{10,15}$\/; \n        var digits = faxField.value.replace(\/\\D\/g, '');\n\n        if (faxField.value === \"\") {\n            faxField.classList.remove('is-valid');\n            faxField.classList.remove('is-invalid');\n            errorMessage.textContent = \"\";\n            faxField.setCustomValidity(\"\");\n            return;\n        }\n\n        if (!faxPattern.test(faxField.value)) {\n            errorMessage.textContent = \"Veuillez entrer un num\u00e9ro de fax valide\"; \n            faxField.classList.add('is-invalid');\n            faxField.classList.remove('is-valid');\n            faxField.setCustomValidity(\"\");\n        } \n        else {\n            faxField.classList.add('is-valid');\n            faxField.classList.remove('is-invalid');\n            errorMessage.textContent = \"\";\n            faxField.setCustomValidity(\"\");\n        }\n    }\n<\/script>\n\n<div class=\"container\">\n    <div id=\"questionnaireInitialization\" class=\"alert alert-info\" role=\"status\" aria-live=\"polite\"\n         style=\"text-align:center; margin-top:30px;\">\n        <div id=\"questionnaireInitializationSpinner\" aria-hidden=\"true\" style=\"font-size:2rem; margin-bottom:12px;\">\n            <i class=\"fas fa-spinner fa-spin\"><\/i>\n        <\/div>\n        <h3 id=\"questionnaireInitializationTitle\" style=\"margin-bottom:10px;\">Chargement de votre questionnaire\u2026<\/h3>\n        <div id=\"questionnaireInitializationMessage\">Veuillez patienter pendant le chargement s\u00e9curis\u00e9 de vos renseignements.<\/div>\n        <button type=\"button\" id=\"retryQuestionnaireButton\" class=\"btn btn-danger\"\n                style=\"display:none; margin-top:16px;\">R\u00e9essayer<\/button>\n    <\/div>\n\n    <div id=\"continueQuestionnaireContainer\" style=\"text-align:center; margin-top:30px; display:none;\">\n        <div id=\"continueQuestionnaireText\" style=\"margin-bottom:10px;\"><\/div>\n\n        <button type=\"button\" id=\"continueQuestionnaireButton\"\n                class=\"btn btn-danger continueQuestionnaireButton\">Effacer & resoumettre le questionnaire<\/button>\n    <\/div>\n\n    <div id=\"confirmNoChangesDiv\" style=\"text-align:center; margin-top:30px; display:none\">\n        <b>En tant que patient de Summit Sant\u00e9, nous avons le questionnaire m\u00e9dical rempli lors de votre derni\u00e8re visite.<\/b>\n        <div class=\"form-check\" style=\"text-align:left\">\n            <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"checkbox\" value=\"\"\n                   id=\"confirmNoChangeCheckbox\">\n            <label class=\"form-check-label\" for=\"confirmNoChangeCheckbox\">\n                Je confirme qu'il n'y a eu aucun changement \u00e0 ma sant\u00e9 ou aux m\u00e9dicaments que je prends depuis ma derni\u00e8re visite chez Summit Sant\u00e9.\n            <\/label>\n        <\/div>\n        <button type=\"button\" id=\"confirmNoChangesButton\" class=\"btn btn-success\">Confirmer<\/button>\n        <button type=\"button\" id=\"newQuestionnaireButton\" class=\"btn btn-danger continueQuestionnaireButton\">Remplir un nouveau questionnaire<\/button>\n    <\/div>\n\n\n\n    <form method=\"POST\" class=\"needs-validation\" id=\"questionnaireForm\" novalidate\n          style=\"display:none;\" aria-busy=\"true\">\n        <br>\n        <!-- Qui remplit ce formulaire. R\u00e9serv\u00e9 aux perfusions; affich\u00e9 par le\n             gestionnaire formType. Plac\u00e9 AVANT les questions de sant\u00e9\n             volontairement : chaque \u00ab vous \u00bb ci-dessous d\u00e9signe le PATIENT, et\n             un proche aidant qui remplit le formulaire pour quelqu'un d'autre\n             doit le savoir avant de r\u00e9pondre, pas apr\u00e8s. L'attestation l\u00e9gale\n             correspondante se trouve dans le bloc de consentement au bas du\n             formulaire. -->\n        <div class=\"infusion-completed-by-section section\" style=\"display:none\">\n            <h3><i class=\"fas fa-user-friends\"><\/i> Qui remplit ce formulaire<\/h3>\n            <div class=\"alert alert-info\" role=\"alert\">\n                <strong>Avant de commencer.<\/strong> Toutes les questions de sant\u00e9 de ce formulaire portent sur\n                le <strong>patient qui recevra la perfusion<\/strong> \u2014 ses allergies, ses m\u00e9dicaments, ses\n                ant\u00e9c\u00e9dents m\u00e9dicaux \u2014 m\u00eame si vous le remplissez en son nom.\n            <\/div>\n            <div class=\"question mt-2\">\n                <p>Qui remplit ce formulaire? <span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\"\n                           name=\"infusionCompletedBy\" id=\"infusionCompletedBySelf\" value=\"self\">\n                    <label class=\"form-check-label\" for=\"infusionCompletedBySelf\">\n                        Je suis le patient et je remplis ce formulaire pour moi-m\u00eame\n                    <\/label>\n                <\/div>\n                <div class=\"form-check\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\"\n                           name=\"infusionCompletedBy\" id=\"infusionCompletedByProxy\" value=\"proxy\">\n                    <label class=\"form-check-label\" for=\"infusionCompletedByProxy\">\n                        Je remplis ce formulaire au nom du patient\n                    <\/label>\n                <\/div>\n            <\/div>\n\n            <!-- Renseignements sur le repr\u00e9sentant. Affich\u00e9s uniquement si\n                 \u00ab au nom du patient \u00bb est s\u00e9lectionn\u00e9; voir\n                 syncInfusionProxyVisibility(). -->\n            <div id=\"infusionProxyDetails\" style=\"display:none\">\n                <hr>\n                <div class=\"mb-3\">\n                    <label for=\"infusionProxyName\" class=\"form-label\">Votre nom complet<span\n                            class=\"astrisc\">*<\/span><\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"infusionProxyName\">\n                    <div class=\"invalid-feedback\">\n                        Ce champ est obligatoire\n                    <\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"infusionProxyRelationship\" class=\"form-label\">Votre lien avec le patient<span\n                            class=\"astrisc\">*<\/span><\/label>\n                    <select class=\"form-control\" id=\"infusionProxyRelationship\">\n                        <option value=\"\">Veuillez choisir\u2026<\/option>\n                        <option value=\"Parent of a minor\">Parent d'un patient mineur<\/option>\n                        <option value=\"Legal guardian or tutor\">Tuteur ou tutrice l\u00e9gale<\/option>\n                        <option value=\"Attorney for personal care or mandatary\">Mandataire en cas d'inaptitude,\n                            ou procureur au soin de la personne\n                        <\/option>\n                        <option value=\"Curator\">Curateur ou curatrice<\/option>\n                        <option value=\"Representative appointed by a tribunal or board\">Repr\u00e9sentant nomm\u00e9 par un\n                            tribunal ou un organisme\n                        <\/option>\n                        <option value=\"Spouse or partner\">Conjoint, conjoint de fait ou partenaire<\/option>\n                        <option value=\"Adult child\">Enfant majeur du patient<\/option>\n                        <option value=\"Parent of an adult patient\">Parent d'un patient majeur<\/option>\n                        <option value=\"Sibling\">Fr\u00e8re ou s\u0153ur<\/option>\n                        <option value=\"Other relative or interested person\">Autre proche parent, ou personne qui\n                            d\u00e9montre un int\u00e9r\u00eat particulier pour le patient\n                        <\/option>\n                    <\/select>\n                    <div class=\"invalid-feedback\">\n                        Ce champ est obligatoire\n                    <\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"infusionProxyPhone\" class=\"form-label\">Votre num\u00e9ro de t\u00e9l\u00e9phone<span\n                            class=\"astrisc\">*<\/span><\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"infusionProxyPhone\">\n                    <div class=\"invalid-feedback\">\n                        Ce champ est obligatoire\n                    <\/div>\n                <\/div>\n\n                <p class=\"mt-3\"><strong>Veuillez confirmer chacun des \u00e9nonc\u00e9s suivants :<\/strong><\/p>\n                <div class=\"form-check mt-2\">\n                    <input class=\"form-check-input infusion-proxy-attestation\" type=\"checkbox\"\n                           id=\"infusionProxyAuthority\">\n                    <label class=\"form-check-label\" for=\"infusionProxyAuthority\">\n                        Je confirme que le patient est mineur, ou qu'il n'est pas en mesure de prendre cette\n                        d\u00e9cision lui-m\u00eame, et que j'ai l'autorit\u00e9 l\u00e9gale de consentir aux soins de sant\u00e9 en son\n                        nom.\n                    <\/label>\n                <\/div>\n                <div class=\"form-check mt-2\">\n                    <input class=\"form-check-input infusion-proxy-attestation\" type=\"checkbox\"\n                           id=\"infusionProxyNoObjection\">\n                    <label class=\"form-check-label\" for=\"infusionProxyNoObjection\">\n                        Je confirme qu'\u00e0 ma connaissance, aucune autre personne ayant un droit \u00e9gal ou sup\u00e9rieur\n                        de prendre cette d\u00e9cision ne s'y oppose.\n                    <\/label>\n                <\/div>\n                <div class=\"form-check mt-2\">\n                    <input class=\"form-check-input infusion-proxy-attestation\" type=\"checkbox\"\n                           id=\"infusionProxyWishes\">\n                    <label class=\"form-check-label\" for=\"infusionProxyWishes\">\n                        J'ai discut\u00e9 de ce traitement avec le patient dans la mesure o\u00f9 il est capable de le\n                        comprendre. \u00c0 ma connaissance, cette d\u00e9cision respecte les volont\u00e9s que le patient a\n                        exprim\u00e9es lorsqu'il \u00e9tait apte \u00e0 d\u00e9cider, et elle est dans son int\u00e9r\u00eat.\n                    <\/label>\n                <\/div>\n                <div class=\"form-check mt-2\">\n                    <input class=\"form-check-input infusion-proxy-attestation\" type=\"checkbox\"\n                           id=\"infusionProxyAccuracy\">\n                    <label class=\"form-check-label\" for=\"infusionProxyAccuracy\">\n                        J'ai r\u00e9pondu aux questions de sant\u00e9 de ce formulaire au meilleur de ma connaissance.\n                        Lorsque je n'\u00e9tais pas certain d'une r\u00e9ponse, je l'ai indiqu\u00e9 plut\u00f4t que de deviner.\n                    <\/label>\n                <\/div>\n                <p class=\"mt-3\">\n                    Je comprends que Summit Sant\u00e9 peut me demander une preuve de mon autorit\u00e9 \u00e0 consentir, et\n                    peut refuser de poursuivre si elle n'est pas convaincue qu'un consentement valide a \u00e9t\u00e9\n                    donn\u00e9.\n                <\/p>\n            <\/div>\n            <hr>\n        <\/div>\n        <div class=\"main-info section\">\n            <h3><i class=\"fas fa-user\"><\/i> Information D\u00e9mographique<\/h3>\n            <div class=\"row\">\n                <div class=\"col-sm\">\n\n                    <div class=\"mb-3\">\n                        <label for=\"firstName\" class=\"form-label\">Pr\u00e9nom<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" name=\"firstName\" type=\"text\" class=\"form-control\"\n                               id=\"firstName\" required disabled>\n                        <div class=\"invalid-feedback\">\n                            Le pr\u00e9nom est un champ obligatoire\n                        <\/div>\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"lastName\" class=\"form-label\">Nom<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"lastName\" required\n                               disabled>\n                        <div class=\"invalid-feedback\">\n                            Le nom est un champ obligatoire\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"mb-3 birthdate\">\n                        <label for=\"Birthdate\" class=\"form-label\">Date de Naissance<span class=\"astrisc\">*<\/span><\/label>\n\n                        <!-- Trello #986: no data-provide=\"datepicker\" here. It would auto-init a\n                             SECOND bootstrap-datepicker on top of the explicit .datepicker() call,\n                             and the duplicate keydown handler is what overwrote a dash-less birthdate\n                             with today's date on Enter. The explicit init below owns this field. -->\n                        <div class=\"input-group date\">\n                            <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control birthdate-date-picker\"\n                                   data-date-format='yyyy-mm-dd'\n                                   placeholder=\"aaaa-mm-jj\" id=\"birthdate\" required>\n                            <div class=\"input-group-addon close-button\">\n                    <span class=\"fa fa-calendar input-group-text start_date_calendar\"\n                          aria-hidden=\"true \"><\/span>\n                                <div class=\"invalid-feedback\">\n                                    La date de naissance est un champ obligatoire\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"healthCardNumber\" class=\"form-label\">Num\u00e9ro d'Assurance Maladie<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"healthCardNumber\">\n                    <\/div>\n                    <div class=\"mb-3 only-sleep-question\">\n                        <label for=\"healthCardExpirationDate\" class=\"form-label\">Date d'expiration de la carte d'assurance maladie<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"date\" class=\"form-control\" id=\"healthCardExpirationDate\">\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"occupation\" class=\"form-label\">Profession<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"occupation\">\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"country\" class=\"form-label\">Pays<\/label>\n                        <select class=\"form-select\" aria-label=\"Default select example\" id=\"country\" name=\"country\">\n                            <option selected=\"selected\" value=\"Canada\">Canada<\/option>\n                            <option value=\"USA\">\u00c9tats-Unis<\/option>\n                            <option value=\"Other\">Autre<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"mb-3\" id=\"provinceDiv\">\n                        <label for=\"province\" class=\"form-label\">Province<\/label>\n                        <select class=\"form-select\" aria-label=\"Default select example\" id=\"province\">\n                            <option value=\"\" disabled>Selectionnez une province<\/option>\n                            <option value=\"AB\">Alberta<\/option>\n                            <option value=\"BC\">Colombie-Britannique<\/option>\n                            <option value=\"MB\">Manitoba<\/option>\n                            <option value=\"NB\">Nouveau-Brunswick<\/option>\n                            <option value=\"NL\">Terre-Neuve-et-Labrador<\/option>\n                            <option value=\"NS\">Nouvelle-\u00c9cosse<\/option>\n                            <option value=\"ON\">Ontario<\/option>\n                            <option value=\"PE\">\u00cele-du-Prince-\u00c9douard<\/option>\n                            <option value=\"QC\">Qu\u00e9bec<\/option>\n                            <option value=\"SK\">Saskatchewan<\/option>\n                            <option value=\"NT\">Territoires du Nord-Ouest<\/option>\n                            <option value=\"NU\">Nunavut<\/option>\n                            <option value=\"YT\">Yukon<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"mb-3\" id=\"stateDiv\" style=\"display:none;\">\n                        <label for=\"state\" class=\"form-label\">\u00c9tat<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"state\">\n                        <div class=\"invalid-feedback\">\n                            L'\u00e9tat est un champ obligatoire.\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"col-sm\">\n                    <div class=\"mb-3\">\n                        <label for=\"email\" class=\"form-label\">Courriel<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"email\" class=\"form-control\" id=\"email\"\n                               placeholder=\"nom@example.ca\" required\n                               oninput=\"validateEmail()\">\n                        <div class=\"invalid-feedback\">\n                            Le courriel est un champ obligatoire\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"mb-3\">\n                        <label for=\"phone\" class=\"form-label\">T\u00e9l\u00e9phone<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"phone\" class=\"form-control\" id=\"phone\" required\n                               oninput=\"validatePhone()\" onblur=\"validatePhone()\" onpaste=\"setTimeout(validatePhone, 0)\">\n                        <div class=\"invalid-feedback\">\n                            Le t\u00e9l\u00e9phone est un champ obligatoire\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"mb-3\">\n                        <label for=\"language\" class=\"form-label\">Langue Pr\u00e9f\u00e9r\u00e9e<\/label>\n                        <select class=\"form-select\" aria-label=\"Default select example\" id=\"language\">\n                            <option value=\"English\">Anglais<\/option>\n                            <option value=\"French\" selected=\"selected\">Fran\u00e7ais<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"street\" class=\"form-label\">Adresse<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"street\" required>\n                        <div class=\"invalid-feedback\">\n                            L'adresse est un champ obligatoire\n                        <\/div>\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"city\" class=\"form-label\">Ville<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"city\" required>\n                        <div class=\"invalid-feedback\">\n                            La ville est un champ obligatoire\n                        <\/div>\n                    <\/div>\n                    <div class=\"mb-3\" id=\"zipCodeDiv\" style=\"display:none;\">\n                        <label for=\"zipCode\" class=\"form-label\">Code Postal<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"zipCode\">\n                        <div class=\"invalid-feedback\">\n                            Le Code Postal est un champ obligatoire.\n                        <\/div>\n                    <\/div>\n                    <div class=\"mb-3 postal\" id=\"postalCodeDiv\">\n                        <label for=\"postalCode\" class=\"form-label\">Code Postal<span class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"postalCode\" required>\n                        <div class=\"invalid-feedback\">\n                            Le Code Postal est un champ obligatoire.\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- <div class=\"row\">\n                <div class=\"col\">\n\n                <\/div>\n                <div class=\"col\">\n\n                <\/div>\n            <\/div> -->\n        <\/div>\n        <hr>\n        <div class=\"medical-section section\">\n            <h3><i class=\"fas fa-notes-medical\"><\/i> Informations m\u00e9dicales<\/h3>\n            <div class=\"question required travel-question sleep-question\">\n                <p> Avez-vous ou avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 inform\u00e9 que vous souffrez d'une maladie cardiovasculaire ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"None\" value=\"None\">\n                    <label class=\"form-check-label\">Aucune<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"HighBloodPressure\" value=\"HighBloodPressure\">\n                    <label class=\"form-check-label\" for=\"HighBloodPressure\">Hypertension art\u00e9rielle<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"HeartFailure\" value=\"HeartFailure\">\n                    <label class=\"form-check-label\" for=\"HeartFailure\">Insuffisance cardiaque<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"Arrhythmia\" value=\"Arrhythmia\">\n                    <label class=\"form-check-label\" for=\"Arrhythmia\">Arythmie<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"Angina\" value=\"Angina\">\n                    <label class=\"form-check-label\" for=\"Angina\">Angine de poitrine<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"Aneurysm\" value=\"Aneurysm\">\n                    <label class=\"form-check-label\" for=\"Aneurysm\">An\u00e9vrisme<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"HeartAttack\" value=\"HeartAttack\">\n                    <label class=\"form-check-label\" for=\"HeartAttack\">Attaque cardiaque<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"Bypass\/stents\" value=\"Bypass\/stents\">\n                    <label class=\"form-check-label\" for=\"Bypass\/stents\">Pontage\/stents<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"Stroke\/TIA\" value=\"Stroke\/TIA\">\n                    <label class=\"form-check-label\" for=\"Stroke\/TIA\">AVC\/TIA<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"PulmonaryEmbolism\" value=\"PulmonaryEmbolism\">\n                    <label class=\"form-check-label\" for=\"PulmonaryEmbolism\">Embolie pulmonaire<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"Claudication\" value=\"Claudication\">\n                    <label class=\"form-check-label\" for=\"Claudication\">Claudication<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"DVT\/BloodClot\" value=\"DVT\/BloodClot\">\n                    <label class=\"form-check-label\" for=\"DVT\/BloodClot\">TVP\/Thrombose<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"cardioDisease\" type=\"checkbox\" id=\"Other\" value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"cardioDiseaseOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"cardioDiseaseOther\" maxlength=\"250\">\n                    <small class=\"form-text text-muted\" id=\"cardioDiseaseOtherCharCount\">0 \/ 250 caract\u00e8res<\/small>\n                    <div class=\"error-message\" id=\"cardioDiseaseOtherError\" style=\"display: none; color: red; margin-top: 5px;\"><\/div>\n                <\/div>\n            <\/div>\n\n\n            <div class=\"question tb-question \">\n                <p> Avez-vous ressenti l'un des sympt\u00f4mes suivants au cours de l'ann\u00e9e \u00e9coul\u00e9e ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"TBSymptoms\" type=\"checkbox\" id=\"None\" value=\"None\">\n                    <label class=\"form-check-label\">Aucun<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"TBSymptoms\" type=\"checkbox\" id=\"Productive Cough\" value=\"Productive Cough\">\n                    <label class=\"form-check-label\" for=\"Productive Cough\">Une toux productive pendant plus de 3 semaines<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"TBSymptoms\" type=\"checkbox\" id=\"Hemoptysis\" value=\"Hemoptysis\">\n                    <label class=\"form-check-label\" for=\"Hemoptysis\">H\u00e9moptysie (cracher du sang)<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"TBSymptoms\" type=\"checkbox\" id=\"Weight Loss\" value=\"Weight Loss\">\n                    <label class=\"form-check-label\" for=\"Weight Loss\">Perte de poids inexpliqu\u00e9e<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"TBSymptoms\" type=\"checkbox\" id=\"Fever\" value=\"Fever\">\n                    <label class=\"form-check-label\" for=\"Fever\">Fi\u00e8vre, frissons ou sueurs nocturnes sans raison connue<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"TBSymptoms\" type=\"checkbox\" id=\"Shortness Of Breath\" value=\"Shortness Of Breath\">\n                    <label class=\"form-check-label\" for=\"Shortness Of Breath\">Essoufflement persistant<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"TBSymptoms\" type=\"checkbox\" id=\"Fatigue\" value=\"Fatigue\">\n                    <label class=\"form-check-label\" for=\"Fatigue\">Fatigue inexpliqu\u00e9e<\/label>\n                <\/div>\n            <\/div>\n\n\n            <div class=\"question tb-question \">\n                <p>Avez-vous d\u00e9j\u00e0 eu un test cutan\u00e9 positif pour la tuberculose ?<span class=\"astrisc\">*<\/span><\/p>\n                <select class=\"form-select\" id=\"previousPositiveTBTest\" aria-label=\"Default select example\">\n                    <option value=\"No\">Non<\/option>\n                    <option value=\"Yes\">Oui<\/option>\n                <\/select>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"previousPositiveTBTestOther\" class=\"form-label\">Quand avez-vous pass\u00e9 votre test cutan\u00e9 positif pour la tuberculose ?<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"previousPositiveTBTestOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question tb-question\">\n                <p>Avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 en contact \u00e9troit avec quelqu'un qui \u00e9tait malade de la tuberculose ?<span class=\"astrisc\">*<\/span><\/p>\n                <select class=\"form-select\" id=\"contactWithTB\" aria-label=\"Default select example\">\n                    <option value=\"No\">Non<\/option>\n                    <option value=\"Yes\">Oui<\/option>\n                <\/select>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"contactWithTBOther\" class=\"form-label\">Quand avez-vous \u00e9t\u00e9 en contact avec quelqu'un atteint de la tuberculose ?<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"contactWithTBOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question tb-question \">\n                <p>Avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 vaccin\u00e9 avec le BCG (Bacille Calmette-Gu\u00e9rin) ?<span class=\"astrisc\">*<\/span><\/p>\n                <select class=\"form-select\" id=\"BCGVaccinated\" aria-label=\"Default select example\">\n                    <option value=\"No\">Non<\/option>\n                    <option value=\"Yes\">Oui<\/option>\n                <\/select>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"BCGVaccinatedOther\" class=\"form-label\">Si oui, quand avez-vous \u00e9t\u00e9 vaccin\u00e9 ?<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"BCGVaccinatedOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question tb-question required\">\n                <div class=\"mb-3 \">\n                    <label for=\"reasonForTBTest\" class=\"form-label\">Pourquoi avez-vous besoin d'un test cutan\u00e9 pour la tuberculose ?<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"reasonForTBTest\">\n                <\/div>\n            <\/div>\n\n\n\n            <div class=\"question sleep-question\">\n                <p>Avez-vous des allergies ?<span class=\"astrisc\">*<\/span><\/p>\n                <!-- Option explicite permettant de d\u00e9clarer l'absence\n                     d'allergies. La cocher vide + d\u00e9sactive la liste et le champ\n                     libre et force le champ masqu\u00e9 #allergies \u00e0\n                     \u00ab No Known Allergies \u00bb. -->\n                <div class=\"form-check mb-2\">\n                    <input class=\"form-check-input\" type=\"checkbox\" id=\"noKnownAllergies\">\n                    <label class=\"form-check-label\" for=\"noKnownAllergies\">Aucune allergie connue<\/label>\n                <\/div>\n                <!-- Liste structur\u00e9e d'allerg\u00e8nes, toujours visible. Charg\u00e9e\n                     au d\u00e9marrage depuis \/api\/v2\/public\/allergens?lang=fr. -->\n                <div id=\"structuredAllergens\" class=\"mb-3\">\n                    <p class=\"form-label\">Cochez toutes celles qui s'appliquent :<\/p>\n                    <div id=\"structuredAllergensList\"><\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"allergiesOther\" class=\"form-label\">Autres allergies (facultatif, une par ligne)<\/label>\n                    <textarea data-clarity-unmask=\"true\" class=\"form-control\" id=\"allergiesOther\" rows=\"3\" maxlength=\"500\" placeholder=\"Fraises, pollen\u2026\"><\/textarea>\n                    <small class=\"form-text text-muted\" id=\"allergiesOtherCharCount\">0 \/ 500 caract\u00e8res<\/small>\n                    <div class=\"error-message\" id=\"allergiesOtherError\" style=\"display: none; color: red; margin-top: 5px;\"><\/div>\n                <\/div>\n                <!-- Champ h\u00e9rit\u00e9 masqu\u00e9 : refl\u00e8te l'\u00e9tat du formulaire pour l'ingest existant. -->\n                <input type=\"hidden\" id=\"allergies\" value=\"No Known Allergies\" \/>\n            <\/div>\n\n            <div class=\"question required travel-question sleep-question\">\n                <p>Avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 inform\u00e9 que vous avez une maladie pulmonaire\/une maladie respiratoire ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"None\" value=\"None\">\n                    <label class=\"form-check-label\">Aucune<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"COPD\" value=\"COPD\">\n                    <label class=\"form-check-label\" for=\"COPD\">BPCO (Bronchopneumopathie chronique obstructive)<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"Sleep Apnea\" value=\"Sleep Apnea\">\n                    <label class=\"form-check-label\" for=\"Sleep Apnea\">Apn\u00e9e du sommeil<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"Emphysema\" value=\"Emphysema\">\n                    <label class=\"form-check-label\" for=\"Emphysema\">Emphys\u00e8me<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"Chronic Bronchitis\" value=\"Chronic Bronchitis\">\n                    <label class=\"form-check-label\" for=\"Chronic Bronchitis\">Bronchite chronique<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"Asthma\" value=\"Asthma\">\n                    <label class=\"form-check-label\" for=\"Asthma\">Asthme<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"Pulmonary Fibrosis\" value=\"Pulmonary Fibrosis\">\n                    <label class=\"form-check-label\" for=\"Pulmonary Fibrosis\">Fibrose pulmonaire<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"respiratoryIllness\" type=\"checkbox\"\n                           id=\"Other\" value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"respiratoryIllnessOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"respiratoryIllnessOther\">\n                <\/div>\n            <\/div>\n\n\n\n            <div class=\"question required travel-question sleep-question\">\n                <p>Avez-vous une maladie digestive\/une maladie gastro-intestinale ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"digestiveIllness\" type=\"checkbox\"\n                           id=\"None\" value=\"None\">\n                    <label class=\"form-check-label\">Aucune<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"digestiveIllness\" type=\"checkbox\"\n                           id=\"Irritablebowelsyndrome\" value=\"Irritable bowel syndrome\">\n                    <label class=\"form-check-label\" for=\"Irritablebowelsyndrome\">Syndrome du c\u00f4lon irritable<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"digestiveIllness\" type=\"checkbox\"\n                           id=\"crohn's disease\" value=\"Crohn's disease\">\n                    <label class=\"form-check-label\" for=\"crohn's disease\">Maladie de Crohn<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"digestiveIllness\" type=\"checkbox\"\n                           id=\"colitis\" value=\"Colitis\">\n                    <label class=\"form-check-label\" for=\"colitis\">Colite<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"digestiveIllness\" type=\"checkbox\"\n                           id=\"gastricreflux\" value=\"Gastric Reflux\">\n                    <label class=\"form-check-label\" for=\"gastricreflux\">Reflux gastrique<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"digestiveIllness\" type=\"checkbox\"\n                           id=\"Other\" value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"digestiveIllnessOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"digestiveIllnessOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required travel-question\">\n                <p>Avez-vous une maladie du foie ? Avez-vous d\u00e9j\u00e0 eu une infection \u00e0 l'h\u00e9patite ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"liverDisease\" type=\"checkbox\"\n                           id=\"None\" value=\"None\">\n                    <label class=\"form-check-label\">Aucune<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"liverDisease\" type=\"checkbox\"\n                           id=\"Hepatitis A\" value=\"Hepatitis A\">\n                    <label class=\"form-check-label\" for=\"Hepatitis A\">H\u00e9patite A<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"liverDisease\" type=\"checkbox\"\n                           id=\"Hepatitis B\" value=\"Hepatitis B\">\n                    <label class=\"form-check-label\" for=\"Hepatitis B\">H\u00e9patite B<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"liverDisease\" type=\"checkbox\"\n                           id=\"Hepatitis B\" value=\"Hepatitis C\">\n                    <label class=\"form-check-label\" for=\"Hepatitis C\">H\u00e9patite C<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"liverDisease\" type=\"checkbox\"\n                           id=\"Other\" value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"liverDiseaseOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"liverDiseaseOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required travel-question sleep-question\">\n                <p>Avez-vous d\u00e9j\u00e0 eu des probl\u00e8mes r\u00e9naux ou avez-vous \u00e9t\u00e9 diagnostiqu\u00e9 avec une maladie r\u00e9nale ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radiokidney\"\n                           id=\"radioOther\" value=\"true\"\n                           required>\n                    <label class=\"form-check-label\" for=\"radioOther\">Oui<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radiokidney\"\n                           id=\"radioOther\" value=\"false\"\n                           required>\n                    <label class=\"form-check-label\" for=\"radioOther\">Non<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"kidneyIllnessOther\" class=\"form-label\">Veuillez pr\u00e9ciser<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"kidneyIllnessOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required travel-question\">\n                <p>Avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 diagnostiqu\u00e9 avec un cancer ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radioCancer\"\n                           id=\"radioOther\" value=\"true\"\n                           required>\n                    <label class=\"form-check-label\" for=\"radioOther\">Oui<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radioCancer\"\n                           id=\"radioOther\" value=\"false\"\n                           required>\n                    <label class=\"form-check-label\" for=\"radioOther\">Non<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"cancerOther\" class=\"form-label\">Veuillez pr\u00e9ciser<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"cancerOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required travel-question sleep-question\">\n                <p>Avez-vous d\u00e9j\u00e0 \u00e9prouv\u00e9 ou \u00e9t\u00e9 diagnostiqu\u00e9 avec un trouble neurologique ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"neurologicalDisorder\"\n                           type=\"checkbox\" id=\"None\"\n                           value=\"None\">\n                    <label class=\"form-check-label\">Aucun<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"neurologicalDisorder\"\n                           type=\"checkbox\" id=\"Epilepsy\"\n                           value=\"Epilepsy\">\n                    <label class=\"form-check-label\" for=\"Epilepsy\">\u00c9pilepsie<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"neurologicalDisorder\"\n                           type=\"checkbox\"\n                           id=\"Convulsions or Seizures\" value=\"Convulsions or Seizures\">\n                    <label class=\"form-check-label\" for=\"Convulsions or Seizures\">Convulsions ou Crises<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"neurologicalDisorder\"\n                           type=\"checkbox\" id=\"Meningitis\"\n                           value=\"Meningitis\">\n                    <label class=\"form-check-label\" for=\"Meningitis\">M\u00e9ningite<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"neurologicalDisorder\"\n                           type=\"checkbox\"\n                           id=\"Cerebral Malaria\" value=\"Cerebral Malaria\">\n                    <label class=\"form-check-label\" for=\"Cerebral Malaria\">Paludisme c\u00e9r\u00e9bral<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"neurologicalDisorder\"\n                           type=\"checkbox\" id=\"Other\"\n                           value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"neurologicalDisorderOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"neurologicalDisorderOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required travel-question sleep-question\">\n                <p>Avez-vous d\u00e9j\u00e0 \u00e9prouv\u00e9 ou \u00e9t\u00e9 diagnostiqu\u00e9 avec un trouble psychiatrique ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"psychiatricDisorder\"\n                           type=\"checkbox\" id=\"None\"\n                           value=\"None\">\n                    <label class=\"form-check-label\">Aucun<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"psychiatricDisorder\"\n                           type=\"checkbox\" id=\"Depression\"\n                           value=\"Depression\">\n                    <label class=\"form-check-label\" for=\"Depression\">D\u00e9pression<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"psychiatricDisorder\"\n                           type=\"checkbox\" id=\"Anxiety\"\n                           value=\"Anxiety\">\n                    <label class=\"form-check-label\" for=\"Anxiety\">Anxi\u00e9t\u00e9<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"psychiatricDisorder\"\n                           type=\"checkbox\" id=\"Bipolar\"\n                           value=\"Bipolar\">\n                    <label class=\"form-check-label\" for=\"Bipolar\">Bipolaire<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"psychiatricDisorder\"\n                           type=\"checkbox\" id=\"Schizophrenia\"\n                           value=\"Schizophrenia\">\n                    <label class=\"form-check-label\" for=\"Schizophrenia\">Schizophr\u00e9nie<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"psychiatricDisorder\"\n                           type=\"checkbox\"\n                           id=\"Burnout\/Medical Leave of Absence\" value=\"Burnout\/Medical Leave of Absence\">\n                    <label class=\"form-check-label\" for=\"Burnout\/Medical Leave of Absence\">Burnout\/Cong\u00e9 de maladie<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"psychiatricDisorder\"\n                           type=\"checkbox\" id=\"Other\"\n                           value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"psychiatricDisorderOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"psychiatricDisorderOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required\">\n                <p>Avez-vous actuellement des troubles cutan\u00e9s ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"skinDisorder\" type=\"checkbox\"\n                           id=\"None\" value=\"None\">\n                    <label class=\"form-check-label\">Aucun<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"skinDisorder\" type=\"checkbox\"\n                           id=\"Psoriasis\"\n                           value=\"Psoriasis\">\n                    <label class=\"form-check-label\" for=\"Psoriasis\">Psoriasis<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"skinDisorder\" type=\"checkbox\"\n                           id=\"Eczema\" value=\"Eczema\">\n                    <label class=\"form-check-label\" for=\"Eczema\">Ecz\u00e9ma<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"skinDisorder\" type=\"checkbox\"\n                           id=\"Other\" value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"skinDisorderOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"skinDisorderOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required \">\n                <p>Souffrez-vous actuellement ou avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 immunosupprim\u00e9 (syst\u00e8me immunitaire affaibli) ?<span\n                        class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"immunoSuppressed\" type=\"checkbox\"\n                           id=\"None\" value=\"None\">\n                    <label class=\"form-check-label\">Aucun<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"immunoSuppressed\" type=\"checkbox\"\n                           id=\"Due to Medication\"\n                           value=\"Due to Medication\">\n                    <label class=\"form-check-label\" for=\"Due to Medication\">En raison de m\u00e9dicaments<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"immunoSuppressed\" type=\"checkbox\"\n                           id=\"Hereditary Conditions\" value=\"Hereditary Conditions\">\n                    <label class=\"form-check-label\" for=\"Hereditary Conditions\">Conditions h\u00e9r\u00e9ditaires<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"immunoSuppressed\" type=\"checkbox\"\n                           id=\"Splenectomy\"\n                           value=\"Splenectomy\">\n                    <label class=\"form-check-label\" for=\"Splenectomy\">Spl\u00e9nectomie<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"immunoSuppressed\" type=\"checkbox\"\n                           id=\"HIV\" value=\"HIV\">\n                    <label class=\"form-check-label\" for=\"HIV\">VIH<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"immunoSuppressed\" type=\"checkbox\"\n                           id=\"AIDS\" value=\"AIDS\">\n                    <label class=\"form-check-label\" for=\"AIDS\">SIDA<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"immunoSuppressed\" type=\"checkbox\"\n                           id=\"Other\"\n                           value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"immunoSuppressedOther\" class=\"form-label\">Pr\u00e9cisions sur la condition h\u00e9r\u00e9ditaire ou autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"immunoSuppressedOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question required travel-question sleep-question\">\n                <p>Avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 diagnostiqu\u00e9 avec le diab\u00e8te ?<span class=\"astrisc\">*<\/span>\n                <\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radiodiabetes\"\n                           id=\"radioOther\" value=\"true\"\n                           required>\n                    <label class=\"form-check-label\" for=\"radiodiabetes\">Oui<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radiodiabetes\"\n                           id=\"radioOther\" value=\"false\"\n                           required>\n                    <label class=\"form-check-label\" for=\"radioOther\">Non<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"diabetesOther\" class=\"form-label\">Veuillez sp\u00e9cifier<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"diabetesOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"mb-3 question-group sleep-question\">\n                <label for=\"chronicIllness\" class=\"form-label\">Avez-vous des conditions chroniques ou aigu\u00ebs, des troubles ou des maladies qui n'ont pas \u00e9t\u00e9 mentionn\u00e9s ci-dessus ?<span class=\"astrisc\">*<\/span><\/label>\n                <textarea class=\"form-control\" id=\"chronicIllness\" rows=\"3\" required><\/textarea>\n                <div class=\"invalid-feedback\">\n                    Ce champ est requis\n                <\/div>\n            <\/div>\n\n\n            <div class=\"maternity-section\">\n                <div class=\"mb-3 question-group\">\n                    <p class=\"travel-question\">Statut de maternit\u00e9<\/p>\n                    <select class=\"form-select travel-question\" id=\"maternity\" aria-label=\"Default select example\">\n                        <option value=\"None\">Aucun<\/option>\n                        <option value=\"I am pregnant\">Je suis enceinte<\/option>\n                        <option value=\"I am planning a pregnancy\">Je pr\u00e9vois une grossesse<\/option>\n                        <option value=\"I am breastfeeding\">J'allaite<\/option>\n                    <\/select>\n                <\/div>\n\n                <div class=\"mb-3 question-group\">\n                    <label for=\"medications\" class=\"form-label\">Prenez-vous des m\u00e9dicaments r\u00e9guliers ? Si oui, veuillez inclure tous les m\u00e9dicaments sur ordonnance, inhalateurs\/puffs, suppl\u00e9ments \u00e0 base de plantes et m\u00e9dicaments en vente libre.<span class=\"astrisc\">*<\/span><\/label>\n                    <textarea class=\"form-control\" id=\"medications\" rows=\"3\" required><\/textarea>\n                    <div class=\"invalid-feedback\">\n                        Ce champ est requis\n                    <\/div>\n                <\/div>\n                <div class=\"question required travel-question\">\n                    <p> Avez-vous re\u00e7u tous vos vaccins de l'enfance ?<\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radioVaccine\" id=\"radioOther\" value=\"true\" required>\n                        <label class=\"form-check-label\">Oui<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radioVaccine\" id=\"radioOther\" value=\"false\" required>\n                        <label class=\"form-check-label\">Non<\/label>\n                    <\/div>\n                    <div class=\"mb-3 other-section\">\n                        <label for=\"radioVaccineCountry\" class=\"form-label\">Dans quelle province\/pays avez-vous re\u00e7u vos vaccins de l'enfance ?<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"radioVaccineCountry\" maxlength=\"255\">\n                    <\/div>\n                <\/div>\n                <div class=\"question required travel-question\">\n                    <p>Vivez-vous ou travaillez-vous en contact \u00e9troit avec les populations suivantes ?<\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"contactPopulation\" type=\"checkbox\" id=\"None\" value=\"None\">\n                        <label class=\"form-check-label\">Aucun<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"contactPopulation\" type=\"checkbox\" id=\"Babies\/Children\" value=\"Babies\/Children\">\n                        <label class=\"form-check-label\" for=\"Babies\/Children\">B\u00e9b\u00e9s\/Enfants<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"contactPopulation\" type=\"checkbox\" id=\"Elderly\" value=\"Elderly\">\n                        <label class=\"form-check-label\" for=\"Elderly\">Personnes \u00e2g\u00e9es<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"contactPopulation\" type=\"checkbox\" id=\"Someone with a chronic illness\" value=\"Someone with a chronic illness\">\n                        <label class=\"form-check-label\" for=\"Someone with a chronic illness\">Quelqu'un avec une maladie chronique<\/label>\n                    <\/div>\n                <\/div>\n                <div class=\"question required travel-question\">\n                    <p>Avez-vous d\u00e9j\u00e0 eu une r\u00e9action ind\u00e9sirable \u00e0 un vaccin ?<\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"adverseReactionToVaccine\" type=\"checkbox\" id=\"None\" value=\"None\">\n                        <label class=\"form-check-label\">Aucune<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"adverseReactionToVaccine\" type=\"checkbox\" id=\"Anaphylactic Shock\" value=\"Anaphylactic Shock\">\n                        <label class=\"form-check-label\" for=\"Anaphylactic Shock\">Choc anaphylactique<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"adverseReactionToVaccine\" type=\"checkbox\" id=\"Vasovagal\" value=\"Vasovagal\">\n                        <label class=\"form-check-label\" for=\"Vasovagal\">Vasovagal<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"adverseReactionToVaccine\" type=\"checkbox\" id=\"Other\" value=\"Other\">\n                        <label class=\"form-check-label\">Autre<\/label>\n                    <\/div>\n                    <div class=\"mb-3 other-section\">\n                        <label for=\"adverseReactionToVaccineOther\" class=\"form-label\">Autre<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"adverseReactionToVaccineOther\">\n                    <\/div>\n                <\/div>\n                <div class=\"question required travel-question\">\n                    <p style=\"margin-top: 10px; margin-bottom: 3px;\">Fumez-vous des cigarettes ?<\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radioSmoke\" id=\"radioSmoke\" value=\"true\" required>\n                        <label class=\"form-check-label\" for=\"radioSmoke\">Oui<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"radio\" name=\"radioSmoke\" id=\"radioSmoke\" value=\"false\" required>\n                        <label class=\"form-check-label\" for=\"radioSmoke\">Non<\/label>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"question required sleep-question only-sleep-question\">\n                <h3 class=\"h5\">Sympt\u00f4mes du sommeil<\/h3>\n                <p class=\"mb-2\">S\u00e9lectionnez les sympt\u00f4mes qui correspondent \u00e0 votre situation actuelle :<span class=\"astrisc\">*<\/span><\/p>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"snoring\" value=\"Snoring\">\n                    <label class=\"form-check-label\" for=\"snoring\">Ronflements<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"restlessSleep\" value=\"Restless sleep\">\n                    <label class=\"form-check-label\" for=\"restlessSleep\">Sommeil agit\u00e9<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"daytimeDrowsiness\" value=\"Daytime drowsiness\">\n                    <label class=\"form-check-label\" for=\"daytimeDrowsiness\">Somnolence diurne<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"nightSweats\" value=\"Night sweats\">\n                    <label class=\"form-check-label\" for=\"nightSweats\">Sueurs nocturnes<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"observedRespiratoryArrest\" value=\"Observed respiratory arrest\">\n                    <label class=\"form-check-label\" for=\"observedRespiratoryArrest\">Arr\u00eat respiratoire observ\u00e9<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"memoryLoss\" value=\"Memory loss\">\n                    <label class=\"form-check-label\" for=\"memoryLoss\">Perte de m\u00e9moire<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"tiredUponAwakening\" value=\"Tired upon awakening\">\n                    <label class=\"form-check-label\" for=\"tiredUponAwakening\">Fatigu\u00e9 au r\u00e9veil<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"irritability\" value=\"Irritability\">\n                    <label class=\"form-check-label\" for=\"irritability\">Irritabilit\u00e9<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"headacheMorning\" value=\"Headache in the morning\">\n                    <label class=\"form-check-label\" for=\"headacheMorning\">Maux de t\u00eate le matin<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"lackOfConcentration\" value=\"Lack of concentration\">\n                    <label class=\"form-check-label\" for=\"lackOfConcentration\">Manque de concentration<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"difficultyBreathingNight\" value=\"Difficulty breathing at night\">\n                    <label class=\"form-check-label\" for=\"difficultyBreathingNight\">Difficult\u00e9 \u00e0 respirer la nuit<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"jawPain\" value=\"Jaw pain\">\n                    <label class=\"form-check-label\" for=\"jawPain\">Douleur \u00e0 la m\u00e2choire<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"chokingAwakening\" value=\"Choking with awakening during sleep\">\n                    <label class=\"form-check-label\" for=\"chokingAwakening\">S'\u00e9touffer au r\u00e9veil pendant le sommeil<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"grindTeeth\" value=\"Grind your teeth or clench your jaw\">\n                    <label class=\"form-check-label\" for=\"grindTeeth\">Grincer des dents ou serrer la m\u00e2choire<\/label>\n                <\/div>\n\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"frequentAwakening\" value=\"Frequent awakening\">\n                    <label class=\"form-check-label\" for=\"frequentAwakening\">R\u00e9veils fr\u00e9quents<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"sleepSymptoms\" type=\"checkbox\" id=\"nonRestorativeSleep\" value=\"Non-restorative sleep\">\n                    <label class=\"form-check-label\" for=\"nonRestorativeSleep\">Sommeil non r\u00e9parateur<\/label>\n                <\/div>\n            <\/div>\n\n        <\/div>\n        <hr>\n\n        <div class=\"lifestyle-section section\">\n            <h3><i class=\"fas fa-heartbeat\"><\/i> Informations sur le mode de vie<\/h3>\n\n            <!-- <p> Avez-vous d\u00e9j\u00e0 \u00e9t\u00e9 diagnostiqu\u00e9 avec le diab\u00e8te ?<span class=\"astrisc\">*<\/span>\n            <\/p> -->\n\n            <!-- Section Tabac -->\n            <div class=\"question required sleep-question\">\n                <p class=\"mb-3 h5\">Tabac<\/p>\n                <div class=\"mb-3\">\n                    <p class=\"mb-0\">Avez-vous d\u00e9j\u00e0 fum\u00e9 ?<span class=\"astrisc\">*<\/span><\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input smoke-ever\" type=\"radio\"\n                               name=\"everSmoke\" value=\"no\" required>\n                        <label class=\"form-check-label\">Non<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input smoke-ever\" type=\"radio\"\n                               name=\"everSmoke\" value=\"yes\" required>\n                        <label class=\"form-check-label\">Oui<\/label>\n                    <\/div>\n                <\/div>\n                <!-- Question conditionnelle : \"Fumez-vous toujours ?\" -->\n                <div class=\"still-smoking-question mb-3\" style=\"display: none;\">\n                    <p class=\"mb-0\">Fumez-vous toujours ?<span class=\"astrisc\">*<\/span><\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input smoke-still\" type=\"radio\"\n                               name=\"stillSmoking\" value=\"no\">\n                        <label class=\"form-check-label\">Non<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input smoke-still\" type=\"radio\"\n                               name=\"stillSmoking\" value=\"yes\">\n                        <label class=\"form-check-label\">Oui<\/label>\n                    <\/div>\n                <\/div>\n\n                <!-- Questions conditionnelles sur le tabac -->\n                <div class=\"tobacco-details\" style=\"display: none;\">\n\n                    <div class=\"mb-3\">\n                        <label for=\"cigarettesPerDay\" class=\"form-label\">Combien de cigarettes fumez-vous par jour ?<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"number\" class=\"form-control\" id=\"cigarettesPerDay\"\n                               name=\"cigarettesPerDay\">\n                        <div class=\"invalid-feedback\">\n                            Ce champ est obligatoire\n                        <\/div>\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"yearsSmoking\" class=\"form-label\">Depuis combien d'ann\u00e9es fumez-vous ?<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"number\" class=\"form-control\" id=\"yearsSmoking\"\n                               name=\"yearsSmoking\">\n                        <div class=\"invalid-feedback\">\n                            Ce champ est obligatoire\n                        <\/div>\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"yearsStopped\" class=\"form-label\">Depuis combien de temps avez-vous arr\u00eat\u00e9 de fumer ? (si\n                            applicable)<\/label>\n                        <input data-clarity-unmask=\"true\" type=\"number\" class=\"form-control\" id=\"yearsStopped\"\n                               name=\"yearsStopped\">\n                        <div class=\"invalid-feedback\">\n                            Ce champ est obligatoire\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Section Alcool -->\n            <div class=\"question required sleep-question\">\n                <p class=\"mb-3 h5\">Alcool<\/p>\n                <div class=\"mb-3\">\n                    <p class=\"mb-0\">Consommez-vous r\u00e9guli\u00e8rement de l'alcool (vin, bi\u00e8re et\/ou spiritueux) ?<span\n                            class=\"astrisc\">*<\/span>\n                    <\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input alcohol-answer\" type=\"radio\"\n                               name=\"alcohol\" value=\"no\" required>\n                        <label class=\"form-check-label\">Non<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input alcohol-answer\" type=\"radio\"\n                               name=\"alcohol\" value=\"yes\" required>\n                        <label class=\"form-check-label\">Oui<\/label>\n                    <\/div>\n                <\/div>\n\n                <!-- Questions conditionnelles sur l'alcool -->\n                <div class=\"alcohol-details\" style=\"display: none;\">\n                    <p class=\"mb-0\">Si oui, \u00e0 quel moment de la journ\u00e9e ?<span class=\"astrisc\">*<\/span><\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"checkbox\" name=\"timeOfDay\"\n                               value=\"lunch\">\n                        <label class=\"form-check-label\">D\u00e9jeuner<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"checkbox\" name=\"timeOfDay\"\n                               value=\"dinner\">\n                        <label class=\"form-check-label\">D\u00eener<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"checkbox\" name=\"timeOfDay\"\n                               value=\"evening\">\n                        <label class=\"form-check-label\">Soir\u00e9e<\/label>\n                    <\/div>\n                    <div class=\"mb-3\">\n                        <label for=\"drinksPerWeek\" class=\"form-label\">Nombre de verres par semaine :<span\n                                class=\"astrisc\">*<\/span><\/label>\n                        <input data-clarity-unmask=\"true\" type=\"number\" class=\"form-control\" id=\"drinksPerWeek\"\n                               name=\"drinksPerWeek\">\n                        <div class=\"invalid-feedback\">\n                            Ce champ est obligatoire\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Section Drogues -->\n            <div class=\"question required sleep-question\">\n                <p class=\"mb-3 h5\">Drogues<\/p>\n                <p>Consommez-vous des drogues (y compris des somnif\u00e8res) ?<span class=\"astrisc\">*<\/span><\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input drugs-answer\" type=\"radio\" name=\"drugs\"\n                           value=\"no\" required>\n                    <label class=\"form-check-label\">Non<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input drugs-answer\" type=\"radio\" name=\"drugs\"\n                           value=\"yes\" required>\n                    <label class=\"form-check-label\">Oui<\/label>\n                <\/div>\n\n                <!-- Question conditionnelle sur les drogues -->\n                <div class=\"drugs-details\" style=\"display: none;\">\n                    <label for=\"drugType\" class=\"form-label\">Si oui, quelles drogues :<span class=\"astrisc\">*<\/span><\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"drugType\" name=\"drugType\" maxlength=\"250\">\n                    <div class=\"invalid-feedback\">\n                        Ce champ est obligatoire\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <!-- Section cafe -->\n            <div class=\"question required travel-question\">\n                <p class=\"mb-3 h5\">Caf\u00e9<\/p>\n                <p style=\"margin-top: 10px; margin-bottom: 3px;\">\n                    Combien de tasses de caf\u00e9 bois-tu par jour ?<span class=\"astrisc\">*<\/span>\n                <\/p>\n                <div class=\"mb-3\">\n                    <input data-clarity-unmask=\"true\" type=\"number\" class=\"form-control\" id=\"coffeeCupsPerDay\"\n                        name=\"coffeeCupsPerDay\" min=\"0\" placeholder=\"\" required \/>\n                    <div class=\"invalid-feedback\">\n                        Ce champ est obligatoire\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n            <hr>\n            <div class=\"referrer-section section\">\n                <h3><i class=\"fas fa-user-md\"><\/i> Informations sur le r\u00e9f\u00e9rent<\/h3>\n                <p class=\"subtitle\">\n                Si vous avez \u00e9t\u00e9 r\u00e9f\u00e9r\u00e9 par votre m\u00e9decin ou votre dentiste, veuillez fournir leurs informations afin que nous puissions leur transmettre directement vos r\u00e9sultats. Si vous n'avez pas \u00e9t\u00e9 r\u00e9f\u00e9r\u00e9, mais souhaitez tout de m\u00eame que nous leur envoyions vos r\u00e9sultats, veuillez remplir leurs coordonn\u00e9es et nous serons ravis d'accommoder votre demande.\n            <\/p>\n            <div class=\"row\">\n                <div class=\"col-md-6 mb-3\">\n                    <label for=\"doctorFirstName\" class=\"form-label\">Pr\u00e9nom du m\u00e9decin<\/label>\n                    <input type=\"text\" class=\"form-control\" id=\"doctorFirstName\" name=\"doctorFirstName\">\n                <\/div>\n                <div class=\"col-md-6 mb-3\">\n                    <label for=\"doctorLastName\" class=\"form-label\">Nom de famille du m\u00e9decin<\/label>\n                    <input type=\"text\" class=\"form-control\" id=\"doctorLastName\" name=\"doctorLastName\" onblur=\"handleSearch('Doctor')\">\n                <\/div>\n            <\/div>\n            <div class=\"row\">\n                <div class=\"col-md-6 mb-3\">\n                    <label for=\"dentistFirstName\" class=\"form-label\">Pr\u00e9nom du dentiste<\/label>\n                    <input type=\"text\" class=\"form-control\" id=\"dentistFirstName\" name=\"dentistFirstName\">\n                <\/div>\n                <div class=\"col-md-6 mb-3\">\n                    <label for=\"dentistLastName\" class=\"form-label\">Nom de famille du dentiste<\/label>\n                    <input type=\"text\" class=\"form-control\" id=\"dentistLastName\" name=\"dentistLastName\" onblur=\"handleSearch('Dentist')\">\n                <\/div>\n            <\/div>\n        \n            <!-- Modal for Selection -->\n            <div class=\"modal fade\" id=\"selectionModal\" tabindex=\"-1\" aria-hidden=\"true\">\n                <div class=\"modal-dialog modal-lg\">\n                    <div class=\"modal-content\">\n                        <div class=\"modal-header\">\n                            <div>\n                                <h5 class=\"modal-title\">Veuillez pr\u00e9ciser votre r\u00e9f\u00e9rent<\/h5>\n                                <p class=\"subtitle\">\n                                    Veuillez s\u00e9lectionner votre r\u00e9f\u00e9rent dans la liste ci-dessous afin que nous puissions leur transmettre vos r\u00e9sultats avec pr\u00e9cision une fois votre test termin\u00e9.\n                                <\/p>\n                            <\/div>\n                            <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Fermer\"><\/button>\n                        <\/div>\n                        <div class=\"modal-body\">\n                            <div id=\"professionalOptions\"><\/div>\n                        <\/div>\n                        <div class=\"modal-footer\">\n                            <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Enregistrer et fermer<\/button>\n                            <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Mon m\u00e9decin ne figure pas dans la liste<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n        <script>\n            \/\/ Resolved at call time so a fallback API base chosen during\n            \/\/ initialization also applies to referring-professional lookups.\n            function resolveReferringProfessionalsApiUrl() {\n                return resolvePublicApiBase(window.location.search).replace(\/\\\/$\/, \"\") + '\/questionnaire\/getReferringProfessionals';\n            }\n            const RECORD_TYPE = '012OJ000001de9uYAA';\n        \n            function handleSearch(professionalType) {\n                const firstName = document.getElementById(`${professionalType.toLowerCase()}FirstName`).value.trim();\n                const lastName = document.getElementById(`${professionalType.toLowerCase()}LastName`).value.trim();\n        \n                if (!lastName) return;\n        \n                fetch(resolveReferringProfessionalsApiUrl(), {\n                    method: 'POST',\n                    headers: { 'Content-Type': 'application\/json' },\n                    body: JSON.stringify({\n                        firstName,\n                        lastName,\n                        recordType: RECORD_TYPE,\n                        professionalType,\n                    }),\n                })\n                .then((response) => response.json())\n                .then((data) => displayProfessionalOptions(data, professionalType))\n                .catch((error) => console.error(`Erreur lors de la r\u00e9cup\u00e9ration des ${professionalType}s:`, error));\n            }\n        \n            function displayProfessionalOptions(professionals, professionalType) {\n                const optionsContainer = document.getElementById('professionalOptions');\n                optionsContainer.innerHTML = '';\n        \n                const modalTitle = document.querySelector('.modal-title');\n                const notInListButton = document.querySelector('#selectionModal .btn-secondary:last-of-type');\n                const saveCloseButton = document.querySelector('#selectionModal .btn-secondary:first-of-type');\n        \n                modalTitle.textContent = `Veuillez pr\u00e9ciser votre ${professionalType}`;\n                notInListButton.textContent = `Mon ${professionalType} ne figure pas dans la liste`;\n        \n                if (professionals.length === 0) {\n                    optionsContainer.innerHTML = `<p>Aucun ${professionalType} trouv\u00e9. Le formulaire sera soumis sans ID.<\/p>`;\n                } else {\n                    professionals.forEach((professional, index) => {\n                        const isChecked = index === 0 ? 'checked' : '';\n                        optionsContainer.innerHTML += `\n                            <div class=\"mb-3\">\n                                <input type=\"radio\" id=\"${professional.id}\" name=\"${professionalType.toLowerCase()}Selection\" value=\"${professional.id}\" ${isChecked}>\n                                <label for=\"${professional.id}\">\n                                    ${professional.firstName} ${professional.lastName} - ${professional.billingAddress.street}, ${professional.billingAddress.city}, ${professional.billingAddress.state}, ${professional.billingAddress.postalCode}\n                                <\/label>\n                            <\/div>\n                        `;\n                    });\n                }\n        \n                saveCloseButton.onclick = () => {\n                    const selectedId = document.querySelector(`input[name=\"${professionalType.toLowerCase()}Selection\"]:checked`)?.value || null;\n                    if (professionalType === 'Doctor') {\n                        document.getElementById('doctorFirstName').dataset.id = selectedId;\n                        selectedDoctorId = selectedId\n                        console.log(\"doctor selected:\" + selectedId)\n                    } else if (professionalType === 'Dentist') {\n                        document.getElementById('dentistFirstName').dataset.id = selectedId;\n                        selectedDentistId = selectedId\n                    }\n                };\n        \n                notInListButton.onclick = () => {\n                    if (professionalType === 'Doctor') {\n                        document.getElementById('doctorFirstName').dataset.id = null;\n                    } else if (professionalType === 'Dentist') {\n                        document.getElementById('dentistFirstName').dataset.id = null;\n                    }\n                };\n        \n                const modal = new bootstrap.Modal(document.getElementById('selectionModal'));\n                if (professionals.length !== 0) {\n                    modal.show();\n                }\n            }\n        <\/script>\n        <hr>\n\n        <div class=\"sleep-screening-section section\">\n            <h3><i class=\"fas fa-heartbeat\"><\/i> D\u00e9pistage du sommeil<\/h3>\n\n            <!-- StopBang -->\n            <div class=\"mt-3\">\n                <div class=\"OSAQuizeWrapper\">\n                    <div id=\"OSAQuizeForm\">\n                        <h3 class=\"h4\">Est-il possible que vous ayez de l'apn\u00e9e obstructive du sommeil (AOS) ?<\/h3>\n                        <p class=\"text-muted mb-3\">Le questionnaire STOP BANG est un outil de d\u00e9pistage \u00e9prouv\u00e9 utilis\u00e9\n                            pour d\u00e9terminer la probabilit\u00e9 d'avoir une apn\u00e9e obstructive du sommeil (AOS). Ces questions\n                            vous aideront \u00e0 d\u00e9terminer si vous \u00eates \u00e0 faible, moyen ou haut risque pour l'apn\u00e9e du sommeil.<\/p>\n\n                        <div class=\"singleQuestion\">\n\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">Ronflez-vous bruyamment ?<\/span><br\/>\n                                <span class=\"quesitonDesc\">Plus fort que la parole ou assez fort pour \u00eatre entendu \u00e0 travers des portes ferm\u00e9es<\/span>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n                                <div name=\"first\" onclick=\"onAnswerChose('first',0,0)\" class=\"choice selectedBtn\">NON<\/div>\n                                <div name=\"first\" onclick=\"onAnswerChose('first',0,1)\" class=\"choice\">OUI<\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"singleQuestion\">\n\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">Ressentez-vous souvent de la fatigue, de la somnolence ou de la somnolence pendant la journ\u00e9e ?<\/span><br\/>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n                                <div name=\"second\" onclick=\"onAnswerChose('second',1,0)\" class=\"choice selectedBtn\">NON<\/div>\n                                <div name=\"second\" onclick=\"onAnswerChose('second',1,1)\" class=\"choice\">OUI<\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"singleQuestion\">\n\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">Quelqu'un vous a-t-il observ\u00e9 arr\u00eater de respirer pendant votre sommeil ?<\/span><br\/>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n                                <div name=\"third\" onclick=\"onAnswerChose('third',2,0)\" class=\"choice selectedBtn\">NON<\/div>\n                                <div name=\"third\" onclick=\"onAnswerChose('third',2,1)\" class=\"choice\">OUI<\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"singleQuestion\">\n\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">Avez-vous (ou \u00eates-vous trait\u00e9 pour) une hypertension art\u00e9rielle ?<\/span><br\/>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n                                <div name=\"fourth\" onclick=\"onAnswerChose('fourth',3,0)\" class=\"choice selectedBtn\">NON<\/div>\n                                <div name=\"fourth\" onclick=\"onAnswerChose('fourth',3,1)\" class=\"choice\">OUI<\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"singleQuestion\">\n\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">IMC<\/span><br\/>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n\n                                <div class=\"bmi-filed-wrapper\">\n                                    <input type=\"number\" placeholder=\"poids\" id=\"bmi-weight\"\n                                           onkeyup=\"onBmiFieldValueChange(0)\" class=\"form-control\" step=\"0.1\" \/>\n                                    <div onclick=\"onBmiUnitChange(0)\">\n                                        <span id=\"weightUnit\">kg<\/span>\n                                        <svg fill=\"#106fad\"\n                                             style=\"width:13px;vertical-align:middle;margin-left:5px;cursor:pointer;\"\n                                             viewBox=\"0 0 13 13\" data-reactid=\"243\">\n                                            <path\n                                                    d=\"M12,6H1C0.6,6,0.3,5.8,0.1,5.5s-0.2-0.7,0-1l2.3-4c0.3-0.5,1-0.6,1.4-0.4C4.3,0.4,4.5,1,4.2,1.5L2.7,4H12c0.6,0,1,0.4,1,1 S12.6,6,12,6z\"\n                                                    data-reactid=\"244\"><\/path>\n                                            <path\n                                                    d=\"M1,7h11c0.4,0,0.7,0.2,0.9,0.5s0.2,0.7,0,1l-2.3,4c-0.3,0.5-0.9,0.6-1.4,0.4c-0.5-0.3-0.6-0.9-0.4-1.4L10.3,9H1   C0.4,9,0,8.6,0,8S0.4,7,1,7z\"\n                                                    data-reactid=\"245\"><\/path>\n                                        <\/svg>\n                                    <\/div>\n                                <\/div>\n\n                                <div class=\"bmi-filed-wrapper\">\n                                    <input type=\"number\" placeholder=\"taille\" id=\"bmi-height\"\n                                           onkeyup=\"onBmiFieldValueChange(1)\" class=\"form-control\" step=\"0.1\" \/>\n                                    <div onclick=\"onBmiUnitChange(1)\">\n                                        <span id=\"heightUnit\">cm<\/span>\n                                        <svg fill=\"#106fad\"\n                                             style=\"width:13px;vertical-align:middle;margin-left:5px;cursor:pointer;\"\n                                             viewBox=\"0 0 13 13\" data-reactid=\"243\">\n                                            <path\n                                                    d=\"M12,6H1C0.6,6,0.3,5.8,0.1,5.5s-0.2-0.7,0-1l2.3-4c0.3-0.5,1-0.6,1.4-0.4C4.3,0.4,4.5,1,4.2,1.5L2.7,4H12c0.6,0,1,0.4,1,1 S12.6,6,12,6z\"\n                                                    data-reactid=\"244\"><\/path>\n                                            <path\n                                                    d=\"M1,7h11c0.4,0,0.7,0.2,0.9,0.5s0.2,0.7,0,1l-2.3,4c-0.3,0.5-0.9,0.6-1.4,0.4c-0.5-0.3-0.6-0.9-0.4-1.4L10.3,9H1   C0.4,9,0,8.6,0,8S0.4,7,1,7z\"\n                                                    data-reactid=\"245\"><\/path>\n                                        <\/svg>\n                                    <\/div>\n                                <\/div>\n                                <div id=\"height-error\" class=\"invalid-feedback\" style=\"display: none; color: #dc3545;\"><\/div>\n                            <\/div>\n                        <\/div>\n\n                        <!-- <div class=\"singleQuestion\">\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">\u00c2ge<\/span><br\/>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n                                <div name=\"sixth\" onclick=\"onAnswerChose('sixth',5,0)\" class=\"choice selectedBtn\">\u226450\n                                    ans\n                                <\/div>\n                                <div name=\"sixth\" onclick=\"onAnswerChose('sixth',5,1)\" class=\"choice\">>50 ans<\/div>\n                            <\/div>\n                        <\/div> -->\n\n                        <div class=\"singleQuestion\">\n\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">Circonf\u00e9rence du cou (cm)<\/span><br\/>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n                                <input type=\"number\" class=\"form-control\" id=\"neck-circumference\" min=\"0\" step=\"0.1\">\n\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"singleQuestion\">\n                            <div class=\"questionWrapper\">\n                                <span class=\"questionTitle\">Sexe<\/span><br\/>\n                            <\/div>\n\n                            <div class=\"inputWrapper\">\n                                <div name=\"eighth\" onclick=\"onAnswerChose('eighth',7,0)\" class=\"choice selectedBtn\">\n                                    Femme\n                                <\/div>\n                                <div name=\"eighth\" onclick=\"onAnswerChose('eighth',7,1)\" class=\"choice\">Homme<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n\n            <!-- Epworth -->\n            <hr>\n            <div class=\"mt-3\">\n\n                <div class=\"sleepinessQuizeWrapper\">\n                    <p>L'\u00c9chelle de Somnolence d'Epworth \u00e9value votre niveau de somnolence diurne et peut d\u00e9terminer si une\n                        consultation avec un sp\u00e9cialiste du sommeil est n\u00e9cessaire.\n                        Le questionnaire vous demande de noter votre probabilit\u00e9 de vous endormir (sur une \u00e9chelle de 0 \u00e0 3) pendant 8 activit\u00e9s courantes.\n                    <\/p>\n\n                    <p>Le total de ces scores donne votre niveau de somnolence diurne.<\/p>\n                    <div id=\"sleepinessQuizeForm\">\n                        <table class=\"sleepinessQuize\">\n                            <thead>\n                            <tr>\n                                <th><\/th>\n                                <th>Aucune chance de somnoler<\/th>\n                                <th>Faible chance de somnoler<\/th>\n                                <th>Chance mod\u00e9r\u00e9e de somnoler<\/th>\n                                <th>Grande chance de somnoler<\/th>\n                            <\/tr>\n                            <\/thead>\n                            <tbody>\n                            <tr>\n                                <td class=\"quizeQuestion\">Assis et en train de lire<\/td>\n                                <td><input type=\"radio\" name=\"question1\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question1\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question1\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question1\" value=\"3\"><\/td>\n                            <\/tr>\n                            <tr>\n                                <td class=\"quizeQuestion\">Regarder la t\u00e9l\u00e9vision<\/td>\n                                <td><input type=\"radio\" name=\"question2\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question2\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question2\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question2\" value=\"3\"><\/td>\n                            <\/tr>\n\n                            <tr>\n                                <td class=\"quizeQuestion\">Assis sans bouger dans un lieu public (par exemple, un th\u00e9\u00e2tre ou une r\u00e9union)<\/td>\n                                <td><input type=\"radio\" name=\"question3\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question3\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question3\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question3\" value=\"3\"><\/td>\n                            <\/tr>\n\n                            <tr>\n                                <td class=\"quizeQuestion\">S'allonger pour se reposer l'apr\u00e8s-midi lorsque les circonstances le permettent<\/td>\n                                <td><input type=\"radio\" name=\"question4\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question4\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question4\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question4\" value=\"3\"><\/td>\n                            <\/tr>\n\n                            <tr>\n                                <td class=\"quizeQuestion\">Assis et en train de parler \u00e0 quelqu'un<\/td>\n                                <td><input type=\"radio\" name=\"question5\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question5\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question5\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question5\" value=\"3\"><\/td>\n                            <\/tr>\n                            <tr>\n                                <td class=\"quizeQuestion\">Assis tranquillement apr\u00e8s un d\u00e9jeuner sans alcool<\/td>\n                                <td><input type=\"radio\" name=\"question6\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question6\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question6\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question6\" value=\"3\"><\/td>\n                            <\/tr>\n                            <tr>\n                                <td class=\"quizeQuestion\">En tant que passager dans une voiture pendant une heure sans pause<\/td>\n                                <td><input type=\"radio\" name=\"question7\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question7\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question7\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question7\" value=\"3\"><\/td>\n                            <\/tr>\n\n                            <tr>\n                                <td class=\"quizeQuestion\">Dans une voiture, \u00e0 l'arr\u00eat pendant quelques minutes dans les embouteillages<\/td>\n                                <td><input type=\"radio\" name=\"question8\" value=\"0\" required><\/td>\n                                <td><input type=\"radio\" name=\"question8\" value=\"1\"><\/td>\n                                <td><input type=\"radio\" name=\"question8\" value=\"2\"><\/td>\n                                <td><input type=\"radio\" name=\"question8\" value=\"3\"><\/td>\n                            <\/tr>\n                            <\/tbody>\n                        <\/table>\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n\n            <!-- Newsletter subscription (Dorma sleep questionnaire only) -->\n            <div class=\"only-sleep-question mt-4\" style=\"display: flex; align-items: flex-start; gap: 10px;\">\n                <input type=\"checkbox\" id=\"newsletterSubscription\" name=\"newsletterSubscription\" checked style=\"width: 20px; height: 20px; margin-top: 4px; flex-shrink: 0;\">\n                <label for=\"newsletterSubscription\" style=\"margin-bottom: 0; font-weight: 400;\">S'abonner \u00e0 l'infolettre Dorma pour recevoir des promotions et des nouvelles de l'entreprise<\/label>\n            <\/div>\n        <\/div>\n\n\n        <hr>\n        <div class=\"destination-section section\">\n            <h3><i class=\"fas fa-map-marked\"><\/i> Informations sur la destination<\/h3>\n            <p style=\"font-weight:300; font-size:14px\">Veuillez ajouter tous les pays que vous visiterez en\n                recherchant ci-dessous et en cliquant sur \"ajouter un pays \u00e0 la liste\"<\/p>\n            <div class=\"row repeatingSection\">\n                <div class=\"col-sm\">\n                    <label for=\"exampleFormControlInput1\" class=\"form-label\">Pays<\/label>\n                    <div class=\"input-group\">\n                        <input data-clarity-unmask=\"true\" name=\"countrySelection_1\" type=\"text\"\n                               class=\"form-control countrySearch\"\n                               id=\"countrySearch\" autocomplete=\"false\" placeholder=\"Commencez \u00e0 taper...\">\n\n                        <div class=\"invalid-feedback\">\n                            Ce champ est requis\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"col-sm\">\n                    <div class=\"mb-3\">\n                        <label for=\"citiesVisited\" class=\"form-label\">Villes visit\u00e9es<\/label>\n                        <input data-clarity-unmask=\"true\" name=\"citiesVisited_1\" type=\"text\" class=\"form-control\"\n                               id=\"citiesVisited\">\n                        <div class=\"invalid-feedback\">\n                            Ce champ est requis\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"col-sm\">\n                    <div class=\"mb-3\">\n                        <label for=\"days\" class=\"form-label\">Nombre de jours dans le pays<\/label>\n                        <input data-clarity-unmask=\"true\" name=\"citiesVisited_1\" type=\"text\" class=\"form-control\"\n                               id=\"days\">\n                        <div class=\"invalid-feedback\">\n                            Ce champ est requis\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"col-sm addCountryDiv\" style=\"padding-top:30px\">\n                    <div id=\"addCountryError\"><\/div>\n                    <button type=\"button\" class=\"btn btn-primary addCountry\" id=\"#addCountry\">Ajouter un pays \u00e0\n                        la liste\n                    <\/button>\n                <\/div>\n                <table class=\"table\">\n                    <tbody>\n\n                    <\/tbody>\n                <\/table>\n\n            <\/div>\n        <\/div>\n\n\n        <hr>\n\n        <div class=\"trip-section section\">\n            <h3><i class=\"fas fa-suitcase\"><\/i> Information sur le voyage<\/h3>\n            <div class=\"mb-3 departureDate\">\n                <label for=\"departureDate\" class=\"form-label\">Date de d\u00e9part<\/label>\n                <div class=\"input-group date\" data-provide=\"datepicker\">\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control departure-date-picker\"\n                           data-date-format='yyyy-mm-dd'\n                           placeholder=\"aaaa-mm-jj\" id=\"departureDate\" required>\n                    <div class=\"input-group-addon close-button\">\n                        <span class=\"fa fa-calendar input-group-text start_date_calendar\"\n                              aria-hidden=\"true \"><\/span>\n                        <div class=\"invalid-feedback\">\n                            Ce champs est obligatoire\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"mb-3\">\n                <label for=\"returnDate\" class=\"form-label\">Date de retour (facultative)<\/label>\n                <div class=\"input-group date\" data-provide=\"datepicker\">\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control return-date-picker\"\n                           data-date-format='yyyy-mm-dd'\n                           placeholder=\"aaaa-mm-jj\" id=\"returnDate\">\n                    <div class=\"input-group-addon close-button\">\n                        <span class=\"fa fa-calendar input-group-text start_date_calendar\"\n                              aria-hidden=\"true \"><\/span>\n                    <\/div>\n                <\/div>\n                <small class=\"form-text text-muted\" id=\"tripDurationNote\">\n                    Ajoutez une date de retour facultative pour estimer le nombre de jours d'absence.\n                <\/small>\n            <\/div>\n            <div class=\"question trip-info\">\n                <p> But du voyage <\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelPurpose\" type=\"checkbox\"\n                           id=\"Visiting Family\/Friends\" value=\"Visiting Family\/Friends\">\n                    <label class=\"form-check-label\" for=\"Visiting Family\/Friends\">Visite d'amis ou de famille<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelPurpose\" type=\"checkbox\"\n                           id=\"Pleasure Holiday\"\n                           value=\"Pleasure Holiday\">\n                    <label class=\"form-check-label\" for=\"Pleasure Holiday\">Plaisance<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelPurpose\" type=\"checkbox\"\n                           id=\"Business\"\n                           value=\"Business\">\n                    <label class=\"form-check-label\" for=\"Business\">Affaires<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelPurpose\" type=\"checkbox\"\n                           id=\"Volunteer Work\"\n                           value=\"Volunteer Work\">\n                    <label class=\"form-check-label\" for=\"Volunteer Work\">B\u00e9n\u00e9volat\/coop\u00e9ration<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelPurpose\" type=\"checkbox\"\n                           id=\"Academic\"\n                           value=\"Academic\">\n                    <label class=\"form-check-label\" for=\"Academic\">\u00c9tudes<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelPurpose\" type=\"checkbox\"\n                           id=\"Adoption\"\n                           value=\"Adoption\">\n                    <label class=\"form-check-label\" for=\"Adoption\">Adoption<\/label>\n                <\/div>\n            <\/div>\n            <div class=\"question trip-info\">\n                <p> Activit\u00e9s <\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelActivities\" type=\"checkbox\"\n                           id=\"Climbing\/High Altitude\" value=\"Climbing\/High Altitude\">\n                    <label class=\"form-check-label\" for=\"Climbing\/High Altitude\">Escalade\/haute altitude<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelActivities\" type=\"checkbox\"\n                           id=\"Extreme Sports\"\n                           value=\"Extreme Sports\">\n                    <label class=\"form-check-label\" for=\"Extreme Sports\">Sports extr\u00eames<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelActivities\" type=\"checkbox\"\n                           id=\"Farming\"\n                           value=\"Farming\">\n                    <label class=\"form-check-label\" for=\"Farming\">Agriculture<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelActivities\" type=\"checkbox\"\n                           id=\"Healthcare\"\n                           value=\"Healthcare\">\n                    <label class=\"form-check-label\" for=\"Healthcare\">Soins de sant\u00e9<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelActivities\" type=\"checkbox\"\n                           id=\"Jogging\/Bicycling\"\n                           value=\"Jogging\/Bicycling\">\n                    <label class=\"form-check-label\" for=\"Jogging\/Bicycling\">Course \u00e0 pied\/v\u00e9lo<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelActivities\" type=\"checkbox\"\n                           id=\"Other\"\n                           value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"travelActivitiesOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"travelActivitiesOther\">\n                <\/div>\n            <\/div>\n\n            <div class=\"question trip-info\">\n                <p>Type(s) de logement <\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\"\n                           id=\"All-inclusive resort\" value=\"All-inclusive resort\">\n                    <label class=\"form-check-label\" for=\"All-inclusive resort\">H\u00f4tel tout inclus<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\" id=\"Family\/Friends\"\n                           value=\"Family\/Friends\">\n                    <label class=\"form-check-label\" for=\"Family\/Friends\">Famille\/amis<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\" id=\"Hotel\"\n                           value=\"Hotel\">\n                    <label class=\"form-check-label\" for=\"Hotel\">H\u00f4tel<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\" id=\"Camping\"\n                           value=\"Camping\">\n                    <label class=\"form-check-label\" for=\"Camping\">Camping<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\" id=\"Villa\"\n                           value=\"Villa\">\n                    <label class=\"form-check-label\" for=\"Villa\">Villa<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\" id=\"Hostel\"\n                           value=\"Hostel\">\n                    <label class=\"form-check-label\" for=\"Hostel\">Auberge de jeunesse<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\" id=\"Apartment\"\n                           value=\"Apartment\">\n                    <label class=\"form-check-label\" for=\"Apartment\">Apartement<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" name=\"travelAccommodation\"\n                           type=\"checkbox\" id=\"Other\"\n                           value=\"Other\">\n                    <label class=\"form-check-label\">Autre<\/label>\n                <\/div>\n                <div class=\"mb-3 other-section\">\n                    <label for=\"travelAccommodationOther\" class=\"form-label\">Autre<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"travelAccommodationOther\">\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <hr>\n        <div class=\"emergency-section section\">\n            <h3><i class=\"fas fa-phone\"><\/i> Personne \u00e0 contacter en cas d'urgence<\/h3>\n            <div class=\"row\">\n\n                <div class=\"mb-3\">\n                    <label for=\"emergencyContactName\" class=\"form-label\">Nom Complet<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"emergencyContactName\"\n                           required>\n                    <div class=\"invalid-feedback\">\n                        Ce champs est obligatoire\n                    <\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"emergencyContactNumber\" class=\"form-label\">Num\u00e9ro de t\u00e9l\u00e9phone<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"emergencyContactNumber\"\n                           required>\n                    <div class=\"invalid-feedback\">\n                        Ce champs est obligatoire\n                    <\/div>\n                <\/div>\n                <!-- Remplac\u00e9 pour les perfusions par le bloc \u00ab Qui remplit ce\n                     formulaire \u00bb, qui capture la m\u00eame personne avec un lien de\n                     parent\u00e9, un num\u00e9ro de t\u00e9l\u00e9phone et une attestation\n                     d'autorit\u00e9. Masqu\u00e9 (et vid\u00e9) pour formType=infusion afin de\n                     ne pas poser deux fois la question et d'\u00e9viter que les deux\n                     r\u00e9ponses divergent. -->\n                <div class=\"mb-3 guardian-name-field\">\n                    <label for=\"guardianName\" class=\"form-label\">Parent ou tuteur l\u00e9gal (si applicable)<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"guardianName\">\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"pharmacy-section section\" style=\"display:none\">\n            <h3><i class=\"fas fa-prescription\"><\/i> Coordonn\u00e9es de votre pharmacie<\/h3>\n            <div class=\"row\">\n                <p>Veuillez indiquer les informations relatives \u00e0 votre pharmacie afin que nous puissions envoyer les ordonnances directement \u00e0 la pharmacie de votre choix. (facultatif)<\/p>\n                <div class=\"mb-3\">\n                    <label for=\"phone\" class=\"form-label\">Nom de la pharmacie<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"pharmacyName\"\n                           placeholder=\"e.g. Jean Coutu\">\n                    <div class=\"invalid-feedback\">\n                        Le nom de la pharmacie est obligatoire\n                    <\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"phone\" class=\"form-label\">Adresse de la pharmacie<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"pharmacyStreet\"\n                           placeholder=\"e.g. 123 rue principale\">\n                    <div class=\"invalid-feedback\">\n                        L'adresse de la pharmacie est obligatoire\n                    <\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"phone\" class=\"form-label\">La ville de la pharmacie<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\" id=\"pharmacyCity\"\n                           placeholder=\"e.g. Montr\u00e9al\">\n                    <div class=\"invalid-feedback\">\n                        La ville de la pharmacie est obligatoire\n                    <\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"phone\" class=\"form-label\">Telephone de la pharmacie<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"phone\" class=\"form-control\" id=\"pharmacyPhone\"\n                           oninput=\"validatePhone()\">\n                    <div class=\"invalid-feedback\">\n                        Le numero de telephone de la pharmacie est obligatoire\n                    <\/div>\n                <\/div>\n                <div class=\"mb-3\">\n                    <label for=\"phone\" class=\"form-label\">Num\u00e9ro de fax<\/label>\n                    <input data-clarity-unmask=\"true\" type=\"phone\" class=\"form-control\" id=\"pharmacyFax\"\n                           oninput=\"validateFax()\">\n                    <div class=\"invalid-feedback\">\n                        Le num\u00e9ro de fax est obligatoire\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n\n        <br\/>\n\n        <div class=\"sleep-section-terms\">\n            <ul>\n                <li> Je d\u00e9clare qu\u2019au meilleur de mes connaissances, les informations mentionn\u00e9es ci-dessus sont exactes et compl\u00e8tes. Je comprends qu\u2019une fausse d\u00e9claration pourrait mettre ma sant\u00e9 en danger.\n                <\/li>\n                <li>\n                    J'accepte <a id=\"privacy-policy-link-fr\" style=\"color:black\" href=\"#\">la politique de confidentialit\u00e9 du site Web<\/a> et la \n                    <a id=\"personal-info-policy-link-fr\" style=\"color:black\" href=\"#\">politique d'informations personnelles<\/a>.\n                <\/li>\n                <li> Je comprends et accepte que les services prescrits par les professionnels travaillant \u00e0 la clinique peuvent \u00e9galement \u00eatre disponibles dans d'autres lieux, et que je suis libre de choisir les services propos\u00e9s ici ou dans tout autre \u00e9tablissement de mon choix.\n                <\/li>\n            <\/ul>\n        <\/div>\n        <div class=\"not-sleep-section-terms\">\n            <ul>\n                <li> Je d\u00e9clare qu\u2019au meilleur de mes connaissances, les informations mentionn\u00e9es ci-dessus sont exactes et compl\u00e8tes. Je comprends qu\u2019une fausse d\u00e9claration pourrait mettre ma sant\u00e9 en danger.\n                <\/li>\n                <li>\n                    J'accepte <a id=\"privacy-policy-link-fr\" style=\"color:black\" href=\"#\">la politique de confidentialit\u00e9 du site Web<\/a> et la \n                    <a id=\"personal-info-policy-link-fr\" style=\"color:black\" href=\"#\">politique d'informations personnelles<\/a>.\n                <\/li>\n                <li class=\"travel-only-term\"> Je suis conscient que tous les vaccins et les m\u00e9dicaments discut\u00e9s durant la consultation sont des recommandations et non des obligations, \u00e0 moins d\u2019information contraire sur le site sant\u00e9-voyage du Gouvernement du Canada (ex: exigences d\u2019entr\u00e9e pour la fi\u00e8vre jaune).\n                <\/li>\n                <li class=\"travel-only-term\"> Je comprends que je suis responsable de toutes les informations n\u00e9cessaires pour l\u2019obtention de visa et d\u2019autres documents n\u00e9cessaires au voyage.\n                <\/li>\n                <li class=\"travel-only-term\"> Je suis conscient qu\u2019il est recommand\u00e9 de demeurer \u00e0 la clinique durant les 15 minutes suivant la vaccination.\n                <\/li>\n                <li class=\"travel-only-term\"> Je comprends que je suis responsable de la manipulation et l\u2019entreposage de tous les m\u00e9dicaments et\/ou vaccins achet\u00e9s pour usage ult\u00e9rieur (ex: Dukoral et Vivotif). Je comprends que ces vaccins doivent \u00eatre r\u00e9frig\u00e9r\u00e9s entre 2 et 8 degr\u00e9s Celsius.\n                <\/li>\n                <li class=\"travel-only-term\"> Je comprends que des frais de consultation et de vaccination s\u2019appliquent \u00e0 chaque visite. Je sais que ces frais sont payables le jour du rendez-vous et que tous les paiements doivent \u00eatre faits par carte (carte de cr\u00e9dit ou d\u00e9bit).\n                <\/li>\n                <li id=\"covidBullet\" style=\"display:none\">Je consens \u00e0 recevoir les r\u00e9sultats de mon test COVID-19 par courriel. Je confirme que les r\u00e9sultats du test doivent \u00eatre envoy\u00e9s \u00e0 l'adresse courriel indiqu\u00e9e ci-dessus.\n                <\/li>\n            <\/ul>\n            <div id=\"paladinBullet\" style=\"display:none\">\n                <hr>\n                <p>\n                <h4>S\u00e9curit\u00e9 Paladin<\/h4>\n                <ul>\n                    <input data-clarity-unmask=\"true\" class=\"form-check-input\" type=\"checkbox\" value=\"\"\n                           id=\"paladinCheckbox\">\n                    Je consens \u00e0 ce que Summit Sant\u00e9 partage mes dossiers m\u00e9dicaux et de vaccination avec l'organisation responsable du financement de mes services, conform\u00e9ment \u00e0 l'accord de partage de donn\u00e9es entre Summit Sant\u00e9 et l'organisation. Ce consentement est limit\u00e9 aux services sp\u00e9cifiques financ\u00e9s par l'organisation.\n                <\/ul>\n                <\/p>\n                <div class=\"mb-3\">\n                    <label class=\"form-label\" for=\"customFile\">Ajoutez votre dossier de vaccination<\/label>\n                    <br>\n                    <span>Veuillez prendre une photo ou t\u00e9l\u00e9charger un fichier avec votre dossier de vaccination existant afin de rendre votre rendez-vous aussi efficace que possible. Veuillez apporter votre dossier de vaccination lors de votre rendez-vous.<\/span>\n                    <input data-clarity-unmask=\"true\" type=\"file\" accept=\"application\/pdf,image\/*\" class=\"form-control\"\n                           id=\"immunizationRecordUpload\"\/>\n                <\/div>\n            <\/div>\n        <\/div>\n\n\n        <!-- Section perfusion. Masqu\u00e9e par d\u00e9faut; affich\u00e9e uniquement lorsque\n             formType=infusion. Les questions d'admissibilit\u00e9 pour la perfusion de\n             fer + le blocage sont g\u00e9r\u00e9s dans syncInfusionEligibility(). Les\n             perfusions de fer excluent les patientes enceintes \/ immunod\u00e9prim\u00e9es \/\n             75 ans et plus; toutes les autres perfusions les autorisent. -->\n        <div class=\"infusion-section\" style=\"display:none\">\n            <hr>\n            <h4>D\u00e9tails de la perfusion<\/h4>\n            <div class=\"question mt-2\">\n                <p>Ce rendez-vous est-il pour une perfusion de fer?<\/p>\n                <div class=\"form-check form-check-inline\">\n                    <input class=\"form-check-input\" type=\"radio\" name=\"infusionIsIron\" id=\"infusionIronYes\" value=\"yes\">\n                    <label class=\"form-check-label\" for=\"infusionIronYes\">Oui<\/label>\n                <\/div>\n                <div class=\"form-check form-check-inline\">\n                    <input class=\"form-check-input\" type=\"radio\" name=\"infusionIsIron\" id=\"infusionIronNo\" value=\"no\">\n                    <label class=\"form-check-label\" for=\"infusionIronNo\">Non<\/label>\n                <\/div>\n            <\/div>\n\n            <!-- Admissibilit\u00e9 (fer seulement) \u2014 affich\u00e9e uniquement si fer = Oui.\n                 L'\u00e2ge est calcul\u00e9 \u00e0 partir de la date de naissance ci-dessus. -->\n            <div id=\"infusionIronEligibility\" style=\"display:none\">\n                <div class=\"question mt-2\">\n                    <p>\u00cates-vous actuellement enceinte?<\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input class=\"form-check-input\" type=\"radio\" name=\"infusionPregnant\" id=\"infusionPregnantYes\" value=\"yes\">\n                        <label class=\"form-check-label\" for=\"infusionPregnantYes\">Oui<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input class=\"form-check-input\" type=\"radio\" name=\"infusionPregnant\" id=\"infusionPregnantNo\" value=\"no\">\n                        <label class=\"form-check-label\" for=\"infusionPregnantNo\">Non<\/label>\n                    <\/div>\n                <\/div>\n                <div class=\"question mt-2\">\n                    <p>\u00cates-vous immunod\u00e9prim\u00e9(e) (syst\u00e8me immunitaire affaibli)?<\/p>\n                    <div class=\"form-check form-check-inline\">\n                        <input class=\"form-check-input\" type=\"radio\" name=\"infusionImmuno\" id=\"infusionImmunoYes\" value=\"yes\">\n                        <label class=\"form-check-label\" for=\"infusionImmunoYes\">Oui<\/label>\n                    <\/div>\n                    <div class=\"form-check form-check-inline\">\n                        <input class=\"form-check-input\" type=\"radio\" name=\"infusionImmuno\" id=\"infusionImmunoNo\" value=\"no\">\n                        <label class=\"form-check-label\" for=\"infusionImmunoNo\">Non<\/label>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div id=\"infusionIronBlockAlert\" class=\"alert alert-danger mt-2\" role=\"alert\" style=\"display:none\">\n                D'apr\u00e8s vos r\u00e9ponses et votre \u00e2ge, la r\u00e9servation en ligne d'une perfusion de fer ne peut pas se poursuivre. Veuillez communiquer avec Summit Sant\u00e9 et notre \u00e9quipe vous aidera \u00e0 r\u00e9server en toute s\u00e9curit\u00e9.\n            <\/div>\n\n            <hr>\n            <!-- Consentement pour la perfusion. Ce bloc EST le dossier l\u00e9gal de\n                 consentement de la clinique pour la perfusion : il est rempli\n                 avant que le patient ne paie, et il int\u00e8gre les attestations\n                 qui n'\u00e9taient auparavant recueillies que sur papier \u00e0 la\n                 clinique.\n\n                 data-consent-version fixe le libell\u00e9 exact accept\u00e9 par le\n                 patient. Il est transmis avec le formulaire et conserv\u00e9 avec\n                 l'acceptation. SI VOUS MODIFIEZ UN LIBELL\u00c9 CI-DESSOUS,\n                 INCR\u00c9MENTEZ-LE \u2014 la version conserv\u00e9e est ce qui permet \u00e0 la\n                 clinique de reproduire le texte accept\u00e9 des ann\u00e9es plus tard,\n                 et une modification silencieuse rend tous les dossiers\n                 ant\u00e9rieurs ind\u00e9montrables. Gardez les versions FR et EN\n                 identiques. -->\n            <div id=\"infusionConsentBlock\" data-consent-version=\"infusion-consent-2026-08-07-v1\">\n                <h4>Consentement pour la perfusion<\/h4>\n                <p><em>Veuillez lire attentivement. Vous devez accepter les \u00e9nonc\u00e9s ci-dessous avant que votre\n                    perfusion puisse \u00eatre r\u00e9serv\u00e9e.<\/em><\/p>\n\n                <p><strong>1. Nature du traitement<\/strong><\/p>\n                <p>Je comprends que ce rendez-vous vise une perfusion intraveineuse (IV), au cours de laquelle\n                    une aiguille ou un cath\u00e9ter est ins\u00e9r\u00e9 dans une veine et un m\u00e9dicament ou un liquide est\n                    administr\u00e9. J'ai eu l'occasion de poser des questions sur le but, les bienfaits, les risques\n                    et les solutions de rechange \u00e0 ce traitement \u2014 y compris celle de ne recevoir aucun\n                    traitement \u2014 et d'obtenir des r\u00e9ponses. Je comprends que je peux poser d'autres questions \u00e0\n                    l'infirmi\u00e8re ou au m\u00e9decin en tout temps avant ou pendant la perfusion.<\/p>\n\n                <p><strong>2. Risques que je comprends et que j'accepte<\/strong><\/p>\n                <p>Aucune intervention m\u00e9dicale n'est sans risque. Je comprends que m\u00eame lorsqu'une perfusion est\n                    effectu\u00e9e correctement, des complications peuvent survenir, notamment :<\/p>\n                <ul>\n                    <li>douleur, ecchymose, saignement, enflure ou inflammation au site de perfusion;<\/li>\n                    <li>fuite du m\u00e9dicament dans les tissus environnants (infiltration ou extravasation), qui\n                        peut causer des l\u00e9sions tissulaires et, avec certains m\u00e9dicaments comme le fer, une\n                        coloration permanente de la peau;\n                    <\/li>\n                    <li>infection au site de perfusion;<\/li>\n                    <li>\u00e9tourdissements, naus\u00e9es ou \u00e9vanouissement;<\/li>\n                    <li>r\u00e9action allergique, allant d'une l\u00e9g\u00e8re \u00e9ruption cutan\u00e9e ou de d\u00e9mangeaisons \u00e0 une\n                        r\u00e9action grave et potentiellement mortelle (anaphylaxie);\n                    <\/li>\n                    <li>r\u00e9actions propres au m\u00e9dicament perfus\u00e9, que l'infirmi\u00e8re ou le m\u00e9decin passera en revue\n                        avec moi;\n                    <\/li>\n                    <li>rarement, des complications graves n\u00e9cessitant des soins d'urgence ou une hospitalisation,\n                        ou entra\u00eenant une blessure permanente ou le d\u00e9c\u00e8s.\n                    <\/li>\n                <\/ul>\n                <p>Je comprends que Summit Sant\u00e9 ne peut garantir aucun r\u00e9sultat particulier de ce\n                    traitement.<\/p>\n\n                <p><strong>3. Surveillance et soins d'urgence<\/strong><\/p>\n                <p>J'accepte de demeurer \u00e0 la clinique pendant la p\u00e9riode de surveillance recommand\u00e9e par mon\n                    infirmi\u00e8re \u2014 normalement 60 minutes \u2014 apr\u00e8s ma perfusion, afin qu'une r\u00e9action retard\u00e9e\n                    puisse \u00eatre d\u00e9tect\u00e9e et trait\u00e9e. J'autorise le personnel de la clinique \u00e0 administrer un\n                    traitement d'urgence, y compris des m\u00e9dicaments comme l'\u00e9pin\u00e9phrine, et \u00e0 appeler les\n                    services d'urgence si, selon son jugement professionnel, cela est n\u00e9cessaire. Si je choisis\n                    de partir avant la fin de la p\u00e9riode de surveillance, je comprends que je le fais contre\n                    avis et j'en accepte les risques.<\/p>\n\n                <p><strong>4. M\u00e9dicaments s\u00e9datifs<\/strong><\/p>\n                <p>Si je re\u00e7ois du Benadryl (diphenhydramine) ou tout autre m\u00e9dicament s\u00e9datif dans le cadre de\n                    mon traitement, je comprends que je ne dois pas conduire, utiliser de la machinerie ni faire\n                    quoi que ce soit exigeant de la vigilance pendant au moins 8 heures par la suite, et qu'il\n                    m'appartient d'organiser un autre moyen de transport.<\/p>\n\n                <p><strong>5. M\u00e9dicament que je fournis moi-m\u00eame<\/strong><\/p>\n                <p>Si je fournis mon propre m\u00e9dicament pour la perfusion, je confirme qu'il a \u00e9t\u00e9 obtenu d'une\n                    pharmacie l\u00e9gitime, qu'il n'est pas p\u00e9rim\u00e9, et qu'il a \u00e9t\u00e9 conserv\u00e9 et transport\u00e9 selon les\n                    exigences du fabricant, y compris le maintien de la r\u00e9frig\u00e9ration lorsque cela est requis.\n                    J'accepte la responsabilit\u00e9 de l'\u00e9tat et de l'int\u00e9grit\u00e9 de ce m\u00e9dicament. Summit Sant\u00e9 n'est\n                    pas responsable de la qualit\u00e9, de l'efficacit\u00e9 ou de l'innocuit\u00e9 du m\u00e9dicament que je\n                    fournis, ni des pr\u00e9judices r\u00e9sultant de son entreposage, de sa manipulation ou de son\n                    transport inad\u00e9quats avant son arriv\u00e9e \u00e0 la clinique. Je comprends que le personnel de la\n                    clinique peut refuser d'administrer tout m\u00e9dicament qu'il juge dangereux ou mal conserv\u00e9, et\n                    que la politique d'annulation ci-dessous s'applique tout de m\u00eame dans ce cas.<\/p>\n\n                <p><strong>6. Exactitude des renseignements fournis<\/strong><\/p>\n                <p>Je d\u00e9clare que les renseignements de sant\u00e9 contenus dans ce questionnaire sont complets et\n                    exacts au meilleur de ma connaissance, y compris les allergies, les m\u00e9dicaments actuels et\n                    les probl\u00e8mes de sant\u00e9. Je comprends que les d\u00e9cisions cliniques seront prises en fonction de\n                    ces renseignements et que, s'ils sont incomplets ou inexacts, la sant\u00e9 pourrait \u00eatre mise en\n                    danger.<\/p>\n\n                <p><strong>7. Annulation et retard<\/strong><\/p>\n                <p>Je comprends que des frais de 60 $ s'appliquent si j'annule dans les 48 heures pr\u00e9c\u00e9dant mon\n                    rendez-vous ou si je ne m'y pr\u00e9sente pas, et que si j'arrive plus de 15 minutes en retard,\n                    mon rendez-vous pourrait ne pas \u00eatre honor\u00e9 et les m\u00eames frais pourraient s'appliquer.<\/p>\n\n                <p><strong>8. Mon droit de retirer mon consentement<\/strong><\/p>\n                <p>Je comprends que mon consentement est volontaire et que je peux le retirer en tout temps avant\n                    ou pendant la perfusion, sans que cela nuise \u00e0 mes soins futurs chez Summit Sant\u00e9.<\/p>\n\n                <div class=\"form-check mt-3\">\n                    <input class=\"form-check-input\" type=\"checkbox\" id=\"infusionConsentAccepted\">\n                    <label class=\"form-check-label\" for=\"infusionConsentAccepted\">\n                        <strong>J'ai lu et compris tout ce qui pr\u00e9c\u00e8de, j'ai eu l'occasion de poser des\n                            questions, et je consens au traitement par perfusion d\u00e9crit.<\/strong>\n                    <\/label>\n                <\/div>\n\n                <div class=\"mb-3 mt-3\">\n                    <label for=\"infusionConsentSignedByName\" class=\"form-label\">Nom complet de la personne qui\n                        donne le consentement<span class=\"astrisc\">*<\/span><\/label>\n                    <input data-clarity-unmask=\"true\" type=\"text\" class=\"form-control\"\n                           id=\"infusionConsentSignedByName\" autocomplete=\"off\">\n                    <div class=\"invalid-feedback\">\n                        Ce champ est obligatoire\n                    <\/div>\n                    <small class=\"form-text text-muted\">\n                        Inscrire votre nom ici tient lieu de signature. La date et l'heure sont enregistr\u00e9es\n                        automatiquement.\n                    <\/small>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"form-check mt-3\">\n            <input class=\"form-check-input\" type=\"checkbox\" id=\"agreementCheckbox\" required>\n            <label class=\"form-check-label\" for=\"agreementCheckbox\">\n                J'accepte les termes et conditions ci-dessus\n            <\/label>\n            <div class=\"invalid-feedback\">\n                Vous devez accepter avant de soumettre.\n            <\/div>\n        <\/div>\n        <div class=\"mb-3\" style=\"margin-top:20px;\">\n            <button type=\"button\" id=\"submitBtnId\" class=\"btn btn-primary\">Soumettre<\/button>\n        <\/div>\n    <\/form>\n    <div id=\"loadingDiv\" class=\"row\" style=\"text-align:center; display:none\">\n        <div style=\"margin-bottom:20px\" class=\"fa-3x\"><i class=\"fas fa-spinner fa-pulse\"><\/i><\/div>\n        <p>Soumission du Questionnaire en cours ...<\/p>\n    <\/div>\n\n\n\n    <script>\n    \/\/ Get the current domain\n    const domain = window.location.hostname;\n    console.log(\"working with domain\" + domain)\n\n    \/\/ Build the dynamic URLs based on the current domain\n    const privacyPolicyUrlFr = `https:\/\/${domain}\/website-privacy-policy\/`;\n    const personalInfoPolicyUrlFr = `https:\/\/${domain}\/personal-information-policy\/`;\n\n    \/\/ Set the href attributes dynamically\n    document.getElementById('privacy-policy-link-fr').href = privacyPolicyUrlFr;\n    document.getElementById('personal-info-policy-link-fr').href = personalInfoPolicyUrlFr;\n    <\/script>\n\n<\/div>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Questionnaire Effacer &#038; resoumettre le questionnaire En tant que patient de Summit Sant\u00e9, nous avons le questionnaire m\u00e9dical rempli lors de votre derni\u00e8re visite. Je confirme qu&rsquo;il n&rsquo;y a eu aucun changement \u00e0 ma sant\u00e9 ou aux m\u00e9dicaments que je prends depuis ma derni\u00e8re visite chez Summit Sant\u00e9. Confirmer Remplir un nouveau questionnaire Information D\u00e9mographique &#8230; <a title=\"Questionnaire m\u00e9dical\" class=\"read-more\" href=\"https:\/\/dormalab.com\/fr\/questionnaire-medical\/\" aria-label=\"En savoir plus sur Questionnaire m\u00e9dical\">Lire la suite<\/a><\/p>\n","protected":false},"author":22,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-39137","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Questionnaire m\u00e9dical - Dorma Sleep Clinics<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dormalab.com\/fr\/questionnaire-medical\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Questionnaire m\u00e9dical - Dorma Sleep Clinics\" \/>\n<meta property=\"og:description\" content=\"Questionnaire Effacer &#038; resoumettre le questionnaire En tant que patient de Summit Sant\u00e9, nous avons le questionnaire m\u00e9dical rempli lors de votre derni\u00e8re visite. Je confirme qu&rsquo;il n&rsquo;y a eu aucun changement \u00e0 ma sant\u00e9 ou aux m\u00e9dicaments que je prends depuis ma derni\u00e8re visite chez Summit Sant\u00e9. Confirmer Remplir un nouveau questionnaire Information D\u00e9mographique ... Lire la suite\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dormalab.com\/fr\/questionnaire-medical\/\" \/>\n<meta property=\"og:site_name\" content=\"Dorma Sleep Clinics\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-03T19:03:43+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/questionnaire-medical\\\/\",\"url\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/questionnaire-medical\\\/\",\"name\":\"Questionnaire m\u00e9dical - Dorma Sleep Clinics\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/#website\"},\"datePublished\":\"2024-11-26T19:11:30+00:00\",\"dateModified\":\"2026-09-03T19:03:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/questionnaire-medical\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dormalab.com\\\/fr\\\/questionnaire-medical\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/questionnaire-medical\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Questionnaire m\u00e9dical\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/\",\"name\":\"Dorma Sleep Clinics\",\"description\":\"Sleep Well Live Well\",\"publisher\":{\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/#organization\",\"name\":\"Dorma Clinique Du Sommeil\",\"url\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/dormalab.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/Dorma-Logotype-RGB-Black-scaled-e1578787470924.png\",\"contentUrl\":\"https:\\\/\\\/dormalab.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/Dorma-Logotype-RGB-Black-scaled-e1578787470924.png\",\"width\":120,\"height\":25,\"caption\":\"Dorma Clinique Du Sommeil\"},\"image\":{\"@id\":\"https:\\\/\\\/dormalab.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Questionnaire m\u00e9dical - Dorma Sleep Clinics","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dormalab.com\/fr\/questionnaire-medical\/","og_locale":"fr_FR","og_type":"article","og_title":"Questionnaire m\u00e9dical - Dorma Sleep Clinics","og_description":"Questionnaire Effacer &#038; resoumettre le questionnaire En tant que patient de Summit Sant\u00e9, nous avons le questionnaire m\u00e9dical rempli lors de votre derni\u00e8re visite. Je confirme qu&rsquo;il n&rsquo;y a eu aucun changement \u00e0 ma sant\u00e9 ou aux m\u00e9dicaments que je prends depuis ma derni\u00e8re visite chez Summit Sant\u00e9. Confirmer Remplir un nouveau questionnaire Information D\u00e9mographique ... Lire la suite","og_url":"https:\/\/dormalab.com\/fr\/questionnaire-medical\/","og_site_name":"Dorma Sleep Clinics","article_modified_time":"2026-09-03T19:03:43+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"11 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dormalab.com\/fr\/questionnaire-medical\/","url":"https:\/\/dormalab.com\/fr\/questionnaire-medical\/","name":"Questionnaire m\u00e9dical - Dorma Sleep Clinics","isPartOf":{"@id":"https:\/\/dormalab.com\/fr\/#website"},"datePublished":"2024-11-26T19:11:30+00:00","dateModified":"2026-09-03T19:03:43+00:00","breadcrumb":{"@id":"https:\/\/dormalab.com\/fr\/questionnaire-medical\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dormalab.com\/fr\/questionnaire-medical\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dormalab.com\/fr\/questionnaire-medical\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dormalab.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Questionnaire m\u00e9dical"}]},{"@type":"WebSite","@id":"https:\/\/dormalab.com\/fr\/#website","url":"https:\/\/dormalab.com\/fr\/","name":"Dorma Sleep Clinics","description":"Sleep Well Live Well","publisher":{"@id":"https:\/\/dormalab.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dormalab.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/dormalab.com\/fr\/#organization","name":"Dorma Clinique Du Sommeil","url":"https:\/\/dormalab.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/dormalab.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/dormalab.com\/wp-content\/uploads\/2019\/10\/Dorma-Logotype-RGB-Black-scaled-e1578787470924.png","contentUrl":"https:\/\/dormalab.com\/wp-content\/uploads\/2019\/10\/Dorma-Logotype-RGB-Black-scaled-e1578787470924.png","width":120,"height":25,"caption":"Dorma Clinique Du Sommeil"},"image":{"@id":"https:\/\/dormalab.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/pages\/39137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/comments?post=39137"}],"version-history":[{"count":10,"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/pages\/39137\/revisions"}],"predecessor-version":[{"id":42972,"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/pages\/39137\/revisions\/42972"}],"wp:attachment":[{"href":"https:\/\/dormalab.com\/fr\/wp-json\/wp\/v2\/media?parent=39137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}