{"id":23880,"date":"2025-07-15T13:43:29","date_gmt":"2025-07-15T11:43:29","guid":{"rendered":"https:\/\/telemedi.com\/?page_id=23880"},"modified":"2025-07-15T13:43:34","modified_gmt":"2025-07-15T11:43:34","slug":"preferencje-medycyny-pracy","status":"publish","type":"page","link":"https:\/\/telemedi.com\/pl\/preferencje-medycyny-pracy\/","title":{"rendered":"Preferencje Pacjenta &#8211; Formularz Medycyny Pracy"},"content":{"rendered":"\n<div class=\"bg-gradient-to-br from-blue-50 to-indigo-100 min-h-screen py-8\">\n<div class=\"container mx-auto px-4\">\n\n    <!-- Komunikat dla wy\u0142\u0105czonego JavaScript -->\n    <div class=\"js-disabled-message max-w-2xl mx-auto\">\n        <div class=\"bg-yellow-50 border-l-4 border-yellow-400 p-6 rounded-r-lg shadow-lg\">\n            <div class=\"flex items-center\">\n                <div class=\"flex-shrink-0\">\n                    <svg class=\"h-8 w-8 text-yellow-400\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n                        <path fill-rule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\"><\/path>\n                    <\/svg>\n                <\/div>\n                <div class=\"ml-4\">\n                    <h3 class=\"text-lg font-medium text-yellow-800\">JavaScript jest wy\u0142\u0105czony<\/h3>\n                    <p class=\"mt-2 text-sm text-yellow-700\">\n                        Ten formularz wymaga w\u0142\u0105czonego JavaScript aby dzia\u0142a\u0107 poprawnie.\n                        Prosz\u0119 w\u0142\u0105czy\u0107 JavaScript w przegl\u0105darce i od\u015bwie\u017cy\u0107 stron\u0119.\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Komunikat o brakuj\u0105cych parametrach URL -->\n    <div id=\"missing-params-warning\" class=\"max-w-2xl mx-auto\" style=\"display: none;\">\n        <div class=\"bg-red-50 border-l-4 border-red-400 p-6 rounded-r-lg shadow-lg\">\n            <div class=\"flex items-center\">\n                <div class=\"flex-shrink-0\">\n                    <svg class=\"h-8 w-8 text-red-400\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n                        <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\"><\/path>\n                    <\/svg>\n                <\/div>\n                <div class=\"ml-4\">\n                    <h3 class=\"text-lg font-medium text-red-800\">Nieprawid\u0142owy dost\u0119p<\/h3>\n                    <p class=\"mt-2 text-sm text-red-700\">\n                        Brak wymaganych parametr\u00f3w w adresie URL. Formularz mo\u017ce by\u0107 dost\u0119pny tylko przez oficjalny link z systemu.\n                    <\/p>\n                    <p class=\"mt-2 text-sm text-red-700\">\n                        Je\u015bli otrzyma\u0142e\u015b link bezpo\u015brednio, sprawd\u017a czy zosta\u0142 skopiowany w ca\u0142o\u015bci.\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Loader -->\n    <div id=\"loader\" class=\"max-w-2xl mx-auto text-center\" style=\"display: none;\">\n        <div class=\"bg-white p-8 rounded-lg shadow-lg\">\n            <div class=\"flex flex-col items-center\">\n                <div class=\"animate-spin rounded-full h-12 w-12 border-b-4 border-teal-600 mb-4\"><\/div>\n                <h3 class=\"text-lg font-medium text-gray-800 mb-2\">\u0141adowanie danych&#8230;<\/h3>\n                <p class=\"text-sm text-gray-600\">Pobieramy informacje o Twoich badaniach<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Komunikat b\u0142\u0119du API -->\n    <div id=\"api-error-message\" class=\"max-w-2xl mx-auto\" style=\"display: none;\">\n        <div class=\"bg-red-50 border-l-4 border-red-400 p-6 rounded-r-lg shadow-lg\">\n            <div class=\"flex items-center\">\n                <div class=\"flex-shrink-0\">\n                    <svg class=\"h-8 w-8 text-red-400\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n                        <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\"><\/path>\n                    <\/svg>\n                <\/div>\n                <div class=\"ml-4\">\n                    <h3 id=\"api-error-title\" class=\"text-lg font-medium text-red-800\">Wyst\u0105pi\u0142 b\u0142\u0105d<\/h3>\n                    <p id=\"api-error-text\" class=\"mt-2 text-sm text-red-700\"><\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Success Box -->\n    <div id=\"success-box\" class=\"max-w-2xl mx-auto\" style=\"display: none;\">\n        <div class=\"fade-in\">\n            <div class=\"bg-green-50 border-l-4 border-green-400 p-6 rounded-r-lg shadow-lg\">\n                <div class=\"flex items-center\">\n                    <div class=\"flex-shrink-0\">\n                        <svg class=\"h-8 w-8 text-green-400\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n                            <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\"><\/path>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"ml-4\">\n                        <h3 class=\"text-lg font-medium text-green-800\">Preferencje zosta\u0142y zapisane!<\/h3>\n                        <p id=\"success-message-text\" class=\"mt-2 text-sm text-green-700\">\n                            Wkr\u00f3tce skontaktujemy si\u0119 z Tob\u0105 w celu ustalenia terminu bada\u0144 Medycyny Pracy.\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Formularz preferencji (widoczny tylko gdy JS jest w\u0142\u0105czony i parametry s\u0105 poprawne) -->\n    <div class=\"form-container max-w-4xl mx-auto\" style=\"display: none;\">\n        <div class=\"fade-in\">\n            <div class=\"text-center mb-8\">\n                <div class=\"mb-6\">\n                    <img decoding=\"async\" src=\"https:\/\/telemedi.com\/wp-content\/themes\/telemedico-home-page\/src\/icons\/telemedi.svg\"\n                         alt=\"Telemedi Logo\"\n                         class=\"mx-auto h-16 w-auto\">\n                <\/div>\n                <h1 class=\"text-3xl font-bold text-gray-800 mb-2\">Medycyna pracy &#8211; preferencje pacjenta<\/h1>\n\n                <!-- Informacja o wybranych badaniach (z backendu) -->\n                <div id=\"selected-exams-info\" class=\"bg-blue-50 border border-blue-200 rounded-lg p-4 mb-6 mt-6\" style=\"display: none;\">\n                    <h3 class=\"text-sm font-medium text-blue-800 mb-2\">Wybrane badania:<\/h3>\n                    <div id=\"exam-types-list\" class=\"flex flex-wrap gap-2\">\n                        <!-- Badania b\u0119d\u0105 dodane dynamicznie z JavaScript -->\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <form id=\"preferencesForm\" method=\"POST\"\n                  class=\"bg-white p-6 rounded-lg shadow-md w-full max-w-4xl mx-auto\"\n                  novalidate>\n\n                <!-- Miejsce badania i preferencje -->\n                <div class=\"mb-8\">\n                    <h3 class=\"text-lg font-semibold text-gray-800 mb-4 border-b border-teal-500 pb-2\">W jakiej miejscowo\u015bci maj\u0105 odby\u0107 si\u0119 badania:<\/h3>\n\n                    <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4\">\n                        <div>\n                            <label for=\"city\" class=\"block text-sm font-medium text-gray-700 mb-1\">Miasto *<\/label>\n                            <input type=\"text\" id=\"city\" name=\"city\" required\n                                   class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\">\n                        <\/div>\n                        <div>\n                            <label for=\"postalCode\" class=\"block text-sm font-medium text-gray-700 mb-1\">Kod pocztowy *<\/label>\n                            <input type=\"text\" id=\"postalCode\" name=\"postalCode\" required placeholder=\"XX-XXX\"\n                                   class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\">\n                        <\/div>\n                    <\/div>\n\n                    <h3 class=\"text-lg font-semibold text-gray-800 mb-4 border-b border-teal-500 pb-2\">Twoje preferencje:<\/h3>\n\n                    <div class=\"mb-6\">\n                        <div class=\"flex items-center\">\n                            <input type=\"checkbox\" id=\"hasPreferences\" name=\"hasPreferences\"\n                                   class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded\">\n                            <label for=\"hasPreferences\" class=\"ml-2 text-sm text-gray-700\">Mam preferencje<\/label>\n                        <\/div>\n                    <\/div>\n\n                    <div id=\"preferencesSection\" class=\"mb-6\">\n                        <div class=\"mb-6\">\n                            <label for=\"visitDatePreferences\" class=\"block text-sm font-medium text-gray-700 mb-1\">Opisz swoje preferencje, co do terminu wizyty: *<\/label>\n                            <textarea id=\"visitDatePreferences\" name=\"visitDatePreferences\" rows=\"3\" placeholder=\"Preferencje odno\u015bnie terminu\"\n                                      class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"><\/textarea>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sekcje dla wybranych bada\u0144 - MOCK-UP dla WSZYSTKICH 5 bada\u0144 -->\n\n                    <!-- Sekcja bada\u0144 psychotechnicznych (dla wst\u0119pnych i okresowych) -->\n                    <div id=\"psychoTechnicSection\" class=\"mb-6 space-y-2\">\n                        <div>\n                            <label class=\"block text-sm font-medium text-gray-700 mb-2\">Czy posiadasz AKTUALNE badania psychotechniczne i zabierzesz je ze sob\u0105 na badania *<\/label>\n                            <div class=\"space-y-2\">\n                                <div class=\"flex items-center\">\n                                    <input type=\"radio\" id=\"psychoTechnicExamsYes\" name=\"hasPsychotechnicalExams\" value=\"true\" required\n                                           class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300\">\n                                    <label for=\"psychoTechnicExamsYes\" class=\"ml-2 text-sm text-gray-700\">Posiadam<\/label>\n                                <\/div>\n                                <div class=\"flex items-center\">\n                                    <input type=\"radio\" id=\"psychoTechnicExamsNo\" name=\"hasPsychotechnicalExams\" value=\"false\" required\n                                           class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300\">\n                                    <label for=\"psychoTechnicExamsNo\" class=\"ml-2 text-sm text-gray-700\">Nie posiadam<\/label>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sekcja dla bada\u0144 wst\u0119pnych -->\n                    <div id=\"initialExamSection\" class=\"mb-6 space-y-4\">\n                        <h4 class=\"text-md font-medium text-gray-800 border-b border-gray-300 pb-2\">Dodatkowe informacje dla bada\u0144 wst\u0119pnych<\/h4>\n                        <div>\n                            <label for=\"plannedWorkStartDate\" class=\"block text-sm font-medium text-gray-700 mb-1\">Kiedy planujesz rozpocz\u0105\u0107 prac\u0119: *<\/label>\n                            <input type=\"date\" id=\"plannedWorkStartDate\" name=\"plannedWorkStartDate\" required\n                                   class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\">\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sekcja dla bada\u0144 kontrolnych -->\n                    <div id=\"controlExamSection\" class=\"mb-6 space-y-4\">\n                        <h4 class=\"text-md font-medium text-gray-800 border-b border-gray-300 pb-2\">Dodatkowe informacje dla bada\u0144 kontrolnych<\/h4>\n\n                        <div>\n                            <label class=\"block text-sm font-medium text-gray-700 mb-2\">Jaki rodzaj zwolnienia: *<\/label>\n                            <div class=\"space-y-2\">\n                                <div class=\"flex items-center\">\n                                    <input type=\"radio\" id=\"leaveTypeSickness\" name=\"sickLeaveType\" value=\"1\" required\n                                           class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300\">\n                                    <label for=\"leaveTypeSickness\" class=\"ml-2 text-sm text-gray-700\">Po chorobie<\/label>\n                                <\/div>\n                                <div class=\"flex items-center\">\n                                    <input type=\"radio\" id=\"leaveTypeMaternity\" name=\"sickLeaveType\" value=\"2\" required\n                                           class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300\">\n                                    <label for=\"leaveTypeMaternity\" class=\"ml-2 text-sm text-gray-700\">Po macierzy\u0144skim<\/label>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div>\n                            <label for=\"sickLeaveEndDate\" class=\"block text-sm font-medium text-gray-700 mb-1\">Do kiedy obowi\u0105zuje zwolnienie: *<\/label>\n                            <input type=\"date\" id=\"sickLeaveEndDate\" name=\"sickLeaveEndDate\" required\n                                   class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\">\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sekcja dla bada\u0144 okresowych -->\n                    <div id=\"periodicExamSection\" class=\"mb-6 space-y-4\">\n                        <h4 class=\"text-md font-medium text-gray-800 border-b border-gray-300 pb-2\">Dodatkowe informacje dla bada\u0144 okresowych<\/h4>\n                        <div>\n                            <label for=\"currentPeriodicValidUntil\" class=\"block text-sm font-medium text-gray-700 mb-1\">Do kiedy masz wa\u017cne obecne badania okresowe: *<\/label>\n                            <input type=\"date\" id=\"currentPeriodicValidUntil\" name=\"currentPeriodicExamsValidUntil\" required\n                                   class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\">\n\n                            <div class=\"mt-3\">\n                                <div class=\"flex items-center\">\n                                    <input type=\"checkbox\" id=\"dontKnowPeriodicDate\" name=\"dontKnowPeriodicDate\"\n                                           class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded\">\n                                    <label for=\"dontKnowPeriodicDate\" class=\"ml-2 text-sm text-gray-700\">Nie wiem<\/label>\n                                <\/div>\n                            <\/div>\n\n                            <!-- Ukryte pole do przekazania informacji do backendu -->\n                            <input type=\"hidden\" id=\"skipPeriodicDateValidation\" name=\"skipPeriodicDateValidation\" value=\"false\">\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sekcja dla bada\u0144 sanitarno-epidemiologicznych -->\n                    <div id=\"sanitaryExamSection\" class=\"mb-6 space-y-4\">\n                        <h4 class=\"text-md font-medium text-gray-800 border-b border-gray-300 pb-2\">Dodatkowe informacje dla bada\u0144 sanitarno-epidemiologicznych<\/h4>\n                        <div>\n                            <label class=\"block text-sm font-medium text-gray-700 mb-2\">Czy posiadasz ksi\u0105\u017ceczk\u0119 sanitarno-epidemiologiczn\u0105 lub wyniki bada\u0144 ka\u0142u *<\/label>\n                            <div class=\"space-y-2\">\n                                <div class=\"flex items-center\">\n                                    <input type=\"radio\" id=\"hasSanitaryDocumentsYes\" name=\"hasSanitaryEpidemiologicalBooklet\" value=\"true\" required\n                                           class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300\">\n                                    <label for=\"hasSanitaryDocumentsYes\" class=\"ml-2 text-sm text-gray-700\">Posiadam<\/label>\n                                <\/div>\n                                <div class=\"flex items-center\">\n                                    <input type=\"radio\" id=\"hasSanitaryDocumentsNo\" name=\"hasSanitaryEpidemiologicalBooklet\" value=\"false\" required\n                                           class=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300\">\n                                    <label for=\"hasSanitaryDocumentsNo\" class=\"ml-2 text-sm text-gray-700\">Nie posiadam<\/label>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Adnotacja o edytowalno\u015bci preferencji -->\n                <div class=\"mt-6 max-w-4xl mx-auto mb-6\">\n                    <div class=\"bg-amber-50 border-l-4 border-amber-400 p-4 rounded-r-lg shadow-sm\">\n                        <div class=\"flex items-start\">\n                            <div class=\"flex-shrink-0\">\n                                <svg class=\"h-5 w-5 text-amber-400\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n                                    <path fill-rule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\"><\/path>\n                                <\/svg>\n                            <\/div>\n                            <div class=\"ml-3\">\n                                <p class=\"text-sm text-amber-700\">\n                                    <strong>Wa\u017cne:<\/strong> Po zapisaniu preferencji nie b\u0119dzie mo\u017cliwo\u015bci ich edycji przez formularz.\n                                    W przypadku potrzeby zmiany zapisanych preferencji, prosimy o kontakt telefoniczny.\n                                <\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Przycisk wy\u015blij -->\n                <div class=\"text-center\">\n                    <button type=\"submit\"\n                            class=\"bg-teal-600 hover:bg-teal-700 text-white font-bold py-3 px-8 rounded-lg transition duration-200 ease-in-out transform hover:scale-105\">\n                        Zapisz preferencje\n                    <\/button>\n                <\/div>\n            <\/form>\n        <\/div>\n    <\/div>\n<\/div>\n<\/div>\n\n\n\n<script data-cookieconsent=\"ignore\">\n    \/\/ W\u0142\u0105cz JavaScript body class\n    document.body.classList.add('js-enabled');\n\n    \/\/ Konfiguracja API\n    const API_BASE_URL = 'https:\/\/ims-backend.tmdi00.com';\n\n    \/\/ Globalna zmienna do przechowywania danych z API\n    let apiData = null;\n\n    \/\/ Funkcja do pokazywania\/ukrywania element\u00f3w\n    function showElement(elementId) {\n        const element = document.getElementById(elementId);\n        if (element) element.style.display = 'block';\n    }\n\n    function hideElement(elementId) {\n        const element = document.getElementById(elementId);\n        if (element) element.style.display = 'none';\n    }\n\n    \/\/ Funkcja do pokazywania\/ukrywania element\u00f3w po klasie\n    function showElementByClass(className) {\n        const element = document.querySelector('.' + className);\n        if (element) element.style.display = 'block';\n    }\n\n    function hideElementByClass(className) {\n        const element = document.querySelector('.' + className);\n        if (element) element.style.display = 'none';\n    }\n\n    \/\/ Funkcja do ustawiania tytu\u0142u i tre\u015bci b\u0142\u0119du API\n    function showApiError(errorMessage) {\n        const errorTitle = document.getElementById('api-error-title');\n        const errorText = document.getElementById('api-error-text');\n\n        \/\/ Ustaw odpowiedni tytu\u0142 na podstawie tre\u015bci b\u0142\u0119du\n        if (errorMessage.includes('Preferencje zosta\u0142y ju\u017c uzupe\u0142nione')) {\n            errorTitle.textContent = 'Preferencje zosta\u0142y ju\u017c uzupe\u0142nione';\n        } else {\n            errorTitle.textContent = 'Wyst\u0105pi\u0142 b\u0142\u0105d';\n        }\n\n        errorText.textContent = errorMessage;\n        showElement('api-error-message');\n    }\n\n    \/\/ Funkcja do wywo\u0142ania API\n    async function fetchIssueData(issueId, hash) {\n        try {\n            const response = await fetch(`${API_BASE_URL}\/api\/occupational-medicine\/issue\/preferences?issueId=${encodeURIComponent(issueId)}&hash=${encodeURIComponent(hash)}`);\n\n            if (!response.ok) {\n                const errorData = await response.json();\n                throw new Error(errorData.error || `HTTP ${response.status}`);\n            }\n\n            return await response.json();\n        } catch (error) {\n            throw error;\n        }\n    }\n\n    \/\/ Funkcja do wysy\u0142ania preferencji do API\n    async function updatePreferences(formData) {\n        try {\n            const response = await fetch(`${API_BASE_URL}\/api\/occupational-medicine\/issue\/preferences\/update`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                },\n                body: JSON.stringify(formData)\n            });\n\n            const responseData = await response.json();\n\n            if (!response.ok || !responseData.successful) {\n                \/\/ Je\u015bli response zawiera b\u0142\u0119dy walidacji\n                if (responseData.errors && Array.isArray(responseData.errors)) {\n                    const error = new Error(responseData.message || 'B\u0142\u0119dy walidacji');\n                    error.validationErrors = responseData.errors;\n                    throw error;\n                } else {\n                    throw new Error(responseData.error || responseData.message || `HTTP ${response.status}`);\n                }\n            }\n\n            return responseData;\n        } catch (error) {\n            throw error;\n        }\n    }\n\n    \/\/ Funkcja do wy\u015bwietlania wybranych bada\u0144\n    function displayExamTypes(examTypes) {\n        const examTypesContainer = document.getElementById('exam-types-list');\n        const selectedExamsInfo = document.getElementById('selected-exams-info');\n\n        if (!examTypes || examTypes.length === 0) {\n            hideElement('selected-exams-info');\n            return;\n        }\n\n        examTypesContainer.innerHTML = '';\n\n        examTypes.forEach(exam => {\n            const span = document.createElement('span');\n            span.className = 'bg-blue-100 text-blue-800 text-xs font-medium px-2.5 py-0.5 rounded';\n            span.textContent = `${exam.type} - ${exam.label}`;\n            examTypesContainer.appendChild(span);\n        });\n\n        showElement('selected-exams-info');\n    }\n\n    \/\/ Funkcja do pokazywania\/ukrywania sekcji formularza na podstawie typu bada\u0144\n    function configureFormSections(examTypes) {\n        \/\/ Ukryj wszystkie sekcje bada\u0144\n        hideElement('psychoTechnicSection');\n        hideElement('initialExamSection');\n        hideElement('controlExamSection');\n        hideElement('periodicExamSection');\n        hideElement('sanitaryExamSection');\n\n        if (!examTypes) return;\n\n        examTypes.forEach(exam => {\n            switch(exam.type) {\n                case 1: \/\/ Badanie wst\u0119pne\n                    showElement('initialExamSection');\n                    showElement('psychoTechnicSection'); \/\/ Psychotechniczne dla wst\u0119pnych\n                    break;\n                case 2: \/\/ Badanie okresowe\n                    showElement('periodicExamSection');\n                    showElement('psychoTechnicSection'); \/\/ Psychotechniczne dla okresowych\n                    break;\n                case 3: \/\/ Badanie kontrolne\n                    showElement('controlExamSection');\n                    break;\n                case 4: \/\/ Badanie sanitarno-epidemiologiczne\n                    showElement('sanitaryExamSection');\n                    break;\n                case 5: \/\/ Badania psychotechniczne\n                    showElement('psychoTechnicSection');\n                    break;\n            }\n        });\n    }\n\n    \/\/ G\u0142\u00f3wna funkcja inicjalizuj\u0105ca\n    async function initializeForm() {\n        const urlParams = new URLSearchParams(window.location.search);\n        const issueId = urlParams.get('issueId');\n        const hash = urlParams.get('hash');\n\n        \/\/ Ukryj wszystkie sekcje na pocz\u0105tku\n        hideElement('missing-params-warning');\n        hideElement('loader');\n        hideElement('api-error-message');\n        hideElement('success-box');\n        hideElementByClass('form-container');\n\n        \/\/ Sprawd\u017a parametry URL\n        if (!issueId || !hash) {\n            showElement('missing-params-warning');\n            return;\n        }\n\n        \/\/ Poka\u017c loader\n        showElement('loader');\n\n        try {\n            \/\/ Wywo\u0142aj API\n            apiData = await fetchIssueData(issueId, hash);\n\n            if (apiData.successful && apiData.data) {\n                \/\/ Sukces - poka\u017c formularz\n                displayExamTypes(apiData.data.examTypes);\n                configureFormSections(apiData.data.examTypes);\n            } else {\n                throw new Error('Invalid API response structure');\n            }\n\n            hideElement('loader');\n            showElementByClass('form-container');\n\n        } catch (error) {\n            \/\/ B\u0142\u0105d - poka\u017c komunikat b\u0142\u0119du\n            hideElement('loader');\n            const errorMessage = error.message === 'Failed to fetch'\n                ? 'Wyst\u0105pi\u0142 b\u0142\u0105d podczas pobierania danych z systemu'\n                : error.message;\n\n            showApiError(errorMessage);\n        }\n    }\n\n    \/\/ Wywo\u0142aj inicjalizacj\u0119 przy za\u0142adowaniu strony\n    initializeForm();\n\n    \/\/ Obs\u0142uga checkboxa \"Mam preferencje plac\u00f3wki\/terminu\"\n    document.getElementById('hasPreferences').addEventListener('change', function() {\n        const preferencesSection = document.getElementById('preferencesSection');\n        const visitDatePreferences = document.getElementById('visitDatePreferences');\n\n        if (this.checked) {\n            \/\/ Poka\u017c sekcj\u0119 preferencji\n            preferencesSection.style.display = 'block';\n            \/\/ Przywr\u00f3\u0107 wymagalno\u015b\u0107 p\u00f3l\n            visitDatePreferences.required = true;\n        } else {\n            \/\/ Ukryj sekcj\u0119 preferencji\n            preferencesSection.style.display = 'none';\n            \/\/ Usu\u0144 wymagalno\u015b\u0107 p\u00f3l preferencji\n            visitDatePreferences.required = false;\n            \/\/ Wyczy\u015b\u0107 b\u0142\u0119dy walidacji\n            clearError('visitDatePreferences');\n            \/\/ Wyczy\u015b\u0107 warto\u015bci p\u00f3l\n            visitDatePreferences.value = '';\n        }\n    });\n\n    \/\/ System walidacji\n    function showError(fieldId, message) {\n        const field = document.getElementById(fieldId);\n        if (!field) return;\n\n        \/\/ Usu\u0144 poprzednie b\u0142\u0119dy\n        clearError(fieldId);\n\n        \/\/ Dodaj klas\u0119 b\u0142\u0119du do pola\n        field.classList.add('field-error');\n\n        \/\/ Stw\u00f3rz kontener b\u0142\u0119du\n        const errorDiv = document.createElement('div');\n        errorDiv.id = `${fieldId}-error`;\n        errorDiv.className = 'error-message text-red-600 text-sm mt-1 flex items-center';\n        errorDiv.innerHTML = `\n                <svg class=\"w-4 h-4 mr-1 flex-shrink-0\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n                    <path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\"><\/path>\n                <\/svg>\n                ${message}\n            `;\n\n        \/\/ Dodaj b\u0142\u0105d po polu\n        field.parentNode.appendChild(errorDiv);\n    }\n\n    function clearError(fieldId) {\n        const field = document.getElementById(fieldId);\n        if (field) {\n            field.classList.remove('field-error');\n            const errorDiv = document.getElementById(`${fieldId}-error`);\n            if (errorDiv) {\n                errorDiv.remove();\n            }\n        }\n    }\n\n    function clearAllErrors() {\n        document.querySelectorAll('.field-error').forEach(field => {\n            field.classList.remove('field-error');\n        });\n        document.querySelectorAll('.error-message').forEach(error => {\n            error.remove();\n        });\n    }\n\n    function validateRequired(fieldId, fieldName) {\n        const field = document.getElementById(fieldId);\n        if (!field) return false;\n\n        const value = field.value.trim();\n        if (!value) {\n            showError(fieldId, `${fieldName} jest wymagane`);\n            return false;\n        }\n        clearError(fieldId);\n        return true;\n    }\n\n    function validatePostalCode(fieldId) {\n        const field = document.getElementById(fieldId);\n        if (!field) return true;\n\n        const value = field.value.trim();\n        if (!value) {\n            showError(fieldId, 'Kod pocztowy jest wymagany');\n            return false;\n        }\n\n        if (!\/^\\d{2}-\\d{3}$\/.test(value)) {\n            showError(fieldId, 'Kod pocztowy musi by\u0107 w formacie XX-XXX');\n            return false;\n        }\n\n        clearError(fieldId);\n        return true;\n    }\n\n    function isElementVisible(elementId) {\n        const element = document.getElementById(elementId);\n        return element && element.style.display !== 'none';\n    }\n\n    \/\/ Funkcja do zbierania danych z formularza\n    function collectFormData() {\n        const urlParams = new URLSearchParams(window.location.search);\n        const issueId = urlParams.get('issueId');\n        const hash = urlParams.get('hash');\n\n        const formData = {\n            issueId: issueId,\n            hash: hash,\n            city: document.getElementById('city').value.trim(),\n            postalCode: document.getElementById('postalCode').value.trim(),\n            visitDatePreferences: document.getElementById('hasPreferences').checked ?\n                document.getElementById('visitDatePreferences').value.trim() : null\n        };\n\n        \/\/ Dodaj pola dla bada\u0144 psychotechnicznych (je\u015bli widoczne)\n        if (isElementVisible('psychoTechnicSection')) {\n            const psychoTechnicExams = document.querySelector('input[name=\"hasPsychotechnicalExams\"]:checked');\n            if (psychoTechnicExams) {\n                formData.hasPsychotechnicalExams = psychoTechnicExams.value === 'true';\n            }\n        }\n\n        \/\/ Dodaj pola dla bada\u0144 wst\u0119pnych (je\u015bli widoczne)\n        if (isElementVisible('initialExamSection')) {\n            const plannedWorkStartDate = document.getElementById('plannedWorkStartDate').value;\n            if (plannedWorkStartDate) {\n                formData.plannedWorkStartDate = plannedWorkStartDate;\n            }\n        }\n\n        \/\/ Dodaj pola dla bada\u0144 kontrolnych (je\u015bli widoczne)\n        if (isElementVisible('controlExamSection')) {\n            const sickLeaveType = document.querySelector('input[name=\"sickLeaveType\"]:checked');\n            if (sickLeaveType) {\n                formData.sickLeaveType = parseInt(sickLeaveType.value);\n            }\n\n            const sickLeaveEndDate = document.getElementById('sickLeaveEndDate').value;\n            if (sickLeaveEndDate) {\n                formData.sickLeaveEndDate = sickLeaveEndDate;\n            }\n        }\n\n        \/\/ Dodaj pola dla bada\u0144 okresowych (je\u015bli widoczne)\n        if (isElementVisible('periodicExamSection')) {\n            const currentPeriodicValidUntil = document.getElementById('currentPeriodicValidUntil').value;\n            const skipPeriodicDateValidation = document.getElementById('skipPeriodicDateValidation').value;\n\n            if (currentPeriodicValidUntil) {\n                formData.currentPeriodicExamsValidUntil = currentPeriodicValidUntil;\n            }\n\n            \/\/ Dodaj pole informuj\u0105ce backend czy pomin\u0105\u0107 walidacj\u0119\n            formData.skipPeriodicDateValidation = skipPeriodicDateValidation === 'true';\n        }\n\n        \/\/ Dodaj pola dla bada\u0144 sanitarno-epidemiologicznych (je\u015bli widoczne)\n        if (isElementVisible('sanitaryExamSection')) {\n            const hasSanitaryDocuments = document.querySelector('input[name=\"hasSanitaryEpidemiologicalBooklet\"]:checked');\n            if (hasSanitaryDocuments) {\n                formData.hasSanitaryEpidemiologicalBooklet = hasSanitaryDocuments.value === 'true';\n            }\n        }\n\n        return formData;\n    }\n\n    function validateForm() {\n        let isValid = true;\n\n        \/\/ Walidacja miasta\n        if (!validateRequired('city', 'Miasto')) isValid = false;\n\n        \/\/ Walidacja kodu pocztowego\n        if (!validatePostalCode('postalCode')) isValid = false;\n\n        \/\/ Walidacja preferencji (tylko je\u015bli \"Mam preferencje plac\u00f3wki\/terminu\" jest zaznaczone)\n        const hasPreferences = document.getElementById('hasPreferences').checked;\n        if (hasPreferences) {\n            if (!validateRequired('visitDatePreferences', 'Preferencje terminu wizyty')) isValid = false;\n        }\n\n        \/\/ Walidacja bada\u0144 psychotechnicznych (tylko je\u015bli sekcja jest widoczna)\n        if (isElementVisible('psychoTechnicSection')) {\n            const psychoTechnicExams = document.querySelector('input[name=\"hasPsychotechnicalExams\"]:checked');\n            if (!psychoTechnicExams) {\n                showError('psychoTechnicExamsYes', 'To pole jest wymagane dla bada\u0144 psychotechnicznych');\n                isValid = false;\n            } else {\n                clearError('psychoTechnicExamsYes');\n                clearError('psychoTechnicExamsNo');\n            }\n        }\n\n        \/\/ Walidacja p\u00f3l dla bada\u0144 wst\u0119pnych (tylko je\u015bli sekcja jest widoczna)\n        if (isElementVisible('initialExamSection')) {\n            if (!validateRequired('plannedWorkStartDate', 'Data rozpocz\u0119cia pracy')) isValid = false;\n        }\n\n        \/\/ Walidacja p\u00f3l dla bada\u0144 kontrolnych (tylko je\u015bli sekcja jest widoczna)\n        if (isElementVisible('controlExamSection')) {\n            const sickLeaveType = document.querySelector('input[name=\"sickLeaveType\"]:checked');\n            if (!sickLeaveType) {\n                showError('leaveTypeSickness', 'Wyb\u00f3r rodzaju zwolnienia jest wymagany');\n                isValid = false;\n            } else {\n                clearError('leaveTypeSickness');\n                clearError('leaveTypeMaternity');\n            }\n\n            if (!validateRequired('sickLeaveEndDate', 'Data ko\u0144ca zwolnienia')) isValid = false;\n        }\n\n        \/\/ Walidacja p\u00f3l dla bada\u0144 okresowych (tylko je\u015bli sekcja jest widoczna)\n        if (isElementVisible('periodicExamSection')) {\n            const dontKnowPeriodicDate = document.getElementById('dontKnowPeriodicDate');\n            if (!dontKnowPeriodicDate.checked) {\n                if (!validateRequired('currentPeriodicValidUntil', 'Data wa\u017cno\u015bci obecnych bada\u0144 okresowych')) isValid = false;\n            }\n        }\n\n        \/\/ Walidacja p\u00f3l dla bada\u0144 sanitarno-epidemiologicznych (tylko je\u015bli sekcja jest widoczna)\n        if (isElementVisible('sanitaryExamSection')) {\n            const hasSanitaryDocuments = document.querySelector('input[name=\"hasSanitaryEpidemiologicalBooklet\"]:checked');\n            if (!hasSanitaryDocuments) {\n                showError('hasSanitaryDocumentsYes', 'To pole jest wymagane dla bada\u0144 sanitarno-epidemiologicznych');\n                isValid = false;\n            } else {\n                clearError('hasSanitaryDocumentsYes');\n                clearError('hasSanitaryDocumentsNo');\n            }\n        }\n\n        return isValid;\n    }\n\n    \/\/ Walidacja formularza przy submit\n    const form = document.getElementById('preferencesForm');\n\n    if (form) {\n        form.addEventListener('submit', async function(e) {\n            e.preventDefault();\n            clearAllErrors();\n            hideElement('api-error-message'); \/\/ Ukryj poprzednie b\u0142\u0119dy API\n\n            \/\/ Pobierz referencje do przycisku na pocz\u0105tku\n            const submitButton = form.querySelector('button[type=\"submit\"]');\n            const originalButtonText = submitButton.textContent;\n\n            if (!validateForm()) {\n                const firstError = document.querySelector('.field-error, .error-message');\n                if (firstError) {\n                    firstError.scrollIntoView({ behavior: 'smooth', block: 'center' });\n                }\n                return false;\n            }\n\n            \/\/ Je\u015bli walidacja przesz\u0142a, wy\u015blij dane do API\n            try {\n                \/\/ Poka\u017c loader na przycisku\n                submitButton.disabled = true;\n                submitButton.innerHTML = `\n                        <svg class=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white inline\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n                            <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"><\/circle>\n                            <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"><\/path>\n                        <\/svg>\n                        Zapisywanie...\n                    `;\n\n                \/\/ Zbierz dane z formularza\n                const formData = collectFormData();\n\n                \/\/ Wy\u015blij do API\n                const responseData = await updatePreferences(formData);\n\n                \/\/ Sukces - poka\u017c success box i ukryj formularz\n                hideElementByClass('form-container');\n\n                \/\/ Ustaw komunikat z API je\u015bli dost\u0119pny\n                if (responseData.message) {\n                    const successText = document.getElementById('success-message-text');\n                    successText.textContent = 'Wkr\u00f3tce skontaktujemy si\u0119 z Tob\u0105 w celu ustalenia terminu bada\u0144 Medycyny Pracy.';\/\/responseData.message;\n                }\n\n                showElement('success-box');\n\n                \/\/ Przewi\u0144 do success box\n                document.getElementById('success-box').scrollIntoView({\n                    behavior: 'smooth',\n                    block: 'center'\n                });\n\n            } catch (error) {\n                \/\/ Przywr\u00f3\u0107 przycisk najpierw\n                submitButton.disabled = false;\n                submitButton.textContent = originalButtonText;\n\n                console.log('Submit error:', error);\n                console.log('Validation errors:', error.validationErrors);\n\n                \/\/ Sprawd\u017a czy to b\u0142\u0105d z walidacj\u0105 p\u00f3l\n                if (error.validationErrors && Array.isArray(error.validationErrors)) {\n                    \/\/ Poka\u017c b\u0142\u0119dy walidacji przy konkretnych polach\n                    let hasFieldErrors = false;\n\n                    error.validationErrors.forEach(validationError => {\n                        console.log('Processing validation error:', validationError);\n                        if (validationError.field && validationError.message) {\n                            \/\/ Mapowanie nazw p\u00f3l z backendu na ID element\u00f3w w formularzu\n                            const fieldMapping = {\n                                'city': 'city',\n                                'postalCode': 'postalCode',\n                                'visitDatePreferences': 'visitDatePreferences',\n                                'plannedWorkStartDate': 'plannedWorkStartDate',\n                                'sickLeaveEndDate': 'sickLeaveEndDate',\n                                'sickLeaveType': 'leaveTypeSickness',\n                                'currentPeriodicExamsValidUntil': 'currentPeriodicValidUntil',\n                                'hasPsychotechnicalExams': 'psychoTechnicExamsYes',\n                                'hasSanitaryEpidemiologicalBooklet': 'hasSanitaryDocumentsYes'\n                            };\n\n                            const fieldId = fieldMapping[validationError.field];\n                            console.log('Field mapping:', validationError.field, '->', fieldId);\n                            if (fieldId) {\n                                console.log('Showing error for field:', fieldId, 'Message:', validationError.message);\n                                showError(fieldId, validationError.message);\n                                hasFieldErrors = true;\n                            } else {\n                                console.log('No mapping found for field:', validationError.field);\n                            }\n                        }\n                    });\n\n                    if (hasFieldErrors) {\n                        \/\/ Przewi\u0144 do pierwszego b\u0142\u0119du\n                        const firstError = document.querySelector('.field-error, .error-message');\n                        if (firstError) {\n                            firstError.scrollIntoView({ behavior: 'smooth', block: 'center' });\n                        }\n                    } else {\n                        \/\/ Je\u015bli nie ma b\u0142\u0119d\u00f3w p\u00f3l, poka\u017c og\u00f3lny b\u0142\u0105d\n                        showApiError('Wyst\u0105pi\u0142y b\u0142\u0119dy walidacji');\n                    }\n                } else {\n                    \/\/ Og\u00f3lny b\u0142\u0105d - poka\u017c komunikat b\u0142\u0119du\n                    const errorMessage = error.message === 'Failed to fetch'\n                        ? 'Wyst\u0105pi\u0142 nieoczekiwany b\u0142\u0105d'\n                        : error.message;\n\n                    showApiError(errorMessage);\n\n                    \/\/ Przewi\u0144 do b\u0142\u0119du\n                    document.getElementById('api-error-message').scrollIntoView({\n                        behavior: 'smooth',\n                        block: 'center'\n                    });\n                }\n            }\n        });\n    }\n\n\n\n    \/\/ Walidacja real-time dla kluczowych p\u00f3l\n    ['city', 'postalCode', 'visitDatePreferences', 'plannedWorkStartDate', 'sickLeaveEndDate', 'currentPeriodicValidUntil'].forEach(fieldId => {\n        const field = document.getElementById(fieldId);\n        if (field) {\n            field.addEventListener('blur', function() {\n                if (this.value.trim()) {\n                    if (fieldId === 'postalCode') {\n                        validatePostalCode(fieldId);\n                    } else {\n                        clearError(fieldId);\n                    }\n                } else if (this.hasAttribute('required')) {\n                    const fieldName = this.previousElementSibling.textContent.replace(' *', '');\n                    showError(fieldId, `${fieldName} jest wymagane`);\n                }\n            });\n        }\n    });\n\n    \/\/ Walidacja radio buttons\n    document.querySelectorAll('input[name=\"hasPsychotechnicalExams\"]').forEach(radio => {\n        radio.addEventListener('change', function() {\n            clearError('psychoTechnicExamsYes');\n            clearError('psychoTechnicExamsNo');\n        });\n    });\n\n    document.querySelectorAll('input[name=\"sickLeaveType\"]').forEach(radio => {\n        radio.addEventListener('change', function() {\n            clearError('leaveTypeSickness');\n            clearError('leaveTypeMaternity');\n        });\n    });\n\n    document.querySelectorAll('input[name=\"hasSanitaryEpidemiologicalBooklet\"]').forEach(radio => {\n        radio.addEventListener('change', function() {\n            clearError('hasSanitaryDocumentsYes');\n            clearError('hasSanitaryDocumentsNo');\n        });\n    });\n\n    \/\/ Formatowanie kodu pocztowego\n    document.getElementById('postalCode').addEventListener('input', function() {\n        let value = this.value.replace(\/\\D\/g, ''); \/\/ Usu\u0144 wszystkie nie-cyfry\n        if (value.length >= 2) {\n            value = value.substring(0, 2) + '-' + value.substring(2, 5);\n        }\n        this.value = value;\n    });\n\n    \/\/ Obs\u0142uga checkbox \"Nie wiem\" dla bada\u0144 okresowych\n    const dontKnowPeriodicDate = document.getElementById('dontKnowPeriodicDate');\n    if (dontKnowPeriodicDate) {\n        dontKnowPeriodicDate.addEventListener('change', function() {\n            const currentPeriodicValidUntil = document.getElementById('currentPeriodicValidUntil');\n            const skipPeriodicDateValidation = document.getElementById('skipPeriodicDateValidation');\n\n            if (this.checked) {\n                \/\/ Wy\u0142\u0105cz pole daty\n                currentPeriodicValidUntil.disabled = true;\n                currentPeriodicValidUntil.value = '';\n                currentPeriodicValidUntil.required = false;\n                currentPeriodicValidUntil.classList.add('disabled-input');\n                \/\/ Ustaw ukryte pole na true\n                skipPeriodicDateValidation.value = 'true';\n                \/\/ Wyczy\u015b\u0107 b\u0142\u0119dy walidacji\n                clearError('currentPeriodicValidUntil');\n            } else {\n                \/\/ W\u0142\u0105cz pole daty\n                currentPeriodicValidUntil.disabled = false;\n                currentPeriodicValidUntil.required = true;\n                currentPeriodicValidUntil.classList.remove('disabled-input');\n                \/\/ Ustaw ukryte pole na false\n                skipPeriodicDateValidation.value = 'false';\n            }\n        });\n    }\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript jest wy\u0142\u0105czony Ten formularz wymaga w\u0142\u0105czonego JavaScript aby dzia\u0142a\u0107 poprawnie. Prosz\u0119 w\u0142\u0105czy\u0107 JavaScript w przegl\u0105darce i od\u015bwie\u017cy\u0107 stron\u0119. Nieprawid\u0142owy dost\u0119p Brak wymaganych parametr\u00f3w w adresie URL. Formularz mo\u017ce by\u0107 dost\u0119pny tylko przez oficjalny link z systemu. Je\u015bli otrzyma\u0142e\u015b link bezpo\u015brednio, sprawd\u017a czy zosta\u0142 skopiowany w ca\u0142o\u015bci. \u0141adowanie danych&#8230; Pobieramy informacje o Twoich badaniach Wyst\u0105pi\u0142 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-full-width.php","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"class_list":["post-23880","page","type-page","status-publish","hentry"],"acf":[],"lang":"pl","translations":{"pl":23880},"_links":{"self":[{"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/pages\/23880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/comments?post=23880"}],"version-history":[{"count":1,"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/pages\/23880\/revisions"}],"predecessor-version":[{"id":23881,"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/pages\/23880\/revisions\/23881"}],"wp:attachment":[{"href":"https:\/\/telemedi.com\/tm-api\/wp\/v2\/media?parent=23880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}