{"version":3,"sources":["variables/Constants.js","assets/img/forbidden.png","assets/img/default-avatar.png","assets/img/logo-blanco.png","variables/Variables.jsx","assets/img/faces/face-0.jpg","components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","history.js","api/index.js","api/security.js","store/Protocol.js","components/Authorization/useAuthorization.js","components/Authorization/WithAuth.jsx","components/SessionControls/SessionTimeout.js","components/SessionControls/SessionTimeoutDialog.js","components/Utils/Loaders.jsx","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","store/AuthUser.js","components/api-authorization/AuthorizeRoute.js","services/signalRService.js","components/Notifications/APIErrorHandler.js","api/settings.js","containers/Settings/AdminNotifications/useAdminNotifications.js","containers/Settings/AdminNotifications/SystemNotification.js","components/Footer/Footer.jsx","assets/img/icons/BloodFactor.svg","assets/img/icons/BloodType.svg","assets/img/icons/Dashboard_AddAppointment.svg","assets/img/icons/Dashboard_AddPatient.svg","assets/img/icons/Icon_AFamiliares.svg","assets/img/icons/Icon_AdverseEvent.svg","assets/img/icons/Icon_Agenda.svg","assets/img/icons/Icon_Attach.svg","assets/img/icons/Icon_BMI.svg","assets/img/icons/Icon_BloodPressure.svg","assets/img/icons/Icon_Dropdown.svg","assets/img/icons/Icon_Drugs.svg","assets/img/icons/Icon_Especialidad.svg","assets/img/icons/Icon_Habitos.svg","assets/img/icons/Icon_Historias_Clinicas.svg","assets/img/icons/Icon_Logout.svg","assets/img/icons/Icon_Notification.svg","assets/img/icons/Icon_Pacientes.svg","assets/img/icons/Icon_Procedimientos.svg","assets/img/icons/Icon_Protocolo.svg","assets/img/icons/Icon_Settings.svg","assets/img/icons/Icon_Telemetry.svg","assets/img/icons/Icon_Tipo.svg","assets/img/icons/Icon_Upload.svg","assets/img/icons/Icon_VerTodos.svg","assets/img/icons/Icon_protocolos.svg","assets/img/icons/icon_Grupo.svg","assets/img/icons/waiting_room.svg","components/Icons/Icons.jsx","components/Utils/Tooltips.jsx","components/api-authorization/LoginMenu.js","components/Utils/Commons.jsx","components/Navbars/AdminNavbarNotifications.jsx","components/Navbars/AdminNavbarUser.jsx","components/Navbars/AdminNavbarLinks.jsx","components/Navbars/AdminNavbar.jsx","api/agenda.js","components/Agenda/Event.jsx","api/admin.js","api/medicalRecord.js","api/protocol.js","containers/Protocols/Hooks.js","components/CustomHooks/Hooks.jsx","components/CustomControls/CustomSelect.jsx","components/Validations/FormValidationErrors.js","components/Agenda/Modals.jsx","containers/Agenda/Hooks.js","components/Agenda/Utils.js","components/Cards/Card.jsx","components/CustomControls/CustomDateTime.jsx","components/CustomControls/CustomFormControl.jsx","components/CustomControls/CustomRadio.jsx","api/identity.js","components/CustomControls/PractitionerPicker.jsx","components/Modals/ModalConfirm.js","components/Modals/ModalData.js","i18n.js","variables/Enums.js","components/Utils/Formatter.jsx","components/Agenda/ScheduleLock.js","components/Agenda/MedicalServiceInfo.js","components/Agenda/PatientInfo.jsx","components/Agenda/ViewEvent.jsx","api/database.js","components/CustomControls/PatientPicker.jsx","containers/Users/Hooks.js","components/CustomControls/PractitionerSelect.jsx","components/CustomControls/ProtocolPicker.js","components/Notifications/Notifications.js","components/Export/ExportToExcel.jsx","components/CustomControls/YesNoControls.jsx","components/Agenda/AppointmentForm.js","components/Validations/FormValidationSchema.js","containers/Agenda/AddAppointment.js","containers/Agenda/EditAppointment.js","containers/Agenda/ScheduleLock.js","containers/Agenda/Agenda.jsx","components/Person/AddressData.jsx","components/CustomControls/ExpandableContent.jsx","components/Person/AddressDataForm.jsx","components/Person/ContactData.jsx","components/Person/ContactDataForm.jsx","components/Person/MedicalData.jsx","components/Person/MedicalDataForm.jsx","components/CustomControls/Image.jsx","components/Person/PersonalData.jsx","components/Database/ModalTakePic.jsx","components/Database/ModalDuplicatedPatient.js","components/Person/PersonalDataForm.jsx","components/Person/RelatedContactData.jsx","components/Person/RelatedContactDataForm.jsx","components/Database/Actions.jsx","components/Database/Patient.jsx","containers/Database/Hooks.js","containers/Database/CreatePatient.jsx","containers/Database/EditPatient.jsx","containers/Database/Patient.jsx","components/CustomControls/CustomSearchBox.jsx","components/Protocols/Visit/Enums.jsx","api/Freezer/Entities/Utils.js","api/Freezer/Entities/IotDevice.js","api/Freezer/Entities/Freezer.js","containers/Freezers/FreezerComponents/FreezerForm.jsx","api/Freezer/Util.js","api/Freezer/FreezerService.js","containers/Freezers/FreezerComponents/CreateFreezerContainer.jsx","components/Common/useLoading.js","containers/Freezers/FreezerComponents/EditFreezerContainer.jsx","containers/Freezers/useFreezers.js","containers/Freezers/FreezerComponents/Freezers.jsx","containers/Freezers/FreezerComponents/DeleteFreezerModal.jsx","components/Modals/useModalContext.js","components/Common/Loader.jsx","components/CustomControls/DocViewer/DocumentViewer.js","api/Freezer/DeviceService.js","containers/Freezers/FreezerComponents/FreezersContainer.jsx","containers/Freezers/IotDevicesComponents/CreateDeviceContainer.jsx","containers/Freezers/IotDevicesComponents/DeviceForm.jsx","components/Common/Field/Field.jsx","containers/Freezers/IotDevicesComponents/DeviceDetails.jsx","containers/Freezers/useIotDevices.js","containers/Freezers/IotDevicesComponents/IotDevices.jsx","containers/Freezers/IotDevicesComponents/DeleteDeviceModal.jsx","containers/Freezers/IotDevicesComponents/IotDevicesContainer.jsx","components/CustomControls/TextBoxUsersMentions.jsx","components/AuditTrail/AuditModal.jsx","components/DigitalSign/DigitalSign.jsx","components/MedicalRecords/Actions.jsx","components/CustomControls/RichTextControl.js","components/Table/Formatters.jsx","components/MedicalRecords/Entry.jsx","components/MedicalRecords/EntryOptions.jsx","components/CustomControls/ReadMore.js","components/MedicalRecords/PatientInfo.jsx","components/Modals/RouteChangeDetect.js","components/Slider/Slider.js","components/Utils/AutoSaveForm.js","components/DigitalSign/DigitalSignForm.jsx","containers/DigitalSign/ModalDigitalSign.jsx","api/snomed.js","components/CustomControls/SnomedPicker.jsx","components/CustomControls/DatePicker.jsx","components/CustomControls/CustomCheckbox.jsx","components/MedicalRecords/Forms/DiagnosisForm.js","containers/MedicalRecords/Hooks/useDiagnosis.js","components/MedicalRecords/Conditions.js","components/CustomControls/CustomTextStyle.js","components/AuditTrail/Audit.jsx","containers/Admin/AuditTrail.jsx","containers/MedicalRecords/Hooks/useAdverseEvents.js","containers/MedicalRecords/CreateEntryItems/DiagnosisContainer.js","components/MedicalRecords/EntryItemsTable.jsx","components/MedicalRecords/AdverseEvents.jsx","components/MedicalRecords/ModalDuplicatedItem.js","components/MedicalRecords/Forms/AdverseEventsForm.jsx","containers/MedicalRecords/CreateEntryItems/AdverseEventsContainer.jsx","components/MedicalRecords/Anthropometrics.jsx","containers/MedicalRecords/Hooks/useAnthropometrics.js","components/Charts/Chart.js","components/Utils/Dates.jsx","components/MedicalRecords/AnthropometricsHistory.js","containers/MedicalRecords/Modals/ModalAnthropometricsHistory.js","containers/MedicalRecords/CreateEntryItems/AnthropometricsContainer.jsx","components/MedicalRecords/Forms/AnthropometricsForm.jsx","api/commons.js","components/CustomControls/Files/Utils.js","components/CustomControls/Files/Hooks.js","components/CustomControls/Files/Files.js","components/MedicalRecords/Attachments.jsx","containers/MedicalRecords/Hooks/useAttachments.js","containers/MedicalRecords/CreateEntryItems/AttachmentsContainer.jsx","containers/MedicalRecords/Hooks/useConditions.js","containers/MedicalRecords/CreateEntryItems/ConditionsContainer.js","containers/MedicalRecords/Hooks/useDrugs.js","components/MedicalRecords/Drugs.jsx","containers/MedicalRecords/CreateEntryItems/DrugsContainer.jsx","components/MedicalRecords/Forms/DrugsForm.jsx","components/MedicalRecords/FamilyHistory.jsx","containers/MedicalRecords/Hooks/useFamilyHistory.js","containers/MedicalRecords/CreateEntryItems/FamilyHistoryContainer.jsx","components/MedicalRecords/Forms/FamilyHistoryForm.jsx","components/MedicalRecords/Forms/LaboratoriesForm.jsx","components/MedicalRecords/Laboratory.jsx","containers/MedicalRecords/Hooks/useLaboratories.js","components/MedicalRecords/LaboratoryHistory.js","containers/MedicalRecords/Modals/ModalLaboHistory.js","containers/MedicalRecords/CreateEntryItems/LaboratoriesContainer.jsx","components/MedicalRecords/Forms/PersonalHabitsForm.jsx","components/MedicalRecords/PersonalHabits.jsx","containers/MedicalRecords/Hooks/usePersonalHabits.js","containers/MedicalRecords/CreateEntryItems/PersonalHabitsContainer.jsx","containers/MedicalRecords/Hooks/usePersonalHistory.js","containers/MedicalRecords/CreateEntryItems/PersonalHistoryContainer.jsx","components/MedicalRecords/Forms/ProceduresForm.jsx","containers/MedicalRecords/Hooks/useProcedures.js","components/MedicalRecords/Procedures.jsx","containers/MedicalRecords/CreateEntryItems/ProceduresContainer.jsx","components/MedicalRecords/Forms/VitalsForm.jsx","components/MedicalRecords/Vitals.jsx","containers/MedicalRecords/Hooks/useVitals.js","components/MedicalRecords/VitalsHistory.js","containers/MedicalRecords/Modals/ModalVitalsHistory.js","containers/MedicalRecords/CreateEntryItems/VitalsContainer.jsx","containers/MedicalRecords/CreateEntryItems/EntryItems.jsx","containers/MedicalRecords/Hooks/useObservation.js","containers/MedicalRecords/CreateEntryItems/ObservationContainer.js","components/MedicalRecords/Forms/OrdersForm.js","components/MedicalRecords/Orders.js","containers/MedicalRecords/Hooks/useOrders.js","containers/MedicalRecords/Modals/ModalData.js","containers/MedicalRecords/CreateEntryItems/OrdersContainer.jsx","components/CustomControls/CustomSwitch.jsx","components/MedicalRecords/Forms/PrescriptionsForm.jsx","components/MedicalRecords/Prescriptions.js","containers/MedicalRecords/Hooks/usePrescriptions.js","containers/MedicalRecords/CreateEntryItems/PrescriptionsContainer.jsx","containers/MedicalRecords/Hooks/useEntries.js","containers/MedicalRecords/Hooks/useModalData.js","containers/MedicalRecords/Hooks/usePatient.js","containers/MedicalRecords/Modals/ModalAdverseEventHistory.js","containers/MedicalRecords/MedicalRecordItems/AdverseEventsListContainer.jsx","containers/MedicalRecords/MedicalRecordItems/AnthropometricsListContainer.jsx","containers/MedicalRecords/MedicalRecordItems/AttachmentsListContainer.jsx","containers/MedicalRecords/Modals/ModalDrugsHistory.js","containers/MedicalRecords/MedicalRecordItems/DrugsListContainer.jsx","components/MedicalRecords/Entries.jsx","containers/MedicalRecords/MedicalRecordItems/EntriesContainer.js","containers/MedicalRecords/MedicalRecordItems/FamilyHistoryListContainer.jsx","containers/MedicalRecords/MedicalRecordItems/LaboratoryListContainer.jsx","containers/MedicalRecords/MedicalRecordItems/PersonalHabitsListContainer.jsx","components/MedicalRecords/PersonalHistory.jsx","containers/MedicalRecords/MedicalRecordItems/PersonalHistoryListContainer.jsx","containers/MedicalRecords/Modals/ModalProcedureHistory.js","containers/MedicalRecords/MedicalRecordItems/ProceduresListContainer.jsx","containers/MedicalRecords/MedicalRecordItems/PrescriptionsListContainer.js","containers/MedicalRecords/MedicalRecordItems/VitalsListContainer.jsx","containers/MedicalRecords/MedicalRecordItems/OrdersListContainer.js","containers/MedicalRecords/MedicalRecordItems/ConditionsListContainer.js","containers/MedicalRecords/MedicalRecordItems/EntryItemsList.jsx","containers/MedicalRecords/Modals/ModalAddData.jsx","components/Modals/ModalSpinner.jsx","containers/MedicalRecords/CreateEntry.jsx","components/MedicalRecords/LastVitals.jsx","components/Authorization/WithAuthProtocol.jsx","components/Utils/Popover.jsx","containers/Protocols/Tracking/Services.jsx","components/MedicalRecords/ModalNewEntry.jsx","components/Protocols/Tracking/Modals.jsx","containers/MedicalRecords/Hooks/useNewEntry.js","components/Agenda/Appointments.js","containers/Agenda/AppointmentsHistory.js","containers/MedicalRecords/MedicalRecordItems/ObservationsListContainer.js","containers/MedicalRecords/MedicalRecord.jsx","components/DigitalSign/Sign.js","components/MedicalRecords/EntryNav.jsx","components/Utils/Diff.jsx","components/CustomControls/AuditTooltip.jsx","components/MedicalRecords/EntryView.jsx","components/Protocols/Admin/Modals.jsx","components/Protocols/Admin/Laboratories.jsx","containers/Protocols/Admin/CreateLaboratory.jsx","api/protocolAdmin.js","components/Protocols/Admin/StudyTasks.jsx","containers/Protocols/Admin/CreateStudyTasks.jsx","containers/Protocols/Admin/useLaboratories.js","containers/Protocols/Admin/EditLaboratory.jsx","containers/Protocols/Admin/useStudyTasks.js","containers/Protocols/Admin/EditStudyTasks.jsx","containers/Protocols/Admin/Laboratories.jsx","containers/Protocols/Admin/StudyTasks.jsx","api/protocolTemplates.js","api/protocolsExtraForms.js","containers/Protocols/ProtocolContext/ProtocolContext.js","containers/Protocols/ProtocolContext/ProtocolProvider.js","components/Protocols/Visit/Modals.jsx","components/DynamicForm/DynamicFormComponents.jsx","components/DynamicForm/DynamicFormControls.jsx","components/CustomControls/Adherence.jsx","components/CustomControls/CustomFileUpload.jsx","components/DynamicForm/DynamicFormCreatorViewer.jsx","components/DynamicForm/DynamicFormHeader.jsx","components/DynamicForm/DynamicFormOptions.jsx","components/DynamicForm/DynamicFormCreator.js","containers/Protocols/ExtraForms/ExtraForm.js","components/Protocols/ProtocolInfo.jsx","components/Protocols/Brief.jsx","containers/Protocols/Brief/Brief.jsx","components/Protocols/Practitioners.jsx","containers/Security/Authorization/useStudyRoles.js","containers/Protocols/Practitioners/AddPractitioners.jsx","containers/Protocols/Practitioners/EditPractitioner.jsx","components/AuditTrail/AuditUserRole.js","containers/Protocols/Audit/AuditUserRole.js","containers/Protocols/Audit/hooks.js","containers/Protocols/Practitioners/Practitioners.jsx","components/Protocols/Patients.jsx","components/Protocols/Tracking/Filters.jsx","containers/Protocols/Patients/AddPatients.jsx","containers/Protocols/Patients/PatientNumber.js","containers/Protocols/Tracking/VisitsTracking.jsx","components/CustomControls/CustomInput.jsx","components/Protocols/Visit/Header.jsx","containers/Protocols/Visits/CreateVisit.jsx","containers/Protocols/Visits/EditVisit.jsx","containers/Protocols/Visits/RemoveVisit.jsx","containers/Protocols/Visits/useVisits.js","components/Protocols/Visit/CopyVisits.js","containers/Protocols/Visits/CopyVisits.js","containers/Protocols/Visits/Visits.jsx","containers/Protocols/ExtraForms/NewExtraForm.js","containers/Protocols/ExtraForms/ExtraForms.js","containers/Protocols/ExtraForms/useExtraForms.js","api/Freezer/Entities/ProtocolFreezerConfiguration.js","api/Freezer/FreezerProtocolServices.js","containers/Protocols/Freezers/ConfigureProtocolFreezerContainer.jsx","containers/Protocols/Freezers/useProtocolFreezer.js","containers/Protocols/Freezers/FreezerTabContainer.jsx","containers/Protocols/Protocol.jsx","components/Protocols/Actions.jsx","components/Protocols/Visit/Forms.jsx","components/Protocols/Visit/VisitHistory.jsx","components/Protocols/Tracking/FormsRestrictions.js","containers/Protocols/Visits/FormRestrictions.js","containers/Protocols/Visits/CopyForms.js","containers/Protocols/Visits/useForms.js","components/Protocols/Visit/SaveAsTemplate.js","containers/Protocols/Visits/VisitForm.jsx","containers/Security/Authorization/useRoles.js","components/Authorization/Modals.jsx","components/Authorization/Permissions.jsx","components/Authorization/Roles.jsx","api/tenants.js","containers/Tenants/Hooks.js","containers/Security/Authorization/CreateRole.jsx","components/Authorization/StudyPermissions.jsx","components/Authorization/StudyRoles.jsx","containers/Security/Authorization/CreateStudyRole.jsx","containers/Security/Authorization/EditRole.jsx","containers/Security/Authorization/EditStudyRole.jsx","containers/Settings/AdminContext/AdminContext.js","components/AuditTrail/AuditRolePermissions.js","containers/Security/Audit/AuditRolePermissions.js","containers/Security/Audit/hooks.js","containers/Security/Authorization/Roles.jsx","containers/Protocols/Audit/AuditRolePermissions.js","containers/Security/Authorization/StudyRoles.jsx","components/Tenants/Tenant.jsx","containers/Tenants/Create.jsx","containers/Tenants/Edit.jsx","components/Tenants/Tenants.jsx","containers/Tenants/Tenants.jsx","components/Users/Users.jsx","containers/Users/CreateUser.jsx","api/digitalSign.js","components/Person/ProfessionalData.jsx","components/Person/ProfessionalDataForm.jsx","components/CustomControls/Images/canvasPreview.ts","components/CustomControls/Images/CustomImage.tsx","components/CustomControls/Images/useDebounceEffect.ts","components/Person/UserSign.js","components/Users/Actions.jsx","components/Person/DigitalSignDataForm.jsx","components/Users/UserProfile.jsx","containers/Users/EditUser.jsx","containers/Users/User.jsx","containers/Users/UserSettings.jsx","components/Users/UserSettingsForm.jsx","containers/Users/Audit/hooks.js","containers/Users/Audit/AuditUserRole.js","containers/Users/Users.jsx","components/Dashboard/AppointmentWidget.jsx","components/Dashboard/DateTimeWidget.jsx","components/Dashboard/PatientWidget.jsx","components/Dashboard/SearchWidget.jsx","components/Dashboard/WelcomeWidget.jsx","api/notifications.js","store/Notifications.js","components/Notifications/UserNotifications.jsx","components/CustomControls/PatientAvatarAsync.js","components/Dashboard/DailyAgendaWidget.jsx","store/Agenda.js","containers/Agenda/WaitingListWidgetContainer.jsx","views/Dashboard.jsx","components/Database/ExpandedContent.jsx","containers/Database/Patients.jsx","views/Database.jsx","views/Errors/Forbidden.jsx","views/Errors/NotFound.jsx","views/Errors/Unauthorized.jsx","components/CustomControls/CustomDate.js","components/DynamicForm/DynamicForm.jsx","components/Protocols/ExtraVisits/Forms.jsx","components/Protocols/Tracking/Forms.jsx","components/Protocols/DocumentNotes.jsx","containers/Protocols/DocumentNotes/DocumentNotes.js","components/Protocols/Tracking/Entry.jsx","containers/Protocols/Evolutions/Evolutions.js","containers/Protocols/Evolutions/useEvolutions.js","components/Protocols/MonitorNotes.js","containers/Protocols/MonitorNotes/MonitorNotes.js","containers/Protocols/MonitorNotes/useMonitorNotes.js","containers/Protocols/TrackingExtra/ExtraVisit.jsx","containers/Protocols/VisitHeaderContainer.js","components/Protocols/Header.jsx","containers/Protocols/Brief/CreateBrief.jsx","containers/Protocols/Brief/EditBrief.jsx","views/Protocols/ProtocolEditView.jsx","components/Protocols/Protocols.jsx","containers/Protocols/Protocols.jsx","containers/Protocols/Tracking/VisitTracking.jsx","containers/Settings/AdminContext/AdminProvider.js","components/Settings/ResultsTemplates.js","api/resultsTemplates.js","containers/Settings/Hooks/useResultsTemplates.js","containers/Settings/ModalTemplate.js","components/Modals/RemoveModal.js","containers/Settings/ResultsTemplate.jsx","containers/Settings/ResultsTemplates.jsx","containers/Settings/Hooks/useSettings.js","containers/Settings/SettingsContainer.js","components/Settings/Settings.js","containers/Settings/SyncContainer.jsx","components/CustomControls/Button.js","components/AdminNotifications/AdminNotification.js","components/AdminNotifications/AdminNotifications.js","containers/Settings/AdminNotifications/AdminNotificationsContainer.js","views/Settings.jsx","api/Freezer/Entities/IotMessages.js","api/Freezer/Entities/FreezerTelemetryResume.js","api/Freezer/IotMessagesServices.js","containers/Freezers/TelemetryComponents/Utils.js","containers/Freezers/useIotMessages.js","containers/Freezers/TelemetryComponents/Components/DateRange.jsx","containers/Freezers/TelemetryComponents/Components/SearchHeader.jsx","containers/Freezers/TelemetryComponents/Components/TelemetryCharts.jsx","containers/Freezers/TelemetryComponents/FreezerTelemetryContainer.jsx","containers/Freezers/TelemetryComponents/hooks/useLaboratoryProtocol.js","containers/Freezers/TelemetryComponents/ProtocolTelemetry.jsx","containers/Freezers/TelemetryComponents/Components/Alert.jsx","containers/Freezers/TelemetryComponents/Components/Dot.jsx","containers/Freezers/TelemetryComponents/Components/FreezerTogglePanel.jsx","containers/Freezers/TelemetryComponents/TelemetryGeneralView.jsx","containers/Freezers/TelemetryComponents/hooks/useFreezerResume.js","containers/Freezers/TelemetryComponents/hooks/useProtocolResume.js","views/TelemetryPage.jsx","views/UserProfile.jsx","components/Sidebar/Sidebar.jsx","routes.js","containers/MedicalRecords/ViewEntry.jsx","views/Protocols/ProtocolsView.jsx","views/Protocols/ProtocolCreateView.jsx","views/Protocols/PractitionersView.jsx","views/Protocols/VisitTrackingView.js","views/Protocols/ExtraVisitTrackingView.js","containers/Protocols/Visits/Visit.jsx","containers/ExternalNotes/ExternalNotes.js","containers/ExternalNotes/useExternalNotes.js","containers/Freezers/useFreezer.js","containers/Freezers/useIotDevice.js","components/Utils/Breadcrumbs.jsx","components/api-authorization/CustomRoute.js","layouts/Admin.jsx","store/Configuration.js","App.js","registerServiceWorker.js","index.js","store/configureStore.js"],"names":["module","exports","googleAPIKey","defaultWidth","window","screen","width","style","Wrapper","Containers","DefaultStyle","position","padding","zIndex","WebkitBoxSizing","MozBoxSizing","boxSizing","height","display","border","fontSize","WebkitFontSmoothing","fontFamily","fontWeight","color","tl","top","bottom","left","right","tr","tc","margin","marginLeft","bl","br","bc","NotificationItem","cursor","borderRadius","opacity","transition","WebkitTransform","transform","willChange","isHidden","isVisible","success","borderTop","backgroundColor","WebkitBoxShadow","MozBoxShadow","boxShadow","error","warning","info","Title","marginTop","MessageWrapper","marginRight","maxWidthwidth","Dismiss","float","lineHeight","outline","textAlign","Action","background","ActionWrapper","QueryParameterNames","LogoutActions","LoginActions","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","Log","logger","console","level","ERROR","this","getUser","user","profile","ensureUserManagerInitialized","userManager","access_token","state","signinSilent","createArguments","silentUser","updateState","signinRedirect","redirect","log","url","signinCallback","identification_number","redirectToProfile","JSON","stringify","Error","signoutPopup","undefined","signoutRedirect","signoutCallback","response","data","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","message","status","AuthenticationResultStatus","Fail","Success","Redirect","RedirectToProfile","fetch","ok","json","publicSettings","settings","client_id","authority","identityApi","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","prefix","clockSkew","redirect_uri","callBackUrl","post_logout_redirect_uri","response_type","scope","UserManager","events","addUserSignedOut","a","removeUser","createBrowserHistory","basename","document","getElementsByTagName","getAttribute","instance","axios","create","interceptors","request","use","config","getAccessToken","token","headers","Authorization","history","Promise","reject","transformRequestOptions","params","options","ids","forEach","id","getRoles","filters","queryString","query","search","searchParams","URLSearchParams","toString","newActiveFilters","delete","pagination","page","append","sizePerPage","sort","sortField","sortOrder","getPagingAndOrderParams","property","onlyDoctor","getQueryString","location","get","getAuditRolePermissionsAPI","roleId","getCurrentUserRole","protocolId","getAuditStudyRolePermissionsAPI","initialState","role","isLoading","roleActionCreator","dispatch","type","reducer","action","useAuthorization","isAuthenticated","useSelector","authentication","requiredPermissions","permission","permissions","includes","useAuthProtocol","currentUserRoleData","protocol","useDispatch","includePermissions","excludePermissions","currentUserRoles","hasIncludePermissions","some","hasExcludePermission","useProtocolPageAuth","WithAuth","props","requiredPermission","isAuthorized","children","propTypes","PropTypes","array","countdownInterval","timeout","SessionTimeoutDialog","open","countdown","onLogout","onContinue","t","useTranslation","ReactDOM","createPortal","Fragment","show","backdrop","Header","Body","Footer","onClick","body","SessionTimeout","logOut","useState","timeoutModalOpen","setTimeoutModalOpen","timeoutCountdown","setTimeoutCountdown","settingsStore","clearSessionTimeout","clearTimeout","clearSessionInterval","clearInterval","handleLogout","err","useIdleTimer","onIdle","setTimeout","countDown","setInterval","onActive","inactivityTime","debounce","Spinner","className","marginBottom","ModalSpinner","isShowing","hide","onHide","closeButton","login","getReturnUrl","processLoginCallback","setState","redirectToRegister","returnUrl","signIn","result","navigateToReturnUrl","href","completeSignIn","sub","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","encodeURI","apiAuthorizationPath","redirectUrl","replace","Component","Logout","isReady","authenticated","local","logout","processLogoutCallback","populateAuthenticationState","navigateToLogin","signOut","completeSignOut","ApiAuthorizationRoutes","path","render","loginAction","logoutAction","name","authUserActions","all","AuthorizeRoute","ready","setReady","useEffect","_subscription","subscribe","authenticationChanged","unsubscribe","innerProps","component","to","SignalRContext","createContext","useSignalR","useContext","SignalRProvider","groupName","connection","setConnection","logMessageContent","LogLevel","accessTokenFactory","access","newConnection","HubConnectionBuilder","withUrl","notificationsApi","withAutomaticReconnect","configureLogging","build","start","then","invoke","catch","_connectionState","HubConnectionState","Connected","stop","Provider","value","ErrorMsg","ErrorMsgWithInfo","ErrorMsgWithArrayInfo","arrayInfo","item","i18n","hashCode","content","hash","charCodeAt","getErrorMessage","errorMessage","StatusCode","statusCode","responseType","Blob","toLowerCase","indexOf","reader","FileReader","onload","errorContent","parse","toast","POSITION","TOP_RIGHT","toastId","readAsText","HandleApiError","HandleError","HandleMessageError","errorInfo","uploadHeader","formData","post","getAdminNotificationsAPI","getLastActiveAdminNotificationAPI","getAdminNotificationAPI","notificationId","createAdminNotificationAPI","notification","updateAdminNotificationAPI","put","removeAdminNotificationAPI","setIsReadOnlyAPI","readonly","useAdminNotification","setIsLoading","note","documentNote","res","SystemNotification","getLastActiveNotification","showNotification","containerId","on","isSubscribed","notif","fetchData","autoClose","newestOnTop","closeOnClick","pauseOnFocusLoss","draggable","theme","enableMultiContainer","Grid","fluid","Date","getFullYear","_extends","Object","assign","target","arguments","source","key","prototype","hasOwnProperty","call","apply","createElement","d","SvgBloodFactor","_ref","svgRef","title","enableBackground","viewBox","ref","ForwardRef","forwardRef","SvgBloodType","cx","cy","r","SvgDashboardAddAppointment","rx","ry","SvgDashboardAddPatient","SvgIconAFamiliares","fill","stroke","SvgIconAdverseEvent","SvgIconAgenda","SvgIconAttach","SvgIconBmi","SvgIconBloodPressure","x","y","xmlSpace","filterUnits","input","stdDeviation","floodOpacity","operator","in2","in","SvgIconDropdown","SvgIconDrugs","SvgIconEspecialidad","SvgIconHabitos","SvgIconHistoriasClinicas","SvgIconLogout","SvgIconNotification","SvgIconPacientes","SvgIconProcedimientos","SvgIconProtocolo","SvgIconSettings","SvgIconTelemetry","SvgIconTipo","SvgIconUpload","SvgIconVerTodos","SvgIconProtocolos","SvgIconGrupo","SvgWaitingRoom","BackgroundComponent","IconSVG","Signature","FormRestriction","FormAdditional","FormEarlyCompleted","FormExtraProtocol","Lock","ViewMR","View","Search","WaitingRoom","MoneyBill","Print","Note","AddAppointment","Calendar","CalendarCheck","CalendarCross","Audit","Add","RemoveCircle","Attach","Remove","Edit","Copy","Close","Check","PersonCheck","PersonCheckLine","PersonCrossLine","Back","Next","Export","Camera","Up","Down","Swap","ViewPractitioner","ViewProtocol","ViewVisit","VisitTracking","Patient","Config","ExtraProtocol","Laboratory","PrincipalInvestigator","Status","Phase","Save","Publish","Cancel","Change","Warning","Unread","Readed","Enabled","Disabled","Drug","ContactInfo","RelatedContact","CellPhone","Phone","OnSite","VideoCall","Email","Facebook","Instagram","Twitter","Address","Identification","Doctor","Statistics","File","Sync","BirthDate","MedicalInsurance","MedicalInsuranceNumber","MedicalRecord","Expand","Contract","Chart","Table","ChartBar","ChartLine","Comments","Tooltip","tooltip","placement","Children","React","delay","hideOnClick","defaultProps","LoginMenu","authenticationState","logoutPath","pathname","_userName","_profilePath","authenticatedView","email","profilePath","_registerPath","loginPath","activeClassName","anonymousView","registerPath","generateLink","mentionParams","urlParams","has","getProtocolUrl","getQueryParam","getFullNameFromUserMention","mention","fullNameRegex","matches","exec","capitalize","s","onlyFirst","split","charAt","toUpperCase","slice","words","word","join","getRemovedElement","arrayPasado","arrayActual","arrayMoveImmutable","fromIndex","toIndex","newArray","startIndex","endIndex","arrayMoveMutable","AdminNavbarNotificationsContainer","connect","notifications","payload","MenuItem","eventKey","notifCountContainer","unreaded","NavDropdown","noCaret","bsClass","AdminNavbarUser","src","avatar","alt","family_name","given_name","divider","HeaderLinks","settingsState","Nav","pullRight","AdminNavbarNotifications","AdminNavbar","Navbar","collapseOnSelect","navbar","innerWidth","Collapse","AdminNavbarLinks","currentDate","view","projects","project","protocols","practitioners","practitioner","deleted","medicalRecord","present","getQueryString2","getEvents","getEventsByPatient","medicalRecordNumber","getEventAPI","createEvent","event","updateEventAttendance","eventId","setPresent","getPatient","getPractitionersByProtocol","exportToExcel","getMedicalServiceAPI","getMedicalServicePriceAPI","medicalServiceId","medicalInsuranceId","medicalPlanId","getPractitionersAPI","getAvailabilityAPI","userId","isFirstTime","isOverShift","getGlobalAvailabilityAPI","createScheduleLockAPI","scheduleLock","deleteScheduleLockAPI","EventPatient","attended","textDecoration","confirmed","patient","fullName","visitType","moment","format","EventScheduleLock","end","Event","code","EventMonthPatient","EventMonthScheduleLock","EventMonth","EventAgendaPatient","EventAgendaScheduleLock","EventAgenda","getDrugsData","getLaboratoryData","getAuditTrail","entity","entityId","parentKey","getAuditProtocolUserRoleAPI","patientId","actual","includePersonalHistory","entryId","category","getEntries","getEntry","createEntry","entry","getAdverseEvents","getAdverseEvent","putAdverseEvent","removeAdverseEventAPI","reason","comments","getAllConditions","deleteCondition","postCondition","getConditions","getAttachments","getAttachment","getDrugs","getDrug","putDrug","removeDrugAPI","getPrescriptions","getPrescription","removePrescriptionAPI","getOrders","getOrder","removeOrderAPI","getProcedures","getProcedure","putProcedure","removeProcedureAPI","getAnthropometrics","getAnthropometric","putAnthropometric","removeAnthropometricAPI","getFamilyHistories","getFamilyHistory","putFamilyHistory","removeFamilyHistoryAPI","getPersonalHistories","getPersonalHistory","putPersonalHistory","getPersonalHabits","getPersonalHabit","putPersonalHabit","removePersonalHabitAPI","getLaboratories","putLaboratoryResult","getLaboratoryResult","removeLaboratoryAPI","removeLaboratoryResultAPI","getLastVitals","getVitals","getVital","putVital","removeVitalAPI","getMasterData","items","itemsParams","getProtocols","getProtocol","createProtocol","editProtocol","closeProtocolApi","removeProtocolApi","uploadAttachmentEndpoint","getAttachmentEndpoint","uploadPractitionerAttachment","practitionerId","getPractitionerAttachmentsEndpoint","getPractitioners","q","getPractitioner","practitionerUserId","addPractitioners","editPractitioner","removePractitioner","comment","addPatients","patients","changePatientNumber","removePatient","numberInProtocol","getAllVisits","getApprovedVisits","getVisits","getVisit","visitId","createVisit","visit","copyVisit","copyVisitsAPI","fromProtocolId","selectedVisitIds","paramsSerializer","editVisit","removeVisit","swapVisits","visitToSwapId","getVisitHistory","publishVisit","printVisit","getForms","createForm","form","copyFormsAPI","fromVisitId","formsToCopyIds","editForm","formId","sortForms","sortedForms","getVisitsTracking","getVisitTrackingForms","getVisitTrackingForm","createVisitTracking","saveVisitTracking","saveUploadVisitTrackingAPI","publishVisitTracking","digitalSign","skipVisitTracking","screenFailureVisitTracking","lostToFollowUpVisitTracking","discontinuationVisitTracking","withoutDrugsVisitTracking","returnDrugsVisitTracking","reSyncVisitTrackingAPI","changeTypeVisitTrackingAPI","changeVisitTrackingTypeAPI","visitTrackingId","removeVisitTrackingAPI","endPatientInProtocolVisitTrackingAPI","rollbackVisitStatusAPI","audit","uploadVisitTrackingAttachmentFormEndpoint","getVisitTrackingAttachmentFormEndpoint","getVisitTrackingExtraForms","createVisitTrackingExtra","vm","saveVisitTrackingExtraForm","publishVisitTrackingExtraForm","screenFailureVisitTrackingExtra","endPatientInProtocolVisitTrackingExtraAPI","rollbackVisitStatusExtraAPI","removeVisitTrackingExtraAPI","uploadVisitTrackingExtraAttachmentFormEndpoint","getVisitTrackingAdverseEvents","exportVisitTrackingAPI","pin","btoa","saveEvolutionAPI","evolution","updateEvolutionAPI","evolutionId","saveEvolutionExtraAPI","updateEvolutionExtraAPI","updateFormRestrictionsAPI","restrictions","getDocumentNotes","documentId","getDocumentNote","noteId","createDocumentNote","updateDocumentNote","getExternalNotes","getMonitorNotes","getMonitorNote","createMonitorNote","updateMonitorNote","changeStatusMonitorNote","removeMonitorNote","useBriefMasterData","laboratories","phases","studyTasks","setData","useStudyTasks","getStudyTasks","useProtocolVisits","visits","setVisits","useProtocols","queryParams","totalSize","setTotalSize","setQuery","paginatedResult","count","newQuery","filterName","selectedValue","useProtocol","brief","setBrief","useAudits","hasVisitTracking","audits","setAudits","resp","field","fieldName","find","oldValues","old","current","newValues","useMasterData","CustomSelect","classNamePrefix","placeholder","onChange","onBlur","getOptionLabel","option","getOptionValue","isClearable","CustomSelectAsync","masterData","AdverseEventsAsync","patientNumber","groups","label","conceptId","description","promise1","promise2","promise3","responses","concat","adverseEvents","personalHistory","resEvents","adverseEffectId","adverseEffect","resPersonalHistory","useProtocolAdverseEvents","menuPortalTarget","styles","menuPortal","base","FormErrorMessage","ConfirmRemove","inputValue","setInputValue","setSelectedValue","setError","onConfirm","onCancel","onClose","confirmBtnBsStyle","cancelBtnBsStyle","confirmBtnText","cancelBtnText","showCancel","allowOutsideClick","_name","FormGroup","ControlLabel","FormControl","evt","currentTarget","rows","componentClass","useEvents","setEvents","utc","toDate","useScheduleLocks","getScheduleLocksAPI","useMedicalServices","medicalService","setMedicalService","medicalServices","setMedicalServices","medicalServicePrice","setMedicalServicePrice","visitTypeColorGetter","returnRGB","colourStyles","alignItems","dot","validateIsSameOfAfter","dateToCompare","startOf","isSameOrAfter","Card","tabs","shadow","header","subtitle","ctAllIcons","ctFullWidth","ctTextCenter","tableFullWidth","footer","formatDateForInput","date","dateFormat","isMoment","momentDate","isValid","CustomDateTime","rest","inputProps","disabled","timeFormat","initialValue","CustomTime","minuteFormat","CustomDate","CustomFormControl","innerValue","setInnerValue","debouncedHandleOnChange","useCallback","handleOnChange","newValue","CustomRadio","number","checked","htmlFor","includeDisabled","getUsers","getUsersByIdAPI","users","uploadSign","getAuditUserRoleAPI","PractitionerPicker","setOptions","typeahead","renderMenuItemChildren","text","speciality","registrationNumber","labelKey","filterBy","clearButton","highlightOnlyResult","allowNew","onSearch","showSearchIcon","InputGroup","Addon","multiple","minLength","ModalConfirm","timer","confirmStyle","cancelStyle","counter","setCounter","confirmDisabled","setConfirmDisabled","interval","prevCounter","ModalData","size","bsSize","dialogClassName","initReactI18next","init","resources","en","translation","require","es","pt","lng","fallbackLng","interpolation","escapeValue","debug","getLocalizedEnum","montoto","bloodGroup","bloodFactor","language","typeOptions","visitTypesEnum","snomedExpressions","hcVisitStatus","visitStatus","formStatus","visitTypes","patientInProtocolStatus","visitStage","visitTypeEnum","noteEnum","formTypes","formTypeFields","fields","fieldType","conditions","conceptType","interopSystemEnum","nullableDateFormatter","day","month","year","parseInt","toLocaleDateFormatter","withIcon","icon","localeDate","endsWith","dateFormatter","dateTime","locale","toLocaleDateTimeFormatter","dateTimeFormatter","dateTimeUTCFormatter","yesNoFormatter","translationFn","objectFormatter","extractContentFromHTML","html","DOMParser","parseFromString","documentElement","textContent","ScheduleLocks","handleTableChange","handleRemove","modal","setModal","confirmRemove","columns","dataField","formatter","cell","row","lockFrom","lockTo","isDummyField","headerClasses","classes","_cell","rowIndex","aria-hidden","wrapperClasses","bordered","hover","remote","keyField","paginationFactory","hideSizePerPage","onTableChange","noDataIndication","ScheduleLockAppointmentsTaken","appointmentsTaken","components","borderLeft","MedicalServiceInfo","service","Row","Col","sm","serviceNameReference","isCoveredByMedicalInsurance","coverRequirements","requiresApproval","requiredCopago","copagoComments","price","PatientInfo","ageComponent","age","verticalAlign","paddingLeft","birthDate","identificationType","identificationNumber","medicalInsurance","medicalInsurancePlan","medicalInsuranceNumber","address","cellPhone","ViewEvent","handleModalClose","handleViewEdit","handleAttended","handleNotAttendance","handleEventStatus","handleCancelEvent","handleSetPresent","setPatient","getMedicalServicePrice","getPatientData","getServicesData","medicalInsurancePlanId","res2","toLocaleTimeString","navigator","hour","minute","actionButtons","editButton","cancelButton","presentButton","telemedicineButton","telemedicineToken","telemedicineUrl","bsStyle","Modal","desc","readOnly","professionals","professional","getPatients","withProfileImage","getPatientByMedicalRecord","getPatientAvatarByMedicalRecord","createPatient","searchPatients","PatientPicker","useUsers","setUsers","usePractitioners","useUser","setUser","usePersonMasterData","setMasterData","PractitionerSelect","ProtocolPicker","specialty","protocolNumber","Msg","closeToast","MsgWithInfo","messageKey","ErrorMessage","ExportToExcel","bind","disposition","filename","FileSaver","withTranslation","YesNoNotApply","handleClick","YesNo","AppointmentForm","values","isSubmitting","setFieldValue","setFieldTouched","handleSubmit","resetForm","formType","calendarView","useRef","setProtocols","types","setTypes","medicalInsurances","setMedicalInsurances","isEditLoading","setIsEditLoading","setPractitioners","availability","setAvailability","useAgenda","getAvailability","isMSLoading","setIsMSLoading","getMedicalServices","selectedProtocol","setSelectedProtocol","availableTimes","setAvailableTimes","_getMedicalServices","_getMedicalServicesData","_getPatientData","_getPractitionersForMedicalService","_getAvailability","_getAllProtocols","controlName","selected","masterdata","insurances","plan","insuranceId","_getProtocolPractitioners","notStatusId","serviceId","handleTypeChange","allProtocols","handleMedicalInsurance","handleMedicalService","handlePractitionerChange","onSubmit","e","startDate","preventDefault","autoComplete","autoFocus","isDisabled","isMulti","availableDate","availableDates","available","availableTimesAux","availableAppointments","times","startTime","startTimeEnd","add","endTime","isBefore","timeStops","appointmentInit","appointmentEnd","getAvailableTimes","isValidDate","_selected","practitionerAvailability","availableWeekDays","validateAvailabilityDate","onNavigate","selectedView","closeOnSelect","selectedTime","_controlName","selectedDate","datastart","dataend","setHours","setMinutes","setLocale","mixed","required","string","min","max","getAgendaAppointmentSchema","Yup","shape","nullable","when","getPatientSchema","given","familyName","gender","fullAddress","telecom","phone","relatedContacts","of","relationship","streetName","streetNumber","medicalInsuranceInfo","getTenantSchema","tenantName","tenantDomain","servicePlan","isActive","dateRangeYup","fromDay","fromMonth","fromYear","toYear","toMonth","toDay","getMedicalRecordsSchema","adverseEvent","default","drugs","routeOfAdministration","dose","drugsEdit","prescriptionsEdit","prescriptionDate","prescriptions","packageCount","drug","frequency","unit","posology","orders","orderDate","procedure","procedures","proceduresEdit","resultsTemplates","anthropometrics","weight","waist","sagittal","neck","vitals","bloodPressureHigh","bloodPressureLow","heartRate","temperatureC","oxygenSaturation","familyHistory","familyHistories","relative","getProtocolBriefSchema","laboratory","trim","centerNumber","fullTitle","phase","indication","patientsObjective","principalInvestigator","studyRole","currentUserStudyRole","getProtocolBriefEditSchema","getProtocolPractitionersSchema","startOfTask","endOfTask","getProtocolVisitHeaderSchema","stage","offsetType","offset","windowNeg","windowPos","getValidationSchema","renderable","_t","notRequired","getValidationAuditTrailModal","getRoleSchema","claims","getStudyRoleSchema","getCodeableConceptSchema","studyTask","getLaboratoriesSchema","getFreezerSchema","freezer","Description","Location","Type","State","AddAppointmentContainer","AddAppointmentFormik","withFormik","validationSchema","formikBag","displayName","func","isRequired","EditAppointmentContainer","getEvent","appointment","setAppointment","fetchAppointment","EditAppointmentFormik","mapPropsToValues","ScheduleLockContainer","ScheduleLockFormik","selectedvalue","centerOrParticular","handleTimeChange","md","dayOrRange","from","week","dow","doy","localizer","momentLocalizer","AddressData","postalCode","floor","department","between","ExpandableContent","expandedAll","expanded","setExpanded","AddressDataForm","handleChange","handleBlur","apiKey","onPlaceSelected","place","latValue","geometry","lat","lngValue","formatted_address","addressArray","long_name","getPostalCode","address_components","defaultValue","lg","ContactData","instagram","facebook","twitter","ContactDataForm","MedicalData","familyDoctor","internalPractitioner","MedicalDataForm","medicalPlans","setMedicalPlans","shouldValidate","CustomImage","onError","errored","defaultSrc","PersonalData","birthPlace","photo","profilePic","maritalStatus","nationality","ModalTakePic","onPhotoTaken","onTakePhotoAnimationDone","dataUri","isFullscreen","idealResolution","ModalDuplicatedPatient","striped","responsive","idx","PersonalDataForm","touched","errors","handlePhotoTaken","getNationality","suffix","viewMode","identificationTypes","genders","maritalStatuses","RelatedContactData","relatedContactsContent","relatedContact","paddingTop","paddingBottom","borderBottom","RelatedContactDataForm","emptyRelatedContact","arrayHelpers","remove","Actions","onCreateAppointment","onRedirectTo","onEditPatient","onViewMR","onExportToPDF","redirectTo","createAppointment","editPatient","viewMR","exportToPDF","useHistory","useLocation","goBack","PatientForm","validateForm","navigation","warningWithConfirmAndCancelMessage","usePatient","CreatePatientFormik","enableReinitialize","patientCopy","createdPatient","setSubmitting","object","EditPatientFormik","updatePatient","CustomSearchBox","setValue","debouncedSearch","handleSearch","ev","VisitStages","NotesEnum","OffsetTypes","Types","EnumValue","Value","Name","IotDevice","createAt","freezerId","certificatePath","Id","CreateAt","FreezerId","DeviceStates","TryParseState","CertificatePath","Active","Asociated","InRepair","Deleted","ToArray","arr","Array","Freezer","device","deviceId","Device","DeviceId","FreezerStates","FreezerTypes","HasDevice","Ambient","Fridge","UltraFreezer","Inactive","FreezerForm","isEdition","smOffset","Url","basePath","BasePath","ResponseResult","succeeded","Succeeded","Errors","PaginationResult","pageSize","totalPages","totalCount","pageNumber","hasNext","hasPrevious","sortColumn","Values","TotalPages","PageSize","TotalCount","PageNumber","HasNext","HasPrevious","SortColumn","SortOrder","ToPage","PaginationRequest","tenantId","tenant","GetBlobData","blob","contentDisposition","fileName","fileNameMatch","match","GetUrl","Find","Create","Update","Delete","GetById","GetAvailableDevices","withDevices","freezerIds","f","CreateFreezerContainerFormik","FreezerService","onLoad","useLoading","setLoading","reload","setReload","useLoad","errCallback","doReaload","EditFreezerContainerFormik","propsTemplate","useFreezers","pagedFreezers","setPagedFreezers","Navigation","Reload","Freezers","onEdit","onRemove","onOpenCertificate","headerStyle","loading","DeleteFreezerModal","onEvent","withLoad","onDelete","ModalStateReducer","useModalContext","handleEvent","useReducer","onOpen","Loader","loadingText","flexDirection","DocumentViewer","file","inModal","setIsShowing","rigthClickBlock","addEventListener","removeEventListener","urlBlob","URL","createObjectURL","viewer","documents","uri","pluginRenderers","DocViewerRenderers","disableFileName","revokeObjectURL","AssignFreezer","UploadCertificate","GetCertificate","isNaN","FormData","FreezersContainer","certificate","setCertificate","modalContext","openDeleteModal","handleOpenCertificate","DeviceService","Field","UploadCertificateModal","files","IotDevices","pagedDevices","onDetail","DeleteDeviceModal","IotDevicesContainers","setPagedDevices","useIotDevices","handleDetail","TextBoxUsersMentions","maxLength","isProtocol","debouncedHandleOnSearch","defaultStyle","trigger","defaultMentionStyle","font","control","highlighter","overflow","minHeight","suggestions","list","AuditModal","CreateAuditModal","setReason","setComments","valid","setErrors","validateSync","onSave","CreateAudit","DigitalSign","signedBy","signStatus","signedDate","useUserInfo","userInfo","getDigitalSignStatus","onCreateEntry","onEditEntry","onDeleteEntry","onAuditTrail","saveEntry","onSaveEntry","publishEntry","onPublishEntry","editEntry","deleteEntry","showNewEntry","RichTextControl","toolbar","modules","statusFormatter","customDateTimeFormatterString","Entry","onEntryChange","groupCode","group","created","getGroup","EntryOptions","showOthers","setShowOthers","contentName","handleOthersClick","otherContent","ReadMore","readMore","setReadMore","isClamped","setIsClamped","linkName","dangerouslySetInnerHTML","__html","unsafeHTML","maxLine","ellipsis","basedOn","onReflow","clamped","ReadMoreLines","tabIndex","mdHidden","PatientInfoSkeleton","PatientInfo2","PatientInfo2Skeleton","RouteChangeDetect","confirmCallback","modalVisible","setModalVisible","lastLocation","setLastLocation","nextLocation","_action","visible","ConfirmChangeModal","closeOnClickOutside","reverseButtons","Slider","isOpen","AutoSaveDisplay","isSaving","lastSaved","time","setTime","fromNow","Alert","AutoSave","doSave","needsResave","AutoSaving","setIsSaving","setLastSaved","setNeedsResave","isSavingRef","lastSubmittedValues","initialValues","currentValues","mounted","debouncedAutoSave","valuesToSave","isequal","returnedValues","setInitialValues","debounceTime","autoSave","ModalDigitalSign","DigitalSignContainerFormik","currentUser","password","Static","searchConcept","term","searchConceptByExpression","expression","SnomedPicker","encodeURIComponent","NullableDatePickerCombo","dayLabel","monthLabel","yearLabel","valueDay","valueMonth","valueYear","setDay","setMonth","setYear","selectDay","setSelectDay","selectMonth","setSelectMonth","selectYear","setSelectYear","maxDays","maxMonths","daysInMonth","useMonthNames","monthsShort","minYear","nameDay","nameMonth","nameYear","dayElement","monthElement","yearElement","paddingRight","FromToNullableDatePicker","valuesFrom","valuesTo","nameFromDay","nameFromMonth","nameFromYear","nameToDay","nameToMonth","nameToYear","disabledTo","CustomCheckbox","isChecked","inline","DiagnosisForm","condition","intensity","intensityCode","serious","reported","relationwithdrug","optionValue","isChronic","notes","useDiagnoses","paginatedItems","Conditions","hasAudit","originalId","HighLight","Italic","_getLocaleSuffix","_uncapitalize","_uncapitalizeAll","_","g1","g2","_getValueFormatted","yesNoNotApplyFormatter","boolFormatter","propertyName","elementValue","localeSuffix","isArray","Fields","childIdx","Closed","ToDay","ToMonth","ToYear","attachmentFormatter","Label","visitStatusFormatter","patientVisitStatusFormatter","_getFieldTypeFromName","_getFieldName","entityName","Reason","Visit","_getFieldVisitTrackingFormMetadata","indexes","matchAll","lastIndexOf","componentField","componentsType","_getFieldNameType","auditItem","before","Panel","Heading","toggle","actionCode","_getActionName","auditAction","collapsible","PanelGroup","accordion","AuditTrail","setAudit","auditTrails","useAdverseEvents","useAdverseEvent","postAdverseEvents","useAdverseEventHistory","getAdverseEventHistoryAPI","DiagnosesContainer","diagnoses","setDiagnoses","DiagnosisCreateContainer","entryStatus","update","setContent","_addedDiagnosis","_addedDiagnoses","contentToReload","onConfirmSubmit","auditReason","auditComments","editedDiagnoses","handleCancel","handleChangeDiagnosis","onConfirmChangeDiagnosis","elementoEliminado","at","DiagnosisContainerFormik","handleEdit","onConfirmEdit","renderToken","DiagnosisModalEditContainer","EntryItemsTable","rowClasses","withCard","Math","random","customActions","onHistory","expandRow","parentClassName","renderer","expandContent","showExpandColumn","onlyOneExpanding","expandAll","expandHeaderColumnRenderer","isAnyExpands","expandColumnRenderer","hidePageListOnlyOnePage","overlay","overlayFactory","spinner","noHeader","AdverseEvents","rowindex","chronic","isPersonalHistory","_getCategory","onAddDiagnosis","AdverseEventsOpenItems","closedItems","setClosedItems","dateName","closedItem","closed","closedItemsCopy","findIndex","joined","columnsClosed","ModalDuplicatedItem","getItemName","getItemPropertyName","itemName","AdverseEventForm","emptyResult","defaultActiveKey","arrayHelper","defaultInputValue","AdverseEventCreateContainer","AdverseEventContainerFormik","Anthropometrics","inProtocol","bmiColor","showWarning","bmi","others","useAnthropometrics","useAnthropometric","postAnthropometric","useAnthropometricsHistory","getAnthropometricsHistory","ChartJS","register","CategoryScale","LinearScale","BarElement","PointElement","LineElement","TimeSeriesScale","TimeScale","ChartDataLabels","Legend","Decimation","getOffset","prevDate","prevOffset","setDate","getDate","abs","getMonth","getOffsetFromRandom","isBetween","dateFrom","dateTo","AnthropometricsHistory","AnthropometricsHistoryChart","plugins","datalabels","align","legend","chartData","labels","b","datasets","borderColor","ModalAnthropometricsHistory","fetchHistory","setType","AnthropometricsContainer","mrn","handleClose","confirmRemoveItem","_removeItemAudited","AnthropometricCreateContainer","AnthropometricContainerFormik","anthropometric","AnthropometricEditContainer","getBlob","endpoint","postFile","getIconClassName","baseStyle","flex","borderWidth","borderStyle","activeStyle","uploadStatusEnum","useFiles","apiEndpoint","setRes","_handleResponse","infoMessage","HandleApiErrorWithInfo","SuccessWithInfo","attachmentId","prevState","encodedFileName","attachments","queue","resolve","attachment","lastResponse","Files","showRemove","extensionProp","nameProp","idProp","downloadBlob","viewFile","fileId","FilesForm","onDownload","accept","setFiles","useDropzone","onDrop","acceptedFiles","attach","maxSize","getRootProps","getInputProps","isDragActive","useMemo","Attachments","onDownloadFile","useAttachments","blobData","setBlobData","link","setAttribute","appendChild","click","AttachmentsContainer","viewAttachment","AttachmentsCreateContainer","postAPI","useConditions","useCondition","conditionId","postCopyCondition","ConditionsContainer","copy","handleSubmitDiagnosis","onConfirmSubmitDiagnosis","AdverseEventEditContainer","useDrugs","useDrug","routesOfAdministration","units","frequencies","reasonId","postDrug","useDrugsHistory","getDrugsHistoryAPI","Drugs","onAddDrug","DrugsOpenItems","DrugsContainer","handleSubmitDrug","onConfirmSubmitDrug","DrugCreateContainer","DrugContainerFormik","DrugEditContainer","groupStyles","justifyContent","groupBadgeStyles","minWidth","formatGroupLabel","findReasonInEventList","otherUnit","FamilyHistory","diagnosisDate","causeOfDeath","useFamilyHistories","useFamilyHistory","postFamilyHistory","FamilyHistoryContainer","FamilyHistoryCreateContainer","FamilyHistoryContainerFormik","FamilyHistoryEditContainer","relatives","diagnosisYear","diagnosisDay","diagnosisMonth","onLaboratoryResultHistory","results","columnsResults","onRemoveResult","_rowIndex","useLaboratories","useLaboratory","postLaboratories","useLaboratoryResultHistory","laboratoryId","getLaboratoryResultHistory","LaboratoryResultHistory","LaboratoryResultHistoryChart","laboratoryDate","ModalLaboHistory","fetchLaboHistory","LaboratoriesContainer","LaboratoryCreateContainer","LaboratoryContainerFormik","LaboratoryEditContainer","edit","significances","templates","order","selectedTemplates","labos","selectedTemplate","resultItems","bool","PersonalHabits","habits","habit","hasHabit","fromTo","scholarshipYears","scholarship","scholarshipCompleted","readsWrites","occupation","workHours","diet","usePersonalHabits","usePersonalHabit","postPersonalHabit","PersonalHabitsContainer","personalHabits","PersonalHabitCreateContainer","PersonalHabitContainerFormik","PersonalHabitEditContainer","personalHabit","usePersonalHistories","usePersonalHistory","postPersonalHistory","PersonalHistoryCreateContainer","PersonalHistoryContainerFormik","useProcedures","useProcedure","postProcedure","useProcedureHistory","getProcedureHistoryAPI","Procedures","onAddProcedure","ProceduresOpenItems","ProceduresContainer","handleSubmitProcedure","onConfirmSubmitProcedure","ProcedureCreateContainer","ProcedureContainerFormik","ProcedureEditContainer","Vitals","useVitals","useVital","postVital","useVitalsHistory","getVitalsHistory","VitalsHistory","VitalsHistoryChart","respiratoryRate","ModalVitalsHistory","VitalsContainer","VitalCreateContainer","VitalContainerFormik","vital","VitalEditContainer","EntryItems","setExpandedAll","useObservation","ObservationsContainer","observations","setObservations","ObservationCreateContainer","_observations","today","observation","createdObservation","lastObservations","handleChangeObservation","addedObservation","Orders","onPrint","onCopy","columnsOrders","useOrders","useOrder","postOrder","putOrder","exportOrder","OrdersContainer","showAddButton","print","handleCopy","_entryId2","handlePrint","entryId2","OrdersCreateContainer","OrderContainerFormik","OrderCopyContainer","OrderEditContainer","showNote","setShowNote","laboData","setLaboData","selectedReason","ordersCopy","CustomSwitch","wrapperClass","onText","offText","Prescriptions","prescription","hasExternalPrescription","externalPrescriptionURL","onRecreateExternal","columnsPrescriptions","genericUnit","usePrescriptions","usePrescription","postPrescription","putPrescription","exportPrescription","prescriptionId","recreatePrescriptionAPI","PrescriptionsContainer","recreate","handleRecreateExternal","PrescriptionsCreateContainer","isLoadingMasterData","isLoadingDrugs","PrescriptionContainerFormik","interopSystem","PrescriptionCopyContainer","PrescriptionEditContainer","getFormattedData","justification","diagnosis","setDiagnosis","longTerm","observeBrand","prescriptionsCopy","useEntries","entries","setEntries","exportEntries","useEntry","setEntry","entryRes","exportEntry","useModalData","ModalAdverseEventHistory","AdverseEventsListContainer","_itemId","_mrn","AnthropometricsListContainer","AttachmentsListContainer","ModalDrugsHistory","DrugsListContainer","_drugId","getAction","viewProtocol","visitUrl","typeId","renderEvolutions","evolutions","createdBy","modified","fontStyle","modifiedBy","renderToStaticMarkup","Entries","whiteSpace","wordBreak","EntriesScrollable","getMore","onFilterChange","setItems","hasMore","setHasMore","isPractitionerLoading","montotos","currentPage","handleOnChangeFilter","filterValue","_renderCondition","Map","dataLength","next","loader","endMessage","practitionerFullName","practitionerSpeciality","summary","_renderObservations","_renderDiagnoses","EntriesScrollableSmall","isPractitionersLoading","EntriesContainer","entriesTotalSize","isEntriesLoading","handleFilterChange","FamilyHistoryListContainer","LaboratoryListContainer","PersonalHabitsListContainer","PersonalHistory","PersonalHistoryListContainer","ModalProcedureHistory","ProceduresListContainer","PrescriptionsListContainer","VitalsListContainer","OrdersListContainer","ConditionsListContainer","_title","EntryItemsList","EntryItemsListTabs","Tabs","mountOnEnter","Tab","tab","ModalAddData","getContent","CreateEntryContainer","entryAutoSaveEnabled","detectRouteChangeEnabled","isShowingAddData","toggleAddData","addContent","setAddContent","isPatientLoading","isEntryLoading","setEvolution","savedValues","setSavedValues","setContentToReload","showHistory","setShowHistory","hasObservation","hasDiagnosis","_publishVisit","Password","_publishAudit","entryCopy","digitalSignEnabled","onModalAddDataSubmit","getTime","onItemSubmit","hasCondition","handleAutoSave","handleDelete","handleRouteChange","saveAndContinue","onConfirmRouteChange","danger","errorsInfo","resize","LastVitals","lastVitals","useLastVitals","excludePermission","Popover","popover","cssClass","Content","LazyTippy","animateFill","interactive","popperOptions","strategy","setMounted","lazyPlugin","fn","onMount","onHidden","computedProps","getVisitTypeTitle","getVisitsTrackingColumns","redirectFunction","translateFunction","cols","headerFormatter","column","headerAlign","estimatedDateContent","estimatedDate","dateContent","crossVersionId","_row","formatExtraData","popoverContent","extraText","getVisitsTrackingGrid","visitTemplates","afterBaseline","baselineVisit","visitTemplate","templateOrder","patientVisit","extraProtocolVisits","prevVisit","prevVisitDate","baseline","ModalNewEntry","onCreateExternal","onCreateProtocol","onCreateExtraProtocol","selectedVisit","setSelectedVisit","useVisitsTracking","isVisitsLoading","formatOptionLabel","getVisitTrackingOptionFormat","onConfirmCreate","handleSelectVisit","futureVisitAdded","getVisitsTrackingOptions","renderVisits","SkipVisitTracking","ScreenFailure","LostToFollowUp","ConfirmModal","ChangeVisitType","handleChangeType","useNewEntry","toggleNewEntry","createExternal","groupId","visitCrossVersionId","createExtraProtocol","updateVisitId","assignVisitId","AppointmentsScrollable","canceled","canceledReason","canceledBy","AppointmentsHistory","useAppointment","ObservationsListContainer","MedicalRecordContainer","isShowingDigitalSign","toggleDigitalSign","handleCreateExternal","createdEntry","handleCreateProtocol","handleCreateExtraProtocol","handleExportToPDF","Sign","sign","maxWidth","SignWithOutInfo","useUserInfoSignData","EntryNav","ArrowLeft","ArrowRight","getNavLinkClass","pathAux","arrowLeft","arrowRight","onSelect","hideSingleArrow","jsdiff","Diff","inputA","inputB","cssContainer","diffChars","diffWords","diffSentences","diffJson","part","bgStyle","added","removed","AuditTooltip","diffComponent","EntryView","retVal","RejectExternalNote","inputType","validationMsg","Laboratories","showModal","LaboratoryForm","CreateLaboratoryContainerFormik","StudyTasks","StudyTaskForm","CreateStudyTaskContainerFormik","studytask","getLaboratory","EditLaboratoryContainerFormik","useStudyTask","studyTaskId","getStudyTask","EditStudyTaskContainerFormik","StudyTasksContainer","removeStudyTask","getFormTemplates","createFormTemplate","isCrossProtocol","template","removeFormTemplate","getExtraForms","getExtraForm","createExtraForm","extraformtype","editExtraForm","removeExtraForm","ProtocolContext","ProtocolProvider","isProtocolLoading","closeProtocol","removeProtocol","RemoveModal","ConfirmSaveModal","templateId","DynamicFormComponents","onRemoveTemplate","maxHeight","overflowY","onAddComponentClick","DynamicFormControls","formFieldTypes","onAddFormFieldControlClick","onAddControlClick","AdherenceControl","copyValue","daysCount","deilveredPillsCount","returnedPillsCount","pillFrequency","round","CustomFileUpload","setFile","getDynamicField","indexComp","indexChild","textPosition","snomedExpression","medicalRecordId","DynamicFormCreatorViewer","templateLaboSelected","setTemplateLaboSelected","handleConfigClick","onConfigClick","handleRemoveClick","onRemoveClick","fieldsComponent","fieldComponent","templateLaboComponent","onChangeLaboTemplate","handleChangeLaboTemplate","fieldRec","indexRec","syncTo","onConfigFromTemplateClick","onRemoveFromTemplateClick","HelpBlock","getArrayFieldComponent","DragHandle","sortableHandle","SortableItem","sortableElement","SortableContainer","sortableContainer","onSortEnd","oldIndex","newIndex","useDragHandle","DynamicFormHeader","onTypeChange","showSaveAsTemplate","onSaveAsTemplate","backUrl","DynamicOptionsFormik","fieldOptions","conditional","allFieldsProps","Feedback","dynamicOptions","DynamicFormCreator","initialForm","formTemplates","setForm","setFormType","setFields","fieldConfig","setFieldConfig","fieldSettings","setFieldSettings","_configField","textposition","_getSnomed","handleConfirmRemove","handleSaveAsTemplate","formCopy","_Fields","handleRemoveTemplate","formHeader","fieldsCopy","uuidv4","fieldIndex","selectedField","currentFieldsCount","_field","templateFieldIndex","copiedFields","fieldArrayLabo","ExtraForm","setFormTemplates","handleSaveClick","ProtocolInfo","context","Brief","keywords","patientsGoalPercent","patientsScreening","patientsSelection","patientsFailed","patientsRandom","patientsTreatment","patientsWithoutDrugs","patientsLostToFollowUp","patientsCompleted","BriefForm","protocolStudyTasks","Phases","defaultSelected","studyRoles","onRemoveAttach","closeMenuOnSelect","CloseProtocolModal","ProtocolBriefContainer","onRemoveProtocol","ButtonToolbar","ButtonGroup","Practitioners","hidden","expandByColumnOnly","rowKey","expandable","nonExpandable","useStudyRoles","AddPractitionerModal","submit","ProtocolAddPractitionersContainer","ProtocolAddPractitionersFormik","roles","studyRoleId","promises","relation","attachmentsUploads","emptyPractitioner","EditPractitionerModal","ProtocolEditPractitionerContainer","setPractitioner","ProtocolEditPractitionerFormik","newattachments","AuditProtocolUserRole","AuditUserRoleContainer","actionBy","usersResponse","actionByUser","rolesResponse","useAuditsUserRole","getAudits","ProtocolPractitionersContainer","paginatedData","handleEditedPractitioner","confirmEdited","PatientStatusInProtocol","VisitTrackingStatusFilter","selectedStatus","onChangeFilter","VisitTrackingStageFilter","selectedStage","AddPatientModal","ProtocolAddPatientsContainer","PatientNumberModal","ProtocolPatientNumberContainer","updatedNumberInProtocol","VisitsTrackingContainer","firstColumns","handlePatientNumberChange","handleDeletePatient","setColumns","setSelectedStage","setVisitTemplates","patientsData","setPatientsData","visitTracking","currentPatient","allcolumns","filteredVisits","handleAuditChange","confirmChangePatientNumberSubmit","confirmDeletePatient","condensed","CustomInput","mobile","VisitHeaderForm","version","offsetFrom","VisitHeader","AddVisitModal","CreateVisitContainer","CreateVisitFormik","CopyVisitModal","CopyVisitContainer","visitCopy","CopyVisitFormik","EditVisitModal","EditVisitContainer","setVisit","resVisit","EditVisitFormik","oneOfType","PublishModal","useVisits","CopyVisits","onSelectedProtocol","onCopyVisits","selectedVisits","setSelectedVisits","selectRow","mode","isSelect","onSelectAll","CopyVisitsContainer","useCopyVisits","copyVisits","isLoadingCopyVisits","handleCopyVisits","originProtocolId","ProtocolVisitsContainer","useAllVisits","_formatExtraData","handleSwapVisit","handleEditVisit","handleCopyVisit","handleRemoveVisit","copiedVisits","copiedData","obj","NewExtraForm","ExtraFormsContainer","useExtraForms","extraFormType","ProtocolFreezerConfiguration","minTemperature","maxTemperature","assignedFreezers","MinTemperature","MaxTemperature","AssignedFreezers","IsTemperatureValid","Configure","GetConfigById","GetUnassignedFreezers","GetProtocolConfigs","freezers","p","ConfigurationFreezerFormik","mapPropsToStatus","configuration","schema","optional","FreezerProtocolServices","ErrorNotification","selecteableFreezers","setSelecteableFreezers","currentFreezers","setCurrentFreezers","selectedFreezers","setSelectedFreezers","unassignedFreezers","Set","v","useProtocolFreezer","setProtocol","FreezerTabContainer","protocolContext","protocolConfiguration","openConfigModal","ProtocolConfigModal","protocolConfig","ProtocolContainer","section","selectedTab","setSelectedTab","Container","activeKey","NavItem","animation","Pane","onPublish","onBack","onFormRestrictions","save","back","publish","formRestrictions","VisitForms","subTitleComponent","onCopyForms","orderedForms","forms","VisitExtraForms","isDraft","VisitHistory","hasActiveVersion","visitHistory","active","versionStatus","versionComments","DropdownButton","onEditVisit","onRemoveVisit","onPublishVisit","FormsRestrictions","selectedPractitioner","setSelectedPractitioner","userFormsRestrictions","setUserFormsRestrictions","handleRestrictionChange","userFormsRestrictionsCopy","restriction","restrictView","restrictContribute","userFormRestrictions","userRestrictions","FormRestrictionsContainer","handleSave","CopyFormsContainer","onSubmitted","isVisitLoading","useForms","setForms","isFormsLoading","useCopyForms","copyForms","selectedProtocolId","setSelectedProtocolId","selectedVisitId","setSelectedVisitId","selectedForms","setSelectedForms","handleCopyForms","SaveAsTemplate","setIsCrossProtocol","handleCrossProtocolChange","VisitForm","getForm","confirmSaveAsTemplate","formTemplate","removeForm","useRoleMasterData","ConfirmRemoveRole","Permissions","selectedClaims","setSelectedClaims","claim","claimsCopy","yes","no","c","Roles","RoleForm","tenants","getTenant","useTenants","setTenants","editTenant","removeTenant","CreateRoleContainerFormik","createRole","StudyPermissions","splitted","permissionsCopy","indexToRemove","StudyRoles","StudyRoleForm","CreateStudyRoleContainerFormik","createStudyRole","EditRoleContainerFormik","editRole","EditStudyRoleContainerFormik","editStudyRole","AdminContext","AuditRolePermissions","AuditRolePermissionsContainer","useAuditRolePermissions","RolesContainer","useRoles","reloadRoles","selectedTenant","mdOffset","removeRole","useAuditStudyRolePermissions","StudyRolesContainer","removeStudyRole","TenantForm","CreateTenantFormik","EditTenantFormik","Tenants","TenantsContainer","getAll","Users","CreateUserFormik","userName","workEmail","createUser","ProfessionalData","ProfessionalDataForm","jurisdiction","TO_RADIANS","PI","canvasPreview","image","canvas","crop","scale","rotate","ctx","getContext","scaleX","naturalWidth","scaleY","naturalHeight","pixelRatio","devicePixelRatio","imageSmoothingQuality","cropX","cropY","rotateRads","centerX","centerY","translate","drawImage","restore","centerAspectCrop","mediaWidth","mediaHeight","aspect","centerCrop","makeAspectCrop","CustomImageUpload","waitTime","deps","imgSrc","setImgSrc","previewCanvasRef","imgRef","blobUrlRef","setCrop","completedCrop","setCompletedCrop","setScale","readAsDataURL","step","Number","percentCrop","onComplete","objectFit","toBlob","UserSignForm","onUploadSign","onConfig","hasPermission","configure","DigitalSignDataForm","fileReader","fileReaderPrivate","onloadend","readyState","DONE","arrayBuffer","readAsBinaryString","UserProfile","EditUserContainer","isUserLoading","handleUploadSign","EditUserFormik","hideCancel","publicCert","userProfile","constructor","rsaPublicCert","rsaPrivateCert","UserSettingsFormik","onChangeRole","onEnableUser","onDisableUser","onResendEmail","onNewPassword","newpassword","UsersContainer","AppointmentWidget","DateTimeWidget","auth","PatientWidget","SearchWidget","selectedPatient","WelcomeWidget","getAllNotifications","getUnreadNotifications","markAsReadedNotification","messageId","unreadNotifications","actionCreators","requestAllNotifications","requestUnreadNotifications","requestMarkAsReadedNotification","UsersNotifications","bindActionCreators","PatientAvatarAsync","setAvatar","usePatientAvatar","avatarDefault","onerror","DailyAgendaWidget","onAttendance","eventIdParam","agendaActionCreators","WaitingListWidgetContainer","agendaStore","agenda","initComponent","handleAttendance","Dashboard","ExpandedContent","Patients","setPatients","paginatedPatients","getAllPatients","usePatients","isLoadingPatients","isLoadingProtocols","selectedValues","DatabasePage","ForbiddenPage","NotFoundPage","UnauthorizedPage","NullableDatePicker","futureDates","selectedDay","selectedMonth","selectedYear","isUploadEnabled","auditName","dynamicField","toFixed","hideFieldId","handleYesNoConditionalChange","multicheckOptions","checkboxArray","pop","uploadedBy","validatedBy","montotoFields","heightFloat","parseFloat","weightFloat","getLastChange","DynamicForm","sortedFields","getTableArrayFieldComponent","controlId","FormActions","onScreenFailure","onWithoutDrugs","onDiscontinuation","onExport","onEndPatientInProtocol","onRollbackVisitStatus","onBackToMR","FormMenu","showAdditionals","setShowAdditionals","additionals","selectedFormId","formsWithErrors","onSaveUpload","onSkip","onLostToFollowUp","onReturnDrugs","onReSync","onChangeType","onChangeVisitTrackingType","FormHeader","VisitStatus","DocumentNotes","createdById","DocumentNoteForm","onCreate","setText","DocumentNotesContainer","useDocumentNotes","getNotes","createNote","updateNote","setNotes","setNote","collapse","setCollapse","handleCreateNote","createdNote","handleNoteEdited","updatedNote","notesCopy","EvolutionForm","onUpdate","Evolutions","EvolutionsContainer","visitTrackingStatus","updateEvolution","pepepe","evolutionRes","useEvolutions","saveEvolution","setEvolutions","handleEvolutionEdited","_updateEvolution","_saveEvolution","evolutionText","savedEvolutionRes","savedEvolution","updatedEvolution","evolutionsCopy","evolutionEdit","MonitorNotes","handleChangeState","onStatusChange","confirmChangeState","MonitorNoteForm","MonitorNotesContainer","getNote","changeStatusNote","useMonitorNotes","deleteNote","handleRemoveNote","handleStatusChange","ExtraVisitTracking","isAuditLoading","getLastVisitTrackingChange","fileData","getBlobAPI","setSignStatus","setVisitTracking","selectedForm","setSelectedForm","patientInfo","setPatientInfo","formAux","_closeModal","_updateData","updatedForm","formsCopy","_saveVisit","formVisitTracking","formikProps","fieldsWithFiles","patientForm","componentsWithFiles","flat","attachs","resForm","handleAuditTrail","handleViewFile","attachName","confirmScreenFailure","_publishScreenFailure","handleEarlyTermination","dirty","confirm","confirmEarlyTermination","_confirmRemoveVisit","confirmEndPatientInProtocol","_publishEndPatientInProtocol","confirmRollbackVisitStatus","_publishRollbackVisitStatus","_export","handleExport","_formVisitTracking","actions","validateOnBlur","submitForm","handleSubmitForm","isDirty","handleSelectForm","visitStatusEnum","VisitHeaderContainer","ProtocolHeader","ProtocolCreateBriefContainer","ProtocolEditBriefContainer","confirmSubmit","handleRemoveAttach","removeAttachment","ProtocolsFilters","selectedLaboratory","selectedPhase","Protocols","getVisitType","isAuthLoading","setHasVisitTracking","setFormsWithErrors","manageConditionalFieldsInForm","conditionalField","fieldWithCondition","addHidePropertyToFields","_saveUploadVisit","confirmSkipVisit","_publishSkipVisit","confirmLostToFollowUp","_publishLostToFollowUp","handleDiscontinuation","_setDiscontinuation","handleWithoutDrugs","_setWithoutDrugs","handleReturnDrugs","_setReturnDrugs","handleReSync","_digitalSign","confirmReSync","_setChangeVisitTrackingType","_changeType","showStatus","validateOnChange","onReset","handleReset","withErrors","showErrorValidations","isValidSync","requiredFields","AdminProvider","setSelectedTenant","ResultsTemplates","getTemplates","getTemplate","createTemplate","editTemplate","removeTemplate","useResultsTemplate","ModalTemplate","ResultsTemplateCreateContainer","ResultsTemplateContainerFormik","ResultsTemplateEditContainer","ResultsTemplateRemoveContainer","refMin","refMax","reference","ResultsTemplatesContainer","useResultsTemplates","onModalSubmit","useSettings","setSettings","SettingsContainer","handleHeader","handleFooter","SettingsFormik","onAutoClose","onFirstMRN","onHeader","onFooter","mrsettings","mrdata","dbsettings","dbdata","prsettings","prdata","firstMRN","autoclose","ConfirmSync","SyncContainer","syncUsersConfirm","syncPatientsConfirm","syncProtocolsConfirm","syncUsersInProtocolsConfirm","syncPatientsInProtocolsClick","xs","Button","AdminNotification","AdminNotifications","handleCreate","handleSetReadOnly","handlePreEdit","handlePreCreate","AdminNotificationsContainer","useAdminNotifications","itemId","TenantSelection","isTenantsLoading","Settings","WeatherMessage","humidity","temperature","measureDate","uploadDate","Humidity","Temperature","MeasureDate","UploadDate","DoorMessage","ProtocolFullData","freezerDaysResume","Protocol","Configuration","FreezerDaysResume","FreezerTelemetryResume","days","Days","TemperatureDayResume","HasAnyInvalidTemperature","HasInvalidTemperature","Day","GetWeatherTelemetry","GetWeatherResume","GetDoorTelemetry","responseResult","m","withFreezers","MapAsDataSet","pointRadius","tension","commonOptions","parsing","interaction","axis","intersect","decimation","enabled","algorithm","commonPlugins","commonScale","autoSkip","stacked","displayFormats","tooltipFormat","ticks","useIotTelemetry","door","telemetry","setTelemetry","load","IotMessagesServices","weatherResult","doorResult","w","stepped","DateRangeComponent","endDate","now","SearchContext","SearchDispatchContext","SearchHeaderContext","searchReducer","SearchHeader","Prepend","selectedOption","setSelectedOption","dateRange","setDateRange","TemperatureChart","hasNotData","HasNotData","scales","grid","tick","suggestedMin","suggestedMax","includeBounds","grace","HumidityChart","DoorChart","stackWeight","reduce","FreezerTelemetryContainer","FreezerTelemetry","isFreezersLoading","isTelemetryLoading","searchObject","ProtocolTelemetryState","isFirstLoading","protocolsConfig","isFirstloading","StartLoading","EndLoading","ContainsProtocolConfig","GetConfig","useLaboratoryProtocol","useProtocolAuthFilter","canViewProtocol","set","protocolConfigurations","l","LoadLaboratories","HandleSelectedLaboratoryAsync","filteredProtocols","ProtocolTelemetryContainer","ProtocolTelemetry","protocolState","handleLaboratoryChange","setSelectedLaboratory","selectedFreezer","telemetryContext","setTelemetryContext","firstFreezer","SelecteableFreezers","handleSelectedFreezer","colSpan","Dot","FreezerTogglePanel","daysResume","setIsOpen","formatTemperature","formattedValue","onToggle","Toggle","TelemetryGeneralViewContainer","TelemetryGeneralView","searchContext","setContext","headerOptions","SelectedView","FreezerPanelView","ProtocolPanelView","resumes","findResume","freezerIdMap","keys","resumeData","useFreezerResume","resume","HeaderData","mapped","protocolConfigurationsList","uniqueFreezers","uniqueFreezerIds","resumeDataByFreezerId","flatMap","useProtocolResume","TelemetryPage","class","ps","routes","iconSVG","layout","isValidEventStart","selectedAppointment","handleSubmitScheduleLock","updatedEvent","updateEventStatus","nextEvents","isSameOrBefore","onNotAttendance","notAttendanceAppointment","editEvent","updateEvent","onCancelEvent","cancelEvent","messages","previous","noEventsInRange","showMore","total","popup","culture","defaultView","resizable","scrollToTime","onSelectEvent","handleSelectedEvent","onView","currentView","eventPropGetter","timeGutterHeader","formats","eventTimeRangeFormat","dayFormat","dayRangeHeaderFormat","startFormat","endFormat","dayHeaderFormat","agendaHeaderFormat","displayChilds","DatabaseHome","mini","isLoadingPractitioners","isLoadingMasterdata","isLoadingPatient","useProtocolApprovedVisits","reloadForms","setReloadForms","fetchVisitData","fetchFormsData","setVisitHistory","fetchVisitHistory","extraForms","setExtraForms","handlePublishVisit","handleConfirmPublish","visitResponse","historyCopy","publishedVisit","handlePrintVisit","useExternalNotes","responseDate","isLoadingTenants","isRoleLoading","handleConfirmNewPassword","changePasswordUser","updateUserInRole","resendCreatedUserEmail","enableUser","disableUser","setRole","setFrezeer","useFreezer","setDevice","doReload","useIotDevice","openModal","handleCertificate","Sidebar","refSidebarWrapper","setWidth","collapseStates","setCollapseStates","updateDimensions","platform","PerfectScrollbar","destroy","activeRoute","routeName","logo","createLinks","prop","st","Breadcrumbs","crumbs","unshift","CustomRoute","route","param","AdminLayout","hideProgressBar","pauseOnHover","getRoutes","exact","settingsActions","isEnabled","changeLanguage","Admin","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","controller","initialReduxState","store","reducers","Notifications","Authentication","Agenda","middleware","thunk","routerMiddleware","enhancers","rootReducer","combineReducers","router","connectRouter","createStore","compose","applyMiddleware","configureStore","container","getElementById","createRoot","App","process","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.f65e9d26.chunk.js","sourcesContent":["const googleAPIKey = \"AIzaSyCCh-2w0Pmh2mElKvgeyhb4TQJ6Ophh8gs\";\r\n\r\nmodule.exports = {\r\n googleAPIKey\r\n};","module.exports = __webpack_public_path__ + \"static/media/forbidden.a9786723.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/logo-blanco.9f17bb17.png\";","//\n// //\n// // // For notifications\n// //\n//\nvar defaultWidth =\n window.screen.width > 768\n ? (window.screen.width * 1) / 3\n : window.screen.width;\n\nvar style = {\n Wrapper: {},\n Containers: {\n DefaultStyle: {\n position: \"fixed\",\n width: defaultWidth,\n padding: \"10px 10px 10px 20px\",\n zIndex: 9998,\n WebkitBoxSizing: \"\",\n MozBoxSizing: \"\",\n boxSizing: \"\",\n height: \"auto\",\n display: \"inline-block\",\n border: \"0\",\n fontSize: \"14px\",\n WebkitFontSmoothing: \"antialiased\",\n fontFamily: '\"Roboto\",Arial,sans-serif',\n fontWeight: \"400\",\n color: \"#FFFFFF\"\n },\n\n tl: {\n top: \"0px\",\n bottom: \"auto\",\n left: \"0px\",\n right: \"auto\"\n },\n\n tr: {\n top: \"0px\",\n bottom: \"auto\",\n left: \"auto\",\n right: \"0px\"\n },\n\n tc: {\n top: \"0px\",\n bottom: \"auto\",\n margin: \"0 auto\",\n left: \"50%\",\n marginLeft: -(defaultWidth / 2)\n },\n\n bl: {\n top: \"auto\",\n bottom: \"0px\",\n left: \"0px\",\n right: \"auto\"\n },\n\n br: {\n top: \"auto\",\n bottom: \"0px\",\n left: \"auto\",\n right: \"0px\"\n },\n\n bc: {\n top: \"auto\",\n bottom: \"0px\",\n margin: \"0 auto\",\n left: \"50%\",\n marginLeft: -(defaultWidth / 2)\n }\n },\n\n NotificationItem: {\n DefaultStyle: {\n position: \"relative\",\n width: \"100%\",\n cursor: \"pointer\",\n borderRadius: \"4px\",\n fontSize: \"14px\",\n margin: \"10px 0 0\",\n padding: \"10px\",\n display: \"block\",\n WebkitBoxSizing: \"border-box\",\n MozBoxSizing: \"border-box\",\n boxSizing: \"border-box\",\n opacity: 0,\n transition: \"all 0.5s ease-in-out\",\n WebkitTransform: \"translate3d(0, 0, 0)\",\n transform: \"translate3d(0, 0, 0)\",\n willChange: \"transform, opacity\",\n\n isHidden: {\n opacity: 0\n },\n\n isVisible: {\n opacity: 1\n }\n },\n\n success: {\n borderTop: 0,\n backgroundColor: \"#a1e82c\",\n WebkitBoxShadow: 0,\n MozBoxShadow: 0,\n boxShadow: 0\n },\n\n error: {\n borderTop: 0,\n backgroundColor: \"#fc727a\",\n WebkitBoxShadow: 0,\n MozBoxShadow: 0,\n boxShadow: 0\n },\n\n warning: {\n borderTop: 0,\n backgroundColor: \"#ffbc67\",\n WebkitBoxShadow: 0,\n MozBoxShadow: 0,\n boxShadow: 0\n },\n\n info: {\n borderTop: 0,\n backgroundColor: \"#63d8f1\",\n WebkitBoxShadow: 0,\n MozBoxShadow: 0,\n boxShadow: 0\n }\n },\n\n Title: {\n DefaultStyle: {\n fontSize: \"30px\",\n margin: \"0\",\n padding: 0,\n fontWeight: \"bold\",\n color: \"#FFFFFF\",\n display: \"block\",\n left: \"15px\",\n position: \"absolute\",\n top: \"50%\",\n marginTop: \"-15px\"\n }\n },\n\n MessageWrapper: {\n DefaultStyle: {\n marginLeft: \"55px\",\n marginRight: \"30px\",\n padding: \"0 12px 0 0\",\n color: \"#FFFFFF\",\n maxWidthwidth: \"89%\"\n }\n },\n\n Dismiss: {\n DefaultStyle: {\n fontFamily: \"inherit\",\n fontSize: \"21px\",\n color: \"#000\",\n float: \"right\",\n position: \"absolute\",\n right: \"10px\",\n top: \"50%\",\n marginTop: \"-13px\",\n backgroundColor: \"#FFFFFF\",\n display: \"block\",\n borderRadius: \"50%\",\n opacity: \".4\",\n lineHeight: \"11px\",\n width: \"25px\",\n height: \"25px\",\n outline: \"0 !important\",\n textAlign: \"center\",\n padding: \"6px 3px 3px 3px\",\n fontWeight: \"300\",\n marginLeft: \"65px\"\n },\n\n success: {\n // color: '#f0f5ea',\n // backgroundColor: '#a1e82c'\n },\n\n error: {\n // color: '#f4e9e9',\n // backgroundColor: '#fc727a'\n },\n\n warning: {\n // color: '#f9f6f0',\n // backgroundColor: '#ffbc67'\n },\n\n info: {\n // color: '#e8f0f4',\n // backgroundColor: '#63d8f1'\n }\n },\n\n Action: {\n DefaultStyle: {\n background: \"#ffffff\",\n borderRadius: \"2px\",\n padding: \"6px 20px\",\n fontWeight: \"bold\",\n margin: \"10px 0 0 0\",\n border: 0\n },\n\n success: {\n backgroundColor: \"#a1e82c\",\n color: \"#ffffff\"\n },\n\n error: {\n backgroundColor: \"#fc727a\",\n color: \"#ffffff\"\n },\n\n warning: {\n backgroundColor: \"#ffbc67\",\n color: \"#ffffff\"\n },\n\n info: {\n backgroundColor: \"#63d8f1\",\n color: \"#ffffff\"\n }\n },\n\n ActionWrapper: {\n DefaultStyle: {\n margin: 0,\n padding: 0\n }\n }\n};\n\nmodule.exports = {\n style, // For notifications (App container and Notifications view)\n};\n","module.exports = \"data:image/jpeg;base64,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\"","export const ApplicationName = 'WebReact';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `/api/settings`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore, Log } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n constructor() {\r\n Log.logger = console;\r\n Log.level = Log.ERROR;\r\n }\r\n\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n //console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n \r\n this.updateState(user);\r\n\r\n if (user && !user.profile.identification_number)\r\n return this.redirectToProfile(user.profile)\r\n else\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', JSON.stringify(error));\r\n return this.error('');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n // throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n console.log(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n return;\r\n }\r\n\r\n this._callbacks = this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n redirectToProfile(user) {\r\n return { status: AuthenticationResultStatus.RedirectToProfile, user };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let publicSettings = await response.json();\r\n //console.log(publicSettings)\r\n let settings = {\r\n client_id: \"WebReact\",\r\n authority: publicSettings?.identityApi,\r\n automaticSilentRenew: true,\r\n includeIdTokenInSilentRenew: true,\r\n userStore: new WebStorageStateStore({\r\n prefix: ApplicationName\r\n }),\r\n clockSkew: 900,\r\n redirect_uri: `${publicSettings?.callBackUrl}/authentication/login-callback`,\r\n post_logout_redirect_uri: `${publicSettings?.callBackUrl}/authentication/logout-callback`,\r\n response_type: \"code\",\r\n scope: \"openid profile IdentityServerApi protocolsapi databaseapi agendaapi notificationsapi medicalrecordapi digitalsignapi WebReact medicalinsuranceagreementsapi pricelistapi pre_biller_app\",\r\n };\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail',\r\n RedirectToProfile: 'redirectToProfile'\r\n};\r\n","import { createBrowserHistory } from 'history';\r\n\r\nexport default createBrowserHistory({ basename: document.getElementsByTagName('base')[0].getAttribute('href') });// createBrowserHistory();","import axios from 'axios';\r\nimport { ApplicationPaths } from '../components/api-authorization/ApiAuthorizationConstants';\r\nimport authService from '../components/api-authorization/AuthorizeService';\r\nimport history from '../history';\r\n\r\nconst instance = axios.create({\r\n //baseURL: \"api/v1\"//process.env.ApiBaseUrl\r\n});\r\n\r\n// Add a request interceptor\r\ninstance.interceptors.request.use(async function (config) {\r\n const token = await authService.getAccessToken();\r\n config.headers.Authorization = `Bearer ${token}`;\r\n\r\n return config;\r\n});\r\n\r\n// Add response interceptor\r\n\r\ninstance.interceptors.response.use(response => {\r\n return response;\r\n}, error => {\r\n\r\n switch (error.response.status) {\r\n case 401:\r\n console.log(JSON.stringify(error))\r\n history.push(ApplicationPaths.Login);\r\n break;\r\n //case 403:\r\n // history.push('/admin/forbidden');\r\n // break;\r\n //case 404:\r\n // history.push('/admin/not-found');\r\n // break;\r\n default:\r\n break;\r\n }\r\n\r\n return Promise.reject(error);\r\n});\r\n\r\nexport default instance;","import axios from './index';\r\n\r\nexport const getPagingAndOrderParams = (newActiveFilters, searchParams) => {\r\n\r\n if (!newActiveFilters)\r\n return;\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination?.page) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if (newActiveFilters.pagination?.sizePerPage) {\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort?.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort?.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n return searchParams;\r\n}\r\n\r\nexport const getQueryString = (query, search) => {\r\n\r\n var searchParams = new URLSearchParams(search || '');\r\n\r\n if (!query)\r\n return searchParams.toString();\r\n\r\n searchParams = getPagingAndOrderParams(query, searchParams);\r\n\r\n if (query.filters) {\r\n for (const property in query.filters) {\r\n\r\n searchParams.delete(property);\r\n if (query.filters[property] !== null && query.filters[property] !== undefined) {\r\n searchParams.append(property, query.filters[property]);\r\n }\r\n }\r\n }\r\n\r\n if (query.query) {\r\n searchParams.delete(\"q\");\r\n if (query.query) {\r\n searchParams.append(\"q\", query.query);\r\n }\r\n }\r\n\r\n if (query.onlyDoctor != null && query.onlyDoctor != undefined) {\r\n searchParams.delete(\"onlyDoctor\");\r\n searchParams.append(\"onlyDoctor\", query.onlyDoctor);\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nconst transformRequestOptions = (params) => {\r\n let options = '';\r\n params.ids.forEach((id) => {\r\n options += `ids=${id}&`;\r\n });\r\n return options;\r\n};\r\n\r\nexport const getRoleMasterData = () => {\r\n return axios.get(`api/v1/authorization/masterdata`);\r\n};\r\nexport const getRoles = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/authorization?${queryString}` : 'api/v1/authorization');\r\n};\r\nexport const getRole = (roleId) => {\r\n return axios.get(`api/v1/authorization/${roleId}`);\r\n};\r\nexport const createRole = (role) => {\r\n return axios.post(`api/v1/authorization`, role);\r\n};\r\nexport const editRole = (roleId, role) => {\r\n return axios.put(`api/v1/authorization/${roleId}`, role);\r\n};\r\nexport const removeRole = (roleId) => {\r\n return axios.delete(`api/v1/authorization/${roleId}`);\r\n};\r\nexport const getAuditRolePermissionsAPI = (roleId) => {\r\n return axios.get(`api/v1/authorization/auditrolepermissions/${roleId}`);\r\n}\r\n\r\nexport const getStudyRoleMasterData = () => {\r\n return axios.get(`api/v1/protocols/masterdata`);\r\n};\r\nexport const getStudyRoles = () => {\r\n return axios.get(`api/v1/protocols/studyRoles`);\r\n};\r\nexport const getStudyRolesByIdAPI = (roles) => {\r\n return axios.get(`api/v1/protocols/studyRolesById`, {\r\n params: { ids: roles },\r\n paramsSerializer: transformRequestOptions,\r\n });\r\n};\r\nexport const getStudyRole = (roleId) => {\r\n return axios.get(`api/v1/protocols/studyRoles/${roleId}`);\r\n};\r\nexport const createStudyRole = (role) => {\r\n return axios.post(`api/v1/protocols/studyRoles`, role);\r\n};\r\nexport const editStudyRole = (roleId, role) => {\r\n return axios.put(`api/v1/protocols/studyRoles/${roleId}`, role);\r\n};\r\nexport const removeStudyRole = (roleId) => {\r\n return axios.delete(`api/v1/protocols/studyRoles/${roleId}`);\r\n};\r\nexport const getCurrentUserRole = (protocolId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/studyRoles/currentUser`);\r\n};\r\nexport const getAuditStudyRolePermissionsAPI = (roleId) => {\r\n return axios.get(`api/v1/admin/auditrolepermissions/protocols/${roleId}`);\r\n}","import { getCurrentUserRole } from \"../api/security\";\r\n\r\nconst requestCurrentUserRole = 'CURRENTUSERROLE_REQUEST';\r\nconst receiveCurrentUserRole = 'CURRENTUSERROLE_RECEIVE';\r\nconst initialState = { protocolId: null, role: {}, isLoading: false };\r\n\r\nexport const roleActionCreator = {\r\n requestCurrentUserRole: (protocolId) => async (dispatch) => {\r\n\r\n dispatch({ type: requestCurrentUserRole });\r\n\r\n try {\r\n //console.log(\"Obtengo Rol de Redux\")\r\n const response = await getCurrentUserRole(protocolId);\r\n\r\n dispatch({ type: receiveCurrentUserRole, role: response.data, protocolId });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n },\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === requestCurrentUserRole) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n if (action.type === receiveCurrentUserRole) {\r\n return {\r\n ...state,\r\n role: action.role,\r\n protocolId: action.protocolId,\r\n isLoading: false\r\n };\r\n }\r\n \r\n return state;\r\n};\r\n","import { useSelector, useDispatch } from 'react-redux';\r\nimport { roleActionCreator } from '../../store/Protocol';\r\n\r\nexport const useAuthorization = () => {\r\n const isAuthenticated = useSelector(state => state.authentication.isAuthenticated);\r\n const user = useSelector(state => state.authentication.user);\r\n const isAuthorized = (requiredPermissions) => {\r\n\r\n if (!user || !user.permission)\r\n return false;\r\n\r\n if (requiredPermissions) {\r\n const permissions = requiredPermissions.filter(permission => user[\"permission\"].includes(permission));\r\n if (!permissions || permissions.length === 0)\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return [isAuthenticated, user, isAuthorized];\r\n}\r\n\r\nexport const useAuthProtocol = (protocolId) => {\r\n const currentUserRoleData = useSelector(state => state.protocol);\r\n const user = useSelector(state => state.authentication.user);\r\n const dispatch = useDispatch();\r\n\r\n const isAuthorized = (includePermissions, excludePermissions) => {\r\n if (currentUserRoleData.isLoading)\r\n return false;\r\n\r\n if (currentUserRoleData.protocolId != protocolId) {\r\n dispatch(roleActionCreator.requestCurrentUserRole(protocolId));\r\n }\r\n\r\n const currentUserRoles = currentUserRoleData.role;\r\n if (includePermissions && currentUserRoles.permissions) {\r\n const hasIncludePermissions = includePermissions.some(permission => currentUserRoles.permissions.includes(permission));\r\n\r\n if (excludePermissions) {\r\n const hasExcludePermission = excludePermissions.some(permission => currentUserRoles.permissions.includes(permission));\r\n\r\n return hasIncludePermissions && !hasExcludePermission;\r\n }\r\n\r\n return hasIncludePermissions;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return [isAuthorized, currentUserRoleData.isLoading, user];\r\n}\r\n\r\nexport function useProtocolAuthFilter() {\r\n const currentUserRoleData = useSelector(state => state.protocol);\r\n const canViewProtocol = (protocolId) => {\r\n if (currentUserRoleData.isLoading)\r\n return false;\r\n\r\n return currentUserRoleData.protocolId != protocolId\r\n }\r\n return [canViewProtocol, currentUserRoleData.isLoading]\r\n}\r\n\r\nexport function useProtocolPageAuth() {\r\n const currentUserRoleData = useSelector(state => state.protocol);\r\n const user = useSelector(state => state.authentication.user);\r\n\r\n const isAuthorized = (includePermissions, excludePermissions) => {\r\n if (currentUserRoleData.isLoading)\r\n return false;\r\n\r\n const currentUserRoles = currentUserRoleData.role;\r\n if (includePermissions && currentUserRoles.permissions) {\r\n const hasIncludePermissions = includePermissions.some(permission => currentUserRoles.permissions.includes(permission));\r\n\r\n if (excludePermissions) {\r\n const hasExcludePermission = excludePermissions.some(permission => currentUserRoles.permissions.includes(permission));\r\n\r\n return hasIncludePermissions && !hasExcludePermission;\r\n }\r\n\r\n return hasIncludePermissions;\r\n }\r\n\r\n return false;\r\n }\r\n return [isAuthorized, currentUserRoleData.isLoading, user];\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useAuthorization } from './useAuthorization';\r\n\r\nexport const WithAuth = props => {\r\n const { requiredPermission } = props;\r\n const [isAuthenticated, , isAuthorized] = useAuthorization();\r\n\r\n if (!isAuthenticated) {\r\n return '';\r\n }\r\n\r\n if (!requiredPermission || isAuthorized(requiredPermission))\r\n return <>{props.children};\r\n\r\n return \"\";\r\n}\r\n\r\nWithAuth.propTypes = {\r\n requiredPermission: PropTypes.array,\r\n};","import React, { useState } from \"react\";\r\nimport { useIdleTimer } from 'react-idle-timer'\r\nimport { useSelector } from \"react-redux\";\r\nimport SessionTimeoutDialog from \"./SessionTimeoutDialog\";\r\n\r\nlet countdownInterval;\r\nlet timeout;\r\n\r\nconst SessionTimeout = ({ isAuthenticated, logOut }) => {\r\n const [timeoutModalOpen, setTimeoutModalOpen] = useState(false);\r\n const [timeoutCountdown, setTimeoutCountdown] = useState(0);\r\n const settingsStore = useSelector(state => state.settings);\r\n\r\n const clearSessionTimeout = () => {\r\n clearTimeout(timeout);\r\n };\r\n\r\n const clearSessionInterval = () => {\r\n clearInterval(countdownInterval);\r\n };\r\n\r\n const handleLogout = async (isTimedOut = false) => {\r\n try {\r\n setTimeoutModalOpen(false);\r\n clearSessionInterval();\r\n clearSessionTimeout();\r\n logOut();\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n\r\n const handleContinue = () => {\r\n setTimeoutModalOpen(false);\r\n clearSessionInterval();\r\n clearSessionTimeout();\r\n };\r\n\r\n const onActive = () => {\r\n if (!timeoutModalOpen) {\r\n clearSessionInterval();\r\n clearSessionTimeout();\r\n }\r\n };\r\n\r\n const onIdle = () => {\r\n const delay = 1000 * 1;\r\n if (isAuthenticated && !timeoutModalOpen) {\r\n timeout = setTimeout(() => {\r\n let countDown = 10;\r\n setTimeoutModalOpen(true);\r\n setTimeoutCountdown(countDown);\r\n countdownInterval = setInterval(() => {\r\n if (countDown > 0) {\r\n setTimeoutCountdown(--countDown);\r\n } else {\r\n handleLogout(true);\r\n }\r\n }, 1000);\r\n }, delay);\r\n }\r\n };\r\n\r\n useIdleTimer({\r\n onIdle,\r\n onActive,\r\n timeout: settingsStore.isLoading ? 900000 : settingsStore.settings.inactivityTime,\r\n debounce: 250,\r\n });\r\n\r\n return (\r\n <>\r\n handleLogout(false)}\r\n open={timeoutModalOpen}\r\n />\r\n \r\n );\r\n}\r\n\r\nexport default SessionTimeout;","import React from \"react\";\r\nimport { Button, Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst SessionTimeoutDialog = ({ open, countdown, onLogout, onContinue }) => {\r\n const { t } = useTranslation();\r\n return open ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t(\"security.logout.logout\")}\r\n \r\n \r\n
\r\n {t(\"security.logout.inactivity_logout\", { countdown })}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
, document.body\r\n ) : null;\r\n};\r\n\r\nexport default SessionTimeoutDialog;","import React from 'react';\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport Loader from \"react-loader-spinner\";\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\n\r\nexport const Spinner = () => {\r\n return (
\r\n \r\n
);\r\n}\r\n\r\nexport const ModalSpinner = ({ isShowing, hide }) => {\r\n\r\n return isShowing && ReactDOM.createPortal(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n );\r\n}","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\nimport { Spinner } from '../Utils/Loaders';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (
);\r\n case LoginActions.LoginCallback:\r\n return (
);\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n case AuthenticationResultStatus.RedirectToProfile:\r\n //console.log(result);\r\n await this.navigateToReturnUrl(`/admin/users/${result.user.sub}/completeProfile`);\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\nimport { Spinner } from '../Utils/Loaders';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: \"Ha salido del sistema correctamente.\" });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n if (!isReady) {\r\n return
\r\n }\r\n const action = this.props.action;\r\n\r\n if (!!message && action !== LogoutActions.LoggedOut) {\r\n return (
{message}
);\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (
);\r\n case LogoutActions.LogoutCallback:\r\n return (
);\r\n case LogoutActions.LoggedOut:\r\n this.navigateToLogin(); break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n this.setState({ message: \"Ha salido del sistema correctamente.\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n\r\n navigateToLogin() {\r\n return window.location.replace(`${window.location.origin}${ApplicationPaths.Login}`);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import authService from '../components/api-authorization/AuthorizeService';\r\n\r\nconst receiveAuthentication = 'AUTHENTICATION_RECEIVE';\r\nconst clearAuthentication = 'AUTHENTICATION_RECEIVE';\r\n\r\nconst initialState = { isAuthenticated: false, user: {} };\r\n\r\nexport const authUserActions = {\r\n\r\n clearAuthentication: () => async (dispatch) => {\r\n dispatch({ type: clearAuthentication });\r\n },\r\n requestAuthentication: () => async (dispatch) => {\r\n try {\r\n const [isAuthenticated, user] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\r\n dispatch({ type: receiveAuthentication, isAuthenticated, user });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n },\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === receiveAuthentication) {\r\n return {\r\n ...state,\r\n isAuthenticated: action.isAuthenticated,\r\n user: action.user,\r\n };\r\n }\r\n if (action.type === clearAuthentication) {\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n user: null,\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Redirect, Route } from 'react-router-dom';\r\nimport { authUserActions } from '../../store/AuthUser';\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants';\r\nimport authService from './AuthorizeService';\r\n\r\nexport const AuthorizeRoute = props => {\r\n const isAuthenticated = useSelector(state => state.authentication.isAuthenticated);\r\n const dispatch = useDispatch();\r\n\r\n const [ready, setReady] = useState(false);\r\n useEffect(() => {\r\n\r\n async function populateAuthenticationState() {\r\n await dispatch(authUserActions.requestAuthentication());\r\n setReady(true);\r\n }\r\n\r\n async function authenticationChanged() {\r\n setReady(false);\r\n await dispatch(authUserActions.clearAuthentication(false));\r\n populateAuthenticationState();\r\n }\r\n\r\n populateAuthenticationState();\r\n\r\n const _subscription = authService.subscribe(() => authenticationChanged());\r\n\r\n // Especifica cómo sanear este efecto:\r\n return function cleanup() {\r\n authService.unsubscribe(_subscription);\r\n };\r\n\r\n\r\n }, []);\r\n\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(window.location.href)}`\r\n if (!ready) {\r\n return
;\r\n } else {\r\n return {\r\n if (!isAuthenticated) {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n }\r\n />\r\n }\r\n}","import { HubConnectionBuilder, HubConnectionState, LogLevel } from '@microsoft/signalr';\r\nimport React, { createContext, useContext, useEffect, useState } from 'react';\r\nimport authService from '../components/api-authorization/AuthorizeService';\r\n\r\nconst SignalRContext = createContext();\r\n\r\nexport const useSignalR = () => useContext(SignalRContext);\r\n\r\nconst SignalRProvider = ({ groupName, settings, children }) => {\r\n const [connection, setConnection] = useState(null);\r\n\r\n useEffect(() => {\r\n const options = {\r\n logMessageContent: true,\r\n logger: LogLevel.Error,//isDev ? LogLevel.Warning : LogLevel.Error,\r\n accessTokenFactory: async () => {\r\n var access = await authService.getAccessToken();\r\n return access;\r\n }\r\n };\r\n\r\n const newConnection = new HubConnectionBuilder()\r\n .withUrl(`${settings.notificationsApi}/notificationhub`, options)\r\n .withAutomaticReconnect()\r\n .configureLogging(LogLevel.Error)\r\n .build();\r\n\r\n setConnection(newConnection);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection.start().then(() => {\r\n console.log(\"Connected to SignalR\");\r\n connection.invoke(\"JoinGroup\", groupName).catch(err => console.log(err));\r\n }).catch(err => console.log(err));\r\n }\r\n\r\n return () => {\r\n if (connection) {\r\n if (connection.connection._connectionState === HubConnectionState.Connected) {\r\n console.log(groupName)\r\n connection.invoke('LeaveGroup', \"SystemNotifications\").catch(err => console.log(err));\r\n connection.invoke('LeaveGroup', groupName).catch(err => console.log(err));\r\n }\r\n connection.stop().then(() => { console.log(\"Connection stoped\") }).catch(err => console.log(err));\r\n }\r\n };\r\n }, [connection]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default SignalRProvider;\r\n","import React from 'react'\r\nimport { toast } from 'react-toastify';\r\nimport i18n from 'i18next';\r\n\r\nconst ErrorMsg = ({ message }) => (\r\n
\r\n {message}\r\n
\r\n)\r\n\r\nconst ErrorMsgWithInfo = ({ message, info }) => (\r\n
\r\n {message}: {info}\r\n
\r\n)\r\n\r\nconst ErrorMsgWithArrayInfo = ({ message, arrayInfo }) => (\r\n
\r\n {message}:\r\n
    \r\n {arrayInfo.map(item =>
  • {i18n.t(item)}
  • )}\r\n
\r\n
\r\n)\r\n\r\nconst hashCode = (content) => {\r\n var hash = 0, i, chr;\r\n if (content.length === 0) return hash;\r\n for (i = 0; i < content.length; i++) {\r\n chr = content.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash.toString();\r\n};\r\n\r\nconst getErrorMessage = (error) => {\r\n let errorMessage = \"\";\r\n if (error === undefined || error.response === undefined || error.response.data === undefined) {\r\n errorMessage = i18n.t(\"errors.serverError\");\r\n }\r\n else\r\n if (error.response.status === 500) {\r\n errorMessage = i18n.t(\"errors.serverError\");\r\n } else\r\n if (error.response.data.Error) {\r\n console.log(error.response.data.Error);\r\n console.log(error.response.data.StatusCode);\r\n errorMessage = i18n.t(error.response.data.Error);\r\n } else\r\n if (error.response.data.error) {\r\n console.log(error.response.data.error);\r\n console.log(error.response.data.statusCode);\r\n errorMessage = i18n.t(error.response.data.error);\r\n } else\r\n if (\r\n error.request.responseType === 'blob' &&\r\n error.response.data instanceof Blob &&\r\n error.response.data.type &&\r\n error.response.data.type.toLowerCase().indexOf('json') != -1\r\n ) {\r\n let reader = new FileReader();\r\n reader.onload = () => {\r\n\r\n const errorContent = JSON.parse(reader.result);\r\n errorMessage = i18n.t(errorContent.Error || errorContent.error);\r\n\r\n toast.error(, {\r\n position: toast.POSITION.TOP_RIGHT,\r\n toastId: hashCode(errorMessage)\r\n });\r\n };\r\n reader.readAsText(error.response.data);\r\n return null;\r\n };\r\n return errorMessage;\r\n}\r\n\r\nexport function HandleApiError(error) {\r\n\r\n let errorMessage = getErrorMessage(error);\r\n if (!errorMessage)\r\n return;\r\n toast.error(, {\r\n position: toast.POSITION.TOP_RIGHT,\r\n toastId: hashCode(errorMessage)\r\n });\r\n}\r\n\r\nexport function HandleApiErrorWithInfo(error, infoMessage, info) {\r\n\r\n let errorMessage = getErrorMessage(error);\r\n if (!errorMessage)\r\n return;\r\n toast.error();\r\n}\r\n\r\nexport function HandleError(error) {\r\n toast.error(, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n}\r\n\r\nexport function HandleMessageError(errorMessage, errorInfo) {\r\n\r\n toast.error();\r\n}\r\n\r\nexport function HandleMessagesError(errorMessage, errorsInfo) {\r\n toast.error();\r\n}","import axios from './index';\r\nexport const getPagingAndOrderParams = (newActiveFilters, searchParams) => {\r\n\r\n if (!newActiveFilters)\r\n return;\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination?.page) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if (newActiveFilters.pagination?.sizePerPage) {\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort?.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort?.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n return searchParams;\r\n}\r\nexport const getQueryString = (query, search) => {\r\n\r\n var searchParams = new URLSearchParams(search || '');\r\n\r\n if (!query)\r\n return searchParams.toString();\r\n\r\n searchParams = getPagingAndOrderParams(query, searchParams);\r\n\r\n if (query.filters) {\r\n for (const property in query.filters) {\r\n\r\n searchParams.delete(property);\r\n if (query.filters[property] !== null && query.filters[property] !== undefined) {\r\n searchParams.append(property, query.filters[property]);\r\n }\r\n }\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n/*******************/\r\n\r\nexport const getConfiguration = () => {\r\n return axios.get(`api/settings`);\r\n};\r\n\r\nexport const uploadHeader = async (formData, type) => {\r\n return axios.post(`api/settings/prescriptionorders/${type}`, formData, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n}\r\n\r\nexport const getSettings = () => {\r\n return axios.get(`api/settings/clientsettings`);\r\n};\r\n\r\nexport const setSettings = (key, value) => {\r\n return axios.put(`api/settings/clientsettings/key/${key}/value/${value}`, value);\r\n};\r\n\r\nexport const getAdminNotificationsAPI = async (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/adminNotifications/?${queryString}` : `api/v1/adminNotifications`);\r\n};\r\nexport const getLastActiveAdminNotificationAPI = async () => {\r\n return axios.get(\"api/v1/adminNotifications/lastActive\");\r\n};\r\nexport const getAdminNotificationAPI = async (notificationId) => {\r\n return axios.get(`api/v1/adminNotifications/${notificationId}`);\r\n};\r\nexport const createAdminNotificationAPI = async (notification) => {\r\n return axios.post(`api/v1/adminNotifications`, notification);\r\n};\r\nexport const updateAdminNotificationAPI = async (notification) => {\r\n return axios.put(`api/v1/adminNotifications`, notification);\r\n};\r\nexport const removeAdminNotificationAPI = async (notificationId) => {\r\n return axios.delete(`api/v1/adminNotifications/${notificationId}`);\r\n};\r\nexport const setIsReadOnlyAPI = async (readonly) => {\r\n return axios.put(`api/settings/systemsettings/isReadOnly/${readonly}`, null);\r\n};\r\n","import { useEffect, useState } from \"react\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { createAdminNotificationAPI, getAdminNotificationAPI, getAdminNotificationsAPI, getLastActiveAdminNotificationAPI, removeAdminNotificationAPI, updateAdminNotificationAPI } from \"../../../api/settings\";\r\n\r\nexport const useAdminNotifications = () => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [reload, setReload] = useState(false);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Created\",\r\n sortOrder: \"desc\"\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n\r\n const fetchData = async () => {\r\n\r\n setIsLoading(true);\r\n setReload(false);\r\n try {\r\n const paginatedItems = await getAdminNotificationsAPI(query);\r\n if (isSubscribed) {\r\n setTotalSize(paginatedItems.data.count);\r\n setData(paginatedItems.data.data);\r\n //setData([{ created: \"2024-06-26 10:20\", message: \"Mensaje1\", from: \"2024-06-25 10:20\", to: \"2024-06-27 10:20\", active: true },\r\n //{ created: \"2024-06-26 10:20\", message: \"Mensaje2\", from: \"2024-06-25 10:20\", to: \"2024-06-27 10:20\", active: true },\r\n //{ created: \"2024-06-26 10:20\", message: \"Mensaje3\", from: \"2024-06-25 10:20\", to: \"2024-06-27 10:20\", active: true }]);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n if (isSubscribed) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n default: break;\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, setReload];\r\n}\r\n\r\nexport const useAdminNotification = () => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n const getLastActiveNotification = async () => {\r\n try {\r\n setIsLoading(true);\r\n const note = await getLastActiveAdminNotificationAPI();\r\n setIsLoading(false);\r\n\r\n return note;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const getNotification = async (notificationId) => {\r\n try {\r\n setIsLoading(true);\r\n const note = await getAdminNotificationAPI(notificationId);\r\n setIsLoading(false);\r\n\r\n return note;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const createNotification = async (notification) => {\r\n try {\r\n setIsLoading(true);\r\n const documentNote = await createAdminNotificationAPI(notification);\r\n setIsLoading(false);\r\n\r\n return documentNote;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const updateNotification = async (notification) => {\r\n try {\r\n setIsLoading(true);\r\n const documentNote = await updateAdminNotificationAPI(notification);\r\n setIsLoading(false);\r\n\r\n return documentNote;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const deleteNotification = async (notificationId) => {\r\n try {\r\n setIsLoading(true);\r\n var res = await removeAdminNotificationAPI(notificationId);\r\n setIsLoading(false);\r\n\r\n return res;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n return [getLastActiveNotification, getNotification, createNotification, updateNotification, deleteNotification, isLoading];\r\n}","import React, { useEffect } from 'react';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { useSignalR } from '../../../services/signalRService';\r\nimport { useAdminNotification } from './useAdminNotifications';\r\n\r\nexport function SystemNotification() {\r\n const { connection } = useSignalR();\r\n const [getLastActiveNotification] = useAdminNotification();\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection.on('AdminNotification', res => {\r\n showNotification(res);\r\n });\r\n\r\n return () => {\r\n // Leave group when component unmounts\r\n if (connection.connection._connectionState === \"Connected\")\r\n connection.invoke('LeaveGroup', \"SystemNotifications\");\r\n };\r\n }\r\n }, [connection]);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n\r\n const fetchData = async () => {\r\n try {\r\n const notif = await getLastActiveNotification();\r\n if (notif && isSubscribed) {\r\n showNotification(notif.data);\r\n }\r\n } catch (error) {\r\n if (isSubscribed) {\r\n console.log(error);\r\n }\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n function showNotification(notification) {\r\n if (notification)\r\n toast.info(notification.message, { containerId: \"system-notifications\" });\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { Grid } from \"react-bootstrap\";\r\n\r\nclass Footer extends Component {\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Footer;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m147.09 216.121-12.09-16.46-12.09 16.46c-.935 1.271-23.156 31.604-45.744 68.94-31.738 52.461-47.166 90.058-47.166 114.939 0 61.153 44.587 110 105 110 60.429 0 105-48.863 105-110 0-24.881-15.428-62.478-47.166-114.939-22.588-37.336-44.81-67.668-45.744-68.94zm32.91 188.879h-30v30h-30v-30h-30v-30h30v-30h30v30h30z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m432.834 285.061c-22.588-37.336-44.81-67.668-45.744-68.94l-12.09-16.46-12.09 16.46c-.935 1.271-23.156 31.604-45.744 68.94-31.738 52.461-47.166 90.058-47.166 114.939 0 61.15 44.587 110 105 110 60.428 0 105-48.863 105-110 0-24.881-15.428-62.478-47.166-114.939zm-12.834 119.939h-90v-30h90z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m187.5 0h-67.5v165h30v-45.388c3.657 2.845 7.51 5.921 11.377 9.137 31.729 26.38 33.623 36.448 33.639 36.548 0 0-.016-.105-.016-.297h30c0-10.242-4.871-26.088-42.852-57.99-.806-.677-1.61-1.346-2.413-2.01h7.766c28.949 0 52.5-23.551 52.5-52.5-.001-28.949-23.552-52.5-52.501-52.5zm0 75h-37.5v-45h37.5c12.406 0 22.5 10.094 22.5 22.5s-10.094 22.5-22.5 22.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m300 90h60v75h30v-105h-90v-60h-30v165h30z\"\n}));\n\nconst SvgBloodFactor = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n enableBackground: \"new 0 0 510 510\",\n height: 512,\n viewBox: \"0 0 510 510\",\n width: 512,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgBloodFactor, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/BloodFactor.618bff5d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m19 8c0-.551-.449-1-1-1s-1 .449-1 1v3h2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m10 17h14.618l1.935 3.87c.097.195.447.113.447-.106v-16.764c0-.551-.449-1-1-1h-16c-.551 0-1 .449-1 1v12c0 .551.449 1 1 1zm5-9c0-1.654 1.346-3 3-3s3 1.346 3 3v7h-2v-2h-2v2h-2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m47 12c0-.551-.449-1-1-1h-1v2h1c.551 0 1-.449 1-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m47 8c0-.551-.449-1-1-1h-1v2h1c.551 0 1-.449 1-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m37.448 20.869 1.934-3.869h14.618c.551 0 1-.449 1-1v-12c0-.551-.449-1-1-1h-16c-.551 0-1 .449-1 1v16.764c0 .219.35.301.448.105zm5.552-15.869h3c1.654 0 3 1.346 3 3 0 .768-.29 1.469-.766 2 .476.531.766 1.232.766 2 0 1.654-1.346 3-3 3h-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m8 29c-.551 0-1 .449-1 1v3h2v-3c0-.551-.449-1-1-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m52.085 29h-.171c-1.055 0-1.914.859-1.914 1.915v2.171c0 1.055.859 1.914 1.915 1.914h.171c1.055 0 1.914-.859 1.914-1.915v-2.171c0-1.055-.859-1.914-1.915-1.914z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m60 25h-16c-.551 0-1 .449-1 1v16.764c0 .219.35.301.448.105l1.934-3.869h14.618c.551 0 1-.449 1-1v-12c0-.551-.449-1-1-1zm-4 8.085c0 2.159-1.756 3.915-3.915 3.915h-.171c-2.158 0-3.914-1.756-3.914-3.915v-2.171c0-2.158 1.756-3.914 3.915-3.914h.171c2.158 0 3.914 1.756 3.914 3.915z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m43.236 45c-1.233 0-2.236-1.003-2.236-2.236v-5.26l-8.352-14.134c-.27-.456-1.026-.456-1.296 0l-8.352 14.134v5.26c0 1.233-1.003 2.236-2.236 2.236-.494 0-.949-.174-1.327-.456-.279 1.068-.437 2.164-.437 3.283v.173c0 7.168 5.832 13 13 13s13-5.832 13-13v-.173c0-1.119-.158-2.215-.437-3.284-.379.283-.833.457-1.327.457zm-5.236 5h-4v4h-4v-4h-4v-4h4v-4h4v4h4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m21 42.764v-16.764c0-.551-.449-1-1-1h-16c-.551 0-1 .449-1 1v12c0 .551.449 1 1 1h14.618l1.935 3.87c.097.195.447.113.447-.106zm-10-5.764h-2v-2h-2v2h-2v-7c0-1.654 1.346-3 3-3s3 1.346 3 3zm8-3c0 1.654-1.346 3-3 3h-3v-10h3c1.654 0 3 1.346 3 3 0 .768-.29 1.469-.766 2 .476.531.766 1.232.766 2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m16 29h-1v2h1c.551 0 1-.449 1-1s-.449-1-1-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m16 33h-1v2h1c.551 0 1-.449 1-1s-.449-1-1-1z\"\n}));\n\nconst SvgBloodType = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_5\",\n enableBackground: \"new 0 0 64 64\",\n height: 512,\n viewBox: \"0 0 64 64\",\n width: 512,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgBloodType, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/BloodType.8c0aadfd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#f2f2f2;}.b{fill:#3f3d56;}.c{fill:#247dbd;}.d{fill:#2f2e41;}.e{fill:#ffb8b8;}.f{fill:#ccc;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(111.903 120.389)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n className: \"a\",\n d: \"M658.481,650.924a9.446,9.446,0,0,1-1-3.732c-.228-2.28-.081-6.124,1.912-11.486a23.162,23.162,0,0,0-.918-18.434l.229-.133a20.366,20.366,0,0,1,1.919,5.438,23.72,23.72,0,0,1-.982,13.222c-3.77,10.14-.967,14.94-.938,14.987Z\",\n transform: \"translate(-650.553 -613.23)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"a\",\n cx: 1.722,\n cy: 1.722,\n r: 1.722,\n transform: \"translate(4.729)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"a\",\n cx: 1.722,\n cy: 1.722,\n r: 1.722,\n transform: \"translate(10.16 6.359)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"a\",\n cx: 1.722,\n cy: 1.722,\n r: 1.722,\n transform: \"translate(6.451 10.598)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"a\",\n cx: 1.722,\n cy: 1.722,\n r: 1.722,\n transform: \"translate(10.955 14.175)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"a\",\n cx: 1.722,\n cy: 1.722,\n r: 1.722,\n transform: \"translate(5.126 19.74)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"a\",\n d: \"M664.515,722.664s-1.722-4.239,3.444-7.419Z\",\n transform: \"translate(-655.547 -684.908)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"a\",\n d: \"M638.823,730.38s-.784-4.508-6.85-4.47Z\",\n transform: \"translate(-631.972 -692.7)\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M307.189,239.69a6.963,6.963,0,1,1,6.963-6.963A6.963,6.963,0,0,1,307.189,239.69Zm0-13.685a6.723,6.723,0,1,0,6.723,6.723A6.723,6.723,0,0,0,307.189,226.005Z\",\n transform: \"translate(-277.692 -206.9)\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M569.189,239.69a6.963,6.963,0,1,1,6.963-6.963A6.963,6.963,0,0,1,569.189,239.69Zm0-13.685a6.723,6.723,0,1,0,6.723,6.723A6.723,6.723,0,0,0,569.189,226.005Z\",\n transform: \"translate(-469.112 -206.9)\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M342.146,217.469H220.855c-2.361,0-4.275,2.368-4.278,5.285v57.826c0,2.917,1.917,5.28,4.278,5.285H342.146c2.361,0,4.275-2.368,4.278-5.285V222.754c0-2.917-1.917-5.28-4.278-5.285Zm3.775,63.112c0,2.574-1.691,4.66-3.775,4.663H220.855c-2.084,0-3.771-2.089-3.775-4.663V222.754c0-2.574,1.691-4.66,3.775-4.663H342.146c2.084,0,3.771,2.089,3.775,4.663Z\",\n transform: \"translate(-216.577 -200.839)\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(8.89 39.888)\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(39.061 39.888)\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(69.233 39.888)\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(99.405 39.888)\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(8.89 61.978)\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(39.061 61.978)\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(69.233 61.978)\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a\",\n width: 21.551,\n height: 15.086,\n transform: \"translate(99.405 61.978)\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c\",\n d: \"M374.428,392.767l-5.087-7.026,1.386-1,3.894,5.378,14.9-15.31L390.749,376Z\",\n transform: \"translate(-328.188 -315.791)\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c\",\n d: \"M487.428,310.767l-5.087-7.026,1.386-1,3.894,5.378,14.9-15.31L503.749,294Z\",\n transform: \"translate(-410.747 -255.881)\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"d\",\n width: 0.368,\n height: 25.859,\n transform: \"translate(29.22)\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"d\",\n width: 0.368,\n height: 25.859,\n transform: \"translate(100.07)\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M703.8,742.252H601.636a.37.37,0,1,1,0-.739H703.8a.37.37,0,1,1,0,.739Z\",\n transform: \"translate(-497.617 -583.71)\"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c\",\n d: \"M263.428,310.767l-5.087-7.026,1.386-1,3.894,5.378,14.9-15.31L279.748,294Z\",\n transform: \"translate(-247.09 -255.881)\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(158.417 58.092)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n className: \"e\",\n d: \"M867.394,479.619a2.83,2.83,0,0,1,.437-.094l5.9-11.988-1.8-2.7,3.719-3.251,4.676,5.722-9.523,13.86a2.828,2.828,0,1,1-3.407-1.549Z\",\n transform: \"translate(-849.024 -437.286)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"f\",\n d: \"M880.192,447.961a1.217,1.217,0,0,1-.274.215l-6.036,3.5a1.212,1.212,0,0,1-1.657-.441c-.017-.029-.033-.059-.047-.089l-2.936-6.2a1.205,1.205,0,0,1,.414-1.521l3.741-2.545a1.212,1.212,0,0,1,1.541.147l5.229,5.248a1.212,1.212,0,0,1,.023,1.689Z\",\n transform: \"translate(-851.751 -422.003)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"e\",\n d: \"M919.842,689.374l-3.187.867-4.861-11.88,4.7-1.28Z\",\n transform: \"translate(-882.926 -594.729)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M912.448,720.31l6.146-1.672,1.053,3.869-10.015,2.725a4.01,4.01,0,0,1,2.817-4.922h0Z\",\n transform: \"translate(-881.242 -625.09)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"e\",\n d: \"M827.318,697.191h-3.3l-1.571-12.739h4.874Z\",\n transform: \"translate(-817.646 -600.114)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M808.644,728.236h6.369v4.011h-10.38a4.011,4.011,0,0,1,4.01-4.011Z\",\n transform: \"translate(-804.634 -632.103)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"e\",\n cx: 6.616,\n cy: 6.616,\n r: 6.616,\n transform: \"translate(6.535 1.413)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M822.543,559.939H818.03a1.216,1.216,0,0,1-1.212-1.138c-1.345-21.379-.558-36.715,2.476-48.262a1.248,1.248,0,0,1,.049-.149l.243-.6a1.207,1.207,0,0,1,1.126-.762h9.281a1.21,1.21,0,0,1,.921.423l1.261,1.471c.024.028.048.058.07.089,5.684,7.927,10.778,23.425,16.678,44.255a1.208,1.208,0,0,1-.8,1.486l-4.849,1.552a1.219,1.219,0,0,1-1.462-.628l-12.587-26.106a.943.943,0,0,0-1.783.282l-3.7,27.043a1.217,1.217,0,0,1-1.2,1.048Z\",\n transform: \"translate(-813.073 -471.944)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"f\",\n d: \"M838.97,450h-.038l-11.274-.357a1.208,1.208,0,0,1-1.166-1.065c-1.428-11.568,2.49-14.667,4.242-15.463a.931.931,0,0,0,.542-.739l.152-1.212a1.207,1.207,0,0,1,.24-.589,13.853,13.853,0,0,1,8.486-5.059,1.21,1.21,0,0,1,1.405.977c0,.02.007.04.009.06l.227,1.741a.959.959,0,0,0,.192.455c5.727,7.487-.653,18.541-1.99,20.681h0A1.214,1.214,0,0,1,838.97,450Z\",\n transform: \"translate(-820.379 -410.92)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"c\",\n d: \"M833.628,510.793l-8.518,1.641-.324-1.68,6.52-1.257-7.578-19.976,1.6-.607Z\",\n transform: \"translate(-818.585 -457.253)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M846.5,380.156a26.337,26.337,0,0,0-5.254-5.5,15.616,15.616,0,0,0-5.579-2.951,8.653,8.653,0,0,0-6.186.552c-1.87.994-3.805,2.97-3.817,5.089,0,.681.169,1.6.84,1.484l.194.027,4.851-.98,2.066,7.17a1.385,1.385,0,0,0,2.246,1.1c.075-.031.719-1.477.719-1.477a.269.269,0,0,1,.464-.078l.383.478a.539.539,0,0,0,.628.162l7.911-3.3c.365-.152.772-.35.877-.731A1.314,1.314,0,0,0,846.5,380.156Z\",\n transform: \"translate(-819.997 -371.381)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"e\",\n d: \"M857.272,496.916a2.894,2.894,0,0,0,.379-4.421l2.094-25.288-6.235.858-.119,24.568a2.909,2.909,0,0,0,3.879,4.283Z\",\n transform: \"translate(-839.732 -441.392)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"f\",\n d: \"M858.985,451.45a1.208,1.208,0,0,1-.345-.05l-6.693-1.969a1.212,1.212,0,0,1-.821-1.505c.01-.032.02-.064.032-.1l2.477-6.4a1.206,1.206,0,0,1,1.388-.747l4.422.961a1.212,1.212,0,0,1,.954,1.218l-.206,7.406a1.212,1.212,0,0,1-1.209,1.179Z\",\n transform: \"translate(-838.565 -421.995)\"\n}));\n\nconst SvgDashboardAddAppointment = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 206.581,\n height: 158.542,\n viewBox: \"0 0 206.581 158.542\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDashboardAddAppointment, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Dashboard_AddAppointment.d685965f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a-patient{fill:#e6e6e6;}.b-patient{fill:#a0616a;}.c-patient{fill:#2f2e41;}.d-patient{fill:#575a89;}.e-patient{fill:#d1d1d1;}.f-patient{fill:#3f3b56;}.g-patient{fill:#247dbd;}.h-patient{fill:#fff;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"a-patient\",\n cx: 19.974,\n cy: 4.601,\n rx: 19.974,\n ry: 4.601,\n transform: \"translate(167.773 150.507)\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b-patient\",\n d: \"M708.42,137.969v6.019l3.14,7.851,4.972-8.9v-6.8Z\",\n transform: \"translate(-520.934 -100.51)\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b-patient\",\n d: \"M852.577,466.495l-.785,5.757s-1.832,6.281.785,6.281,2.617-6.8,2.617-6.8l.523-3.925Z\",\n transform: \"translate(-679.092 -382.323)\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b-patient\",\n d: \"M973.577,463.495l-.785,5.757s-1.832,6.281.785,6.281,2.617-6.8,2.617-6.8l.523-3.926Z\",\n transform: \"translate(-768.426 -380.108)\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c-patient\",\n d: \"M869.546,440.867l-1.232.34s-3.217,20.857-3.479,31.849-.785,38.731-.785,38.731h8.374l5.5-47.106,2.617,47.106h8.9s3.664-61.761,1.309-66.733S869.546,440.867,869.546,440.867Z\",\n transform: \"translate(-688.603 -363.369)\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c-patient\",\n d: \"M850.5,709.995l-2.355,3.664s-6.542,5.5-.785,5.234,8.113-2.879,8.113-2.879v.785l3.141-1.047-.524-5.757Z\",\n transform: \"translate(-674.533 -562.1)\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c-patient\",\n d: \"M935.163,709.995l2.355,3.664s6.542,5.5.785,5.234-8.113-2.879-8.113-2.879v.785l-3.14-1.047.523-5.757Z\",\n transform: \"translate(-735.116 -562.1)\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"b-patient\",\n cx: 5.757,\n cy: 5.757,\n r: 5.757,\n transform: \"translate(185 27.383)\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"d-patient\",\n d: \"M706.131,163.531l-2.879-5.895-1.308,3.016-.523,25.908,12.038-26.955-2.094-2.315Z\",\n transform: \"translate(-515.766 -116.128)\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"e-patient\",\n d: \"M900.1,313.4l-9.542-6.236s-.664,5.975-6.683,5.451-3.206-5.062-3.206-5.062l-9.617,5.323,3.664,20.412-1.57,11.776s14.132-1.57,17.272.785a13.421,13.421,0,0,0,6.281,2.617l-.523-20.151Z\",\n transform: \"translate(-693.771 -264.69)\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"e-patient\",\n d: \"M965.882,330.072l1.81-1.745,1.33.96s1.308,1.57,2.355,6.281.523,25.646.523,25.646l-5.757-.785.262-8.636-2.355-11.515Z\",\n transform: \"translate(-762.433 -280.314)\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"e-patient\",\n d: \"M859.592,327.416l-.989-.205-.843.467s-2.355,3.14-2.355,6.019-2.355,27.478-2.355,27.478l5.234,2.355,3.664-18.581Z\",\n transform: \"translate(-680.481 -279.49)\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"d-patient\",\n d: \"M975.4,451.011s-5.234-3.14-7.066-1.047,1.047,4.187,1.047,4.187S977.489,457.292,975.4,451.011Z\",\n transform: \"translate(-765.142 -369.588)\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"d-patient\",\n d: \"M853.4,457.011s-5.234-3.141-7.066-1.047,1.047,4.187,1.047,4.187S855.489,463.292,853.4,457.011Z\",\n transform: \"translate(-675.069 -374.017)\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"c-patient\",\n d: \"M908.4,244.411s1.506-2.879-1.807-3.14c0,0-3.012-1.832-5.421.262,0,0-2.108-.523-2.711,1.047a1.083,1.083,0,0,1,.6-1.308s-2.108-.523-2.108,2.094a8.185,8.185,0,0,0,0,4.972,9.741,9.741,0,0,0,1.2,2.617s-1.485-4.938,2.13-5.2,7.659-2.52,7.96.358.9,3.664.9,3.664S911.858,245.589,908.4,244.411Z\",\n transform: \"translate(-712.596 -215.492)\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"f-patient\",\n d: \"M272.113,289.769h-.036c-1.338,0-2.693-.04-4.025-.119l.02-.337c1.327.078,2.674.118,4.006.118h.036Zm4.063-.123-.02-.337c1.341-.08,2.7-.2,4.027-.363l.041.335c-1.338.162-2.7.284-4.046.365ZM264,289.289c-1.34-.16-2.692-.363-4.019-.6l.06-.332c1.32.239,2.665.441,4,.6Zm20.237-.617-.061-.332c1.32-.241,2.651-.526,3.954-.846l.081.327c-1.308.322-2.646.608-3.974.851Zm-28.23-.834c-1.31-.321-2.628-.686-3.916-1.086l.1-.322c1.282.4,2.593.761,3.9,1.081Zm36.118-1.108-.1-.322c1.28-.4,2.565-.843,3.821-1.32l.12.316c-1.262.48-2.554.927-3.84,1.328Zm-43.884-1.3c-1.262-.478-2.527-1-3.761-1.557l.138-.308c1.227.552,2.486,1.073,3.742,1.549Zm51.473-1.579-.139-.308c1.222-.55,2.443-1.147,3.629-1.771l.157.3c-1.193.628-2.42,1.227-3.648,1.781Zm-58.892-1.761c-1.2-.628-2.388-1.3-3.543-2l.175-.288c1.149.7,2.334,1.365,3.525,1.99ZM306.9,280.07l-.175-.288c1.147-.7,2.289-1.434,3.391-2.2l.192.277C309.2,278.629,308.052,279.372,306.9,280.07Zm-73.03-2.193c-1.111-.768-2.213-1.579-3.275-2.411l.209-.266c1.056.828,2.152,1.635,3.258,2.4Zm79.709-2.425-.209-.266c1.059-.831,2.1-1.7,3.1-2.591l.224.252c-1.006.892-2.056,1.768-3.12,2.6Zm-86.107-2.591c-1.01-.9-2.006-1.832-2.96-2.786l.238-.238c.949.948,1.94,1.881,2.945,2.772Zm92.185-2.8-.238-.238c.951-.95,1.884-1.941,2.774-2.944l.252.224c-.894,1.008-1.832,2-2.787,2.959Zm-97.933-2.944c-.9-1.01-1.772-2.059-2.6-3.119l.265-.209c.828,1.054,1.7,2.1,2.591,3.1Zm103.324-3.134-.266-.209c.831-1.059,1.638-2.155,2.4-3.257l.277.192C326.7,261.818,325.884,262.92,325.049,263.984Zm-108.341-3.251c-.768-1.11-1.512-2.256-2.21-3.407l.288-.175c.695,1.146,1.435,2.286,2.2,3.39ZM329.674,257.3l-.288-.175c.7-1.15,1.367-2.335,1.992-3.524l.3.157C331.047,254.95,330.375,256.142,329.674,257.3ZM212.5,253.792c-.628-1.193-1.228-2.42-1.782-3.647l.307-.139c.552,1.221,1.148,2.442,1.773,3.628ZM333.46,250.1l-.308-.138c.554-1.23,1.076-2.488,1.551-3.742l.316.12c-.478,1.26-1,2.525-1.559,3.76Zm-124.3-3.7c-.48-1.261-.927-2.553-1.329-3.84l.322-.1c.4,1.28.845,2.566,1.322,3.821Zm127.188-3.91-.322-.1c.4-1.282.763-2.593,1.083-3.9l.327.08c-.322,1.31-.688,2.627-1.088,3.915Zm-129.61-3.845c-.323-1.309-.61-2.645-.853-3.973l.332-.061c.242,1.322.528,2.651.849,3.953ZM338.284,234.6l-.332-.061c.24-1.32.443-2.665.6-4l.335.04c-.16,1.339-.364,2.692-.6,4.018Zm-133.011-3.946c-.162-1.338-.286-2.7-.366-4.047l.337-.02c.081,1.341.2,2.7.366,4.026Zm133.98-4.12-.337-.02c.079-1.338.12-2.7.12-4.042v-.143h.337v.143C339.374,223.823,339.333,225.189,339.253,226.534Zm-134.135-3.99h-.337v-.071c0-1.327.039-2.669.116-3.99l.337.02c-.077,1.314-.116,2.65-.116,3.97Zm133.789-4.256c-.083-1.342-.207-2.7-.369-4.026l.335-.041c.163,1.336.288,2.7.372,4.046Zm-133.317-3.813-.335-.04c.16-1.34.362-2.692.6-4.019l.332.06C205.951,211.8,205.749,213.142,205.591,214.475Zm132.335-4.21c-.244-1.323-.531-2.653-.853-3.952l.327-.081c.324,1.306.612,2.643.858,3.972Zm-130.9-3.745-.328-.08c.32-1.309.685-2.627,1.084-3.917l.322.1c-.4,1.282-.76,2.594-1.079,3.9Zm128.951-4.1c-.4-1.281-.848-2.566-1.326-3.821l.314-.12c.481,1.26.93,2.552,1.335,3.839Zm-126.555-3.627-.316-.119c.478-1.262,1-2.528,1.555-3.762l.308.138C210.422,196.277,209.9,197.537,209.426,198.793ZM333.1,194.874c-.553-1.221-1.151-2.441-1.777-3.626l.3-.157c.63,1.192,1.23,2.418,1.786,3.645Zm-120.358-3.464-.3-.157c.626-1.194,1.3-2.386,2-3.544l.288.175C214.036,189.036,213.367,190.222,212.744,191.409Zm116.587-3.676c-.7-1.144-1.437-2.284-2.2-3.388l.278-.192c.769,1.109,1.514,2.255,2.213,3.4Zm-112.4-3.249-.278-.192c.766-1.109,1.577-2.211,2.41-3.276l.266.208C218.5,182.285,217.691,183.381,216.929,184.485Zm107.8-3.389c-.831-1.055-1.7-2.1-2.595-3.1l.252-.224c.9,1.007,1.772,2.055,2.607,3.116Zm-102.809-2.979-.253-.224c.894-1.01,1.832-2.007,2.784-2.961l.239.238C223.737,176.12,222.805,177.112,221.916,178.117Zm97.439-3.062c-.953-.949-1.945-1.881-2.948-2.769l.223-.253c1.009.892,2.006,1.828,2.963,2.782Zm-91.728-2.66-.224-.252c1.007-.894,2.056-1.771,3.117-2.606l.209.265C229.674,170.632,228.629,171.5,227.627,172.395Zm85.67-2.7c-1.057-.827-2.154-1.633-3.261-2.4l.192-.278c1.112.767,2.215,1.577,3.277,2.408Zm-79.317-2.3-.192-.277c1.109-.768,2.254-1.512,3.406-2.212l.175.288c-1.146.7-2.286,1.436-3.389,2.2Zm72.656-2.291c-1.152-.7-2.338-1.363-3.527-1.986l.157-.3c1.195.626,2.387,1.3,3.545,2Zm-65.752-1.9-.157-.3c1.192-.628,2.419-1.23,3.646-1.784l.139.307c-1.221.552-2.441,1.149-3.627,1.775Zm58.585-1.854c-1.228-.55-2.486-1.071-3.744-1.544l.119-.316c1.263.477,2.529,1,3.762,1.553Zm-51.23-1.472-.12-.314c1.262-.481,2.554-.929,3.84-1.331l.1.322c-1.281.4-2.566.845-3.822,1.323Zm43.654-1.387c-1.282-.4-2.594-.759-3.9-1.077l.08-.328c1.309.319,2.628.684,3.917,1.082Zm-35.94-1.026-.081-.327c1.31-.324,2.647-.612,3.973-.855l.061.332c-1.319.242-2.649.528-3.952.851Zm28.087-.89c-1.318-.238-2.664-.439-4-.6l.039-.335c1.342.159,2.694.361,4.019.6Zm-20.137-.571-.041-.335c1.337-.163,2.7-.288,4.047-.37l.02.337c-1.341.082-2.7.205-4.026.366Zm12.11-.38c-1.3-.075-2.626-.114-3.935-.114h-.107v-.337h.107c1.315,0,2.645.038,3.954.114Z\",\n transform: \"translate(-201.902 -152.559)\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"g-patient\",\n width: 39.991,\n height: 29.993,\n transform: \"translate(98.083 112.597)\"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 29.993,\n height: 2,\n transform: \"translate(103.082 120.595)\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 29.993,\n height: 2,\n transform: \"translate(103.082 126.594)\"\n});\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 29.993,\n height: 2,\n transform: \"translate(103.082 132.593)\"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a-patient\",\n width: 27.933,\n height: 20.95,\n transform: \"translate(2.094)\"\n});\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(5.585 5.587)\"\n});\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(5.585 9.777)\"\n});\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(5.585 13.967)\"\n});\n\nvar _ref27 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"g-patient\",\n width: 27.933,\n height: 20.95,\n transform: \"translate(13.965 10.824)\"\n});\n\nvar _ref28 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(17.457 16.411)\"\n});\n\nvar _ref29 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(17.457 20.601)\"\n});\n\nvar _ref30 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(17.457 24.791)\"\n});\n\nvar _ref31 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"a-patient\",\n d: \"M1106.154-3187.949H1030V-3245h76.154Zm-75.369-56.266v55.48h74.584v-55.48Z\",\n transform: \"translate(-997.811 3286.349)\"\n});\n\nvar _ref32 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(55.742 55.48)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"g-patient\",\n cx: 14.5,\n cy: 14.5,\n r: 14.5,\n transform: \"translate(0)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"h-patient\",\n d: \"M431.416,382.3h-4.93v-4.93a1.16,1.16,0,0,0-1.16-1.16h0a1.16,1.16,0,0,0-1.16,1.16v4.93h-4.93a1.16,1.16,0,0,0-1.16,1.16h0a1.16,1.16,0,0,0,1.16,1.16h4.93v4.93a1.16,1.16,0,0,0,1.16,1.16h0a1.16,1.16,0,0,0,1.16-1.16v-4.93h4.93a1.16,1.16,0,0,0,1.16-1.16h0A1.16,1.16,0,0,0,431.416,382.3Z\",\n transform: \"translate(-410.894 -369.018)\"\n}));\n\nvar _ref33 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"a-patient\",\n width: 27.933,\n height: 20.95,\n transform: \"translate(0 107.558)\"\n});\n\nvar _ref34 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(3.492 113.145)\"\n});\n\nvar _ref35 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(3.492 117.334)\"\n});\n\nvar _ref36 = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"h-patient\",\n width: 20.95,\n height: 1.397,\n transform: \"translate(3.492 121.525)\"\n});\n\nconst SvgDashboardAddPatient = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 210.598,\n height: 159.71,\n viewBox: \"0 0 210.598 159.71\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33, _ref34, _ref35, _ref36);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDashboardAddPatient, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Dashboard_AddPatient.1c99f099.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null);\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.625,0H3.375A3.376,3.376,0,0,0,0,3.375v29.25A3.376,3.376,0,0,0,3.375,36h20.25A3.376,3.376,0,0,0,27,32.625V3.375A3.376,3.376,0,0,0,23.625,0Zm-13.5,2.25h6.75a1.125,1.125,0,0,1,0,2.25h-6.75a1.125,1.125,0,0,1,0-2.25Zm3.375,9A4.5,4.5,0,1,1,9,15.75,4.5,4.5,0,0,1,13.5,11.25ZM21.375,27.9A1.474,1.474,0,0,1,19.8,29.25H7.2A1.474,1.474,0,0,1,5.625,27.9V26.55c0-2.236,2.116-4.05,4.725-4.05H10.7a7.242,7.242,0,0,0,5.6,0h.352c2.609,0,4.725,1.814,4.725,4.05Z\"\n});\n\nconst SvgIconAFamiliares = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 27,\n height: 36,\n viewBox: \"0 0 27 36\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconAFamiliares, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_AFamiliares.dff5f2f7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#20ad9b;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M1.5,31.5h33L18,3Zm18-4.5h-3V24h3Zm0-6h-3V15h3Z\",\n transform: \"translate(-1.5 -3)\"\n});\n\nconst SvgIconAdverseEvent = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 33,\n height: 28.5,\n viewBox: \"0 0 33 28.5\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconAdverseEvent, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_AdverseEvent.c3ea667f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M46.058,37.954V32.646A4.053,4.053,0,0,0,42.01,28.6h-.54v4.948a1.349,1.349,0,1,1-2.7,0v-7.2a1.349,1.349,0,1,0-2.7,0V28.6h-9v4.948a1.349,1.349,0,1,1-2.7,0v-7.2a1.349,1.349,0,1,0-2.7,0V28.6h-9v4.948a1.349,1.349,0,1,1-2.7,0v-7.2a1.349,1.349,0,1,0-2.7,0V28.6H4.048A4.053,4.053,0,0,0,0,32.646v5.307Z\",\n transform: \"translate(0 -25)\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M0,199v21.86a4.053,4.053,0,0,0,4.048,4.048H42.01a4.053,4.053,0,0,0,4.048-4.048V199Zm12.954,18.711H10.075a1.349,1.349,0,0,1,0-2.7h2.879a1.349,1.349,0,0,1,0,2.7Zm0-5.757H10.075a1.349,1.349,0,0,1,0-2.7h2.879a1.349,1.349,0,0,1,0,2.7Zm0-5.757H10.075a1.349,1.349,0,0,1,0-2.7h2.879a1.349,1.349,0,0,1,0,2.7Zm11.515,11.514H21.59a1.349,1.349,0,1,1,0-2.7h2.879a1.349,1.349,0,1,1,0,2.7Zm0-5.757H21.59a1.349,1.349,0,1,1,0-2.7h2.879a1.349,1.349,0,1,1,0,2.7Zm0-5.757H21.59a1.349,1.349,0,0,1,0-2.7h2.879a1.349,1.349,0,0,1,0,2.7Zm11.515,11.514H33.1a1.349,1.349,0,0,1,0-2.7h2.879a1.349,1.349,0,1,1,0,2.7Zm0-5.757H33.1a1.349,1.349,0,0,1,0-2.7h2.879a1.349,1.349,0,1,1,0,2.7Zm0-5.757H33.1a1.349,1.349,0,0,1,0-2.7h2.879a1.349,1.349,0,0,1,0,2.7Z\",\n transform: \"translate(0 -183.347)\"\n});\n\nconst SvgIconAgenda = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 46.058,\n height: 41.56,\n viewBox: \"0 0 46.058 41.56\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconAgenda, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Agenda.2ec7f24c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#20ad9b;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M24.75,9V26.25a6,6,0,0,1-12,0V7.5a3.75,3.75,0,0,1,7.5,0V23.25a1.5,1.5,0,0,1-3,0V9H15V23.25a3.75,3.75,0,0,0,7.5,0V7.5a6,6,0,0,0-12,0V26.25a8.25,8.25,0,0,0,16.5,0V9Z\",\n transform: \"translate(-10.5 -1.5)\"\n});\n\nconst SvgIconAttach = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16.5,\n height: 33,\n viewBox: \"0 0 16.5 33\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconAttach, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Attach.bf31b8e3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"m256.001.159c-168.933 0-290.853 160.565-247.007 322.714 1.768 6.538 7.699 11.078 14.471 11.078h465.071c6.772 0 12.703-4.54 14.471-11.078 43.835-162.106-78.04-322.714-247.006-322.714zm-142.624 270.832h-28.27c-8.279 0-14.991-6.712-14.991-14.991s6.712-14.991 14.991-14.991h28.27c8.279 0 14.991 6.712 14.991 14.991s-6.712 14.991-14.991 14.991zm32.09-78.808c-4.14 7.171-13.308 9.627-20.477 5.487l-24.482-14.135c-7.17-4.139-9.626-13.308-5.487-20.477 4.14-7.171 13.307-9.629 20.478-5.487l24.482 14.135c7.169 4.139 9.625 13.308 5.486 20.477zm46.717-46.717c-7.168 4.14-16.337 1.685-20.478-5.487l-14.134-24.483c-4.14-7.17-1.683-16.338 5.487-20.477 7.171-4.142 16.337-1.684 20.478 5.487l14.134 24.483c4.14 7.17 1.683 16.338-5.487 20.477zm48.826-60.36c0-8.279 6.712-14.991 14.991-14.991s14.991 6.712 14.991 14.991v28.27c0 8.279-6.712 14.991-14.991 14.991s-14.991-6.712-14.991-14.991zm72.562 134.523-46.971 46.971c-5.855 5.855-15.346 5.854-21.2 0s-5.854-15.346 0-21.2l46.971-46.971c5.854-5.854 15.346-5.854 21.2 0s5.854 15.346 0 21.2zm40.858-104.132-14.134 24.483c-4.138 7.166-13.303 9.629-20.478 5.487-7.17-4.139-9.626-13.307-5.487-20.478l14.134-24.483c4.139-7.169 13.306-9.628 20.478-5.487 7.17 4.139 9.626 13.307 5.487 20.478zm12.105 76.686c-4.14-7.169-1.683-16.338 5.487-20.477l24.482-14.135c7.17-4.141 16.338-1.683 20.477 5.487 4.14 7.169 1.683 16.338-5.487 20.477l-24.482 14.135c-7.163 4.138-16.335 1.688-20.477-5.487zm60.36 78.808h-28.27c-8.279 0-14.991-6.712-14.991-14.991s6.712-14.991 14.991-14.991h28.27c8.279 0 14.991 6.712 14.991 14.991s-6.712 14.991-14.991 14.991z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m348.034 374.79c-3.695-18.129-29.346-19.032-34.394-1.414l-21.878 76.747c-.116-.394-22.724-77.04-22.855-77.429-5.765-17.167-30.776-15.582-34.217 2.293-.011.057-.021.114-.032.172l-21.312 118.083c-1.471 8.147 3.942 15.944 12.09 17.415 8.151 1.471 15.944-3.943 17.414-12.09l12.125-67.18c.116.394 20.051 67.98 20.182 68.37 5.534 16.479 29.086 15.864 33.829-.689l19.322-67.782 12.887 67.433c1.554 8.133 9.406 13.466 17.538 11.911 8.132-1.554 13.464-9.406 11.91-17.538-.033-.176-22.574-118.128-22.609-118.302z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m418.929 360.602c-8.279 0-14.991 6.712-14.991 14.991v121.257c0 8.279 6.712 14.991 14.991 14.991s14.991-6.712 14.991-14.991v-121.257c0-8.279-6.712-14.991-14.991-14.991z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m164.202 426.915c4.411-6.739 6.986-14.783 6.986-23.421 0-23.651-19.241-42.892-42.892-42.892h-35.223c-8.279 0-14.991 6.712-14.991 14.991v55.835.091 65.331c0 3.988 1.588 7.811 4.414 10.623 2.81 2.798 6.613 4.367 10.576 4.367h.067c.324-.002 32.502-.144 41.307-.144 26.263 0 47.63-21.367 47.63-47.63 0-15.011-6.988-28.415-17.874-37.151zm-56.138-36.332h20.232c7.119 0 12.911 5.792 12.911 12.911s-5.792 12.911-12.911 12.911c-6.126 0-6.928.032-20.232.032zm26.383 91.132c-4.835 0-16.614.043-26.383.081v-35.349c9.258-.036 4.905-.029 26.383-.029 9.731 0 17.648 7.917 17.648 17.648 0 9.732-7.917 17.649-17.648 17.649z\"\n}));\n\nconst SvgIconBmi = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n enableBackground: \"new 0 0 512 512\",\n height: 512,\n viewBox: \"0 0 512 512\",\n width: 512,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconBmi, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_BMI.a65de15a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M277.333,234.667c0-7.792-4.409-14.329-10.667-18.053v-35.28c0-5.896-4.771-10.667-10.667-10.667 s-10.667,4.771-10.667,10.667v35.28c-6.258,3.724-10.667,10.262-10.667,18.053c0,11.76,9.573,21.333,21.333,21.333 S277.333,246.427,277.333,234.667z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M437.333,0c-41.865,0-74.667,37.479-74.667,85.333c0,34.341,25.902,95.176,64,105.121v204.212c0,52.938-43.063,96-96,96 c-50.943,0-92.335-39.995-95.411-90.176c33.447-4.255,63.411-12.215,63.411-27.158v-41.042c37.604-16.507,64-53.997,64-97.625 c0-43.628-26.396-81.119-64-97.625V74.667c0-30.458-124.396-32-149.333-32S0,44.208,0,74.667v298.667 c0,30.458,124.396,32,149.333,32c10.102,0,36.546-0.289,64.408-2.615C217.91,463.66,268.686,512,330.667,512 C395.365,512,448,459.365,448,394.667V190.454c38.098-9.945,64-70.78,64-105.121C512,37.479,479.198,0,437.333,0z M32.781,74.667 C54.427,69.375,98.667,64,149.333,64C200,64,244.24,69.375,265.885,74.667C244.24,79.958,200,85.333,149.333,85.333 C98.667,85.333,54.427,79.958,32.781,74.667z M170.667,234.667c0-47.052,38.281-85.333,85.333-85.333 s85.333,38.281,85.333,85.333C341.333,281.719,303.052,320,256,320S170.667,281.719,170.667,234.667z\"\n}));\n\nconst SvgIconBloodPressure = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\n enableBackground: \"new 0 0 512 512\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconBloodPressure, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_BloodPressure.20dc658a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#fff;}.b{fill:#247dbd;}.c{filter:url(#a);}\"), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"a\",\n x: 0,\n y: 0,\n width: 50,\n height: 50,\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n input: \"SourceAlpha\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 3,\n result: \"b\"\n}), /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0.161\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n operator: \"in\",\n in2: \"b\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"SourceGraphic\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(9 9)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"c\",\n transform: \"matrix(1, 0, 0, 1, -9, -9)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"a\",\n cx: 16,\n cy: 16,\n r: 16,\n transform: \"translate(9 9)\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M5,0l5,9H0Z\",\n transform: \"translate(21 22) rotate(180)\"\n}));\n\nconst SvgIconDropdown = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 50,\n height: 50,\n viewBox: \"0 0 50 50\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconDropdown, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Dropdown.8fa0e6c6.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(9.055)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M127.914,2.047a6.2,6.2,0,0,0-8.769,0l-6.07,6.07,8.777,8.777,6.062-6.078A6.206,6.206,0,0,0,127.914,2.047Zm-6.222,3.588-2.763,2.723-.008.008a.8.8,0,1,1-1.113-1.145L120.579,4.5l.008-.008a.8.8,0,1,1,1.105,1.145Z\",\n transform: \"translate(-113.075 -0.23)\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 9.016)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M7.918,112.818l-6.11,6.118a6.218,6.218,0,0,0,8.817,8.769l6.078-6.1Z\",\n transform: \"translate(0 -112.818)\"\n})));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(21.116 21.077)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M272.316,263.418l-8.641,8.649a6.165,6.165,0,0,0,8.641-8.649Z\",\n transform: \"translate(-263.675 -263.418)\"\n}));\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(18.705 18.674)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M239.741,233.418a6.169,6.169,0,0,0-4.893,9.922l8.641-8.641A6.1,6.1,0,0,0,239.741,233.418Z\",\n transform: \"translate(-233.575 -233.418)\"\n}));\n\nconst SvgIconDrugs = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 31.037,\n height: 31,\n viewBox: \"0 0 31.037 31\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconDrugs, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Drugs.f39a249d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#247dbd;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M30.255,12.255,29.1,10.245a1.093,1.093,0,0,0-1.491-.4l-6.933,4.008a.282.282,0,0,1-.422-.246V5.59A1.086,1.086,0,0,0,19.16,4.5H16.84a1.086,1.086,0,0,0-1.09,1.09v8.023a.282.282,0,0,1-.422.246L8.4,9.851a1.093,1.093,0,0,0-1.491.4l-1.16,2.011a1.083,1.083,0,0,0,.4,1.484l6.94,4.015a.278.278,0,0,1,0,.485l-6.94,4.015a1.091,1.091,0,0,0-.4,1.484L6.9,25.755a1.093,1.093,0,0,0,1.491.4l6.933-4.008a.282.282,0,0,1,.422.246v8.023a1.086,1.086,0,0,0,1.09,1.09h2.32a1.086,1.086,0,0,0,1.09-1.09v-8.03a.284.284,0,0,1,.422-.246L27.6,26.149a1.093,1.093,0,0,0,1.491-.4l1.16-2.011a1.083,1.083,0,0,0-.4-1.484l-6.94-4.015a.278.278,0,0,1,0-.485l6.94-4.015A1.089,1.089,0,0,0,30.255,12.255Z\",\n transform: \"translate(-5.598 -4.5)\"\n});\n\nconst SvgIconEspecialidad = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24.803,\n height: 27.007,\n viewBox: \"0 0 24.803 27.007\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconEspecialidad, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Especialidad.cadbcd82.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#20ad9b;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M308.084,68.823c-2.1-1.574-3.911-2.934-3.911-6.736a1.086,1.086,0,1,0-2.173,0c0,4.889,2.54,6.793,4.781,8.474,2.1,1.574,3.911,2.934,3.911,6.736a1.086,1.086,0,0,0,2.173,0C312.864,72.407,310.324,70.5,308.084,68.823Z\",\n transform: \"translate(-280.127 -61)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M424.173,62.086a1.086,1.086,0,0,0-2.173,0c0,4.675,1.251,6.551,2.355,8.208,1.024,1.535,1.99,2.986,1.99,7a1.086,1.086,0,1,0,2.173,0c0-4.675-1.251-6.551-2.355-8.208C425.139,67.554,424.173,66.1,424.173,62.086Z\",\n transform: \"translate(-391.435 -61)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.11,331H1.086A1.086,1.086,0,0,0,0,332.086V338.6a1.086,1.086,0,0,0,1.086,1.086H13.11Z\",\n transform: \"translate(0 -311.444)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M211,331h15.282v8.691H211Z\",\n transform: \"translate(-195.718 -311.444)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M455.259,331H452v8.691h3.259a1.086,1.086,0,0,0,1.086-1.086v-6.519A1.086,1.086,0,0,0,455.259,331Z\",\n transform: \"translate(-419.262 -311.444)\"\n}));\n\nconst SvgIconHabitos = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 37.083,\n height: 28.247,\n viewBox: \"0 0 37.083 28.247\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconHabitos, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Habitos.087dfc2a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 4.912)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M38.245,89.535H21.288l-3.373-4.009a.576.576,0,0,0-.461-.207H3.774A3.8,3.8,0,0,0,0,89.12v24.657a3.8,3.8,0,0,0,3.8,3.8H38.245a3.8,3.8,0,0,0,3.8-3.8V93.332A3.8,3.8,0,0,0,38.245,89.535Z\",\n transform: \"translate(0 -85.319)\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(5)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M81.627,46.9H64.665l-3.373-4.009a.576.576,0,0,0-.461-.207H47.155A3.8,3.8,0,0,0,43.4,45.96H55.873a2.207,2.207,0,0,1,1.7.788l2.88,3.424h16.2A5.437,5.437,0,0,1,82.074,55.6V74.9A3.8,3.8,0,0,0,85.4,71.132V50.687A3.8,3.8,0,0,0,81.627,46.9Z\",\n transform: \"translate(-43.4 -42.679)\"\n}));\n\nconst SvgIconHistoriasClinicas = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 47,\n height: 37.167,\n viewBox: \"0 0 47 37.167\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconHistoriasClinicas, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Historias_Clinicas.9bfdc5c6.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#c5c5c5;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M164.545,220.5H150.08a.748.748,0,0,1,0-1.5h14.465a.748.748,0,0,1,0,1.5Zm0,0\",\n transform: \"translate(-142.349 -208.775)\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M154.078,143.13a.742.742,0,0,1-.529-.219l-3.99-3.99a.749.749,0,0,1,0-1.059l3.99-3.99a.748.748,0,0,1,1.059,1.058l-3.462,3.462,3.462,3.462a.748.748,0,0,1-.53,1.277Zm0,0\",\n transform: \"translate(-142.356 -127.418)\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M10.974,22.279A10.974,10.974,0,1,1,21.187,7.291a.748.748,0,1,1-1.393.548,9.477,9.477,0,1,0,0,6.934.748.748,0,1,1,1.393.548,10.917,10.917,0,0,1-10.213,6.958Zm0,0\",\n transform: \"translate(0 -0.332)\"\n});\n\nconst SvgIconLogout = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22.944,\n height: 21.947,\n viewBox: \"0 0 22.944 21.947\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconLogout, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Logout.ddf99476.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#c5c5c5;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M60.555,18.162l-1.54-2.568a7.627,7.627,0,0,1-1.087-3.924V9.421A6.288,6.288,0,0,0,53.441,3.4V1.794a1.794,1.794,0,1,0-3.589,0V3.4a6.288,6.288,0,0,0-4.486,6.016V11.67a7.632,7.632,0,0,1-1.087,3.923l-1.54,2.568a.449.449,0,0,0,.384.68H60.17a.448.448,0,0,0,.385-.679Z\",\n transform: \"translate(-42.675 0)\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.146 19.738)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M188.815,469.333a3.121,3.121,0,0,0,5.651,0Z\",\n transform: \"translate(-188.815 -469.333)\"\n}));\n\nconst SvgIconNotification = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17.943,\n height: 21.533,\n viewBox: \"0 0 17.943 21.533\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconNotification, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Notification.12e7242b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"current\",\n stroke: \"current\",\n cx: 9.802,\n cy: 9.802,\n r: 9.802,\n transform: \"translate(7.811)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M35.211,291.813a17.5,17.5,0,0,0-5.8-13.064A2.21,2.21,0,0,0,26.5,278.7a13.663,13.663,0,0,1-17.765,0,2.206,2.206,0,0,0-2.912.045A17.569,17.569,0,0,0,0,291.8a1.937,1.937,0,0,0,1.93,1.939H33.281A1.93,1.93,0,0,0,35.211,291.813Z\",\n transform: \"translate(0 -258.485)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M420.654,312.049a9.672,9.672,0,0,1-3.7,1.871,1.93,1.93,0,0,0-1.377,2.4,21.227,21.227,0,0,1,.814,5.859,1.93,1.93,0,0,0,1.93,1.93h4.059a1.93,1.93,0,0,0,1.93-1.93c0-6.012.188-7.182-.634-9.343A1.925,1.925,0,0,0,420.654,312.049Z\",\n transform: \"translate(-377.323 -288.847)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"current\",\n stroke: \"current\",\n cx: 5.881,\n cy: 5.881,\n r: 5.881,\n transform: \"translate(31.336 9.802)\"\n}));\n\nconst SvgIconPacientes = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 47.008,\n height: 35.257,\n viewBox: \"0 0 47.008 35.257\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconPacientes, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Pacientes.5199da31.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#20ad9b;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.125,15.75h-18A1.128,1.128,0,0,0,18,16.875V27H4.5V10.125A1.128,1.128,0,0,0,3.375,9H1.125A1.128,1.128,0,0,0,0,10.125v24.75A1.128,1.128,0,0,0,1.125,36h2.25A1.128,1.128,0,0,0,4.5,34.875V31.5h36v3.375A1.128,1.128,0,0,0,41.625,36h2.25A1.128,1.128,0,0,0,45,34.875V23.625A7.871,7.871,0,0,0,37.125,15.75Zm-27.562-9h8.866l1.941,3.881a1.123,1.123,0,0,0,2.011,0l3.495-6.989L27.429,6.75H36A1.125,1.125,0,0,0,36,4.5H28.821L26.88.619a1.123,1.123,0,0,0-2.011,0L21.375,7.608l-1.4-2.8A.565.565,0,0,0,19.47,4.5H9.563A.564.564,0,0,0,9,5.063V6.188A.564.564,0,0,0,9.563,6.75Zm1.688,18a4.5,4.5,0,1,0-4.5-4.5A4.5,4.5,0,0,0,11.25,24.75Z\",\n transform: \"translate(0 0.004)\"\n});\n\nconst SvgIconProcedimientos = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 45,\n height: 36.004,\n viewBox: \"0 0 45 36.004\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconProcedimientos, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Procedimientos.c1487d47.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M5.857,10.929a7.7,7.7,0,0,1,7.691-7.691H28.335A4.444,4.444,0,0,0,24.072,0H5.452A4.456,4.456,0,0,0,1,4.452v25.1A4.456,4.456,0,0,0,5.452,34h.4Z\",\n transform: \"translate(-1)\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M29.072,4H10.452A4.456,4.456,0,0,0,6,8.452V31.929a4.456,4.456,0,0,0,4.452,4.452h18.62a4.456,4.456,0,0,0,4.452-4.452V8.452A4.456,4.456,0,0,0,29.072,4ZM25.834,31.525H13.691a1.214,1.214,0,0,1,0-2.429H25.834a1.214,1.214,0,0,1,0,2.429Zm0-6.476H13.691a1.214,1.214,0,1,1,0-2.429H25.834a1.214,1.214,0,1,1,0,2.429Zm0-5.667H13.691a1.214,1.214,0,1,1,0-2.429H25.834a1.214,1.214,0,1,1,0,2.429Zm0-6.476H13.691a1.214,1.214,0,1,1,0-2.429H25.834a1.214,1.214,0,1,1,0,2.429Z\",\n transform: \"translate(2.095 2.476)\"\n});\n\nconst SvgIconProtocolo = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 35.62,\n height: 38.858,\n viewBox: \"0 0 35.62 38.858\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconProtocolo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Protocolo.55658b9b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M35.153,13.9l-2.767-.6a15.058,15.058,0,0,0-.89-2.147l1.532-2.383a1.076,1.076,0,0,0-.144-1.342l-4.31-4.31a1.076,1.076,0,0,0-1.342-.144L24.848,4.5a15.058,15.058,0,0,0-2.147-.89L22.1.847A1.076,1.076,0,0,0,21.048,0h-6.1A1.076,1.076,0,0,0,13.9.847l-.6,2.767a15.058,15.058,0,0,0-2.147.89L8.769,2.972a1.076,1.076,0,0,0-1.342.144l-4.31,4.31a1.076,1.076,0,0,0-.144,1.342L4.5,11.152a15.058,15.058,0,0,0-.89,2.147l-2.767.6A1.076,1.076,0,0,0,0,14.952v6.1A1.076,1.076,0,0,0,.847,22.1l2.767.6a15.058,15.058,0,0,0,.89,2.147L2.973,27.23a1.076,1.076,0,0,0,.144,1.342l4.31,4.31a1.076,1.076,0,0,0,1.342.144L11.152,31.5a15.059,15.059,0,0,0,2.147.89l.6,2.767A1.076,1.076,0,0,0,14.952,36h6.1a1.076,1.076,0,0,0,1.051-.847l.6-2.767a15.058,15.058,0,0,0,2.147-.89l2.383,1.532a1.076,1.076,0,0,0,1.342-.144l4.31-4.31a1.076,1.076,0,0,0,.144-1.342L31.5,24.848a15.058,15.058,0,0,0,.89-2.147l2.767-.6A1.076,1.076,0,0,0,36,21.048v-6.1A1.076,1.076,0,0,0,35.153,13.9ZM24.454,18A6.454,6.454,0,1,1,18,11.546,6.462,6.462,0,0,1,24.454,18Zm0,0\",\n transform: \"translate(0 0)\"\n});\n\nconst SvgIconSettings = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconSettings, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Settings.041c238c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 11a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zm5-4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm5-5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1z\"\n});\n\nconst SvgIconTelemetry = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n fill: \"currentColor\",\n className: \"bi bi-bar-chart-fill\",\n viewBox: \"0 0 16 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconTelemetry, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Telemetry.dcfd1a1c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#247dbd;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M16.313,16.523H22.3V33.6H16.313Z\",\n transform: \"translate(-16.313 -4.682)\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M16.313,9.844H22.3v5.983H16.313Z\",\n transform: \"translate(-16.313 -9.844)\"\n});\n\nconst SvgIconTipo = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 5.983,\n height: 28.919,\n viewBox: \"0 0 5.983 28.919\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconTipo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Tipo.c1686d9a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:rgba(32,173,155,0.49);}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"a\",\n d: \"M32.016,12.328,25.473,5.784H2.571V48.316H54.918V12.328ZM28.744,23.779,40.2,35.229H32.016V48.316H25.473V35.229H17.293Z\",\n transform: \"translate(-2.571 -5.784)\"\n});\n\nconst SvgIconUpload = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 52.347,\n height: 42.532,\n viewBox: \"0 0 52.347 42.532\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconUpload, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_Upload.02d5b130.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M16.552,12.108a1.449,1.449,0,1,1,1.441,1.406A1.408,1.408,0,0,1,16.552,12.108Zm.1,2.51h2.686V24.75H16.65Z\",\n transform: \"translate(-3.375 -3.375)\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M18,5.344A12.651,12.651,0,1,1,9.049,9.049,12.573,12.573,0,0,1,18,5.344m0-1.969A14.625,14.625,0,1,0,32.625,18,14.623,14.623,0,0,0,18,3.375Z\",\n transform: \"translate(-3.375 -3.375)\"\n});\n\nconst SvgIconVerTodos = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 29.25,\n height: 29.25,\n viewBox: \"0 0 29.25 29.25\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconVerTodos, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_VerTodos.fc36839b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M5.857,10.929a7.7,7.7,0,0,1,7.691-7.691H28.335A4.444,4.444,0,0,0,24.072,0H5.452A4.456,4.456,0,0,0,1,4.452v25.1A4.456,4.456,0,0,0,5.452,34h.4Z\",\n transform: \"translate(-1)\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M29.072,4H10.452A4.456,4.456,0,0,0,6,8.452V31.929a4.456,4.456,0,0,0,4.452,4.452h18.62a4.456,4.456,0,0,0,4.452-4.452V8.452A4.456,4.456,0,0,0,29.072,4ZM25.834,31.525H13.691a1.214,1.214,0,0,1,0-2.429H25.834a1.214,1.214,0,0,1,0,2.429Zm0-6.476H13.691a1.214,1.214,0,1,1,0-2.429H25.834a1.214,1.214,0,1,1,0,2.429Zm0-5.667H13.691a1.214,1.214,0,1,1,0-2.429H25.834a1.214,1.214,0,1,1,0,2.429Zm0-6.476H13.691a1.214,1.214,0,1,1,0-2.429H25.834a1.214,1.214,0,1,1,0,2.429Z\",\n transform: \"translate(2.095 2.476)\"\n});\n\nconst SvgIconProtocolos = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 35.62,\n height: 38.858,\n viewBox: \"0 0 35.62 38.858\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconProtocolos, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Icon_protocolos.55658b9b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:#247dbd;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n stroke: \"current\",\n d: \"M15.187,6.064,3.663,16.226a2.44,2.44,0,0,1-.288.177v9.753A.844.844,0,0,0,4.218,27H26.156A.844.844,0,0,0,27,26.156v-9.75a2.46,2.46,0,0,1-.277-.169Zm5.062,13.763a.422.422,0,0,1-.422.422H16.874V23.2a.422.422,0,0,1-.422.422H13.921A.422.422,0,0,1,13.5,23.2V20.249H10.546a.422.422,0,0,1-.422-.422V17.3a.422.422,0,0,1,.422-.422H13.5V13.921a.422.422,0,0,1,.422-.422h2.531a.422.422,0,0,1,.422.422v2.953h2.953a.422.422,0,0,1,.422.422Zm9.845-7.368L16.6.542a2.1,2.1,0,0,0-2.819,0L.279,12.46a.844.844,0,0,0-.064,1.192l1.129,1.256a.844.844,0,0,0,1.192.064L14.629,4.3a.844.844,0,0,1,1.116,0L27.838,14.971a.844.844,0,0,0,1.192-.064l1.128-1.256a.844.844,0,0,0-.064-1.191Z\",\n transform: \"translate(0.001 0.001)\"\n});\n\nconst SvgIconGrupo = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 30.375,\n height: 27,\n viewBox: \"0 0 30.375 27\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconGrupo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon_Grupo.feaceba3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M211,0c-33.084,0-60,26.916-60,60s26.916,60,60,60s60-26.916,60-60S244.084,0,211,0z M211,90c-16.542,0-30-13.458-30-30 s13.458-30,30-30s30,13.458,30,30S227.542,90,211,90z\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M407,0c-57.897,0-105,47.103-105,105s47.103,105,105,105c57.897,0,105-47.103,105-105C512,47.103,464.897,0,407,0z M407,180c-41.355,0-75-33.645-75-75s33.645-75,75-75c41.355,0,75,33.645,75,75S448.355,180,407,180z\"\n})));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M437,90h-15V75c0-8.284-6.716-15-15-15s-15,6.716-15,15v30c0,8.284,6.716,15,15,15h30c8.284,0,15-6.716,15-15 S445.284,90,437,90z\"\n})));\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M347,271h-76v-91c0-33.084-26.916-60-60-60s-60,26.916-60,60v136c0,5.258,0.915,10.307,2.58,15.001h-39.089 c0,0-15.972-127.732-24.502-197.011C89.45,109.641,69.476,90,45,90c-24.813,0-45,20.187-45,45c0,0.619,0.039,1.238,0.115,1.853 l29.896,240.169C30.44,396.134,42.846,412.339,60,418.423V497c0,8.284,6.716,15,15,15s15-6.716,15-15v-76h121v76 c0,8.284,6.716,15,15,15s15-6.716,15-15v-78.58c17.459-6.192,30-22.865,30-42.42c0-5.258-0.915-10.305-2.58-15H302v106 c0,24.813,20.187,45,45,45s45-20.187,45-45V316C392,291.187,371.813,271,347,271z M226,391H75c-8.271,0-15-6.729-15-15 c0-1.403,1.63,12.164-29.98-241.772C30.423,126.314,36.988,120,45,120c8.271,0,15,6.729,15,15 c0,1.87,26.365,212.858,26.365,212.858C87.304,355.365,93.685,361,101.25,361c5.932,0,117.936,0,124.75,0c8.271,0,15,6.729,15,15 S234.271,391,226,391z M362,467c0,8.271-6.729,15-15,15s-15-6.729-15-15V346c0-8.284-6.716-15-15-15c-4.283,0-114.149,0-121.01,0 c-8.267-0.006-14.99-6.732-14.99-15V180c0-16.542,13.458-30,30-30s30,13.458,30,30v106c0,8.284,6.716,15,15,15h91 c8.271,0,15,6.729,15,15V467z\"\n})));\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"g\", null);\n\nconst SvgWaitingRoom = (_ref) => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\n enableBackground: \"new 0 0 512 512\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20);\n};\n\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgWaitingRoom, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/waiting_room.ade542ab.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport { BsCalendar, BsCalendarCheck, BsCalendarX, BsClockHistory } from \"react-icons/bs\";\r\nimport {\r\n FaAppleAlt,\r\n FaArrowCircleDown, FaArrowCircleUp, FaBeer, FaBirthdayCake, FaBookMedical, FaCannabis,\r\n FaChartBar, FaClinicMedical, FaClipboardList, FaFacebookF, FaFile, FaFileExport, FaFileMedical,\r\n FaFilePrescription,\r\n FaHeartbeat, FaIdCard, FaInstagram, FaLock, FaMapMarkerAlt,\r\n FaPills, FaRegBuilding,\r\n FaPrescriptionBottleAlt,\r\n FaRegAddressCard,\r\n FaRegChartBar, FaFileSignature,\r\n FaRegCommentDots,\r\n FaRegFileAlt, FaRegTimesCircle, FaRulerCombined, FaSchool, FaSmoking,\r\n FaStickyNote,\r\n FaTasks, FaTwitter, FaUserCheck, FaUserTie, FaVideo, FaWeight, FaWindowClose\r\n} from \"react-icons/fa\";\r\nimport { FiArrowLeft, FiArrowRight, FiCamera, FiCheckSquare, FiEdit, FiSave, FiUserCheck, FiUserX } from \"react-icons/fi\";\r\nimport { GiBodyHeight, GiCancel, GiOpenFolder, GiStairsGoal } from \"react-icons/gi\";\r\nimport { ImLab, ImTable } from \"react-icons/im\";\r\nimport { IoIosCalendar } from \"react-icons/io\";\r\nimport {\r\n MdAccessTime, MdAddCircleOutline,\r\n MdAssignmentAdd, MdAttachMoney, MdOutlineSwapHoriz, MdSwapHoriz,\r\n MdAttachFile, MdBlock, MdCancel, MdCheckCircle, MdContentCopy, MdDescription, MdDirectionsRun, MdExpandLess, MdExpandMore, MdFlag, MdGroup, MdHelpOutline, MdHome, MdMailOutline, MdMoreHoriz, MdPeople, MdPermContactCalendar,\r\n MdPersonOutline, MdPhone, MdPhoneIphone,\r\n MdPublish, MdRemoveCircleOutline, MdRepeat, MdAssignment,\r\n MdSearch, MdSettings, MdSync, MdToday, MdWarning\r\n} from 'react-icons/md';\r\nimport { RiForbidFill, RiCalendarLine, RiContactsBookLine, RiDossierLine, RiHealthBookLine, RiLineChartLine, RiMailLine, RiMailOpenLine, RiMapPinLine, RiMoreLine, RiPrinterLine, RiShieldCrossFill, RiShieldUserFill, RiStickyNoteLine, RiTestTubeFill, RiTodoFill, RiUserAddLine } from \"react-icons/ri\";\r\nimport { ReactComponent as BloodFactor } from '../../assets/img/icons/BloodFactor.svg';\r\nimport { ReactComponent as BloodType } from '../../assets/img/icons/BloodType.svg';\r\nimport { ReactComponent as DashboardAddAppointment } from '../../assets/img/icons/Dashboard_AddAppointment.svg';\r\nimport { ReactComponent as DashboardAddPatient } from '../../assets/img/icons/Dashboard_AddPatient.svg';\r\nimport { ReactComponent as SVGFamilyHistory } from '../../assets/img/icons/Icon_AFamiliares.svg';\r\nimport { ReactComponent as SVGAdverseEvents } from '../../assets/img/icons/Icon_AdverseEvent.svg';\r\nimport { ReactComponent as Agenda } from '../../assets/img/icons/Icon_Agenda.svg';\r\nimport { ReactComponent as SVGAttachments } from '../../assets/img/icons/Icon_Attach.svg';\r\nimport { ReactComponent as BMI } from '../../assets/img/icons/Icon_BMI.svg';\r\nimport { ReactComponent as BloodPressure } from '../../assets/img/icons/Icon_BloodPressure.svg';\r\nimport { ReactComponent as DDL } from '../../assets/img/icons/Icon_Dropdown.svg';\r\nimport { ReactComponent as SVGDrugs } from '../../assets/img/icons/Icon_Drugs.svg';\r\nimport { ReactComponent as Speciality } from '../../assets/img/icons/Icon_Especialidad.svg';\r\nimport { ReactComponent as SVGHabits } from '../../assets/img/icons/Icon_Habitos.svg';\r\nimport { ReactComponent as MedicalRecords } from '../../assets/img/icons/Icon_Historias_Clinicas.svg';\r\nimport { ReactComponent as LogoutIcon } from '../../assets/img/icons/Icon_Logout.svg';\r\nimport { ReactComponent as Notification } from '../../assets/img/icons/Icon_Notification.svg';\r\nimport { ReactComponent as Patients2 } from '../../assets/img/icons/Icon_Pacientes.svg';\r\nimport { ReactComponent as SVGProcedures } from '../../assets/img/icons/Icon_Procedimientos.svg';\r\nimport { ReactComponent as Protocol } from '../../assets/img/icons/Icon_Protocolo.svg';\r\nimport { ReactComponent as Settings } from '../../assets/img/icons/Icon_Settings.svg';\r\nimport { ReactComponent as Telemetry } from '../../assets/img/icons/Icon_Telemetry.svg';\r\nimport { ReactComponent as VisitType } from '../../assets/img/icons/Icon_Tipo.svg';\r\nimport { ReactComponent as Upload } from '../../assets/img/icons/Icon_Upload.svg';\r\nimport { ReactComponent as VerTodos } from '../../assets/img/icons/Icon_VerTodos.svg';\r\nimport { ReactComponent as Protocols } from '../../assets/img/icons/Icon_protocolos.svg';\r\nimport { ReactComponent as VisitGroup } from '../../assets/img/icons/icon_Grupo.svg';\r\nimport { ReactComponent as SVGWaitingRoom } from '../../assets/img/icons/waiting_room.svg';\r\n\r\nconst BackgroundComponent = (props) => {\r\n return
{props.children}
\r\n}\r\n\r\nexport const IconSVG = ({ name, fill, stroke, style }) => {\r\n\r\n switch (name?.toLowerCase()) {\r\n case \"add-appointment\": return ();\r\n case \"add-patient\": return ();\r\n case \"dashboard\": return ();\r\n case \"agenda\": return ();\r\n case \"patients\": return ();\r\n case \"medicalrecords\": return ();\r\n case \"protocols\": return ();\r\n case \"settings\": return ();\r\n case \"telemetry\": return ();\r\n case \"externalnote\": return ;\r\n case \"date\": return ();\r\n case \"speciality\": return ();\r\n case \"visittype\": return ();\r\n case \"visitgroup\": return ();\r\n case \"logout\": return ;\r\n case \"notification\": return ;\r\n case \"plus\": return ;\r\n case \"dropdown\": return ;\r\n case \"save\": return ;\r\n case \"publish\": return ;\r\n case \"back\": return ;\r\n case \"upload\": return ;\r\n case \"file\": return ;\r\n case \"info\": return ;\r\n case \"export\": return ;\r\n\r\n case \"consultorio\": return ;\r\n case \"protocol\": return ;\r\n case \"project\": return ;\r\n case \"external\": return ;\r\n case \"other\": return ;\r\n\r\n case \"personalhabits\": return ;\r\n case \"familyhistory\": return ;\r\n case \"adverseevents\": return ;\r\n case \"personalhistory\": return ;\r\n case \"drugs\": return ;\r\n case \"procedures\": return ;\r\n case \"anthropometrics\": return ;\r\n case \"laboratory\": return ;\r\n case \"vitals\": return ;\r\n case \"attachments\": return ;\r\n case \"prescriptions\": return ;\r\n case \"orders\": return ;\r\n\r\n case \"height\": return ;\r\n case \"weight\": return ;\r\n case \"bmi\": return ;\r\n case \"bloodpressure\": return ;\r\n case \"heartrate\": return ;\r\n\r\n case \"alcohol\": return ;\r\n case \"actividad física\": return ;\r\n case \"dieta\": return ;\r\n case \"drogas\": return ;\r\n case \"educacion\": return ;\r\n case \"ocupacion\": return ;\r\n case \"tabaco\": return ;\r\n case \"search\": return ;\r\n case \"edit\": return ;\r\n case \"patient\": return ;\r\n\r\n case \"bloodtype\": return ;\r\n case \"bloodfactor\": return ;\r\n\r\n case \"addappointment\": return ;\r\n case \"waiting_room\": return ;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport const Signature = (props) => { return {props.children} }\r\nexport const FormRestriction = (props) => { return {props.children} }\r\nexport const FormAdditional = (props) => { return {props.children} }\r\nexport const FormEarlyCompleted = (props) => { return {props.children} }\r\nexport const FormExtraProtocol = (props) => { return {props.children} }\r\n\r\nexport const Lock = (props) => { return {props.children} }\r\nexport const Today = (props) => { return {props.children} }\r\nexport const Help = (props) => { return {props.children} }\r\nexport const ViewMR = (props) => { return {props.children} }\r\nexport const View = (props) => { return {props.children} }\r\nexport const Search = (props) => { return {props.children} }\r\nexport const WaitingRoom = (props) => { return {props.children} }\r\nexport const MoneyBill = (props) => { return {props.children} }\r\n\r\nexport const Print = (props) => { return {props.children} }\r\nexport const Note = (props) => { return {props.children} }\r\nexport const AddAppointment = (props) => { return {props.children} }\r\nexport const Calendar = (props) => { return {props.children} }\r\nexport const CalendarCheck = (props) => { return {props.children} }\r\nexport const CalendarCross = (props) => { return {props.children} }\r\n\r\nexport const Audit = (props) => { return {props.children} }\r\n\r\nexport const Add = (props) => { return {props.children} }\r\nexport const Repeat = (props) => { return {props.children} }\r\nexport const RemoveCircle = (props) => { return {props.children} }\r\nexport const More = (props) => { return {props.children} }\r\nexport const Attach = (props) => { return {props.children} }\r\nexport const Remove = (props) => { return {props.children} }\r\nexport const Edit = (props) => { return {props.children} }\r\nexport const Copy = (props) => { return {props.children} }\r\nexport const Close = (props) => { return {props.children} }\r\nexport const Closed = (props) => { return {props.children} }\r\nexport const Check = (props) => { return {props.children} }\r\nexport const PersonCheck = (props) => { return {props.children} }\r\nexport const PersonCheckLine = (props) => { return {props.children} }\r\nexport const PersonCrossLine = (props) => { return {props.children} }\r\n\r\nexport const Back = (props) => { return {props.children} }\r\nexport const Next = (props) => { return {props.children} }\r\nexport const Export = (props) => { return {props.children} }\r\nexport const Camera = (props) => { return {props.children} }\r\nexport const Logout = (props) => { return {props.children} }\r\n\r\nexport const Up = (props) => { return {props.children} }\r\nexport const Down = (props) => { return {props.children} }\r\nexport const Swap = (props) => { return {props.children} }\r\n\r\nexport const ViewPractitioner = (props) => { return {props.children}; }\r\nexport const ViewProtocol = (props) => { return {props.children} }\r\nexport const ViewVisit = (props) => { return {props.children} }\r\n\r\nexport const Brief = (props) => { return {props.children} }\r\nexport const Practitioner = (props) => { return {props.children} }\r\nexport const VisitTracking = (props) => { return {props.children} }\r\nexport const AddPatient = (props) => { return {props.children} }\r\nexport const Patient = (props) => { return {props.children} }\r\nexport const Patients = (props) => { return {props.children} }\r\nexport const Config = (props) => { return {props.children} }\r\nexport const ExtraProtocol = (props) => { return {props.children} }\r\nexport const Visit = (props) => { return {props.children} }\r\n\r\nexport const Laboratory = (props) => { return {props.children} }\r\nexport const PrincipalInvestigator = (props) => { return {props.children} }\r\nexport const Status = (props) => { return {props.children} }\r\nexport const Phase = (props) => { return {props.children} }\r\n\r\n\r\nexport const Save = (props) => { return {props.children} }\r\nexport const Publish = (props) => { return {props.children}; }\r\nexport const Cancel = (props) => { return {props.children}; }\r\nexport const CanceLine = (props) => { return {props.children}; }\r\nexport const Change = (props) => { return {props.children}; }\r\n\r\nexport const Warning = (props) => { return {props.children}; }\r\n\r\nexport const Unread = (props) => { return {props.children}; }\r\nexport const Readed = (props) => { return {props.children}; }\r\n\r\nexport const Enabled = (props) => { return {props.children} }\r\nexport const Disabled = (props) => { return {props.children} }\r\n\r\nexport const IconPersonalHabits = () => { return (); }\r\nexport const IconFamilyHistory = () => { return (); }\r\nexport const IconAdverseEvent = () => { return (); }\r\nexport const IconDrug = () => { return (); }\r\nexport const Drug = (props) => { return {props.children} }\r\nexport const IconProcedure = () => { return (); }\r\nexport const IconAnthropometric = () => { return (); }\r\nexport const IconAdherence = () => { return (); }\r\nexport const IconAttachment = () => { return (); }\r\n\r\nexport const ContactInfo = (props) => { return {props.children} }\r\nexport const RelatedContact = (props) => { return {props.children} }\r\n\r\nexport const CellPhone = (props) => { return {props.children} }\r\nexport const Phone = (props) => { return {props.children} }\r\nexport const OnSite = (props) => { return {props.children} }\r\nexport const VideoCall = (props) => { return {props.children} }\r\nexport const Email = (props) => { return {props.children} }\r\nexport const Location = (props) => { return {props.children} }\r\nexport const Facebook = (props) => { return {props.children} }\r\nexport const Instagram = (props) => { return {props.children} }\r\nexport const Twitter = (props) => { return {props.children} }\r\n\r\nexport const Address = (props) => { return {props.children} }\r\nexport const Date = (props) => { return {props.children} }\r\nexport const Identification = (props) => { return {props.children} }\r\nexport const Doctor = (props) => { return {props.children} }\r\nexport const Statistics = (props) => { return {props.children} }\r\nexport const File = (props) => { return {props.children} }\r\n\r\nexport const Sync = (props) => { return {props.children} }\r\n\r\nexport const BirthDate = (props) => { return {props.children} }\r\nexport const MedicalInsurance = (props) => { return {props.children} }\r\nexport const MedicalInsuranceNumber = (props) => { return {props.children} }\r\nexport const MedicalRecord = (props) => { return {props.children} }\r\n\r\nexport const Expand = (props) => { return {props.children} }\r\nexport const Contract = (props) => { return {props.children} }\r\nexport const Summary = (props) => { return {props.children} }\r\n\r\nexport const Chart = (props) => { return {props.children} }\r\nexport const Table = (props) => { return {props.children} }\r\nexport const ChartBar = (props) => { return {props.children} }\r\nexport const ChartLine = (props) => { return {props.children} }\r\n\r\nexport const Comments = (props) => { return {props.children} }\r\n\r\n\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport Tippy from '@tippyjs/react';\r\n\r\nexport function Tooltip({ id, children, tooltip, placement, style }) {\r\n\r\n const Children = React.forwardRef((props, ref) =>
)\r\n\r\n return \r\n {children}\r\n ;\r\n}\r\n\r\nTooltip.defaultProps = {\r\n placement: \"top\",\r\n style: { display: 'inline-block' }\r\n};\r\n\r\nTooltip.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n tooltip: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.object,\r\n ]).isRequired,\r\n style: PropTypes.object\r\n};","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Logout } from '../Icons/Icons';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { Spinner } from '../Utils/Loaders';\r\nimport { ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\nexport const LoginMenu = (props) => {\r\n const authenticationState = useSelector(state => state.authentication);\r\n \r\n function authenticatedView(_userName, _profilePath, logoutPath) {\r\n return (
  • \r\n \r\n \r\n \r\n \r\n \r\n
  • );\r\n }\r\n\r\n function anonymousView(_registerPath, loginPath) {\r\n return (
  • \r\n Login\r\n
  • );\r\n }\r\n\r\n if (authenticationState.isLoading)\r\n return ;\r\n\r\n if (!authenticationState.isAuthenticated) {\r\n const registerPath = `${ApplicationPaths.Register}`;\r\n const loginPath = `${ApplicationPaths.Login}`;\r\n return anonymousView(registerPath, loginPath);\r\n } else {\r\n const profilePath = `${ApplicationPaths.Profile}`;\r\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\r\n return authenticatedView(authenticationState.user?.email, profilePath, logoutPath);\r\n }\r\n}\r\n","export const getLabelColor = (name) => {\r\n let _value = \"\";\r\n switch (name) {\r\n case \"EXTERNAL\": _value = \"label-external\"; break;\r\n case \"PROTOCOL\": _value = \"label-protocol\"; break;\r\n case \"PROJECT\": _value = \"label-project\"; break;\r\n default: break;\r\n }\r\n\r\n return _value;\r\n}\r\n\r\nexport const getButtonColor = (name) => {\r\n\r\n switch (name) {\r\n case \"EXTERNAL\": return \"btn-external\";\r\n case \"PROTOCOL\": return \"btn-protocol\";\r\n case \"PROJECT\": return \"btn-project\";\r\n default: return \"btn-default\";\r\n }\r\n}\r\n\r\nexport const groupBy = function (xs, key) {\r\n return xs.reduce(function (rv, x) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n};\r\n\r\nexport const generateLink = (mentionParams) => {\r\n if (!mentionParams)\r\n return \"/\"\r\n var urlParams = new URLSearchParams(mentionParams);\r\n if (urlParams.has(\"from\")) {\r\n let type = \"\";\r\n switch (urlParams.get('from')) {\r\n case \"VisitTrackingExtra\":\r\n type = \"visitTrackingExtra\"; break;\r\n case \"VisitTracking\":\r\n default:\r\n type = \"visitTracking\";\r\n }\r\n return `/admin/protocols/${urlParams.get('protocolId')}/${type}/${urlParams.get('visitId')}/patient/${urlParams.get('patientId')}?&formId=${urlParams.get('formId')}`;\r\n }\r\n}\r\n\r\nexport const getProtocolUrl = (type) => {\r\n switch (type) {\r\n case 3:\r\n case 4:\r\n case 10: return \"visitTrackingExtra\";\r\n default:\r\n return \"visitTracking\";\r\n }\r\n}\r\n\r\nexport function formatBytes(bytes, decimals = 2) {\r\n if (bytes === 0) return '0 Bytes';\r\n\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n}\r\n\r\nexport const getQueryParam = (url, name) => {\r\n return new URLSearchParams(url).get(name);\r\n}\r\n\r\nexport const getFullNameFromUserMention = (mention) => {\r\n const fullNameRegex = /@\\[(.*?)]\\(((\\{){0,1}[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}(\\}){0,1})\\)/;\r\n var matches = fullNameRegex.exec(mention);\r\n\r\n while (matches != null && matches[1]) {\r\n mention = mention.replace(matches[0], `'${matches[1]}'`);\r\n matches = fullNameRegex.exec(mention);\r\n }\r\n\r\n return mention;\r\n}\r\n\r\nexport const capitalize = (s, onlyFirst = true, split = \".\") => {\r\n if (typeof s !== 'string') return ''\r\n\r\n if (onlyFirst)\r\n return s.charAt(0).toUpperCase() + s.slice(1)\r\n\r\n const words = s.split(split);\r\n\r\n return words.map((word) => {\r\n return word[0].toUpperCase() + word.slice(1);\r\n }).join(split);\r\n\r\n}\r\n\r\n/*!\r\n * Get an object value from a specific path\r\n * @param {Object} obj The object\r\n * @param {String|Array} path The path\r\n * @param {*} def A default value to return [optional]\r\n * @return {*} The value\r\n */\r\nexport const getWithPath = function (obj, path, def) {\r\n\r\n /**\r\n * If the path is a string, convert it to an array\r\n * @param {String|Array} path The path\r\n * @return {Array} The path array\r\n */\r\n var stringToPath = function (path) {\r\n\r\n // If the path isn't a string, return it\r\n if (typeof path !== 'string') return path;\r\n\r\n // Create new array\r\n var output = [];\r\n\r\n // Split to an array with dot notation\r\n path.split('.').forEach(function (item) {\r\n\r\n // Split to an array with bracket notation\r\n item.split(/\\[([^}]+)\\]/g).forEach(function (key) {\r\n\r\n // Push to the new array\r\n if (key.length > 0) {\r\n output.push(key);\r\n }\r\n\r\n });\r\n\r\n });\r\n\r\n return output;\r\n\r\n };\r\n\r\n // Get the path as an array\r\n path = stringToPath(path);\r\n\r\n // Cache the current object\r\n var current = obj;\r\n\r\n // For each item in the path, dig into the object\r\n for (var i = 0; i < path.length; i++) {\r\n\r\n // If the item isn't found, return the default (or null)\r\n if (!current[path[i]]) return def;\r\n\r\n // Otherwise, update the current value\r\n current = current[path[i]];\r\n\r\n }\r\n\r\n return current;\r\n\r\n};\r\n\r\nexport function getRemovedElement(arrayPasado, arrayActual) {\r\n if (!arrayPasado)\r\n return null;\r\n\r\n for (let i = 0; i < arrayPasado.length; i++) {\r\n if (!arrayActual || !arrayActual.includes(arrayPasado[i])) {\r\n return arrayPasado[i];\r\n }\r\n }\r\n\r\n return null; // Si no se encuentra ningún elemento eliminado\r\n}\r\n\r\nexport function arrayMoveMutable(array, fromIndex, toIndex) {\r\n const startIndex = fromIndex < 0 ? array.length + fromIndex : fromIndex;\r\n\r\n if (startIndex >= 0 && startIndex < array.length) {\r\n const endIndex = toIndex < 0 ? array.length + toIndex : toIndex;\r\n\r\n const [item] = array.splice(fromIndex, 1);\r\n array.splice(endIndex, 0, item);\r\n }\r\n}\r\n\r\nexport function arrayMoveImmutable(array, fromIndex, toIndex) {\r\n const newArray = [...array];\r\n arrayMoveMutable(newArray, fromIndex, toIndex);\r\n return newArray;\r\n}","import React, { useEffect } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport { NavDropdown, MenuItem } from \"react-bootstrap\";\r\nimport { generateLink } from '../Utils/Commons';\r\nimport { IconSVG, View } from '../Icons/Icons';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSignalR } from '../../services/signalRService';\r\nimport { HubConnectionState } from '@microsoft/signalr';\r\n\r\nconst TestNotifications = (props) => {\r\n const { t } = useTranslation()\r\n const { connection } = useSignalR();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection.on('TestNotification', res => {\r\n dispatch({\r\n type: 'NOTIFICATION_RECEIVED',\r\n payload: {\r\n ...res\r\n }\r\n });\r\n });\r\n\r\n return () => {\r\n // Leave group when component unmounts\r\n if (connection.connection._connectionState === HubConnectionState.Connected)\r\n connection.invoke('LeaveGroup', \"SystemNotifications\");\r\n };\r\n }\r\n }, [connection]);\r\n\r\n var notifications = {t(\"notifications.noNotifications\")};\r\n var notifCountContainer = null;\r\n\r\n if (props.notifications && props.notifications.length > 0) {\r\n let unreaded = 0;\r\n notifications = props.notifications.map((notification, index) => {\r\n if (notification.status === 0) {\r\n unreaded++;\r\n return (\r\n
  • \r\n \r\n {notification.content} \r\n \r\n
  • \r\n )\r\n }\r\n\r\n return null;\r\n });\r\n\r\n if (unreaded > 0)\r\n notifCountContainer = {unreaded};\r\n }\r\n\r\n const title = (\r\n <>\r\n \r\n {notifCountContainer}\r\n

    \r\n {t(\"notifications.notifications\")}\r\n \r\n

    \r\n \r\n );\r\n\r\n return (\r\n \r\n {notifications}\r\n \r\n )\r\n}\r\n\r\nconst AdminNavbarNotificationsContainer = connect(state => state.notifications)(TestNotifications);\r\n\r\nexport default AdminNavbarNotificationsContainer;","import React from \"react\";\r\nimport { MenuItem, NavDropdown } from \"react-bootstrap\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport avatar from \"../../assets/img/default-avatar.png\";\r\nimport { ApplicationPaths } from \"../api-authorization/ApiAuthorizationConstants\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const AdminNavbarUser = (props) => {\r\n const { user } = props;\r\n const { t } = useTranslation();\r\n const settings = useSelector(state => state.settings.settings);\r\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\r\n\r\n return (\r\n <>\r\n \r\n \"Avatar\"\r\n\r\n {user.family_name ? <>{user.family_name} {user.given_name} : user.email}\r\n
    \r\n }\r\n //noCaret\r\n id=\"current-user-navbar\"\r\n bsClass=\"current-user-dropdown dropdown\"\r\n >\r\n \r\n {t(\"userProfile.myProfile\")}\r\n \r\n \r\n {t(\"userProfile.edit\")}\r\n \r\n \r\n {t(\"userProfile.changePassword\")}\r\n \r\n \r\n
  • \r\n \r\n {t(\"userProfile.logout\")}\r\n \r\n
  • \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Nav } from \"react-bootstrap\";\r\nimport { useSelector } from 'react-redux';\r\nimport SignalRProvider from \"../../services/signalRService\";\r\nimport { LoginMenu } from \"../api-authorization/LoginMenu\";\r\nimport AdminNavbarNotificationsContainer from \"./AdminNavbarNotifications\";\r\nimport { AdminNavbarUser } from \"./AdminNavbarUser\";\r\nimport { WithAuth } from \"../Authorization/WithAuth\";\r\n\r\nconst HeaderLinks = () => {\r\n const user = useSelector(state => state.authentication.user);\r\n const settingsState = useSelector(state => state.settings);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\nexport default HeaderLinks;\r\n","import React from \"react\";\r\nimport { Navbar } from \"react-bootstrap\";\r\nimport AdminNavbarLinks from \"./AdminNavbarLinks.jsx\";\r\n\r\nconst AdminNavbar = props => {\r\n\r\n const getActiveRoute = (routes) => {\r\n let activeRoute = \"EMR\";\r\n\r\n for (let i = 0; i < routes.length; i++) {\r\n if (routes[i].collapse) {\r\n let collapseActiveRoute = getActiveRoute(routes[i].routes);\r\n if (collapseActiveRoute !== activeRoute) {\r\n return collapseActiveRoute;\r\n }\r\n } else {\r\n var path = routes[i].layout + routes[i].path.replace(/:id/gi, \"\");;\r\n if (window.location.href.indexOf(path) !== -1) {\r\n return routes[i].name// route.layout + path;\r\n //return routes[i].layout + path;\r\n }\r\n }\r\n }\r\n return activeRoute;\r\n };\r\n\r\n //const getCrumbs = () => {\r\n // routes\r\n // // Get all routes that contain the current one.\r\n // .filter(({ path }) => props.match.path.includes(path))\r\n // // Swap out any dynamic routes with their param values.\r\n // .map(({ path, ...rest }) => ({\r\n // path: Object.keys(props.match.params).length\r\n // ? Object.keys(props.match.params).reduce(\r\n // (item, param) =>\r\n // item.replace(`:${param}`, props.match.params[param]),\r\n // getActiveRoute(routes, path)//route.layout + path\r\n // )\r\n // : getActiveRoute(routes, path),//route.layout + path,\r\n // ...rest\r\n // }));\r\n //}\r\n\r\n //// function for responsive that hides/shows the sidebar\r\n //const mobileSidebarToggle = e => {\r\n // document.documentElement.classList.toggle(\"nav-open\");\r\n ////if (\r\n //// document.documentElement.className === \"nav-open\" &&\r\n //// props.fixedClasses !== \"dropdown\"\r\n ////) {\r\n //// //props.handleFixedClick();\r\n ////}\r\n //};\r\n\r\n return (\r\n \r\n {/*\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {getActiveRoute(routes)}\r\n \r\n \r\n \r\n */}\r\n {/* Here we import the links that appear in navbar */}\r\n {window.innerWidth > 992 ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n\r\nexport default AdminNavbar;\r\n","import axios from './index';\r\n\r\nexport const getQueryString = (newActiveFilters, search) => {\r\n const searchParams = new URLSearchParams(search || '');\r\n\r\n searchParams.delete('currentDate');\r\n if (newActiveFilters.currentDate) {\r\n searchParams.append('currentDate', newActiveFilters.currentDate);\r\n }\r\n searchParams.delete('view');\r\n if (newActiveFilters.view) {\r\n searchParams.append('view', newActiveFilters.view);\r\n }\r\n\r\n searchParams.delete('projects');\r\n (newActiveFilters.projects || []).forEach(project => searchParams.append('projects', project));\r\n searchParams.delete('protocols');\r\n (newActiveFilters.protocols || []).forEach(protocol => searchParams.append('protocols', protocol));\r\n searchParams.delete('practitioners');\r\n (newActiveFilters.practitioners || []).forEach(practitioner => searchParams.append('practitioners', practitioner));\r\n searchParams.delete('type');\r\n if (newActiveFilters.type != null && newActiveFilters.type.id) {\r\n searchParams.append('type', newActiveFilters.type.id);\r\n }\r\n\r\n searchParams.delete('deleted');\r\n if (newActiveFilters.deleted) {\r\n searchParams.append('deleted', newActiveFilters.deleted);\r\n }\r\n searchParams.delete('medicalRecord');\r\n if (newActiveFilters.medicalRecord != null) {\r\n searchParams.append('medicalRecord', newActiveFilters.medicalRecord);\r\n }\r\n\r\n searchParams.delete('present');\r\n if (newActiveFilters.present != null) {\r\n searchParams.append('present', newActiveFilters.present);\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nexport const getPagingAndOrderParams = (newActiveFilters, searchParams) => {\r\n\r\n if (!newActiveFilters)\r\n return;\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination?.page) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if (newActiveFilters.pagination?.sizePerPage) {\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort?.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort?.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n return searchParams;\r\n}\r\nexport const getQueryString2 = (query, search) => {\r\n\r\n var searchParams = new URLSearchParams(search || '');\r\n\r\n if (!query)\r\n return searchParams.toString();\r\n\r\n searchParams = getPagingAndOrderParams(query, searchParams);\r\n\r\n if (query.filters) {\r\n for (const property in query.filters) {\r\n\r\n searchParams.delete(property);\r\n if (query.filters[property] !== null && query.filters[property] !== undefined) {\r\n searchParams.append(property, query.filters[property]);\r\n }\r\n }\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nexport const getEvents = async filters => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/agenda/events?${queryString}` : 'api/v1/agenda/events');\r\n};\r\nexport const getEventsByPatient = async (medicalRecordNumber, filters) => {\r\n const queryString = getQueryString2(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/agenda/eventsbypatient/${medicalRecordNumber}?${queryString}` : `api/v1/agenda/eventsbypatient/${medicalRecordNumber}`);\r\n};\r\nexport const getWaitingList = () => {\r\n return axios.get(`api/v1/agenda/waitingList`);\r\n};\r\nexport const getEvent = q => {\r\n return axios.get(`api/v1/agenda/event?${q}`);\r\n};\r\nexport const getEventAPI = id => {\r\n return axios.get(`api/v1/agenda/events/${id}`);\r\n};\r\n\r\nexport const createEvent = (event) => {\r\n return axios.post('api/v1/agenda/event', event);\r\n};\r\n\r\nexport const updateEvent = (event) => {\r\n return axios.put(`api/v1/agenda/event/`, event);\r\n};\r\n\r\nexport const updateEventAttendance = (eventId) => {\r\n return axios.put(`api/v1/agenda/event/${eventId}/attended`);\r\n};\r\n\r\nexport const notAttendanceAppointment = (eventId, reason) => {\r\n return axios.put(`api/v1/agenda/event/${eventId}/notattendance/${reason}`);\r\n};\r\n\r\nexport const updateEventStatus = (eventId, confirmed) => {\r\n return axios.put(`api/v1/agenda/event/${eventId}/status/${confirmed}`);\r\n};\r\n\r\nexport const setPresent = (eventId) => {\r\n return axios.put(`api/v1/agenda/event/${eventId}/present`, eventId);\r\n};\r\n\r\nexport const cancelEvent = (id, reason) => {\r\n return axios.put(`api/v1/agenda/event/${id}/${reason}`, id);\r\n};\r\n\r\nexport const getPatient = id => {\r\n return axios.get(`api/v1/agenda/patient/${id}`);\r\n};\r\n\r\nexport const searchPatients = q => {\r\n return axios.get('api/v1/database/patients/search', { params: { q } });\r\n}\r\n\r\nexport const getProfessionals = () => {\r\n return axios.get('api/v1/users/practitioners?pageSize=1000');\r\n};\r\n\r\nexport const getProfessionalsByProject = (projectId) => {\r\n return axios.get(`api/v1/agenda/project/${projectId}/professionals`);\r\n};\r\n\r\nexport const getPractitionersByProtocol = (protocolId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/practitioners/simple?sortField=FullName&sortOrder=desc&pageSize=50`);\r\n};\r\n\r\nexport const searchProtocolsAPI = q => {\r\n return axios.get('api/v1/agenda/protocol/search', { params: { q } });\r\n}\r\n/*\r\nexport const getProjects = () => {\r\n return axios.get('api/v1/agenda/projects');\r\n};\r\n\r\nexport const getProtocols = () => {\r\n return axios.get('api/v1/agenda/protocols');\r\n};*/\r\n\r\nexport const exportToExcel = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/agenda/events/exportToExcel?${queryString}` : 'api/v1/agenda/events/exportToExcel', {\r\n responseType: 'blob',\r\n timeout: 300000,\r\n });\r\n};\r\n\r\nexport const getMasterData = () => {\r\n return axios.get('api/v1/agenda/masterdata');\r\n};\r\n\r\nexport const getMedicalServiceAPI = (id) => {\r\n return axios.get(`api/v1/agenda/medicalServices/${id}`);\r\n};\r\nexport const getMedicalServicesAPI = () => {\r\n return axios.get(`api/v1/agenda/medicalServices`);\r\n};\r\nexport const getMedicalServicePriceAPI = (medicalServiceId, medicalInsuranceId, medicalPlanId) => {\r\n return axios.get(`api/v1/agenda/medicalServices/${medicalServiceId}/medicalInsurance/${medicalInsuranceId}/medicalPlan/${medicalPlanId}`);\r\n};\r\nexport const getPractitionersAPI = (medicalServiceId, medicalInsuranceId) => {\r\n return axios.get(`api/v1/agenda/medicalServices/${medicalServiceId}/medicalInsurance/${medicalInsuranceId}/practitioners`);\r\n};\r\nexport const getAvailabilityAPI = (userId, medicalServiceId, medicalInsuranceId, medicalPlanId, isFirstTime, isOverShift) => {\r\n return axios.get(`api/v1/agenda/availability/medicalServices/${medicalServiceId}/medicalInsurance/${medicalInsuranceId}/medicalPlan/${medicalPlanId}/practitioners/${userId}/${isFirstTime}/${isOverShift}`);\r\n};\r\nexport const getGlobalAvailabilityAPI = (userId) => {\r\n return axios.get(`api/v1/agenda/availability/practitioners/${userId}`);\r\n};\r\n\r\nexport const getScheduleLocksAPI = (filters) => {\r\n const queryString = getQueryString2(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/agenda/scheduleLock?${queryString}` : 'api/v1/agenda/scheduleLock');\r\n};\r\nexport const createScheduleLockAPI = (scheduleLock) => {\r\n return axios.post('api/v1/agenda/scheduleLock', scheduleLock);\r\n};\r\nexport const deleteScheduleLockAPI = (id) => {\r\n return axios.delete(`api/v1/agenda/scheduleLock/${id}`);\r\n};","import React from \"react\";\r\nimport moment from 'moment';\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\nimport { Check, PersonCheck } from \"../Icons/Icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst EventPatient = ({ event }) => {\r\n const { t } = useTranslation();\r\n\r\n var title = event.attended === false ? {event.title} : event.title\r\n var confirmed = event.confirmed === true ? : null;\r\n var present = event.present && !event.attended ? : null;\r\n var tooltip = (\r\n <>\r\n
    {t(\"calendar.patient\")}: {event.patient?.fullName}
    \r\n
    {t(\"calendar.medicalRecord\")}: {event.patient?.medicalRecordNumber}
    \r\n
    {t(\"calendar.practitioner\")}: {event.practitioner?.fullName}
    \r\n
    {t(\"calendar.visitType\")}: {event.visitType?.title}
    \r\n {event.protocol ?
    {t(\"calendar.protocol\")}: {event.protocol.title}
    : null}\r\n \r\n );\r\n\r\n return (\r\n \r\n
    \r\n
    {confirmed} {present} {title} - {moment(event.start).format('H:mm')}
    \r\n
    {event.practitioner?.fullName}
    \r\n
    \r\n
    \r\n );\r\n}\r\nconst EventScheduleLock = ({ event }) => {\r\n const { t } = useTranslation();\r\n var tooltip = (\r\n
    \r\n
    {t(\"calendar.scheduleLock\")}
    \r\n {event.practitioner &&
    {t(\"calendar.practitioner\")}: {event.practitioner?.fullName}
    }\r\n
    {moment(event.start).format('H:mm')} - {moment(event.end).format('H:mm')}
    \r\n
    \r\n );\r\n return (\r\n \r\n
    \r\n
    {t(\"calendar.scheduleLock\")} - {moment(event.start).format('H:mm')}
    \r\n
    {event.practitioner?.fullName}
    \r\n
    \r\n
    \r\n );\r\n}\r\nexport const Event = ({ event }) => {\r\n\r\n if (event.visitType?.code === \"SCHEDULELOCK\")\r\n return \r\n else\r\n return \r\n}\r\n\r\nconst EventMonthPatient = (props) => {\r\n const { t } = useTranslation();\r\n let event = props.event;\r\n var title = event.attended === false ? {event.title} : event.title\r\n var confirmed = event.confirmed === true ? : null;\r\n var tooltip = (\r\n <>\r\n
    {t(\"calendar.patient\")}: {event.patient?.fullName}
    \r\n
    {t(\"calendar.medicalRecord\")}: {event.patient?.medicalRecordNumber}
    \r\n
    {t(\"calendar.practitioner\")}: {event.practitioner?.fullName}
    \r\n {event.protocol ?
    {t(\"calendar.protocol\")}: {event.protocol?.title}
    : null}\r\n \r\n );\r\n\r\n return (\r\n \r\n
    {confirmed} {title} - {moment(event.start).format('H:mm')}
    \r\n
    \r\n );\r\n}\r\nconst EventMonthScheduleLock = ({ event }) => {\r\n const { t } = useTranslation();\r\n\r\n var tooltip = (\r\n
    \r\n
    {t(\"calendar.scheduleLock\")}
    \r\n {event.practitioner &&
    {t(\"calendar.practitioner\")}: {event.practitioner?.fullName}
    }\r\n
    {moment(event.start).format('H:mm')} - {moment(event.end).format('H:mm')}
    \r\n
    \r\n );\r\n return (\r\n \r\n
    {t(\"calendar.scheduleLock\")} - {moment(event.start).format('H:mm')} - {moment(event.end).format('H:mm')}
    \r\n
    \r\n );\r\n}\r\nexport const EventMonth = ({ event }) => {\r\n\r\n if (event.visitType?.code === \"SCHEDULELOCK\")\r\n return \r\n else\r\n return \r\n}\r\n\r\nconst EventAgendaPatient = (props) => {\r\n const { t } = useTranslation();\r\n let event = props.event;\r\n var confirmed = event.confirmed === true ? : null;\r\n\r\n return (\r\n <>\r\n
    {t(\"calendar.patient\")}: {event.patient?.fullName}
    \r\n
    {t(\"calendar.medicalRecord\")}: {event.patient?.medicalRecordNumber}
    \r\n
    {t(\"calendar.practitioner\")}: {event.practitioner?.fullName}
    \r\n {event.protocol ?
    {t(\"calendar.protocol\")}: {event.protocol?.title}
    : null}\r\n\r\n {confirmed && <>{t(\"calendar.appointmentConfirmed\")} {confirmed}}\r\n \r\n );\r\n}\r\nconst EventAgendaScheduleLock = ({ event }) => {\r\n const { t } = useTranslation();\r\n return (
    {t(\"calendar.scheduleLock\")} {event.practitioner?.fullName}
    );\r\n}\r\nexport const EventAgenda = ({ event }) => {\r\n\r\n if (event.visitType?.code === \"SCHEDULELOCK\")\r\n return \r\n else\r\n return \r\n}","import axios from './index';\r\n\r\nexport const getQueryString = (newActiveFilters, search) => {\r\n const searchParams = new URLSearchParams(search || '');\r\n \r\n searchParams.delete('sizePerPage'); // se resetea el paginado\r\n if(newActiveFilters.pagination?.sizePerPage && newActiveFilters.pagination.sizePerPage !== 1){\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if(newActiveFilters.pagination?.page && newActiveFilters.pagination.page !== 1){\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('sortField');\r\n if(newActiveFilters.sort?.sortField){\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if(newActiveFilters.sort?.sortOrder){\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n \r\n searchParams.delete('q');\r\n if(newActiveFilters.q){\r\n searchParams.append('q', newActiveFilters.q);\r\n }\r\n\r\n searchParams.delete('projects');\r\n (newActiveFilters.projects || []).forEach(project => searchParams.append('projects', project.id));\r\n searchParams.delete('protocols');\r\n (newActiveFilters.protocols || []).forEach(protocol => searchParams.append('protocols', protocol.id));\r\n searchParams.delete('professionals');\r\n (newActiveFilters.professionals || []).forEach(professional => searchParams.append('professionals', professional.id));\r\n searchParams.delete('type');\r\n if (newActiveFilters.type != null && newActiveFilters.type.id) {\r\n searchParams.append('type', newActiveFilters.type.id);\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nexport const getPractitioners = async filters => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/admin/practitioners?${queryString}` : 'api/v1/admin/practitioners');\r\n};\r\n\r\nexport const getPractitioner = (id) => {\r\n return axios.get(`api/v1/admin/practitioner/${id}`);\r\n};\r\n\r\nexport const createPractitioner = (patient) => {\r\n return axios.post('api/v1/admin/practitioner', patient);\r\n};\r\n\r\nexport const updatePractitioner = (patient) => {\r\n return axios.put('api/v1/admin/practitioner', patient);\r\n};\r\n\r\nexport const getMasterData = () => {\r\n return axios.get('api/v1/admin/masterdata');\r\n};\r\n\r\nexport const getMedicalInsurancePlanByMedicalInsurance = (medicalInsurance) => {\r\n return axios.get(`api/v1/admin/masterdata/${medicalInsurance}`);\r\n};\r\n\r\nexport const getMasterDataSelect = (item) => {\r\n return axios.get(`api/v1/admin/selectmasterdata?items=${item}`);\r\n};\r\n\r\nexport const getStatesByCountry = (countrycodeISO2) => {\r\n return axios.get(`api/v1/admin/states/${countrycodeISO2}`);\r\n};\r\n\r\nexport const getCitiesByState = (statecodeISO2) => {\r\n return axios.get(`api/v1/admin/cities/${statecodeISO2}`);\r\n};\r\n\r\nexport const exportToExcel = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n \r\n return axios.get(queryString ? `api/v1/admin/practitioners/exportToExcel?${queryString}` : 'api/v1/admin/practitioners/exportToExcel', {\r\n responseType: 'arraybuffer'\r\n });\r\n};\r\n\r\nexport const getAdverseEventsData = () => {\r\n return axios.get('api/v1/admin/adverseeventsdata');\r\n}\r\nexport const getDrugsData = () => {\r\n return axios.get('api/v1/admin/drugsdata');\r\n}\r\nexport const getEntryData = () => {\r\n return axios.get('api/v1/admin/entrydata');\r\n}\r\nexport const getFamilyHistoryData = () => {\r\n return axios.get('api/v1/admin/familyhistorydata');\r\n}\r\nexport const getLaboratoryData = () => {\r\n return axios.get('api/v1/admin/laboratorydata');\r\n}\r\n\r\nexport const getAuditTrail = (entity, entityId, parentKey = 0) => {\r\n return axios.get(`api/v1/admin/audits/${entity}/${entityId}/${parentKey}`);\r\n}\r\n\r\nexport const getLastAuditTrail = (entity, entityId) => {\r\n return axios.get(`api/v1/admin/audits/last/${entity}/${entityId}`);\r\n}\r\n\r\nexport const getAuditProtocolUserRoleAPI = (protocolId, userId) => {\r\n return axios.get(`api/v1/admin/auditsuserrole/protocols/${protocolId}/users/${userId}`);\r\n}","import axios from './index';\r\n\r\nexport const getQueryString = (newActiveFilters, search) => {\r\n const searchParams = new URLSearchParams(search || '');\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination && newActiveFilters.pagination.page && newActiveFilters.pagination.page !== 1) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if (newActiveFilters.pagination && newActiveFilters.pagination.sizePerPage && newActiveFilters.pagination.sizePerPage !== 1) {\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort && newActiveFilters.sort.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort && newActiveFilters.sort.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n searchParams.delete('patientId');\r\n if (newActiveFilters.patientId) {\r\n searchParams.append('patientId', newActiveFilters.patientId);\r\n }\r\n\r\n searchParams.delete('medicalRecordNumber');\r\n if (newActiveFilters.medicalRecordNumber) {\r\n searchParams.append('medicalRecordNumber', newActiveFilters.medicalRecordNumber);\r\n }\r\n\r\n searchParams.delete('actual');\r\n if (newActiveFilters.actual) {\r\n searchParams.append('actual', newActiveFilters.actual);\r\n }\r\n\r\n searchParams.delete('includePersonalHistory');\r\n if (newActiveFilters.includePersonalHistory) {\r\n searchParams.append('includePersonalHistory', newActiveFilters.includePersonalHistory);\r\n }\r\n\r\n searchParams.delete('entryId');\r\n if (newActiveFilters.entryId) {\r\n searchParams.append('entryId', newActiveFilters.entryId);\r\n }\r\n\r\n searchParams.delete('category');\r\n if (newActiveFilters.category) {\r\n searchParams.append('category', newActiveFilters.category);\r\n }\r\n\r\n if (newActiveFilters.filters) {\r\n for (const property in newActiveFilters.filters) {\r\n\r\n searchParams.delete(property);\r\n if (newActiveFilters.filters[property] !== null && newActiveFilters.filters[property] !== undefined) {\r\n searchParams.append(property, newActiveFilters.filters[property]);\r\n }\r\n }\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\n//#region Entries\r\nexport const getEntries = async (medicalRecordNumber, filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}?${queryString}`);\r\n};\r\nexport const getEntry = (medicalRecordNumber, id) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${id}`);\r\n};\r\nexport const createEntry = (medicalRecordNumber, entry) => {\r\n return axios.post(`api/v1/medicalRecords/${medicalRecordNumber}/entry`, entry);\r\n};\r\nexport const assignVisitId = (medicalRecordNumber, entryId, visitId) => {\r\n return axios.put(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}/assignVisitId/${visitId}`, {});\r\n};\r\nexport const saveEntry = (medicalRecordNumber, entryId, entry) => {\r\n return axios.put(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}`, entry);\r\n};\r\nexport const publishEntry = (medicalRecordNumber, entryId, entry) => {\r\n return axios.put(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}/publish`, entry);\r\n};\r\nexport const deleteEntry = (medicalRecordNumber, entryId) => {\r\n return axios.delete(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}`);\r\n};\r\nexport const exportEntry = (medicalRecordNumber, entryId, pin) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}/exportToPDF/${pin}`, {\r\n responseType: 'blob',\r\n timeout: 30000,\r\n });\r\n};\r\nexport const exportEntries = (medicalRecordNumber, pin) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/exportToPDF/${pin}`, {\r\n responseType: 'blob',\r\n timeout: 300000,\r\n });\r\n};\r\n//#endregion\r\n\r\nexport const getAdherence = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/adherence?${queryString}`);\r\n};\r\nexport const postAdherence = (entryId, adherence) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/adherence`, adherence);\r\n};\r\n\r\n//#region AdverseEvents\r\nexport const getEvents = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/events?${queryString}`);\r\n};\r\nexport const getAdverseEvents = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/adverseEvents?${queryString}`);\r\n};\r\nexport const getAdverseEvent = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/adverseEvents/${id}`);\r\n};\r\nexport const getAdverseEventHistoryAPI = (medicalRecordNumber, conceptId, category) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/adverseEvents/${conceptId}/condition/${category}/history`);\r\n};\r\nexport const postAdverseEvents = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/adverseEvents`, data);\r\n};\r\nexport const putAdverseEvent = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/adverseEvents/${id}`, data);\r\n};\r\nexport const removeAdverseEventAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/adverseEvents/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n//#region Conditions\r\nexport const getAllConditions = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/conditions?${queryString}`);\r\n};\r\nexport const deleteCondition = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/adverseEvents/${id}/audit/${reason}/${comments}`);\r\n}\r\nexport const postCondition = (entryId, data, category) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/condition/${category}`, data);\r\n}\r\nexport const postCopyCondition = (entryId, conditionId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/condition/${conditionId}/copy`, data);\r\n}\r\nexport const getConditions = (entryId, category, filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/conditions/${category}?${queryString}`);\r\n};\r\n//#endregion\r\n\r\n//#region attachments\r\nexport const getAttachments = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/attachments?${queryString}`);\r\n};\r\nexport const getAttachment = (id, medicalRecordNumber, entryId) => {\r\n return axios.get(`api/v1/medicalRecords/attachment?id=${id}&medicalRecordNumber=${medicalRecordNumber}&entryId=${entryId}`, { responseType: 'blob' });\r\n};\r\nexport const uploadAttachment = (entryId, formData) => {\r\n return axios.post(`api/v1/medicalRecords/uploadAttachment/entry/${entryId}`, formData, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n}\r\nexport const uploadAttachmentEndpoint = (entryId) => {\r\n return `api/v1/medicalRecords/uploadAttachment/entry/${entryId}`;\r\n}\r\n//#endregion\r\n\r\n//#region drugs\r\nexport const getDrugs = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/drugs?${queryString}`);\r\n};\r\nexport const getDrugsHistoryAPI = (medicalRecordNumber, conceptId) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/drugs/${conceptId}/history`);\r\n};\r\nexport const getDrug = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/drugs/${id}`);\r\n};\r\nexport const postDrug = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/drugs`, data);\r\n};\r\nexport const putDrug = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/drugs/${id}`, data);\r\n};\r\nexport const removeDrugAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/drugs/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n//#region prescriptions\r\nexport const getPrescriptions = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/prescriptions?${queryString}`);\r\n};\r\nexport const getPrescription = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/prescriptions/${id}`);\r\n};\r\nexport const postPrescription = (medicalRecordNumber, entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}/prescriptions`, data);\r\n};\r\nexport const putPrescription = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/prescriptions/${id}`, data);\r\n};\r\nexport const removePrescriptionAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/prescriptions/${id}/audit/${reason}/${comments}`);\r\n};\r\nexport const exportPrescription = (medicalRecordNumber, entryId, id, pin) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}/prescriptions/${id}/exportToPDF/${pin}`, {\r\n responseType: 'blob',\r\n timeout: 30000,\r\n });\r\n};\r\nexport const recreatePrescriptionAPI = (medicalRecordNumber, entryId, prescriptionId) => {\r\n return axios.post(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}/prescriptions/${prescriptionId}`, null);\r\n};\r\n//#endregion\r\n\r\n//#region orders\r\nexport const getOrders = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/orders?${queryString}`);\r\n};\r\nexport const getOrder = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/orders/${id}`);\r\n};\r\nexport const postOrder = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/orders`, data);\r\n};\r\nexport const putOrder = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/orders/${id}`, data);\r\n};\r\nexport const removeOrderAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/orders/${id}/audit/${reason}/${comments}`);\r\n};\r\nexport const exportOrder = (medicalRecordNumber, entryId, id, pin) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/entry/${entryId}/orders/${id}/exportToPDF/${pin}`, {\r\n responseType: 'blob',\r\n timeout: 30000,\r\n });\r\n};\r\n//#endregion\r\n\r\n\r\n//#region procedures\r\nexport const getProcedures = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/procedures?${queryString}`);\r\n};\r\nexport const getProcedure = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/procedures/${id}`);\r\n};\r\nexport const getProcedureHistoryAPI = (medicalRecordNumber, conceptId) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/procedures/${conceptId}/history`);\r\n};\r\nexport const postProcedure = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/procedures`, data);\r\n};\r\nexport const putProcedure = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/procedures/${id}`, data);\r\n};\r\nexport const removeProcedureAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/procedures/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n\r\n//#region anthropometrics\r\nexport const getAnthropometrics = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/anthropometrics?${queryString}`);\r\n};\r\nexport const getAnthropometric = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/anthropometrics/${id}`);\r\n};\r\nexport const getAnthropometricsHistory = (medicalRecordNumber) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/anthropometrics/history`);\r\n};\r\nexport const postAnthropometric = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/anthropometrics`, data);\r\n};\r\nexport const putAnthropometric = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/anthropometrics/${id}`, data);\r\n};\r\nexport const removeAnthropometricAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/anthropometrics/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n\r\n//#region familyhistories\r\nexport const getFamilyHistories = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/familyhistories?${queryString}`);\r\n};\r\nexport const getFamilyHistory = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/familyhistories/${id}`);\r\n};\r\nexport const postFamilyHistory = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/familyhistories`, data);\r\n};\r\nexport const putFamilyHistory = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/familyhistories/${id}`, data);\r\n};\r\nexport const removeFamilyHistoryAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/familyhistories/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n\r\n//#region personalHistory\r\nexport const getPersonalHistories = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/personalHistory?${queryString}`);\r\n};\r\nexport const getPersonalHistory = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/personalHistory/${id}`);\r\n};\r\nexport const postPersonalHistory = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/personalHistory`, data);\r\n};\r\nexport const putPersonalHistory = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/personalHistory/${id}`, data);\r\n};\r\nexport const removePersonalHistoryAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/personalHistory/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n\r\n//#region personalhabits\r\nexport const getPersonalHabits = (medicalRecordNumber, entryId) => {\r\n const queryString = getQueryString({ medicalRecordNumber, entryId }, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/personalhabits?${queryString}`);\r\n};\r\nexport const getPersonalHabit = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/personalHabits/${id}`);\r\n};\r\nexport const postPersonalHabit = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/personalHabits`, data);\r\n};\r\nexport const putPersonalHabit = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/personalHabits/${id}`, data);\r\n};\r\nexport const removePersonalHabitAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/personalHabits/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n\r\n//#region laboratories\r\nexport const getLaboratories = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/laboratories?${queryString}`);\r\n};\r\nexport const postLaboratories = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/laboratories`, data);\r\n};\r\nexport const putLaboratoryResult = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/laboratories/${id}`, data);\r\n};\r\nexport const getLaboratoryResult = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/laboratories/${id}`);\r\n};\r\nexport const getLaboratoryResults = (laboratoryId) => {\r\n return axios.get(`api/v1/medicalRecords/laboratories/${laboratoryId}/results`);\r\n};\r\nexport const getLaboratoryResultHistory = (laboratoryId) => {\r\n return axios.get(`api/v1/medicalRecords/laboratories/${laboratoryId}/history`);\r\n};\r\nexport const removeLaboratoryAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/laboratories/${id}/audit/${reason}/${comments}`);\r\n};\r\nexport const removeLaboratoryResultAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/laboratoryResult/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\n\r\n//#region vitals\r\nexport const getLastVitals = (medicalRecordNumber) => {\r\n return axios.get(`api/v1/medicalRecords/vitals/last/${medicalRecordNumber}`);\r\n};\r\nexport const getVitals = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/medicalRecords/vitals?${queryString}`);\r\n};\r\nexport const getVital = (entryId, id) => {\r\n return axios.get(`api/v1/medicalRecords/entry/${entryId}/vitals/${id}`);\r\n};\r\nexport const getVitalsHistory = (medicalRecordNumber) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/vitals/history`);\r\n};\r\nexport const postVital = (entryId, data) => {\r\n return axios.post(`api/v1/medicalRecords/entry/${entryId}/vitals`, data);\r\n};\r\nexport const putVital = (entryId, id, data) => {\r\n return axios.put(`api/v1/medicalRecords/entry/${entryId}/vitals/${id}`, data);\r\n};\r\nexport const removeVitalAPI = (entryId, id, reason, comments) => {\r\n return axios.delete(`api/v1/medicalRecords/entry/${entryId}/vitals/${id}/audit/${reason}/${comments}`);\r\n};\r\n//#endregion\r\n\r\nexport const isPatientInProtocol = (medicalRecordNumber) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/protocol`);\r\n};\r\nexport const isPatientInProjects = (medicalRecordNumber) => {\r\n return axios.get(`api/v1/medicalRecords/${medicalRecordNumber}/projects`);\r\n};","import axios from './index';\r\n\r\nexport const getPagingAndOrderParams = (newActiveFilters, searchParams) => {\r\n\r\n if (!newActiveFilters)\r\n return;\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination?.page) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if (newActiveFilters.pagination?.sizePerPage) {\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort?.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort?.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n return searchParams;\r\n}\r\n\r\nexport const getQueryString = (query, search) => {\r\n\r\n var searchParams = new URLSearchParams(search || '');\r\n\r\n if (!query)\r\n return searchParams.toString();\r\n\r\n searchParams = getPagingAndOrderParams(query, searchParams);\r\n\r\n if (query.filters) {\r\n for (const property in query.filters) {\r\n\r\n searchParams.delete(property);\r\n if (query.filters[property] !== null && query.filters[property] !== undefined) {\r\n searchParams.append(property, query.filters[property]);\r\n }\r\n }\r\n }\r\n\r\n searchParams.delete('q');\r\n if (query.query) {\r\n searchParams.append('q', query.query);\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nconst transformRequestOptions = (params) => {\r\n let options = '';\r\n params.ids.forEach((id) => {\r\n options += `ids=${id}&`;\r\n });\r\n return options;\r\n};\r\n\r\n//#region Admin\r\nexport const getMasterData = (items) => {\r\n const itemsParams = new URLSearchParams(window.location.search || '');\r\n itemsParams.delete('items');\r\n items.forEach(item => itemsParams.append('items', item));\r\n return axios.get(`api/v1/protocols/selectmasterdata?${itemsParams}`);\r\n};\r\n\r\nexport const getStudyTasks = (protocolId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/studyTasks`);\r\n};\r\n//#endregion\r\n\r\n\r\n//#region Protocols\r\nexport const getProtocols = async (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/protocols/?${queryString}` : `api/v1/protocols`);\r\n};\r\nexport const getProtocol = async (protocolId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}`);\r\n};\r\nexport const createProtocol = async (protocol) => {\r\n return axios.post(`api/v1/protocols/`, protocol);\r\n};\r\nexport const editProtocol = async (protocolId, protocol) => {\r\n return axios.put(`api/v1/protocols/${protocolId}`, protocol);\r\n};\r\nexport const closeProtocolApi = async (protocolId) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/close`, null);\r\n};\r\nexport const removeProtocolApi = async (protocolId) => {\r\n return axios.delete(`api/v1/protocols/${protocolId}/remove`, null);\r\n};\r\n/*export const uploadAttachment = async (protocolId, formData) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/attachments/`, formData, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n}*/\r\nexport const uploadAttachmentEndpoint = (protocolId) => {\r\n return `api/v1/protocols/${protocolId}/attachments/`;\r\n}\r\nexport const getAttachments = (protocolId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/attachments`);\r\n};\r\nexport const getAttachment = (protocolId, attachmentId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/attachments/${attachmentId}`, { responseType: 'blob' });\r\n};\r\nexport const getAttachmentEndpoint = (protocolId) => {\r\n return `api/v1/protocols/${protocolId}/attachments`;\r\n};\r\nexport const removeAttachment = (protocolId, attachmentId) => {\r\n return axios.delete(`api/v1/protocols/${protocolId}/attachments/${attachmentId}`);\r\n};\r\n\r\nexport const uploadPractitionerAttachment = async (protocolId, practitionerId, formData) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/practitioners/${practitionerId}/attachments`, formData, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n}\r\nexport const getPractitionerAttachmentsEndpoint = (protocolId, practitionerId) => {\r\n return `api/v1/protocols/${protocolId}/practitioners/${practitionerId}/attachments`;\r\n}\r\n\r\nexport const getPractitioners = async (protocolId, filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/protocols/${protocolId}/practitioners?${queryString}` : `api/v1/protocols/${protocolId}/practitioners`);\r\n};\r\nexport const getPractitionersByProtocol = (protocolId, q) => {\r\n //const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(`api/v1/protocols/${protocolId}/practitioners/simple?q=${q}&onlyDoctor=false&sortField=FullName&sortOrder=desc&pageSize=50`);\r\n};\r\nexport const getPractitioner = async (protocolId, practitionerUserId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/practitioners/${practitionerUserId}`);\r\n};\r\nexport const addPractitioners = async (protocolId, practitioners) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/practitioners`, practitioners);\r\n};\r\nexport const editPractitioner = async (protocolId, practitionerUserId, practitioner) => {\r\n return axios.put(`api/v1/protocols/${protocolId}/practitioners/${practitionerUserId}`, practitioner);\r\n};\r\nexport const removePractitioner = async (protocolId, practitionerId, reason, comment) => {\r\n return axios.delete(`api/v1/protocols/${protocolId}/practitioners/${practitionerId}/audit/${reason}/${comment}`);\r\n};\r\n\r\nexport const getPatients = async (protocolId, filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/protocols/${protocolId}/patients?${queryString}` : `api/v1/protocols/${protocolId}/patients`);\r\n};\r\nexport const addPatients = async (protocolId, patients) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/patients`, patients);\r\n};\r\nexport const changePatientNumber = async (protocolId, medicalRecordNumber, patient) => {\r\n return axios.put(`api/v1/protocols/${protocolId}/patients/${medicalRecordNumber}`, patient);\r\n};\r\nexport const removePatient = async (protocolId, numberInProtocol) => {\r\n return axios.delete(`api/v1/protocols/${protocolId}/patients/${numberInProtocol}`);\r\n};\r\n//#endregion\r\n\r\n//#region Visits\r\nexport const getAllVisits = async (protocolId, filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/protocols/${protocolId}/visitsTemplates/allversions/?${queryString}` : `api/v1/protocols/${protocolId}/visitsTemplates/allversions`);\r\n};\r\nexport const getApprovedVisits = async (protocolId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/visitsTemplates`);\r\n};\r\nexport const getVisits = async (protocolId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/visitsTemplates/all`);\r\n};\r\nexport const getVisit = async (protocolId, visitId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}`);\r\n};\r\nexport const createVisit = async (protocolId, visit) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/visitsTemplates/create`, visit);\r\n};\r\nexport const copyVisit = async (protocolId, visitId, visit) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/copy`, visit);\r\n};\r\nexport const copyVisitsAPI = async (protocolId, fromProtocolId, selectedVisitIds) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/visitsTemplates/copyFrom/${fromProtocolId}`, null, {\r\n params: { ids: selectedVisitIds },\r\n paramsSerializer: transformRequestOptions,\r\n });\r\n};\r\nexport const editVisit = async (protocolId, visitId, visit) => {\r\n return axios.put(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}`, visit);\r\n};\r\nexport const removeVisit = async (protocolId, visitId) => {\r\n return axios.delete(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}`);\r\n};\r\nexport const swapVisits = async (protocolId, visitId, visitToSwapId) => {\r\n return axios.put(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/swap/${visitToSwapId}`);\r\n}\r\nexport const getVisitHistory = async (protocolId, visitId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/history`);\r\n};\r\nexport const publishVisit = async (protocolId, visitId, comments) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/history/${comments}`);\r\n};\r\nexport const printVisit = async (protocolId, visitId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/export`, {\r\n responseType: 'blob',\r\n timeout: 30000,\r\n });\r\n};\r\n//#endregion\r\n\r\n//#region Forms\r\nexport const getForms = async (protocolId, visitId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/forms`);\r\n};\r\nexport const getForm = (protocolId, visitId, formId) => {\r\n return axios.get(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/forms/${formId}`);\r\n};\r\nexport const createForm = (protocolId, visitId, form) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/forms/create`, form);\r\n};\r\nexport const copyFormsAPI = (protocolId, visitId, fromProtocolId, fromVisitId, formsToCopyIds) => {\r\n return axios.post(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/forms/copyFrom/${fromProtocolId}/${fromVisitId}`, null, {\r\n params: { ids: formsToCopyIds },\r\n paramsSerializer: transformRequestOptions,\r\n });\r\n};\r\nexport const editForm = (protocolId, visitId, formId, form) => {\r\n return axios.put(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/forms/${formId}`, form);\r\n};\r\nexport const removeForm = (protocolId, visitId, formId) => {\r\n return axios.delete(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/forms/${formId}`);\r\n};\r\nexport const sortForms = async (protocolId, visitId, sortedForms) => {\r\n return axios.put(`api/v1/protocols/${protocolId}/visitsTemplates/${visitId}/forms/sort`, sortedForms);\r\n}\r\n//#endregion\r\n\r\n//#region Visit Tracking\r\nexport const getVisitsTracking = async (protocolId, query) => {\r\n const queryString = getQueryString(query, window.location.search);\r\n return axios.get(queryString ? `api/v1/visitTracking/${protocolId}/visitTracking?${queryString}` : `api/v1/visitTracking/${protocolId}/visitTracking`);\r\n};\r\nexport const getVisitTracking = async (protocolId, visitId, patientId) => {\r\n return axios.get(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}`);\r\n};\r\nexport const getPreviousVisitTracking = async (protocolId, visitId, patientId) => {\r\n return axios.get(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/prev`);\r\n};\r\nexport const getVisitTrackingForms = async (protocolId, visitId, patientId) => {\r\n return axios.get(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/forms`);\r\n};\r\nexport const getVisitTrackingForm = async (protocolId, visitId, formId) => {\r\n return axios.get(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/forms/${formId}`);\r\n};\r\nexport const createVisitTracking = async (protocolId, visitId, patientId) => {\r\n return axios.post(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}`, {});\r\n};\r\nexport const saveVisitTracking = async (protocolId, visitId, patientId, medicalRecordNumber, form) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/${medicalRecordNumber}`, form);\r\n};\r\nexport const saveUploadVisitTrackingAPI = async (protocolId, visitId, patientId, medicalRecordNumber, form) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/${medicalRecordNumber}/saveUpload`, form);\r\n};\r\nexport const publishVisitTracking = async (protocolId, visitId, patientId, digitalSign) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/publish`, digitalSign);\r\n};\r\nexport const skipVisitTracking = async (protocolId, visitId, patientId, digitalSign) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/skip`, digitalSign);\r\n};\r\nexport const screenFailureVisitTracking = async (protocolId, visitId, patientId, digitalSign) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/screenFailure`, digitalSign);\r\n};\r\nexport const lostToFollowUpVisitTracking = async (protocolId, visitId, patientId, digitalSign) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/lostToFollowUp`, digitalSign);\r\n};\r\nexport const discontinuationVisitTracking = async (protocolId, visitId, patientId, digitalSign) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/discontinuation`, digitalSign);\r\n};\r\nexport const withoutDrugsVisitTracking = async (protocolId, visitId, patientId) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/withoutDrugs`, null);\r\n};\r\nexport const returnDrugsVisitTracking = async (protocolId, visitId, patientId) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/returnDrugs`, null);\r\n};\r\nexport const reSyncVisitTrackingAPI = async (protocolId, visitId, patientId, digitalSign) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/resync`, digitalSign);\r\n};\r\nexport const changeTypeVisitTrackingAPI = async (protocolId, visitId, patientId, type) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/changeType/${type}`, null);\r\n};\r\nexport const changeVisitTrackingTypeAPI = async (protocolId, visitId, patientId, entryId, visitTrackingId) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/entry/${entryId}/visit/${visitTrackingId}/changeVisitTrackingType`, null);\r\n};\r\nexport const removeVisitTrackingAPI = async (protocolId, visitId, patientId) => {\r\n return axios.delete(`api/v1/visitTracking/protocols/${protocolId}/visitTracking/${visitId}/patient/${patientId}`);\r\n};\r\nexport const endPatientInProtocolVisitTrackingAPI = async (protocolId, visitId, patientId) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/endProtocol`, null);\r\n};\r\nexport const rollbackVisitStatusAPI = async (protocolId, visitId, patientId, audit) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/rollbackStatus`, audit);\r\n};\r\nexport const uploadVisitTrackingAttachmentFormEndpoint = (protocolId, visitId, formId, patientId, medicalRecordNumber) => `api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/${medicalRecordNumber}/attachments/${formId}`;\r\n\r\nexport const getVisitTrackingAttachmentFormEndpoint = (protocolId, visitId, formId) => `api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/attachments/${formId}/fileName`;\r\n//#endregion\r\n\r\n//#region ExtraVisitTracking\r\nexport const getVisitTrackingExtraForms = async (protocolId, visitId, patientId) => {\r\n return axios.get(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/forms`);\r\n};\r\nexport const createVisitTrackingExtra = async (protocolId, patientId, vm) => {\r\n return axios.post(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/patient/${patientId}`, vm);\r\n};\r\nexport const saveVisitTrackingExtraForm = async (protocolId, visitId, patientId, form) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}`, form);\r\n};\r\nexport const publishVisitTrackingExtraForm = async (protocolId, visitId, patientId, type, form) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/publish/${type}`, form);\r\n};\r\nexport const screenFailureVisitTrackingExtra = async (protocolId, visitId, patientId, digitalSign) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/screenFailure`, digitalSign);\r\n};\r\nexport const endPatientInProtocolVisitTrackingExtraAPI = async (protocolId, visitId, patientId) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/endProtocol`, null);\r\n};\r\nexport const rollbackVisitStatusExtraAPI = async (protocolId, visitId, patientId, audit) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/rollbackStatus`, audit);\r\n};\r\n\r\nexport const removeVisitTrackingExtraAPI = async (protocolId, visitId, patientId) => {\r\n return axios.delete(`api/v1/visitTracking/protocols/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}`);\r\n};\r\nexport const uploadVisitTrackingExtraAttachmentFormEndpoint = (protocolId, visitId, formId, patientId) => `api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/attachments/${formId}`;\r\n//#endregion\r\n\r\nexport const getVisitTrackingAdverseEvents = async (protocolId, visitId, patientId) => {\r\n return axios.get(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/adverseEvents`);\r\n};\r\nexport const exportVisitTrackingAPI = async (protocolId, visitId, patientId, pin) => {\r\n return axios.get(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/export/${btoa(pin)}`, { responseType: 'blob' });\r\n};\r\nexport const saveEvolutionAPI = async (protocolId, visitId, patientId, medicalRecordNumber, evolution) => {\r\n return axios.post(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/${medicalRecordNumber}/evolution`, evolution);\r\n};\r\nexport const updateEvolutionAPI = async (protocolId, visitId, patientId, evolutionId, evolution) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTracking/${visitId}/patient/${patientId}/evolution/${evolutionId}`, evolution);\r\n};\r\nexport const saveEvolutionExtraAPI = async (protocolId, visitId, patientId, medicalRecordNumber, evolution) => {\r\n return axios.post(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/${medicalRecordNumber}/evolution`, evolution);\r\n};\r\nexport const updateEvolutionExtraAPI = async (protocolId, visitId, patientId, evolutionId, evolution) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/visitTrackingExtra/${visitId}/patient/${patientId}/evolution/${evolutionId}`, evolution);\r\n};\r\nexport const updateFormRestrictionsAPI = async (protocolId, restrictions) => {\r\n return axios.put(`api/v1/visitTracking/${protocolId}/formRestrictions`, restrictions);\r\n};\r\n\r\n\r\n//#region DocumentNotes\r\nexport const getDocumentNotes = async (protocolId, documentId) => {\r\n return axios.get(`api/v1/visitTracking/DocumentNotes/${documentId}/protocol/${protocolId}`);\r\n};\r\nexport const getDocumentNote = async (protocolId, noteId) => {\r\n return axios.get(`api/v1/visitTracking/DocumentNotes/protocol/${protocolId}/note/${noteId}`);\r\n};\r\nexport const createDocumentNote = async (documentId, protocolId, visitId, patientId, note) => {\r\n return axios.post(`api/v1/visitTracking/DocumentNotes/${documentId}/protocol/${protocolId}/visit/${visitId}/patient/${patientId}`, note);\r\n};\r\nexport const updateDocumentNote = async (protocolId, noteId, note) => {\r\n return axios.put(`api/v1/visitTracking/DocumentNotes/protocol/${protocolId}/note/${noteId}`, note);\r\n};\r\n//#endregion\r\n\r\n//#region MonitorNotes\r\nexport const getExternalNotes = async (protocolId, filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/visitTracking/DocumentNotes/monitornote/protocol/${protocolId}?${queryString}` : `api/v1/visitTracking/DocumentNotes/monitornote/protocol/${protocolId}`);\r\n};\r\nexport const getMonitorNotes = async (protocolId, documentId) => {\r\n return axios.get(`api/v1/visitTracking/DocumentNotes/monitornote/${documentId}/protocol/${protocolId}`);\r\n};\r\nexport const getMonitorNote = async (protocolId, noteId) => {\r\n return axios.get(`api/v1/visitTracking/DocumentNotes/protocol/${protocolId}/monitornote/${noteId}`);\r\n};\r\nexport const createMonitorNote = async (documentId, protocolId, visitId, patientId, note) => {\r\n return axios.post(`api/v1/visitTracking/DocumentNotes/monitornote/${documentId}/protocol/${protocolId}/visit/${visitId}/patient/${patientId}`, note);\r\n};\r\nexport const updateMonitorNote = async (protocolId, noteId, note) => {\r\n return axios.put(`api/v1/visitTracking/DocumentNotes/protocol/${protocolId}/monitornote/${noteId}`, note);\r\n};\r\nexport const changeStatusMonitorNote = async (protocolId, noteId, note) => {\r\n return axios.put(`api/v1/visitTracking/DocumentNotes/protocol/${protocolId}/monitornote/${noteId}/status`, note);\r\n};\r\nexport const removeMonitorNote = async (protocolId, noteId) => {\r\n return axios.delete(`api/v1/visitTracking/DocumentNotes/protocol/${protocolId}/monitornote/${noteId}`);\r\n};\r\n//#endregion","import { useState, useEffect } from \"react\";\r\nimport { getAuditTrail, getLastAuditTrail } from \"../../api/admin\";\r\nimport { getAdverseEvents, getPersonalHistories } from \"../../api/medicalRecord\";\r\nimport { getMasterData, getVisits, getStudyTasks, getProtocol, getProtocols, getPatients, closeProtocolApi, getApprovedVisits, getVisitsTracking, getVisitTrackingAdverseEvents, getDocumentNotes, getDocumentNote, createDocumentNote, updateDocumentNote, removeProtocolApi } from \"../../api/protocol\";\r\nimport { getCurrentUserRole } from \"../../api/security\";\r\nimport { HandleApiError } from \"../../components/Notifications/APIErrorHandler\";\r\nimport { capitalize } from \"../../components/Utils/Commons\";\r\n\r\nexport const useMasterData = () => {\r\n const [data, setData] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getMasterData([\"Laboratories\", \"Phases\", \"Status\"]).then(response => {\r\n if (isSubscribed) {\r\n setData(response.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n console.log(error);\r\n setData({});\r\n setIsLoading(false);\r\n }\r\n });\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return [data, isLoading];\r\n}\r\n\r\nexport const useBriefMasterData = () => {\r\n const [data, setData] = useState({\r\n laboratories: [],\r\n phases: [],\r\n status: [],\r\n studyTasks: []\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n\r\n getMasterData([\"Laboratories\", \"Phases\", \"Status\", \"StudyTasks\"]).then(response => {\r\n if (isSubscribed)\r\n setData(response.data);\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n console.log(error);\r\n setData({\r\n laboratories: [],\r\n phases: [],\r\n status: [],\r\n studyTasks: []\r\n });\r\n }\r\n\r\n });\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return data;\r\n}\r\n\r\nexport const useStudyTasks = (protocolId) => {\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = () => {\r\n\r\n getStudyTasks(protocolId)\r\n .then(response => {\r\n if (isSubscribed) {\r\n setData(response.data);\r\n }\r\n })\r\n .catch(error => {\r\n if (isSubscribed) {\r\n console.log(error);\r\n setData([]);\r\n }\r\n });\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return data;\r\n}\r\n\r\nexport const useProtocolVisits = (protocolId) => {\r\n const [visits, setVisits] = useState([]);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n\r\n getVisits(protocolId).then(response => {\r\n if (isSubscribed) {\r\n setVisits(response.data);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setVisits([]);\r\n }\r\n });\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId]);\r\n\r\n return visits;\r\n}\r\n\r\nexport const useProtocolApprovedVisits = (protocolId) => {\r\n const [visits, setVisits] = useState([]);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n\r\n getApprovedVisits(protocolId).then(response => {\r\n\r\n if (isSubscribed) {\r\n setVisits(response.data);\r\n }\r\n\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setVisits([]);\r\n }\r\n });\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId]);\r\n\r\n return visits;\r\n}\r\n\r\nexport const useProtocols = (queryParams) => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState(queryParams ?? {\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Created\",\r\n sortOrder: \"desc\"\r\n },\r\n filters: {}\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getProtocols(query)\r\n .then(response => {\r\n\r\n if (isSubscribed) {\r\n const paginatedResult = response.data;\r\n\r\n setTotalSize(paginatedResult.count);\r\n setData(paginatedResult.data);\r\n setIsLoading(false);\r\n }\r\n\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n });\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n\r\n var newQuery = null;\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const handleFilterChange = (filterName, selectedValue) => {\r\n if (filterName) {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = 1;\r\n newQuery.filters[filterName] = selectedValue != null ? selectedValue.id : selectedValue;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, handleFilterChange];\r\n}\r\n\r\nexport const useProtocol = (protocolId) => {\r\n const [brief, setBrief] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getProtocol(protocolId)\r\n .then(response => {\r\n if (isSubscribed) {\r\n setBrief(response.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n });\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId]);\r\n\r\n const closeProtocol = (protocolId) => {\r\n setIsLoading(true);\r\n closeProtocolApi(protocolId)\r\n .then(response => {\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n const removeProtocol = (protocolId) => {\r\n setIsLoading(true);\r\n removeProtocolApi(protocolId)\r\n .then(response => {\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n return [isLoading, brief, closeProtocol, removeProtocol];\r\n}\r\n\r\nexport const useCurrentUserRol = (protocolId) => {\r\n const [rol, setRole] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getCurrentUserRole(protocolId)\r\n .then(response => {\r\n if (isSubscribed) {\r\n setRole(response.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n });\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n\r\n }, [protocolId]);\r\n\r\n return [rol, isLoading];\r\n}\r\n\r\nexport const usePatients = (protocolId) => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getPatients(protocolId)\r\n .then(response => {\r\n\r\n if (isSubscribed) {\r\n const paginatedResult = response.data;\r\n\r\n setTotalSize(paginatedResult.count);\r\n setData(paginatedResult.data);\r\n setIsLoading(false);\r\n }\r\n\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n });\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId]);\r\n\r\n return [data, isLoading, totalSize];\r\n}\r\n\r\nexport const useVisitsTracking = () => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState([]);\r\n\r\n const fetchData = async (protocolId, medicalRecordNumber) => {\r\n try {\r\n let newQuery = {\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: 'MedicalRecordNumber',\r\n sortOrder: 'desc'\r\n },\r\n filters: {}\r\n };\r\n\r\n if (medicalRecordNumber) {\r\n newQuery.filters.medicalRecordNumber = medicalRecordNumber;\r\n }\r\n\r\n const response = await getVisitsTracking(protocolId, newQuery);\r\n setData(response.data);\r\n setIsLoading(false);\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData([]);\r\n }\r\n }\r\n\r\n return [data, isLoading, fetchData];\r\n}\r\n\r\nexport const useProtocolAdverseEvents = (protocolId, visitId, medicalRecordNumber, patientNumber) => {\r\n\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState([]);\r\n var groups = [\r\n {\r\n label: 'Eventos Adversos',\r\n options: [],\r\n },\r\n {\r\n label: 'Antecedentes Personales',\r\n options: [],\r\n },\r\n {\r\n label: 'Otros',\r\n options: [{ conceptId: 0, description: \"Profilaxis\" }],\r\n }\r\n ];\r\n\r\n const fetchData = async (isSubscribed) => {\r\n\r\n try {\r\n const promise1 = getVisitTrackingAdverseEvents(protocolId, visitId, patientNumber);\r\n const promise2 = getAdverseEvents({\r\n medicalRecordNumber: medicalRecordNumber,\r\n pagination: { page: 1, sizePerPage: 100, },\r\n actual: false\r\n });\r\n const promise3 = getPersonalHistories({\r\n medicalRecordNumber: medicalRecordNumber,\r\n pagination: { page: 1, sizePerPage: 100, },\r\n actual: false\r\n });\r\n\r\n Promise.all([promise1, promise2, promise3]).then((responses) => {\r\n if (isSubscribed) {\r\n\r\n if (responses[0].data) {\r\n groups[0].options = groups[0].options.concat(responses[0].data.adverseEvents);\r\n groups[1].options = groups[1].options.concat(responses[0].data.personalHistory);\r\n }\r\n if (responses[1].data) {\r\n var resEvents = responses[1].data.data;\r\n if (resEvents.length > 0) { // adverseEffectId: \"386661006\", adverseEffect: \"fiebre\"\r\n resEvents.forEach(event => {\r\n event.conceptId = event.adverseEffectId;\r\n event.description = event.adverseEffect;\r\n });\r\n groups[0].options = groups[0].options.concat(resEvents);\r\n }\r\n }\r\n if (responses[2].data) {\r\n let resPersonalHistory = responses[2].data.data;\r\n if (resPersonalHistory.length > 0) {\r\n resPersonalHistory.forEach(event => {\r\n event.conceptId = event.adverseEffectId;\r\n event.description = event.adverseEffect;\r\n });\r\n groups[1].options = groups[1].options.concat(resPersonalHistory);\r\n }\r\n }\r\n setData(groups);\r\n setIsLoading(false);\r\n }\r\n });\r\n }\r\n catch (error) {\r\n if (isSubscribed) {\r\n setIsLoading(false);\r\n setData(groups);\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n\r\n if (protocolId && visitId && (medicalRecordNumber || patientNumber))\r\n fetchData(isSubscribed);\r\n else\r\n setIsLoading(false);\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId]);\r\n\r\n return [data, isLoading, fetchData];\r\n}\r\n\r\nexport const useDocumentNotes = () => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n const getNotes = async (protocolId, documentId) => {\r\n try {\r\n return getDocumentNotes(protocolId, documentId);\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const getNote = async (protocolId, noteId) => {\r\n try {\r\n setIsLoading(true);\r\n const note = await getDocumentNote(protocolId, noteId);\r\n setIsLoading(false);\r\n\r\n return note;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const createNote = async (type, documentId, protocolId, visitId, patientId, note) => {\r\n try {\r\n setIsLoading(true);\r\n const documentNote = await createDocumentNote(documentId, protocolId, visitId, patientId, { note: note, type: type });\r\n setIsLoading(false);\r\n\r\n return documentNote;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const updateNote = async (protocolId, noteId, note) => {\r\n try {\r\n setIsLoading(true);\r\n const documentNote = await updateDocumentNote(protocolId, noteId, { note: note });\r\n setIsLoading(false);\r\n\r\n return documentNote;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n return [isLoading, getNotes, getNote, createNote, updateNote];\r\n}\r\n\r\nexport const useAudits = (entity, entityId, hasVisitTracking) => {\r\n const [audits, setAudits] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const resp = await getAuditTrail(entity, entityId);\r\n if (isSubscribed) {\r\n setAudits(resp.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setAudits(null);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n if (entityId && hasVisitTracking)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [entity, entityId, hasVisitTracking]);\r\n\r\n const getLastChange = (field) => {\r\n\r\n const fieldName = capitalize(field, false, \".\");\r\n\r\n var audit = audits?.find(x => x.oldValues[fieldName] !== undefined);\r\n if (audit) {\r\n return {\r\n old: audit.oldValues[fieldName] === null ? \"\" : audit.oldValues[fieldName],\r\n current: audit.newValues[fieldName] === null ? \"\" : audit.newValues[fieldName],\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return [isLoading, audits, getLastChange];\r\n}\r\n\r\nexport const useAuditsHelpers = () => {\r\n \r\n const getLastChange = (audits, field) => {\r\n\r\n const fieldName = capitalize(field, false, \".\");\r\n\r\n var audit = audits?.find(x => x.oldValues[fieldName] !== undefined);\r\n if (audit) {\r\n return {\r\n old: audit.oldValues[fieldName] === null ? \"\" : audit.oldValues[fieldName],\r\n current: audit.newValues[fieldName] === null ? \"\" : audit.newValues[fieldName],\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return [getLastChange];\r\n}\r\n\r\nexport const useLastAuditTrial = (entity, entityId) => {\r\n const [audit, setAudit] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const resp = await getLastAuditTrail(entity, entityId);\r\n if (isSubscribed) {\r\n setAudit(resp.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n if (entityId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [entity, entityId]);\r\n\r\n return [isLoading, audit];\r\n}","import { useState, useEffect } from \"react\";\r\nimport { getMasterDataSelect } from '../../api/admin'\r\nimport { getAdverseEvents, getPersonalHistory } from '../../api/medicalRecord'\r\n\r\nexport const useMasterData = (type) => {\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n\r\n const fetchData = () => {\r\n getMasterDataSelect(type).then(response => {\r\n if (isSubscribed) {\r\n var data = JSON.parse(response.data);\r\n setData(data[type]);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n setData([]);\r\n console.log(error)\r\n }\r\n });\r\n };\r\n\r\n if (type)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [type]);\r\n\r\n return data;\r\n}\r\n\r\nexport const useAdverseEvents = (entryId, medicalRecordId) => {\r\n const [events, setEvents] = useState([]);\r\n\r\n const query = {\r\n entryId: entryId,\r\n medicalRecordId: medicalRecordId,\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 100,\r\n totalSize: 0\r\n }\r\n };\r\n var groups = [\r\n {\r\n label: 'Eventos Adversos',\r\n options: [],\r\n },\r\n {\r\n label: 'Antecedentes Personales',\r\n options: [],\r\n },\r\n {\r\n label: 'Otros',\r\n options: [{ id: 0, adverseEffect: \"Profilaxis\" }],\r\n }\r\n ];\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n try {\r\n const response = await getAdverseEvents(query);\r\n if (isSubscribed) {\r\n var resEvents = response.data;\r\n resEvents.data.forEach(event => { event.reasonId = event.id; });\r\n groups[0].options = resEvents.data;\r\n\r\n const res = await getPersonalHistory(query);\r\n if (isSubscribed) {\r\n let resPersonalHistory = res.data;\r\n resPersonalHistory.data.forEach(event => { event.reasonId = event.id; });\r\n groups[1].options = resPersonalHistory.data;\r\n\r\n setEvents(groups);\r\n }\r\n }\r\n }\r\n catch (error) {\r\n if (isSubscribed) {\r\n setEvents([]);\r\n }\r\n }\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return events;\r\n}\r\n\r\nexport const useCollapsable = () => {\r\n const [isCollapse, setIsCollapse] = useState(false);\r\n\r\n function toggle() {\r\n setIsCollapse(!isCollapse);\r\n }\r\n\r\n return [\r\n isCollapse,\r\n toggle\r\n ]\r\n};","import PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport Select from 'react-select';\r\nimport CreatableSelect from 'react-select/creatable';\r\nimport { useProtocolAdverseEvents } from \"../../containers/Protocols/Hooks\";\r\nimport { useMasterData } from '../CustomHooks/Hooks';\r\n\r\nexport const CustomSelect = (props) => {\r\n\r\n const handleChange = value => {\r\n if (props.onChange)\r\n props.onChange(props.name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\nCustomSelect.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n value: PropTypes.object,\r\n isMulti: PropTypes.bool,\r\n optionValue: PropTypes.func,\r\n optionLabel: PropTypes.func,\r\n isClearable: PropTypes.bool,\r\n isDisabled: PropTypes.bool\r\n};\r\nCustomSelect.defaultProps = {\r\n getOptionLabel: (option) => option.title,\r\n getOptionValue: (option) => option.id,\r\n isClearable: false\r\n};\r\n\r\n\r\nexport const CustomCreatableSelect = (props) => {\r\n\r\n const handleChange = value => {\r\n if (props.onChange)\r\n props.onChange(props.name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\nCustomCreatableSelect.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isMulti: PropTypes.bool,\r\n optionValue: PropTypes.func,\r\n optionLabel: PropTypes.func,\r\n isClearable: PropTypes.bool,\r\n isDisabled: PropTypes.bool\r\n};\r\nCustomCreatableSelect.defaultProps = {\r\n getOptionLabel: (option) => option,\r\n getOptionValue: (option) => option,\r\n isClearable: false\r\n};\r\n\r\nexport const CustomSelectAsync = (props) => {\r\n\r\n const options = useMasterData(props.masterData);\r\n\r\n const handleChange = value => {\r\n props.onChange(props.name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n}\r\nCustomSelectAsync.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n masterData: PropTypes.string,\r\n isMulti: PropTypes.bool,\r\n optionValue: PropTypes.func,\r\n optionLabel: PropTypes.func,\r\n isClearable: PropTypes.bool,\r\n isDisabled: PropTypes.bool\r\n};\r\nCustomSelectAsync.defaultProps = {\r\n getOptionLabel: (option) => option.title,\r\n getOptionValue: (option) => option.id,\r\n isClearable: false\r\n};\r\n\r\nexport const AdverseEventsAsync = (props) => {\r\n\r\n const [data, isLoading] = useProtocolAdverseEvents(props.protocolId, props.visitId, props.medicalRecordNumber, props.patientNumber);\r\n\r\n const handleChange = value => {\r\n props.onChange(props.name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n return (\r\n ({ ...base, zIndex: 9999 }) }}\r\n />\r\n );\r\n}\r\nAdverseEventsAsync.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n protocolId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n visitId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n patientId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n isMulti: PropTypes.bool,\r\n optionValue: PropTypes.func,\r\n optionLabel: PropTypes.func,\r\n isClearable: PropTypes.bool,\r\n isDisabled: PropTypes.bool\r\n};\r\nAdverseEventsAsync.defaultProps = {\r\n getOptionLabel: (option) => option.description,\r\n getOptionValue: (option) => option.conceptId,\r\n isClearable: false\r\n};","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const RequiredFieldError = () =>\r\n
    \r\n

    El campo es requerido

    \r\n
    \r\n\r\nexport const FormErrorMessage = props => {\r\n\r\n const { t } = useTranslation();\r\n\r\n if (props.children.key) {\r\n\r\n return (\r\n {t(props.children.key)}\r\n );\r\n }\r\n\r\n return (\r\n {t(props.children)}\r\n ); \r\n}","import PropTypes from 'prop-types'\r\nimport React, { useState } from \"react\"\r\nimport { ControlLabel, FormControl, FormGroup } from 'react-bootstrap'\r\nimport SweetAlert from \"react-bootstrap-sweetalert\"\r\nimport { useTranslation } from 'react-i18next'\r\nimport { CustomSelect } from '../CustomControls/CustomSelect'\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors'\r\n\r\nexport const ConfirmRemove = (props) => {\r\n const { t } = useTranslation();\r\n const [inputValue, setInputValue] = useState(null);\r\n const [selectedValue, setSelectedValue] = useState(null);\r\n const [error, setError] = useState(null);\r\n\r\n const onInputChange = (evt) => {\r\n setError(null);\r\n setInputValue(evt.currentTarget.value);\r\n }\r\n\r\n const onSelectChange = (_name, value) => {\r\n setInputValue(null);\r\n setError(null);\r\n setSelectedValue(value);\r\n }\r\n\r\n const handleOnConfirm = () => {\r\n if (!selectedValue) {\r\n setError(t(\"calendarErrors.event_Cancel_SelectReason\"));\r\n return;\r\n }\r\n // Cancelación por error de carga.\r\n if (selectedValue && selectedValue.id === 1) {\r\n props.onConfirm(props.id, \"error\");\r\n return;\r\n }\r\n // Cancelación por paciente o médico. \r\n if (selectedValue && selectedValue.id !== 1) {\r\n if (!inputValue) {\r\n setError(t(\"calendarErrors.event_Cancel_NotReason\"));\r\n return;\r\n }\r\n else {\r\n props.onConfirm(props.id, inputValue);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n { props.onClose() }}\r\n confirmBtnBsStyle=\"success\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.confirm\")}\r\n cancelBtnText={t(\"buttons.back\")}\r\n showCancel\r\n allowOutsideClick={false}\r\n >\r\n
    \r\n \r\n {\r\n selectedValue && selectedValue.id !== 1 &&\r\n \r\n
    \r\n {t('calendar.reasons.reason')}\r\n \r\n
    \r\n }\r\n {\r\n error &&
    \r\n }\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nConfirmRemove.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n title: PropTypes.string.isRequired,\r\n};","import { useState, useEffect } from \"react\";\r\nimport { HandleApiError } from \"../../components/Notifications/APIErrorHandler\";\r\nimport { getAvailabilityAPI, getEvents, getMasterData, getMedicalServiceAPI, getMedicalServicesAPI, \r\n getPractitionersAPI, getMedicalServicePriceAPI, getGlobalAvailabilityAPI, getScheduleLocksAPI, getEventAPI, deleteScheduleLockAPI, getEventsByPatient } from '../../api/agenda'\r\nimport moment from \"moment\";\r\n\r\nexport const useEvents = (query) => {\r\n const [events, setEvents] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n const response = await getEvents(query);\r\n\r\n if (isSubscribed) {\r\n var events = response.data.map(event => {\r\n event.start = moment.utc(moment.utc(event.start)).local().toDate();\r\n event.end = moment.utc(moment.utc(event.end)).local().toDate();\r\n return event;\r\n });\r\n setEvents(events);\r\n setIsLoading(false);\r\n }\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n if (query)\r\n fetchData();\r\n\r\n return () => isSubscribed = false\r\n\r\n }, [query]);\r\n\r\n const getEvent = async (id) => {\r\n try {\r\n return getEventAPI(id);\r\n } catch (error) {\r\n HandleApiError(error);\r\n return [];\r\n }\r\n }\r\n\r\n return [events, isLoading, setEvents, getEvent];\r\n}\r\n\r\nexport const useMasterData = () => {\r\n const [masterData, setMasterData] = useState({});\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n const response = await getMasterData();\r\n\r\n if (isSubscribed) {\r\n setMasterData(response.data);\r\n setIsLoading(false);\r\n }\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return [masterData, isLoading];\r\n}\r\n\r\nexport const useAppointment = (medicalRecordNumber) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [events, setEvents] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n medicalRecordNumber: medicalRecordNumber,\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 5,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Start\",\r\n sortOrder: \"desc\"\r\n },\r\n filters: {}\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setIsLoading(true);\r\n const paginatedItems = await getEventsByPatient(medicalRecordNumber, query);\r\n\r\n if (isSubscribed) {\r\n setTotalSize(paginatedItems.data.count);\r\n setEvents(paginatedItems.data.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setEvents([]);\r\n }\r\n }\r\n\r\n if (medicalRecordNumber)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [medicalRecordNumber, query]);\r\n\r\n\r\n const handleFilterChange = (filterName, selectedValue) => {\r\n if (filterName) {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.filters[filterName] = selectedValue;\r\n newQuery.pagination.page = 1;\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const getMore = () => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.pagination.page = newQuery.pagination.page + 1;\r\n setQuery(newQuery);\r\n }\r\n\r\n return [events, query, totalSize, isLoading, getMore, handleFilterChange];\r\n}\r\n\r\nexport const useAgenda = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [practitioners, setPractitioners] = useState([]);\r\n const [availability, setAvailability] = useState([]);\r\n\r\n const getPractitioners = async (medicalServiceId, medicalInsuranceId) => {\r\n try {\r\n return getPractitionersAPI(medicalServiceId, medicalInsuranceId);\r\n } catch (error) {\r\n HandleApiError(error);\r\n return [];\r\n }\r\n }\r\n\r\n const getAvailability = async (userId, medicalServiceId, medicalInsuranceId, medicalPlanId, isFirstTime, isOverShift) => {\r\n try {\r\n return getAvailabilityAPI(userId, medicalServiceId ?? 0, medicalInsuranceId ?? 0, medicalPlanId ?? 0, isFirstTime, isOverShift);\r\n } catch (error) {\r\n HandleApiError(error);\r\n return [];\r\n }\r\n }\r\n\r\n const getGlobalAvailability = async (userId) => {\r\n try {\r\n return getGlobalAvailabilityAPI(userId);\r\n } catch (error) {\r\n HandleApiError(error);\r\n return [];\r\n }\r\n }\r\n\r\n return [\r\n isLoading, setIsLoading,\r\n practitioners, getPractitioners, setPractitioners,\r\n availability, getAvailability, setAvailability, getGlobalAvailability];\r\n}\r\n\r\nexport const useScheduleLocks = () => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 5,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Start\",\r\n sortOrder: \"desc\"\r\n },\r\n filters: {}\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getScheduleLocksAPI(query)\r\n .then(response => {\r\n if (isSubscribed) {\r\n const paginatedResult = response.data;\r\n\r\n setTotalSize(paginatedResult.count);\r\n setData(paginatedResult.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n });\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n\r\n var newQuery = null;\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'reload') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const handleFilterChange = (filterName, selectedValue) => {\r\n if (filterName) {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.filters[filterName] = selectedValue != null ? selectedValue.id : selectedValue;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const handleRemove = async (id) => {\r\n try {\r\n return deleteScheduleLockAPI(id);\r\n } catch (error) {\r\n HandleApiError(error);\r\n return [];\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, handleFilterChange, handleRemove];\r\n}\r\n\r\nexport const useMedicalServices = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [medicalService, setMedicalService] = useState([]);\r\n const [medicalServices, setMedicalServices] = useState([]);\r\n const [medicalServicePrice, setMedicalServicePrice] = useState(null);\r\n\r\n const getMedicalService = async (id) => {\r\n try {\r\n return getMedicalServiceAPI(id);\r\n } catch (error) {\r\n HandleApiError(error);\r\n return [];\r\n }\r\n }\r\n\r\n const getMedicalServices = async () => {\r\n try {\r\n return getMedicalServicesAPI();\r\n } catch (error) {\r\n HandleApiError(error);\r\n return [];\r\n }\r\n }\r\n\r\n const getMedicalServicePrice = async (medicalServiceId, medicalInsuranceId, medicalPlanId) => {\r\n try {\r\n return getMedicalServicePriceAPI(medicalServiceId, medicalInsuranceId, medicalPlanId);\r\n } catch (error) {\r\n HandleApiError(error);\r\n return {};\r\n }\r\n }\r\n\r\n return [\r\n isLoading, setIsLoading,\r\n medicalService, getMedicalService, setMedicalService,\r\n medicalServices, getMedicalServices, setMedicalServices,\r\n medicalServicePrice, getMedicalServicePrice, setMedicalServicePrice];\r\n}","import moment from \"moment\"\r\n\r\nexport const visitTypeColorGetter = (code, event, returnRGB = true) => {\r\n switch (code) {\r\n case \"EXTERNAL\": return returnRGB ? \"#247dbd\" : \"rbc-event-blue\";\r\n case \"EXTERNAL_PHONE\": return returnRGB ? \"#20ad9b\" : \"rbc-event-green\"\r\n case \"OVERSHIFT\": return returnRGB ? \"#e0e32c\" : \"rbc-event-yellow\"\r\n case \"PROTOCOL\": return returnRGB ? \"#ffa534\" : \"rbc-event-orange\"\r\n case \"OTHER\": return returnRGB ? \"#5e5e5e\" : \"rbc-event-black\"\r\n case \"PROJECT\": return returnRGB ? \"#9368e9\" : \"rbc-event-purple\"\r\n case \"ESSENTIA\": return returnRGB ? \"#a6a6a6\" : \"rbc-event-gray\"\r\n case \"STUDIES\": return returnRGB ? \"#ca6e6e\" : \"rbc-event-red\"\r\n case \"PRESCREENING\": return returnRGB ? \"#e98101\" : \"rbc-event-orange\";\r\n case \"ORDER\": return returnRGB ? \"#23ccef\" : \"rbc-event-default\";\r\n case \"SCHEDULELOCK\": {\r\n if (event?.practitioner)\r\n return returnRGB ? \"rgba(255,165,52,0.2)\" : \"rbc-event-practitioner-lock\";\r\n else\r\n return returnRGB ? \"rgba(94,94,94,0.2)\" : \"rbc-event-lock\";\r\n }\r\n default: return returnRGB ? \"#23ccef\" : \"rbc-event-default\";\r\n }\r\n}\r\n\r\nconst dot = (color = '#ccc') => ({\r\n alignItems: 'center',\r\n display: 'flex',\r\n\r\n ':before': {\r\n backgroundColor: color,\r\n borderRadius: 10,\r\n content: '\" \"',\r\n display: 'block',\r\n marginRight: 8,\r\n height: 10,\r\n width: 10,\r\n },\r\n});\r\n\r\nexport const colourStyles = {\r\n option: (styles, { data }) => {\r\n const color = visitTypeColorGetter(data.code);\r\n return { ...styles, ...dot(color) };\r\n }\r\n};\r\n\r\nexport const validateAvailabilityDate = (current, _selected, practitionerAvailability) => {\r\n if (!practitionerAvailability || !practitionerAvailability.availableWeekDays)\r\n return false;\r\n\r\n if (!current.isSameOrAfter(moment().startOf('day')))\r\n return false;\r\n\r\n var availableDate = practitionerAvailability.availableDates.filter(x => moment(x.date).format('DD/MM/YYYY') === current.format('DD/MM/YYYY') && x.available);\r\n var availableWeekDays = practitionerAvailability.availableWeekDays.includes(current.day());\r\n\r\n return availableWeekDays && availableDate.length > 0;\r\n}\r\n\r\nexport const validateIsSameOfAfter = (current, dateToCompare) => {\r\n if (!dateToCompare)\r\n dateToCompare = moment().startOf('day');\r\n\r\n return moment(current).isSameOrAfter(dateToCompare);\r\n}\r\n\r\nexport const isValidEventStart = (startDate) => {\r\n if (moment().isSameOrAfter(startDate)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport function getAvailableTimes(start, end, interval) {\r\n var startTime = moment(start, 'HH:mm');\r\n var startTimeEnd = moment(start, 'HH:mm').add(interval, 'minutes');\r\n var endTime = moment(end, 'HH:mm');\r\n\r\n if (endTime.isBefore(startTime)) {\r\n endTime.add(1, 'day');\r\n }\r\n\r\n var timeStops = [];\r\n\r\n while (startTime <= endTime) {\r\n timeStops.push({ appointmentInit: startTime.format('HH:mm'), appointmentEnd: startTimeEnd.format('HH:mm') });\r\n startTime.add(interval, 'minutes');\r\n startTimeEnd.add(interval, 'minutes')\r\n }\r\n return timeStops;\r\n}","import React from \"react\";\r\n\r\nexport const Card = (props) => {\r\n\r\n return (\r\n
    \r\n {\r\n props.header &&\r\n
    \r\n {props.header}\r\n
    \r\n }\r\n {\r\n props.title &&\r\n
    \r\n

    {props.title}

    \r\n
    {props.subtitle}
    \r\n
    \r\n }\r\n \r\n {props.content}\r\n
    \r\n {\r\n props.footer &&
    \r\n {props.footer}\r\n
    \r\n }\r\n \r\n );\r\n}\r\n\r\nCard.defaultProps = {\r\n shadow: true,\r\n tabs: false,\r\n\r\n};\r\n\r\nexport default Card;\r\n","import moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport DateTime from 'react-datetime';\r\n\r\nfunction formatDateForInput(date, dateFormat) {\r\n if (date) {\r\n if (!moment.isMoment(date)) {\r\n let momentDate = moment(date);\r\n if (momentDate.isValid())\r\n return momentDate.format(dateFormat);\r\n else\r\n return date;\r\n }\r\n else\r\n return date.format(dateFormat);\r\n }\r\n\r\n return ''\r\n}\r\n\r\nexport const CustomDateTime = (props) => {\r\n const { value, dateFormat, onChange, onBlur, ...rest } = props;\r\n\r\n const handleChange = value => {\r\n if (!onChange) return;\r\n var date = moment(value, dateFormat, true);\r\n if (date.isValid())\r\n onChange(props.name, date);\r\n else\r\n onChange(props.name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (!onBlur)\r\n return;\r\n onBlur(props.name, true);\r\n }\r\n\r\n return (\r\n \r\n );\r\n\r\n}\r\n\r\nCustomDateTime.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func.isRequired\r\n};\r\nCustomDateTime.defaultProps = {\r\n dateFormat: \"DD/MM/YYYY HH:mm\",\r\n inputProps: { placeholder: \"DD/MM/YYYY HH:mm\" },\r\n};\r\n\r\nexport const CustomTime = (props) => {\r\n const { value, onChange, ...rest } = props;\r\n\r\n const handleChange = value => {\r\n if (!onChange) return;\r\n var date = moment(value, \"HH:mm\", true);\r\n if (date.isValid())\r\n onChange(props.name, date);\r\n else\r\n onChange(props.name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nCustomTime.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func.isRequired\r\n};\r\n\r\nexport const CustomDate = (props) => {\r\n const { value, onChange, onBlur, dateFormat, ...rest } = props;\r\n\r\n const handleChange = value => {\r\n if (!onChange) return;\r\n\r\n var date = moment(value, dateFormat, true);\r\n if (date.isValid())\r\n onChange(props.name, date);\r\n else\r\n onChange(props.name, value);\r\n }\r\n\r\n const handleBlur = () => {\r\n if (onBlur)\r\n onBlur(props.name, true);\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nCustomDate.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func.isRequired\r\n};\r\nCustomDate.defaultProps = {\r\n dateFormat: \"DD/MM/YYYY\",\r\n inputProps: { placeholder: \"DD/MM/YYYY\" },\r\n};\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport debounce from \"lodash.debounce\";\r\nimport PropTypes from 'prop-types';\r\nimport { FormControl } from \"react-bootstrap\";\r\n\r\nexport const CustomFormControl = (props) => {\r\n const { onChange, onBlur, value, name, type, placeholder, disabled, rows } = props;\r\n const [innerValue, setInnerValue] = useState('');\r\n const INPUT_DELAY = 500;\r\n\r\n useEffect(() => {\r\n if (value !== null && value !== undefined) {\r\n setInnerValue(value);\r\n } else {\r\n setInnerValue('');\r\n }\r\n }, [value]);\r\n\r\n const debouncedHandleOnChange = useCallback(\r\n debounce((name, value) => {\r\n if (onChange) {\r\n onChange(name, value);\r\n }\r\n }, INPUT_DELAY),\r\n [],\r\n );\r\n\r\n const handleOnChange = useCallback((event) => {\r\n const newValue = event.currentTarget.value;\r\n setInnerValue(newValue);\r\n debouncedHandleOnChange(event.currentTarget.name, event.currentTarget.value);\r\n }, [debouncedHandleOnChange]);\r\n\r\n if (type === \"textarea\")\r\n return (\r\n \r\n );\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nCustomFormControl.propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n type: PropTypes.string.isRequired,\r\n placeholder: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n name: PropTypes.string.isRequired,\r\n rows: PropTypes.number,\r\n};","import React from \"react\";\r\n\r\nexport const CustomRadio = (props) => {\r\n const { number, label, option, name, ...rest } = props;\r\n\r\n\r\n const handleClick = (event) => {\r\n if (props.onChange) {\r\n if (props.checked)\r\n props.onChange(props.name, null);\r\n else\r\n props.onChange(props.name, event.target.value);\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n","import axios from './index';\r\n\r\nexport const getPagingAndOrderParams = (newActiveFilters, searchParams) => {\r\n\r\n if (!newActiveFilters)\r\n return;\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination?.page) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if (newActiveFilters.pagination?.sizePerPage) {\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort?.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort?.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n return searchParams;\r\n}\r\n\r\nexport const getQueryString = (query, search) => {\r\n\r\n var searchParams = new URLSearchParams(search || '');\r\n\r\n if (!query)\r\n return searchParams.toString();\r\n\r\n searchParams = getPagingAndOrderParams(query, searchParams);\r\n\r\n if (query.filters) {\r\n for (const property in query.filters) {\r\n\r\n searchParams.delete(property);\r\n if (query.filters[property] !== null && query.filters[property] !== undefined) {\r\n searchParams.append(property, query.filters[property]);\r\n }\r\n }\r\n }\r\n\r\n if (query.query) {\r\n searchParams.delete(\"q\");\r\n if (query.query) {\r\n searchParams.append(\"q\", query.query);\r\n }\r\n }\r\n\r\n if (query.onlyDoctor != null && query.onlyDoctor != undefined) {\r\n searchParams.delete(\"onlyDoctor\");\r\n searchParams.append(\"onlyDoctor\", query.onlyDoctor);\r\n }\r\n\r\n if (query.includeDisabled != null && query.includeDisabled != undefined) {\r\n searchParams.delete(\"includeDisabled\");\r\n searchParams.append(\"includeDisabled\", query.includeDisabled);\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nconst transformRequestOptions = (params) => {\r\n let options = '';\r\n params.ids.forEach((id) => {\r\n options += `ids=${id}&`;\r\n });\r\n return options;\r\n};\r\n\r\nexport const getRoleMasterData = () => {\r\n return axios.get(`api/v1/authorization/masterdata`);\r\n};\r\nexport const getRoles = () => {\r\n return axios.get(`api/v1/authorization`);\r\n};\r\nexport const getRolesById = (roles) => {\r\n return axios.get(`api/v1/authorization/rolesbyid`, {\r\n params: { ids: roles },\r\n paramsSerializer: transformRequestOptions,\r\n });\r\n};\r\nexport const getRole = (roleId) => {\r\n return axios.get(`api/v1/authorization/${roleId}`);\r\n};\r\nexport const createRole = (role) => {\r\n return axios.post(`api/v1/authorization`, role);\r\n};\r\nexport const editRole = (roleId, role) => {\r\n return axios.put(`api/v1/authorization/${roleId}`, role);\r\n};\r\n\r\nexport const getUsers = async filters => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/users?${queryString}` : 'api/v1/users');\r\n};\r\nexport const getUsersByIdAPI = async users => {\r\n return axios.get(`api/v1/users/usersbyid`, {\r\n params: { ids: users },\r\n paramsSerializer: transformRequestOptions,\r\n });\r\n};\r\nexport const getPractitioners = async filters => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/users/practitioners?${queryString}` : 'api/v1/users/practitioners');\r\n};\r\nexport const getUser = (id) => {\r\n return axios.get(`api/v1/users/${id}`);\r\n};\r\nexport const getUserInfo = (id) => {\r\n return axios.get(`api/v1/users/${id}/info`);\r\n};\r\nexport const getUserInfoSignData = (id) => {\r\n return axios.get(`api/v1/users/${id}/signData`);\r\n};\r\nexport const createUser = (user) => {\r\n return axios.post('api/v1/users', user);\r\n};\r\nexport const resendCreatedUserEmail = (userId) => {\r\n return axios.post(`api/v1/users/${userId}/resendCreatedEmail`, userId);\r\n};\r\nexport const updateUser = (id, user) => {\r\n return axios.put(`api/v1/users/${id}`, user);\r\n};\r\nexport const updateUserInRole = (userId, roleId) => {\r\n return axios.put(`api/v1/users/${userId}/roles/${roleId}`, null);\r\n};\r\nexport const enableUser = (userId) => {\r\n return axios.put(`api/v1/users/${userId}/enable`, null);\r\n};\r\nexport const disableUser = (userId) => {\r\n return axios.put(`api/v1/users/${userId}/disable`, null);\r\n};\r\nexport const changePasswordUser = (userId, password) => {\r\n return axios.put(`api/v1/users/${userId}/changepassword/${password}`, null);\r\n};\r\nexport const resetPassword = (userId) => {\r\n return axios.put(`api/v1/users/${userId}/resetPassword`, null);\r\n};\r\nexport const exportToExcel = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n\r\n return axios.get(queryString ? `api/v1/users/exportToExcel?${queryString}` : 'api/v1/users/exportToExcel', {\r\n responseType: 'arraybuffer'\r\n });\r\n};\r\n\r\nexport const getMasterData = () => {\r\n return axios.get('api/v1/users/masterdata');\r\n};\r\n\r\nexport const syncUsers = (tenantId) => {\r\n return axios.post(`api/v1/users/sync/${tenantId}`, tenantId);\r\n};\r\n\r\nexport const uploadSign = async (formData) => {\r\n return axios.post(`api/v1/users/uploadsign`, formData, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n}\r\n\r\nexport const getAuditUserRoleAPI = (userId) => {\r\n return axios.get(`api/v1/users/auditsuserrole/users/${userId}`);\r\n}","import PropTypes from 'prop-types';\r\nimport React, { Fragment, useState } from 'react';\r\nimport { FormGroup, InputGroup } from 'react-bootstrap';\r\nimport { AsyncTypeahead, Highlighter } from 'react-bootstrap-typeahead';\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\nimport { getPractitioners } from '../../api/identity';\r\nimport '../../assets/sass/lbd/_asyncTypeahead.scss';\r\nimport { Search } from '../Icons/Icons';\r\nimport { HandleApiError } from \"../Notifications/APIErrorHandler\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const PractitionerPicker = (props) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const { t } = useTranslation();\r\n\r\n const handleChange = value => {\r\n if (value.length > 0)\r\n props.onChange(props.name, value[0]);\r\n else\r\n props.onChange(props.name, null);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n const onSearch = (query) => {\r\n setIsLoading(true);\r\n getPractitioners({\r\n pagination: {\r\n sizePerPage: 100,\r\n },\r\n onlyDoctor: props.onlyDoctor,\r\n includeDisabled: props.includeDisabled,\r\n query: query\r\n }).then(response => {\r\n //console.log(response.data.data)\r\n setOptions(response.data.data);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n setIsLoading(false);\r\n setOptions([]);\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n const renderMenuItemChildren = (option, { text }, index) => {\r\n return (\r\n \r\n \r\n {option.fullName}\r\n \r\n
    \r\n \r\n {option.speciality &&
    {t(\"person.speciality\")}: {option.speciality}
    }\r\n {option.registrationNumber &&
    {t(\"person.registrationNumber\")}: {option.registrationNumber}
    }\r\n
    \r\n
    \r\n
    \r\n )\r\n };\r\n\r\n const typeahead = ( true}\r\n options={options}\r\n isLoading={isLoading}\r\n clearButton={true}\r\n highlightOnlyResult={true}\r\n allowNew={false}\r\n delay={1000}\r\n onSearch={onSearch}\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n />);\r\n\r\n if (props.showSearchIcon)\r\n return (\r\n \r\n \r\n \r\n {typeahead}\r\n \r\n \r\n );\r\n\r\n return typeahead;\r\n}\r\n\r\nPractitionerPicker.propTypes = {\r\n multiple: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n minLength: PropTypes.number,\r\n showSearchIcon: PropTypes.bool,\r\n onlyDoctor: PropTypes.bool,\r\n includeDisabled: PropTypes.bool,\r\n};\r\n\r\nPractitionerPicker.defaultProps = {\r\n multiple: false,\r\n onChange: () => { },\r\n minLength: 2,\r\n showSearchIcon: false,\r\n onlyDoctor: false,\r\n includeDisabled: false\r\n};","import PropTypes from 'prop-types'\r\nimport React, { useState, useEffect } from \"react\";\r\nimport SweetAlert from \"react-bootstrap-sweetalert\"\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nexport const ModalConfirm = ({ title, description, timer, onConfirm, onCancel, confirmStyle, cancelStyle }) => {\r\n const { t } = useTranslation();\r\n const [counter, setCounter] = useState(timer); // Establece aquí el valor inicial del contador\r\n const [confirmDisabled, setConfirmDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n let interval;\r\n interval = setInterval(() => {\r\n setCounter((prevCounter) => prevCounter - 1);\r\n }, 1000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setConfirmDisabled(counter > 0);\r\n }, [counter]);\r\n\r\n return (\r\n 0 ? `${t(\"buttons.yes\")} (${counter})` : t(\"buttons.yes\")}\r\n cancelBtnText={t(\"buttons.no\")}\r\n showCancel\r\n disabled={confirmDisabled} // Deshabilita el botón de confirmación según el estado del contador\r\n >\r\n {description}\r\n \r\n );\r\n}\r\n\r\nModalConfirm.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n timer: PropTypes.number\r\n};\r\n\r\nModalConfirm.defaultProps = {\r\n timer: 3,\r\n confirmStyle: \"success\",\r\n cancelStyle: \"info\"\r\n};","import PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\n\r\nexport const ModalData = (props) => {\r\n const { isShowing, hide, title, children, size, className } = props;\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {children}\r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nModalData.defaultProps = {\r\n size: \"large\",\r\n className: \"modal-data\"\r\n}\r\n\r\nModalData.propTypes = {\r\n title: PropTypes.string,\r\n isShowing: PropTypes.bool,\r\n hide: PropTypes.func,\r\n size: PropTypes.string,\r\n className: PropTypes.string\r\n};","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\ni18n\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n //.use(LanguageDetector) // use LanguageDetector\r\n .init({\r\n resources: {\r\n en: { translation: require('./locale/en/common.json') },\r\n es: { translation: require('./locale/es/common.json') },\r\n pt: { translation: require('./locale/pt/common.json') },\r\n },\r\n lng: \"es\",\r\n fallbackLng: \"es\",\r\n interpolation: {\r\n escapeValue: false\r\n },\r\n debug: false\r\n });\r\n\r\nexport default i18n;\r\n","import i18n from '../i18n';\r\n\r\nconst getLocalizedEnum = (prefix, montoto) => {\r\n if (!montoto)\r\n return \"\";\r\n\r\n return montoto.map(x => { x.title = i18n.t(`${prefix}.${x.code?.toLowerCase()}`); return x; })\r\n}\r\n\r\nexport const bloodGroup = [\r\n { id: 1, title: \"A\" },\r\n { id: 2, title: \"B\" },\r\n { id: 3, title: \"AB\" },\r\n { id: 4, title: \"O\" }\r\n\r\n]\r\nexport const bloodFactor = [\r\n { id: 1, title: \"Rh+\" },\r\n { id: 2, title: \"Rh-\" },\r\n]\r\n\r\nexport const language = [\r\n { code: \"es\", title: \"Español\" },\r\n { code: \"en\", title: \"Ingles\" },\r\n { code: \"pt\", title: \"Portugués\" },\r\n]\r\n\r\nexport const typeOptions = getLocalizedEnum(\"medicalRecords.typeOptions\", [\r\n { id: 1, title: 'Consultorios Externos', code: \"EXTERNAL\" },\r\n { id: 2, title: 'Otros', code: \"OTHER\" },\r\n { id: 3, title: 'Investigación', code: \"PROTOCOL\" },\r\n { id: 4, title: 'Localización', code: \"LOCALIZATION\" }\r\n //{ id: 4, title: 'Proyectos', code: \"PROJECT\" }\r\n])\r\n\r\nexport const visitTypesEnum = getLocalizedEnum(\"calendar.visitTypes\", [\r\n { code: \"PROTOCOL\", title: 'Investigación' },\r\n { code: \"PROJECT\", title: 'Proyecto' },\r\n { code: \"EXTERNAL\", title: 'Consultorio Externo (Presencial)' },\r\n { code: \"EXTERNAL_PHONE\", title: 'Consultorio Externo (Teleconsulta)' },\r\n { code: \"STUDIES\", title: 'Estudios' },\r\n { code: \"ESSENTIA\", title: 'Consultorio Programa Essentia' },\r\n { code: \"ORDER\", title: 'Entrega de Receta' },\r\n { code: \"OTHER\", title: 'Otros' },\r\n { code: \"PRESCREENING\", title: 'PreScreening Investigación' },\r\n { code: \"OVERSHIFT\", title: 'Sobreturno' }\r\n])\r\n/*\r\nexport const eventOptions = getLocalizedEnum([\r\n { id: 1, title: 'Historial', code: \"history\" },\r\n { id: 2, title: 'Cancelados', code: \"cancel\" },\r\n { id: 3, title: 'Atendidos', code: \"present\" },\r\n])\r\nexport const relatives = getLocalizedEnum([\r\n { id: 1, title: 'Madre' },\r\n { id: 2, title: 'Padre' },\r\n { id: 3, title: 'Hermano' },\r\n { id: 4, title: 'Abuelos' },\r\n { id: 5, title: 'Otros' },\r\n])\r\nexport const routeOfAdministrations = getLocalizedEnum([\r\n { id: 1, title: 'Oral' },\r\n { id: 2, title: 'Sublingual' },\r\n { id: 3, title: 'Tópica' },\r\n { id: 4, title: 'Transdérmica' },\r\n { id: 5, title: 'Oftalmológica' },\r\n { id: 6, title: 'Inhalatoria' },\r\n { id: 7, title: 'Rectal' },\r\n { id: 8, title: 'Vaginal' },\r\n { id: 9, title: 'Parental' }\r\n])\r\nexport const intensity = getLocalizedEnum([\r\n { id: 1, title: 'Leve' },\r\n { id: 2, title: 'Moderado' },\r\n { id: 3, title: 'Severo' }\r\n])*/\r\n\r\nexport const units = [\r\n { id: 1, title: 'mg' },\r\n { id: 2, title: 'mL' },\r\n { id: 3, title: 'ug' },\r\n { id: 4, title: 'g' },\r\n { id: 5, title: 'U' },\r\n { id: 6, title: 'Other' }\r\n]\r\n\r\nexport const snomedExpressions = {\r\n MotivoConsulta: \"< 71388002 OR < 243796009 OR < 272379006 OR < 404684003\", // \"< 404684003\",// \r\n Diagnostico: \"< 243796009 OR < 272379006 OR < 404684003\", //\"< 404684003\",// \"< 243796009 OR < 272379006 OR < 404684003 MINUS (<< 49632008 OR 198863002 OR 198756005 OR 785872000 OR 785869007)\",\r\n Hallazgos: \"404684003\",\r\n Medicamentos: \"781405001\", // Producto, por ejemplo, Amoxidal, Ibupirac.\r\n Sustancia: \"105590001\", // Por ejemplo: Ibuprofeno, Amoxicilina. \r\n Producto_O_Sustancia: \"< 781405001 OR < 105590001\",\r\n ViaAdministracion: \"736479009\",\r\n Procedimiento: \"71388002\",\r\n Laboratorio: \"122869004\" // procedimiento de medición (procedimiento) 122869004\r\n}\r\n\r\nexport const hcVisitStatus = {\r\n Draft: \"Draft\",\r\n Saved: \"Saved\",\r\n Published: \"Published\",\r\n AutoPublished: \"AutoPublished\"\r\n}\r\n\r\nexport const visitStatus = {\r\n Started: 0,\r\n Completed: 1,\r\n Skipped: 2,\r\n Failed: 3,\r\n Changed: 4,\r\n AutoCompleted: 5\r\n}\r\n\r\nexport const formStatus = {\r\n Initial: 0,\r\n Saved: 1,\r\n Draft: 2,\r\n Published: 9\r\n}\r\n\r\nexport const visitTypes = {\r\n ProtocolVisit: 0,\r\n ExtraProtocolVisit: 1,\r\n Note: 2,\r\n EarlyCompletion: 3\r\n}\r\n\r\nexport const patientInProtocolStatus = {\r\n Screening: 0,\r\n Random: 1,\r\n Treatment: 2,\r\n FollowUp: 3,\r\n Failed: 4,\r\n LostToFollowUp: 5,\r\n WithoutDrugs: 6,\r\n Discontinuation: 7,\r\n EndParticipationInProtocol: 8\r\n}\r\n\r\nexport const visitStage = {\r\n Screening: 0,\r\n Random: 1,\r\n Treatment: 2,\r\n FollowUp: 3\r\n}\r\n\r\nexport const visitTypeEnum = {\r\n OnSite: 0,\r\n Remote: 1\r\n}\r\n\r\nexport const visitOffsetType = {\r\n Days: 0,\r\n Weeks: 1,\r\n Months: 2\r\n}\r\n\r\nexport const noteEnum = {\r\n Initial: 0,\r\n Fixed: 1,\r\n Invalid: 2\r\n}\r\n\r\nexport const formTypes = [\r\n { label: \"NoSync\", value: \"NoSync\" },\r\n { label: \"Anthropometrics\", value: \"Anthropometrics\" },\r\n { label: \"Vitals\", value: \"Vitals\" },\r\n { label: \"AdverseEvents\", value: \"AdverseEvents\" },\r\n { label: \"Drugs\", value: \"Drugs\" },\r\n { label: \"Procedures\", value: \"Procedures\" },\r\n { label: \"LaboratoryResults\", value: \"LaboratoryResults\" },\r\n { label: \"Habits\", value: \"Habits\" },\r\n]\r\n\r\nexport const formTypeFields = [\r\n {\r\n type: \"Anthropometrics\",\r\n fields: [\r\n { value: \"Weight\", fieldType: \"DecimalField\" },\r\n { value: \"Height\", fieldType: \"DecimalField\" },\r\n { value: \"Waist\", fieldType: \"DecimalField\" },\r\n { value: \"Sagittal\", fieldType: \"DecimalField\" },\r\n { value: \"Neck\", fieldType: \"DecimalField\" },\r\n { value: \"Others\", fieldType: \"SingleLineField\" },\r\n { value: \"Notes\", fieldType: \"MultiLineField\" }\r\n ]\r\n },\r\n {\r\n type: \"Vitals\",\r\n fields: [\r\n { value: \"BloodPressureHigh\", fieldType: \"IntegerField\" },\r\n { value: \"BloodPressureLow\", fieldType: \"IntegerField\" },\r\n { value: \"HeartRate\", fieldType: \"SingleLineField\" },\r\n { value: \"RespiratoryRate\", fieldType: \"SingleLineField\" },\r\n { value: \"TemperatureC\", fieldType: \"DecimalField\" },\r\n { value: \"OxygenSaturation\", fieldType: \"DecimalField\" },\r\n { value: \"Notes\", fieldType: \"MultiLineField\" }\r\n ]\r\n },\r\n {\r\n type: \"AdverseEvents\",\r\n fields: [\r\n { value: \"AdverseEvent\", fieldType: \"SnomedField\" },\r\n { value: \"Intensity\", fieldType: \"SelectAsyncField\" },\r\n { value: \"Serious\", fieldType: \"BooleanField\" },\r\n { value: \"Reported\", fieldType: \"BooleanField\" },\r\n { value: \"Relationwithdrug\", fieldType: \"SelectAsyncField\" },\r\n { value: \"Action\", fieldType: \"SelectAsyncField\" },\r\n { value: \"From\", fieldType: \"DateField\" },\r\n { value: \"To\", fieldType: \"DateField\" },\r\n { value: \"Notes\", fieldType: \"MultiLineField\" }\r\n ]\r\n },\r\n {\r\n type: \"Drugs\",\r\n fields: [\r\n { value: \"Drug\", fieldType: \"SnomedField\" },\r\n { value: \"RouteOfAdministration\", fieldType: \"SelectAsyncField\" },\r\n { value: \"Reason\", fieldType: \"AdverseEventsAsyncField\" },\r\n { value: \"Dose\", fieldType: \"IntegerField\" },\r\n { value: \"Unit\", fieldType: \"SelectAsyncField\" },\r\n { value: \"Frequency\", fieldType: \"SelectAsyncField\" },\r\n { value: \"From\", fieldType: \"DateField\" },\r\n { value: \"To\", fieldType: \"DateField\" },\r\n { value: \"Notes\", fieldType: \"MultiLineField\" }\r\n ]\r\n },\r\n {\r\n type: \"Procedures\",\r\n fields: [\r\n { value: \"Procedure\", fieldType: \"ProcedureSnomedField\" },\r\n //{ value: \"Procedure\", fieldType: \"SnomedField\" },\r\n { value: \"Reason\", fieldType: \"AdverseEventsAsyncField\" },\r\n { value: \"From\", fieldType: \"DateField\" },\r\n { value: \"To\", fieldType: \"DateField\" },\r\n { value: \"Notes\", fieldType: \"MultiLineField\" }\r\n ]\r\n }\r\n]\r\n\r\nexport const conditions = {\r\n observation: \"problem-list-item\",\r\n diagnosis: \"encounter-diagnosis\",\r\n adverseEvent: \"adverse-event\",\r\n personalHistory: \"personal-history\"\r\n}\r\n\r\nexport const conceptType = {\r\n drugs: \"Drugs\",\r\n procedures: \"Procedures\",\r\n events: \"Events\",\r\n prescriptions: \"Prescriptions\",\r\n orders: \"Orders\"\r\n}\r\n\r\nexport const interopSystemEnum = {\r\n SnomedCT: 0,\r\n LOINC: 10,\r\n ICD10: 20,\r\n ICD11: 21,\r\n BR_CMED: 30,\r\n BR_CBHPM: 31,\r\n VADEMECUM: 41\r\n}\r\n/*\r\nmodule.exports = {\r\n conditions,\r\n formTypes,\r\n formTypeFields,\r\n //bloodGroup,\r\n //bloodFactor,\r\n typeOptions,\r\n eventOptions,\r\n relatives,\r\n routeOfAdministrations,\r\n intensity,\r\n units,\r\n snomedExpressions,\r\n hcVisitStatus,\r\n formStatus,\r\n visitStatus,\r\n visitTypes,\r\n visitOffsetType,\r\n visitStage,\r\n patientInProtocolStatus,\r\n noteEnum,\r\n visitTypesEnum,\r\n visitTypeEnum\r\n};*/","import React from 'react';\r\nimport { Label } from 'react-bootstrap'\r\nimport moment from 'moment';\r\nimport { IconSVG } from '../Icons/Icons';\r\nimport { patientInProtocolStatus, visitStatus } from '../../variables/Enums';\r\nimport i18n from '../../i18n';\r\n\r\nexport const nullableDateFormatter = (day, month, year) => {\r\n\r\n if (!year)\r\n return null;\r\n\r\n return `${day ?? \"unk\"}/${month ? parseInt(month) + 1 : \"unk\"}/${year}`;\r\n}\r\n\r\nexport const toLocaleDateFormatter = (date, format, withIcon) => {\r\n if (!format)\r\n format = 'DD/MM/YYYY';\r\n\r\n const icon = withIcon ? : null;\r\n\r\n if (!date)\r\n return ( );\r\n\r\n try {\r\n // date.length > 30 entonces ya tiene el locale del UI.\r\n //var localeDate = date.endsWith(\"Z\") || date.length > 30 ? new Date(date) : new Date(date + \"Z\");\r\n var localeDate = date.endsWith(\"Z\") ? new Date(date) : new Date(date + \"Z\");\r\n return ({icon} {moment(localeDate).format(format)});\r\n }\r\n catch (error) {\r\n return ({icon} {moment(date).format(format)} UTC);\r\n }\r\n}\r\n\r\nexport const dateFormatter = (dateTime, format, withIcon) => {\r\n if (!format)\r\n format = 'DD/MM/YYYY';\r\n\r\n const icon = withIcon ? : null;\r\n\r\n if (dateTime) {\r\n return ({icon} {moment(dateTime).locale(\"es\").format(format)} );\r\n }\r\n\r\n return ( );\r\n}\r\n\r\nexport const labelFormatter = (value, style) => {\r\n\r\n if (!style)\r\n style = \"default\";\r\n if (value)\r\n return ();\r\n\r\n return null;\r\n}\r\n\r\nexport function toLocaleDateTimeFormatter(dateTime, format = 'DD/MM/YYYY HH:mm') {\r\n if (!dateTime)\r\n return ( );\r\n\r\n try {\r\n var date = dateTime.endsWith(\"Z\") ? new Date(dateTime) : new Date(dateTime + \"Z\");\r\n return ( {moment(date).format(format)});\r\n }\r\n catch (error) {\r\n console.log(error, dateTime)\r\n return ( {moment(dateTime).format(format)} UTC);\r\n }\r\n}\r\n\r\nexport const dateTimeFormatter = (dateTime) => {\r\n if (dateTime)\r\n return ( {moment(dateTime).format('DD/MM/YYYY HH:mm')} );\r\n\r\n return ( );\r\n}\r\n\r\nexport const dateTimeUTCFormatter = (dateTime) => {\r\n if (dateTime)\r\n return ( {moment.utc(dateTime).local().format('DD/MM/YYYY HH:mm')} );\r\n\r\n return ( );\r\n}\r\n\r\nexport const timeFormatter = (time) => {\r\n if (time)\r\n return ( {moment(time).format('HH:mm')} );\r\n\r\n return ( );\r\n}\r\n\r\nexport const boolFormatter = (value, translationFn) => {\r\n\r\n if (value === null || value === undefined || !translationFn)\r\n return \"\";\r\n\r\n if (value === true)\r\n return (translationFn('commons.yes'));\r\n if (value === false)\r\n return (translationFn('commons.no'));\r\n\r\n return \"\";\r\n}\r\n\r\nexport const yesNoFormatter = (value, translationFn) => {\r\n\r\n if (value === null || value === undefined || !translationFn)\r\n return \"\";\r\n\r\n if (value === 'yes' || value)\r\n return translationFn('commons.yes')\r\n\r\n return translationFn('commons.no');\r\n}\r\n\r\nexport const yesNoNotApplyFormatter = (value, translationFn) => {\r\n\r\n if (value === null && value === undefined || !translationFn)\r\n return \"\";\r\n\r\n switch (value) {\r\n case \"yes\": return translationFn('commons.yes');\r\n case \"no\": return translationFn('commons.no');\r\n case \"n/a\": return translationFn('commons.na');\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nexport const YesNoFormatter = (cell, _row, _rowIndex, formatExtraData) => {\r\n\r\n return (\r\n
    \r\n {\r\n cell === true ?\r\n formatExtraData.t('commons.yes') :\r\n formatExtraData.t('commons.no')\r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport const objectFormatter = (value) => {\r\n\r\n if (value === null || value === undefined)\r\n return \"\"\r\n\r\n if (value.hasOwnProperty(\"ConceptId\")) {\r\n return value[\"Description\"];\r\n }\r\n if (value.hasOwnProperty(\"Code\")) {\r\n return value[\"Title\"];\r\n }\r\n\r\n return \"\";\r\n}\r\n\r\nexport const attachmentFormatter = (value) => {\r\n if (value === null || value === undefined)\r\n return \"\"\r\n\r\n if (value.hasOwnProperty(\"FileName\")) {\r\n return value[\"FileName\"];\r\n }\r\n if (value.hasOwnProperty(\"ValidatedBy\")) {\r\n return \"Validado\";\r\n }\r\n\r\n return \"\";\r\n}\r\n\r\nexport const extractContentFromHTML = (html) => {\r\n return new DOMParser().parseFromString(html, \"text/html\").documentElement.textContent;\r\n}\r\n\r\nexport const visitStatusFormatter = (status) => {\r\n if (status === null || status === undefined)\r\n return \"\";\r\n\r\n switch (status) {\r\n case visitStatus.Started:\r\n return ();\r\n case visitStatus.Completed:\r\n return ();\r\n case visitStatus.Skipped:\r\n return ();\r\n case visitStatus.Failed:\r\n return ();\r\n case visitStatus.Changed:\r\n return ();\r\n case visitStatus.AutoCompleted:\r\n return ();\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nexport const patientVisitStatusFormatter = (status) => {\r\n if (status === null || status === undefined)\r\n return \"\";\r\n\r\n switch (status) {\r\n case patientInProtocolStatus.Screening:\r\n return ();\r\n case patientInProtocolStatus.Random:\r\n return ();\r\n case patientInProtocolStatus.Treatment:\r\n return ();\r\n case patientInProtocolStatus.FollowUp:\r\n return ();\r\n case patientInProtocolStatus.Failed:\r\n return ();\r\n case patientInProtocolStatus.LostToFollowUp:\r\n return ();\r\n case patientInProtocolStatus.WithoutDrugs:\r\n return ();\r\n case patientInProtocolStatus.Discontinuation:\r\n return ();\r\n case patientInProtocolStatus.EndParticipationInProtocol:\r\n return ();\r\n default:\r\n return \"\";\r\n }\r\n}","import { ErrorMessage } from 'formik';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from \"react\";\r\nimport { Button, Col, ControlLabel, FormGroup, Grid, Modal, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useScheduleLocks } from '../../containers/Agenda/Hooks';\r\nimport { visitTypeColorGetter } from '../Agenda/Utils';\r\nimport Card from '../Cards/Card';\r\nimport { CustomDate, CustomTime } from '../CustomControls/CustomDateTime';\r\nimport { CustomFormControl } from '../CustomControls/CustomFormControl';\r\nimport { CustomRadio } from \"../CustomControls/CustomRadio\";\r\nimport { PractitionerPicker } from '../CustomControls/PractitionerPicker';\r\nimport { Remove, Save } from \"../Icons/Icons\";\r\nimport { ModalConfirm } from '../Modals/ModalConfirm';\r\nimport { ModalData } from '../Modals/ModalData';\r\nimport { dateFormatter } from '../Utils/Formatter';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { validateIsSameOfAfter } from './Utils';\r\n\r\nexport const ScheduleLocks = () => {\r\n const [data, query, totalSize, isLoading, handleTableChange, , handleRemove] = useScheduleLocks();\r\n const [modal, setModal] = useState(null);\r\n const { t } = useTranslation();\r\n\r\n const handleRemoveLock = (id) => {\r\n if (id)\r\n setModal(\r\n setModal(null)}\r\n onConfirm={() => confirmRemove(id)}\r\n title={t('calendar.removeScheduleLock')}\r\n />\r\n );\r\n }\r\n\r\n const confirmRemove = async (id) => {\r\n try {\r\n setModal(null);\r\n await handleRemove(id);\r\n await handleTableChange(\"reload\", { page: null, sizePerPage: null, sortField: null, sortOrder: null });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n const columns = [\r\n { dataField: 'practitioner', text: t(\"calendar.practitioner\"), formatter: function (cell) { return cell?.fullName } },\r\n { dataField: 'start', text: t(\"commons.start\"), formatter: function (cell, row) { return (
    {dateFormatter(cell, \"DD/MMM/YYYY\")} {row.lockFrom}
    ); } },\r\n { dataField: 'end', text: t(\"commons.end\"), formatter: function (cell, row) { return (
    {dateFormatter(cell, \"DD/MMM/YYYY\")} {row.lockTo}
    ); } },\r\n { dataField: 'comments', text: t(\"calendar.reasons.reason\") },\r\n {\r\n dataField: 'view',\r\n text: t(\"protocols.practitioner.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-protocol-actions',\r\n classes: 'row-protocol-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {modal}\r\n <>{t(\"commons.noData\")}}\r\n />\r\n \r\n );\r\n}\r\n\r\nexport const ScheduleLockForm = (props) => {\r\n const {\r\n values,\r\n isSubmitting,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleSubmit\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const handleTypeChange = (controlName, selectedvalue) => {\r\n if (values.centerOrParticular == 0)\r\n setFieldValue(\"practitionerId\", null); // Si es centro, blanqueo practitioner. \r\n\r\n setFieldValue(controlName, selectedvalue);\r\n }\r\n\r\n const handlePractitionerChange = (controlName, selectedValue) => {\r\n setFieldValue(controlName, selectedValue);\r\n\r\n if (selectedValue)\r\n setFieldValue(\"practitionerId\", selectedValue?.userId);\r\n else\r\n setFieldValue(\"practitionerId\", null);\r\n }\r\n\r\n const handleTimeChange = (controlName, selectedValue) => {\r\n if (!moment.isMoment(selectedValue))\r\n return;\r\n\r\n if (controlName === \"from\") {\r\n setFieldValue(\"from\", selectedValue);\r\n setFieldValue(\"lockFrom\", selectedValue.format(\"HH:mm\"));\r\n }\r\n\r\n\r\n if (controlName === \"to\") {\r\n setFieldValue(\"to\", selectedValue);\r\n setFieldValue(\"lockTo\", selectedValue.format(\"HH:mm\"));\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {t('calendar.newScheduleLock')}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {t('calendar.scheduleLocks.centerOrPractitioner')}\r\n \r\n \r\n \r\n {\r\n values.centerOrParticular == 1 &&\r\n \r\n \r\n {t('calendar.practitioner')}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {t('calendar.scheduleLocks.dayOrRange')}\r\n \r\n \r\n \r\n\r\n {\r\n values.dayOrRange && (values.centerOrParticular == 0 || (values.centerOrParticular == 1 && values.practitioner)) &&\r\n <>\r\n \r\n \r\n \r\n
    \r\n {t('commons.start')}\r\n validateIsSameOfAfter(current)}\r\n />\r\n \r\n
    \r\n
    \r\n {t('calendar.time')}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {t('commons.end')}\r\n validateIsSameOfAfter(current, values.start)}\r\n />\r\n \r\n
    \r\n
    \r\n {t('calendar.time')}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {t('calendar.reasons.reason')}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n {t(\"buttons.save\")}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nScheduleLockForm.propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const ScheduleLockAppointmentsTaken = (props) => {\r\n const { appointmentsTaken } = props;\r\n const { t } = useTranslation();\r\n\r\n let components = null;\r\n if (appointmentsTaken) {\r\n components = appointmentsTaken.map((event, index) => {\r\n let start = moment.utc(moment.utc(event.start)).local().toDate();\r\n let end = moment.utc(moment.utc(event.end)).local().toDate();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {moment(start).format('DD/MM/YYYY')} {moment(start).format('H:mm')} - {moment(end).format('H:mm')} [{event.visitType?.title}]\r\n
    {event.patient.fullName} - {event.practitioner.fullName}
    \r\n \r\n \r\n )\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {components}\r\n \r\n \r\n }\r\n />\r\n \r\n\r\n )\r\n}\r\n\r\n","import React from \"react\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Spinner } from \"../Utils/Loaders\";\r\n\r\nexport const MedicalServiceInfo = ({ medicalService, isLoading }) => {\r\n const { t } = useTranslation();\r\n\r\n if (isLoading)\r\n return \r\n\r\n if (!medicalService || !medicalService.service)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    {t(\"calendar.medicalServiceInfo.medicalService\")}: {medicalService.service?.serviceNameReference}
    \r\n
    {t(\"calendar.medicalServiceInfo.coversMedicalInsurance\")}: {medicalService.isCoveredByMedicalInsurance ? t(\"commons.yes\") : t(\"commons.no\")}
    \r\n {\r\n medicalService.isCoveredByMedicalInsurance && medicalService.coverRequirements &&\r\n
    {t(\"calendar.medicalServiceInfo.approvalRequired\")}: {medicalService.coverRequirements?.requiresApproval ? t(\"commons.yes\") : t(\"commons.no\")}
    \r\n }\r\n {\r\n medicalService.coverRequirements && medicalService.coverRequirements.requiredCopago &&\r\n
    {t(\"calendar.medicalServiceInfo.copayRequired\")}: {medicalService.coverRequirements?.copagoComments}
    \r\n }\r\n {\r\n !medicalService.isCoveredByMedicalInsurance && medicalService.price &&\r\n <>\r\n
    {t(\"calendar.medicalServiceInfo.price\")}: {medicalService.service?.serviceNameReference}
    \r\n
    \r\n {t(\"calendar.medicalServiceInfo.priceNotes\")}\r\n
    \r\n \r\n }\r\n
    \r\n \r\n
    \r\n );\r\n}","import moment from \"moment\";\r\nimport React from \"react\";\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { WithAuth } from \"../Authorization/WithAuth\";\r\nimport Card from \"../Cards/Card\";\r\nimport { View, ViewMR } from \"../Icons/Icons\";\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\n\r\nexport const PatientInfo = ({ patient }) => {\r\n const { t } = useTranslation();\r\n\r\n const ageComponent = patient.age ? <>({patient.age} {t('medicalRecords.patientInfo.age')}) : null;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {patient.fullName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t('medicalRecords.patientInfo.birthDate')}: {moment(patient.birthDate).format('DD/MM/YY')} {ageComponent}
    \r\n {patient.identificationType &&
    {patient.identificationType}: {patient.identificationNumber}
    }\r\n {patient.medicalInsurance &&
    {t('medicalRecords.patientInfo.medicalInsurance')}: {patient.medicalInsurance} {patient.medicalInsurancePlan ? <>({patient.medicalInsurancePlan}) : null}
    }\r\n {patient.medicalInsuranceNumber &&
    {t('medicalRecords.patientInfo.medicalInsuranceNumber')}: {patient.medicalInsuranceNumber}
    }\r\n
    {t('medicalRecords.patientInfo.medicalRecord')}: {patient.medicalRecordNumber}
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t('person.address.address')}: {patient.address}
    \r\n
    {t('person.contact.cellPhone')}: {patient.cellPhone}
    \r\n
    {t('person.contact.email')}: {patient.email}
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n }\r\n />\r\n );\r\n}","import moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Button, Col, ControlLabel, FormControl, FormGroup, Modal, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { getPatient } from '../../api/agenda';\r\nimport { useMedicalServices } from '../../containers/Agenda/Hooks';\r\nimport { WithAuth } from '../Authorization/WithAuth';\r\nimport Card from '../Cards/Card';\r\nimport { Check, Edit, PersonCheck, Remove, VideoCall } from \"../Icons/Icons\";\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { MedicalServiceInfo } from './MedicalServiceInfo';\r\nimport { PatientInfo } from './PatientInfo';\r\n\r\nexport const ViewEvent = (props) => {\r\n const { handleModalClose,\r\n handleViewEdit,\r\n handleAttended,\r\n handleNotAttendance,\r\n handleEventStatus,\r\n handleCancelEvent,\r\n handleSetPresent,\r\n event } = props;\r\n\r\n const [patient, setPatient] = useState({});\r\n const settingsStore = useSelector(state => state.settings);\r\n const { t } = useTranslation();\r\n\r\n const [isLoading, setIsLoading,\r\n , , ,\r\n , , ,\r\n medicalServicePrice, getMedicalServicePrice, setMedicalServicePrice] = useMedicalServices();\r\n\r\n useEffect(() => {\r\n const getPatientData = async (patientId) => {\r\n\r\n // Obtengo datos del paciente\r\n try {\r\n const response = await getPatient(patientId);\r\n setPatient(response.data);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n const getServicesData = async () => {\r\n if (!event.medicalServiceId)\r\n return;\r\n // Obtengo Servicios\r\n try {\r\n setIsLoading(true);\r\n var res2 = await getMedicalServicePrice(event.medicalServiceId, event.medicalInsuranceId, event.medicalInsurancePlanId);\r\n setMedicalServicePrice(res2.data.data);\r\n setIsLoading(false);\r\n }\r\n catch (ex) {\r\n console.log(ex)\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n if (event.visitType?.code !== \"SCHEDULELOCK\") {\r\n if (event.medicalServiceId) getServicesData();\r\n getPatientData(event.patient.medicalRecordNumber);\r\n }\r\n }, []);\r\n\r\n var start = event.start.toLocaleTimeString(navigator.language, { hour: '2-digit', minute: '2-digit' });\r\n var end = event.end.toLocaleTimeString(navigator.language, { hour: '2-digit', minute: '2-digit' });\r\n\r\n var actionButtons = null;\r\n var editButton = null;\r\n var cancelButton = null;\r\n var presentButton = null;\r\n var telemedicineButton = null;\r\n\r\n if (event.telemedicineToken)\r\n telemedicineButton = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n if (!event.present && !event.attended) {\r\n presentButton = ();\r\n }\r\n\r\n if (moment().isSameOrAfter(event.start)) {\r\n if (event.attended === null)\r\n actionButtons = (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n editButton = ();\r\n cancelButton = ();\r\n\r\n if (!event.confirmed) {\r\n actionButtons = (\r\n <>\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n if (event.visitType?.code === \"SCHEDULELOCK\")\r\n return (\r\n \r\n \r\n {t('calendar.scheduleLock')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n event.practitioner ?\r\n \r\n \r\n {t('calendar.practitioner')}: {event.practitioner?.fullName}\r\n \r\n \r\n {t('calendar.scheduleLock')}: {start} - {end}\r\n \r\n :\r\n \r\n \r\n {t('calendar.all')}\r\n \r\n \r\n {t('calendar.scheduleLock')}: {start} - {end}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n {\r\n event.desc &&\r\n \r\n \r\n \r\n {t('calendar.notes')}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {telemedicineButton} {t('calendar.turno')}: {start} - {end}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    {t('calendar.visitType')}
    \r\n
    \r\n
    \r\n
    {event.visitType?.title}
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t('calendar.practitioner')}
    \r\n
    \r\n
    \r\n
    {event.practitioner?.fullName}
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n }\r\n />\r\n\r\n {\r\n event.protocol != null ?\r\n \r\n {t('calendar.protocol')}\r\n \r\n \r\n : null\r\n }\r\n {\r\n event.project != null ?\r\n \r\n {t('calendar.project')}\r\n \r\n : null\r\n }\r\n {\r\n event.desc != null ?\r\n \r\n {t('calendar.notes')}\r\n \r\n : null\r\n }\r\n {\r\n event.location != null ?\r\n \r\n {t('calendar.location')}\r\n \r\n : null\r\n }\r\n
    \r\n \r\n \r\n {cancelButton}\r\n {editButton}\r\n {actionButtons}\r\n {presentButton}\r\n \r\n \r\n
    \r\n );\r\n\r\n}\r\n\r\nViewEvent.propTypes = {\r\n event: PropTypes.object.isRequired,\r\n handleModalClose: PropTypes.func.isRequired,\r\n handleViewEdit: PropTypes.func.isRequired,\r\n handleAttended: PropTypes.func.isRequired,\r\n handleNotAttendance: PropTypes.func.isRequired,\r\n handleEventStatus: PropTypes.func.isRequired,\r\n handleCancelEvent: PropTypes.func.isRequired,\r\n handleSetPresent: PropTypes.func.isRequired,\r\n};\r\n\r\n","import axios from './index';\r\n\r\nexport const getQueryString = (newActiveFilters, search) => {\r\n const searchParams = new URLSearchParams(search || '');\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination.page && newActiveFilters.pagination.page !== 1) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if(newActiveFilters.pagination.sizePerPage && newActiveFilters.pagination.sizePerPage !== 1){\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n searchParams.delete('q');\r\n if (newActiveFilters.q) {\r\n searchParams.append('q', newActiveFilters.q);\r\n }\r\n\r\n searchParams.delete('projects');\r\n (newActiveFilters.projects || []).forEach(project => searchParams.append('projects', project.id));\r\n searchParams.delete('protocols');\r\n (newActiveFilters.protocols || []).forEach(protocol => searchParams.append('protocols', protocol.id));\r\n searchParams.delete('professionals');\r\n (newActiveFilters.professionals || []).forEach(professional => searchParams.append('professionals', professional.userId));\r\n searchParams.delete('type');\r\n if (newActiveFilters.type != null && newActiveFilters.type.id) {\r\n searchParams.append('type', newActiveFilters.type.id);\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nexport const getPatients = async filters => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/database/patients?${queryString}` : 'api/v1/database/patients');\r\n};\r\n\r\nexport const getPatient = (medicalRecordNumber, withProfileImage = false) => {\r\n return axios.get(`api/v1/database/patient/${medicalRecordNumber}/${withProfileImage}`);\r\n};\r\n\r\nexport const getPatientByMedicalRecord = (medicalRecordNumber, withProfileImage = false) => {\r\n return axios.get(`api/v1/database/patient/medicalRecord/${medicalRecordNumber}/${withProfileImage}`);\r\n};\r\n\r\nexport const getPatientAvatarByMedicalRecord = (medicalRecordNumber) => {\r\n return axios.get(`api/v1/database/patient/medicalRecord/${medicalRecordNumber}/base64`);\r\n};\r\n\r\nexport const createPatient = (patient) => {\r\n return axios.post('api/v1/database/patient', patient);\r\n};\r\n\r\nexport const updatePatient = (patient) => {\r\n return axios.put('api/v1/database/patient', patient);\r\n};\r\n\r\nexport const deletePatient = (id) => {\r\n return axios.delete(`api/v1/database/patient/${id}`);\r\n};\r\n\r\nexport const getPractitionersBasic = () => {\r\n return axios.get('api/v1/agenda/professionals');\r\n};\r\n\r\nexport const getMasterData = () => {\r\n return axios.get('api/v1/admin/masterdata');\r\n};\r\n\r\nexport const searchPatients = q => {\r\n return axios.get('api/v1/database/patients/search', { params: { q } });\r\n}\r\n\r\nexport const exportToExcel = (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n\r\n return axios.get(queryString ? `api/v1/database/patients/exportToExcel?${queryString}` : 'api/v1/database/patients/exportToExcel', {\r\n responseType: 'arraybuffer'\r\n });\r\n};\r\n\r\nexport const syncPatients = (tenantId) => {\r\n return axios.post(`api/v1/database/sync/${tenantId}`, tenantId);\r\n};","import PropTypes from 'prop-types';\r\nimport React, { Fragment, useState } from 'react';\r\nimport { FormGroup, InputGroup } from 'react-bootstrap';\r\nimport { AsyncTypeahead, Highlighter } from 'react-bootstrap-typeahead';\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\nimport { searchPatients } from '../../api/database';\r\nimport { Search } from '../Icons/Icons';\r\nimport { HandleApiError } from \"../Notifications/APIErrorHandler\";\r\nimport '../../assets/sass/lbd/_asyncTypeahead.scss';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const PatientPicker = (props) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const { t } = useTranslation();\r\n\r\n const handleChange = value => {\r\n if (value.length > 0)\r\n props.onChange(props.name, value[0]);\r\n else\r\n props.onChange(props.name, null);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n const onSearch = (query) => {\r\n setIsLoading(true);\r\n\r\n searchPatients(query).then(response => {\r\n setOptions(response.data);\r\n setIsLoading(false);\r\n\r\n }).catch(error => {\r\n setIsLoading(false);\r\n setOptions([]);\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n const renderMenuItemChildren = (option, { text }, index) => {\r\n return (\r\n \r\n \r\n {option.fullName}\r\n \r\n
    \r\n \r\n {t(\"medicalRecords.patientInfo.medicalRecord\")}: {option.medicalRecordNumber}, {option.identificationType}: {option.identificationNumber}\r\n \r\n
    \r\n
    \r\n )\r\n };\r\n\r\n const typeahead = ( true}\r\n options={options}\r\n isLoading={isLoading}\r\n clearButton={true}\r\n highlightOnlyResult={true}\r\n allowNew={false}\r\n delay={1000}\r\n\r\n onSearch={onSearch}\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n />);\r\n\r\n if (props.showSearchIcon)\r\n return (\r\n \r\n \r\n \r\n {typeahead}\r\n \r\n \r\n );\r\n\r\n return typeahead;\r\n}\r\n\r\nPatientPicker.propTypes = {\r\n multiple: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n minLength: PropTypes.number,\r\n showSearchIcon: PropTypes.bool,\r\n};\r\n\r\nPatientPicker.defaultProps = {\r\n multiple: false,\r\n onChange: () => { },\r\n minLength: 2,\r\n showSearchIcon: false,\r\n};","import { useState, useEffect } from \"react\";\r\nimport { HandleApiError } from \"../../components/Notifications/APIErrorHandler\";\r\nimport { getUser, getMasterData, getPractitioners, getUsers, getUserInfo, getUserInfoSignData } from \"../../api/identity\";\r\n\r\nexport const useUsers = (query) => {\r\n const [users, setUsers] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n setIsLoading(true);\r\n var response = await getUsers(query);\r\n\r\n if (isSubscribed) {\r\n const paginatedResult = response.data;\r\n setTotalSize(paginatedResult.count);\r\n setUsers(paginatedResult.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query]);\r\n\r\n return [users, isLoading, totalSize];\r\n}\r\n\r\nexport const usePractitioners = (query) => {\r\n const [users, setUsers] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n setIsLoading(true);\r\n if (!query) {\r\n query = {\r\n pagination: {\r\n sizePerPage: 100,\r\n },\r\n }\r\n }\r\n var response = await getPractitioners(query);\r\n\r\n if (isSubscribed) {\r\n const paginatedResult = response.data;\r\n // console.log(\"GET Users: \", paginatedResult.data);\r\n\r\n setTotalSize(paginatedResult.count);\r\n setUsers(paginatedResult.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return [users, isLoading, totalSize];\r\n}\r\n\r\nexport const useUser = (userId) => {\r\n const [user, setUser] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n setIsLoading(true);\r\n var res = await getUser(userId);\r\n\r\n if (isSubscribed) {\r\n setUser(res.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [userId]);\r\n\r\n return [isLoading, user];\r\n}\r\n\r\nexport const useUserInfo = (userId) => {\r\n const [user, setUser] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => {\r\n\r\n try {\r\n setIsLoading(true);\r\n var res = await getUserInfo(userId);\r\n\r\n if (isSubscribed) {\r\n setUser(res.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n if (userId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n\r\n }, [userId]);\r\n\r\n return [isLoading, user];\r\n}\r\n\r\nexport const useUserInfoSignData = (userId) => {\r\n const [user, setUser] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => {\r\n\r\n try {\r\n setIsLoading(true);\r\n var res = await getUserInfoSignData(userId);\r\n\r\n if (isSubscribed) {\r\n setUser(res.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n if (userId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n\r\n }, [userId]);\r\n\r\n return [isLoading, user];\r\n}\r\n\r\nexport const usePersonMasterData = () => {\r\n const [masterData, setMasterData] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getMasterData().then(res => {\r\n setMasterData(res.data);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n fetchData();\r\n }, []);\r\n\r\n return [isLoading, masterData];\r\n}\r\n","import React from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport Select from 'react-select'\r\nimport { usePractitioners } from \"../../containers/Users/Hooks\";\r\n\r\nexport const PractitionerSelect = (props) => {\r\n\r\n const [users, isLoading] = usePractitioners({\r\n pagination: {\r\n sizePerPage: 100,\r\n },\r\n onlyDoctor: props.onlyDoctor\r\n });\r\n\r\n const handleChange = value => {\r\n if (props.onChange)\r\n props.onChange(props.name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nPractitionerSelect.defaultProps = {\r\n getOptionLabel: (option) => option.fullName,\r\n getOptionValue: (option) => option.userId,\r\n isClearable: false,\r\n onlyDoctor: true\r\n};\r\nPractitionerSelect.propTypes = {\r\n isMulti: PropTypes.bool,\r\n optionValue: PropTypes.func,\r\n optionLabel: PropTypes.func,\r\n isClearable: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n onlyDoctor: PropTypes.bool\r\n};","import PropTypes from 'prop-types';\r\nimport React, { Fragment, useState } from 'react';\r\nimport { FormGroup, InputGroup } from 'react-bootstrap';\r\nimport { AsyncTypeahead, Highlighter } from 'react-bootstrap-typeahead';\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\nimport { searchProtocolsAPI } from '../../api/agenda';\r\nimport '../../assets/sass/lbd/_asyncTypeahead.scss';\r\nimport { Search } from '../Icons/Icons';\r\nimport { HandleApiError } from \"../Notifications/APIErrorHandler\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const ProtocolPicker = (props) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const { t } = useTranslation();\r\n\r\n const handleChange = value => {\r\n if (value.length > 0)\r\n props.onChange(props.name, value);\r\n else\r\n props.onChange(props.name, null);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n const onSearch = async (query) => {\r\n setIsLoading(true);\r\n try {\r\n let response = await searchProtocolsAPI(query);\r\n setOptions(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n setOptions([]);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const renderMenuItemChildren = (option, { text }, index) => {\r\n return (\r\n \r\n \r\n {option.title}\r\n \r\n
    \r\n \r\n {option.specialty &&
    {t(\"person.speciality\")}: {option.specialty.description}
    }\r\n {option.protocolNumber &&
    {t(\"protocols.brief.protocolNumber\")}: {option.protocolNumber}
    }\r\n
    \r\n
    \r\n
    \r\n )\r\n };\r\n\r\n const typeahead = ( true}\r\n options={options}\r\n isLoading={isLoading}\r\n clearButton={true}\r\n highlightOnlyResult={true}\r\n allowNew={false}\r\n delay={1000}\r\n onSearch={onSearch}\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n />);\r\n\r\n if (props.showSearchIcon)\r\n return (\r\n \r\n \r\n \r\n {typeahead}\r\n \r\n \r\n );\r\n\r\n return typeahead;\r\n}\r\n\r\nProtocolPicker.propTypes = {\r\n multiple: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n minLength: PropTypes.number,\r\n showSearchIcon: PropTypes.bool,\r\n onlyDoctor: PropTypes.bool,\r\n};\r\n\r\nProtocolPicker.defaultProps = {\r\n multiple: false,\r\n onChange: () => { },\r\n minLength: 2,\r\n showSearchIcon: false,\r\n};","import React from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport i18n from 'i18next';\r\n\r\nconst Msg = ({ closeToast, message }) => (\r\n
    \r\n {message}\r\n
    \r\n)\r\nconst MsgWithInfo = ({ message, info }) => (\r\n
    \r\n {message}: {info}\r\n
    \r\n)\r\n\r\nexport function Warning(messageKey) {\r\n\r\n let message = i18n.t(messageKey);\r\n\r\n toast.warning();\r\n}\r\n\r\nexport function Success(messageKey) {\r\n\r\n let message = i18n.t(messageKey);\r\n\r\n toast.success();\r\n}\r\n\r\nexport function ErrorMessage(messageKey) {\r\n\r\n const message = i18n.t(messageKey);\r\n\r\n toast.error();\r\n}\r\n\r\nexport function SuccessWithInfo(messageKey, info) {\r\n\r\n let message = i18n.t(messageKey);\r\n\r\n toast.success();\r\n}","import React from \"react\";\r\nimport { Button } from 'react-bootstrap'\r\nimport PropTypes from 'prop-types';\r\nimport * as FileSaver from 'file-saver';\r\n\r\nimport { Success } from \"../Notifications/Notifications\"\r\nimport { HandleApiError } from \"../Notifications/APIErrorHandler\"\r\n\r\nimport { withTranslation } from 'react-i18next';\r\nimport { IconSVG } from \"../Icons/Icons\";\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\n\r\nclass ExportToExcel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClick = this.onClick.bind(this);\r\n }\r\n\r\n async onClick() {\r\n\r\n // Obtengo datos a exportar\r\n this.props.exportToExcel(this.props.filters).then(response => {\r\n\r\n const data = new Blob([response.data], { type: response.headers['content-type'] });\r\n\r\n var disposition = response.headers[\"content-disposition\"];\r\n var filename = \"Turnos.xslx\";\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, '');\r\n }\r\n }\r\n\r\n FileSaver.saveAs(data, filename);\r\n\r\n Success(\"commons.exported\", this.props.t)\r\n }).catch(error => {\r\n HandleApiError(error, this.props.t);\r\n });\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default withTranslation()(ExportToExcel);\r\n\r\nExportToExcel.propTypes = {\r\n filters: PropTypes.object.isRequired,\r\n exportToExcel: PropTypes.func.isRequired\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nexport const YesNoNotApply = (props) => {\r\n\r\n const { t } = useTranslation();\r\n const handleClick = event => {\r\n switch (event.currentTarget.name) {\r\n case \"selected_yes\":\r\n props.onChange(props.name, \"yes\");\r\n break;\r\n case \"selected_no\":\r\n props.onChange(props.name, \"no\");\r\n break;\r\n case \"selected_na\":\r\n props.onChange(props.name, \"n/a\");\r\n break;\r\n default:\r\n props.onChange(props.name, null);\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n \r\n \r\n
    \r\n {\r\n props.isClearable && !props.disabled ?\r\n {t('commons.clear')}\r\n : null\r\n }\r\n \r\n );\r\n}\r\n\r\nYesNoNotApply.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n isClearable: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n};\r\n\r\nexport const YesNo = (props) => {\r\n\r\n const { t } = useTranslation();\r\n const handleClick = event => {\r\n switch (event.currentTarget.name) {\r\n case \"selected_yes\":\r\n props.onChange(props.name, true);\r\n break;\r\n case \"selected_no\":\r\n props.onChange(props.name, false);\r\n break;\r\n default:\r\n props.onChange(props.name, null);\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n \r\n
    \r\n {\r\n props.isClearable && !props.disabled ?\r\n {t('commons.clear')}\r\n : null\r\n }\r\n \r\n );\r\n}\r\n\r\nYesNo.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n isClearable: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n};","import { ErrorMessage } from 'formik';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { Button, Col, ControlLabel, FormControl, FormGroup, Grid, Modal, Row } from 'react-bootstrap';\r\nimport { default as Datetime } from 'react-datetime';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { getPatient, getPractitionersByProtocol } from '../../api/agenda';\r\nimport { getProtocols } from '../../api/protocol';\r\nimport { useAgenda, useMedicalServices } from '../../containers/Agenda/Hooks';\r\nimport Card from '../Cards/Card';\r\nimport { CustomFormControl } from '../CustomControls/CustomFormControl';\r\nimport { CustomSelect } from \"../CustomControls/CustomSelect\";\r\nimport { PatientPicker } from '../CustomControls/PatientPicker';\r\nimport { YesNo } from '../CustomControls/YesNoControls';\r\nimport { Save } from \"../Icons/Icons\";\r\nimport { HandleApiError, HandleError } from '../Notifications/APIErrorHandler';\r\nimport { ModalSpinner } from '../Utils/Loaders';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { MedicalServiceInfo } from './MedicalServiceInfo';\r\nimport { colourStyles, getAvailableTimes, isValidEventStart, validateAvailabilityDate } from './Utils';\r\n\r\nexport const AppointmentForm = (props) => {\r\n const {\r\n values,\r\n isSubmitting,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleSubmit,\r\n resetForm,\r\n formType,\r\n } = props;\r\n const { t } = useTranslation();\r\n\r\n const calendarView = useRef(\"days\");\r\n const [protocols, setProtocols] = useState([]);\r\n const [types, setTypes] = useState([]);\r\n const [medicalInsurances, setMedicalInsurances] = useState([]);\r\n const [isEditLoading, setIsEditLoading] = useState(formType === \"edit\");\r\n const [isLoading, setIsLoading,\r\n practitioners, getPractitioners, setPractitioners,\r\n availability, getAvailability, setAvailability] = useAgenda();\r\n const [isMSLoading, setIsMSLoading, , , ,\r\n medicalServices, getMedicalServices, setMedicalServices,\r\n medicalServicePrice, getMedicalServicePrice, setMedicalServicePrice] = useMedicalServices();\r\n const [selectedProtocol, setSelectedProtocol] = useState(null);\r\n\r\n const [availableTimes, setAvailableTimes] = useState([]);\r\n\r\n useEffect(() => {\r\n if (formType === \"edit\") { // Estoy editando.\r\n _getMedicalServices();\r\n\r\n _getMedicalServicesData(values.medicalServiceId, values.medicalInsuranceId, values.medicalInsurancePlanId);\r\n\r\n _getPatientData(null, null, values.patient.medicalRecordNumber);\r\n\r\n _getPractitionersForMedicalService(values.practitionerId, values.medicalInsuranceId);\r\n\r\n _getAvailability(\r\n values.practitioner.userId,\r\n values.medicalServiceId ?? 0,\r\n values.medicalInsuranceId ?? 0,\r\n values.medicalInsurancePlanId ?? 0,\r\n values.isFirstTime ?? false,\r\n values.visitType?.code?.toUpperCase() === \"OVERSHIFT\"\r\n );\r\n\r\n if ((values.visitType?.code?.toLowerCase() === \"protocol\" || values.visitType?.code?.toLowerCase() === \"prescreening\"))\r\n _getAllProtocols();\r\n setIsEditLoading(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (formType === \"edit\") { // Estoy editando.\r\n setSelectedProtocol(protocols.find(x => x.id === values.protocol?.protocolId))\r\n }\r\n }, [protocols]);\r\n\r\n //#region Private\r\n const _getPatientData = async (controlName, selected, medicalRecordNumber) => {\r\n\r\n // Obtengo datos del paciente: Si está en protocolo, Proyecto y muestro los Tipos Disponibles. \r\n try {\r\n const response = await getPatient(medicalRecordNumber ?? selected.medicalRecordNumber);\r\n const patient = response.data;\r\n if (controlName)\r\n setFieldValue(controlName, patient);\r\n\r\n var options = props.masterdata;\r\n if (!patient.projects || patient.projects.length === 0)\r\n options = options.filter(x => x.code?.toLowerCase() !== \"project\");\r\n\r\n if (!patient.protocols || patient.protocols.length === 0)\r\n options = options.filter(x => x.code?.toLowerCase() !== \"protocol\");\r\n\r\n setTypes(selected === null ? [] : options);\r\n setTypes(options);\r\n //setProjects(patient.projects);\r\n setProtocols(patient.protocols);\r\n let insurances = [{ id: 0, title: \"Particular\", plan: 0 }];\r\n if (patient.medicalInsurance) {\r\n if (patient.medicalInsurancePlan)\r\n insurances.push({ id: patient.medicalInsuranceId, title: `${patient.medicalInsurance} - ${patient.medicalInsurancePlan}`, plan: patient.medicalInsurancePlanId });\r\n else\r\n insurances.push({ id: patient.medicalInsuranceId, title: `${patient.medicalInsurance}`, plan: patient.medicalInsurancePlanId });\r\n }\r\n\r\n setMedicalInsurances(insurances);\r\n\r\n if (formType === \"edit\") {\r\n let insuranceId = values.medicalInsuranceId ?? 0;\r\n setFieldValue(\"medicalInsurance\", insurances.filter(x => x.id == insuranceId));\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n const _getProtocolPractitioners = async (protocolId) => {\r\n // Obtengo Profesionales del Protocolo.\r\n try {\r\n setIsLoading(true);\r\n const response = await getPractitionersByProtocol(protocolId);\r\n setPractitioners(response.data.data?.filter(x => x.speciality));\r\n setIsLoading(false);\r\n } catch (error) {\r\n HandleApiError(error);\r\n console.log(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n const _getAllProtocols = async () => {\r\n // Obtengo todos los Protocolos.\r\n try {\r\n const response = await getProtocols({\r\n pagination: { page: 1, sizePerPage: 1000, totalSize: 0 },\r\n sort: { sortField: \"Created\", sortOrder: \"desc\" },\r\n filters: { notStatusId: 4 }\r\n });\r\n if (response.data)\r\n return response.data.data\r\n return [];\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n console.log(error);\r\n return [];\r\n }\r\n }\r\n\r\n const _getMedicalServices = async () => {\r\n // Obtengo Médicos que atiendan al Servicio Médico.\r\n try {\r\n setIsMSLoading(true);\r\n var res = await getMedicalServices();\r\n setMedicalServices(res.data?.data);\r\n if (formType === \"edit\") {\r\n let serviceId = values.medicalServiceId ?? 0;\r\n setFieldValue(\"medicalService\", res.data?.data.filter(x => x.id == serviceId));\r\n }\r\n setIsMSLoading(false);\r\n }\r\n catch (ex) {\r\n console.log(ex)\r\n setIsMSLoading(false);\r\n }\r\n }\r\n\r\n const _getMedicalServicesData = async (medicalServiceId, medicalInsuranceId, medicalInsurancePlanId) => {\r\n // Obtengo Servicios\r\n if (!medicalServiceId) // && !medicalInsuranceId)\r\n return;\r\n\r\n try {\r\n setIsMSLoading(true);\r\n var res2 = await getMedicalServicePrice(medicalServiceId, medicalInsuranceId, medicalInsurancePlanId ?? 0);\r\n setMedicalServicePrice(res2.data.data);\r\n setIsMSLoading(false);\r\n }\r\n catch (ex) {\r\n console.log(ex)\r\n setIsMSLoading(false);\r\n }\r\n }\r\n\r\n const _getPractitionersForMedicalService = async (practitionerId, medicalInsuranceId) => {\r\n // Obtengo Médicos que atiendan al Servicio Médico.\r\n if (!practitionerId) {\r\n setPractitioners([]);\r\n return;\r\n }\r\n\r\n try {\r\n setIsLoading(true);\r\n var res = await getPractitioners(practitionerId, medicalInsuranceId);\r\n var users = res.data?.data.map(x => x.practitioner).filter(x => !x.practitioner); // Formateo data\r\n setPractitioners(users ?? []);\r\n setIsLoading(false);\r\n }\r\n catch (ex) {\r\n console.log(ex)\r\n setPractitioners([]);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n const _getAvailability = async (userId, medicalServiceId, medicalInsuranceId, medicalInsurancePlanId, isFirstTime, isOverShift) => {\r\n // Obtengo disponibilidad del médico. \r\n try {\r\n setIsLoading(true);\r\n var res = await getAvailability(userId, medicalServiceId, medicalInsuranceId, medicalInsurancePlanId, isFirstTime, isOverShift);\r\n setAvailability(res.data);\r\n setIsLoading(false);\r\n }\r\n catch (ex) {\r\n console.log(ex)\r\n setIsLoading(false);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handlePatientChange = (controlName, selected) => {\r\n\r\n if (selected !== null)\r\n _getPatientData(controlName, selected);\r\n else {\r\n setFieldValue(\"visitType\", null);\r\n setFieldValue(\"isFirstTime\", false);\r\n setFieldValue(\"medicalInsurance\", null);\r\n setFieldValue(\"medicalService\", null);\r\n setFieldValue(\"practitioner\", null);\r\n setFieldValue(\"selectedDate\", null);\r\n setFieldValue(\"start\", null);\r\n setFieldValue(\"end\", null);\r\n resetForm();\r\n }\r\n }\r\n\r\n const handleTypeChange = async (controlName, selectedValue) => {\r\n\r\n if (selectedValue === null)\r\n return;\r\n\r\n setFieldValue(controlName, selectedValue);\r\n setFieldValue(\"isFirstTime\", false);\r\n setFieldValue(\"medicalInsurance\", null);\r\n setFieldValue(\"medicalService\", null);\r\n setFieldValue(\"practitioner\", null);\r\n setFieldValue(\"selectedDate\", null);\r\n setFieldValue(\"start\", null);\r\n setFieldValue(\"end\", null);\r\n\r\n if (selectedValue.code?.toLowerCase() === \"protocol\") {\r\n if (protocols.length === 1) {\r\n if (values.protocol)\r\n _getProtocolPractitioners(values.protocol.id);\r\n }\r\n }\r\n\r\n if (selectedValue.code?.toLowerCase() === \"prescreening\") {\r\n var allProtocols = await _getAllProtocols();\r\n console.log(allProtocols)\r\n setProtocols(allProtocols);\r\n }\r\n\r\n _getMedicalServices();\r\n }\r\n\r\n const handleProtocolChange = (controlName, selectedValue) => {\r\n setFieldValue(controlName, selectedValue);\r\n\r\n if (selectedValue)\r\n _getProtocolPractitioners(selectedValue.id);\r\n }\r\n\r\n const handleMedicalInsurance = async (controlName, selectedValue) => {\r\n setFieldValue(controlName, selectedValue);\r\n\r\n setFieldValue(\"medicalService\", null);\r\n setFieldValue(\"practitioner\", null);\r\n setFieldValue(\"selectedDate\", null);\r\n setFieldValue(\"start\", null);\r\n setFieldValue(\"end\", null);\r\n }\r\n\r\n const handleMedicalService = async (controlName, selectedValue) => {\r\n setFieldValue(controlName, selectedValue);\r\n\r\n if (values.practitioner) {\r\n setFieldValue(\"practitioner\", null);\r\n setFieldValue(\"selectedDate\", null);\r\n setFieldValue(\"start\", null);\r\n setFieldValue(\"end\", null);\r\n }\r\n\r\n // Obtengo Costos del Servicio Médico.\r\n _getMedicalServicesData(selectedValue?.id, values.medicalInsurance?.id, values.medicalInsurance?.plan);\r\n\r\n // Obtengo Médicos que atiendan al Servicio Médico.\r\n _getPractitionersForMedicalService(selectedValue?.id, values.medicalInsurance?.id);\r\n }\r\n\r\n const handlePractitionerChange = async (controlName, selectedValue) => {\r\n setFieldValue(controlName, selectedValue);\r\n setAvailability([]);\r\n\r\n // Obtengo disponibilidad del médico. \r\n _getAvailability(selectedValue.userId,\r\n values.medicalService?.id,\r\n values.medicalInsurance?.id,\r\n values.medicalInsurance?.plan,\r\n values.isFirstTime ?? false,\r\n values.visitType?.code?.toUpperCase() === \"OVERSHIFT\");\r\n }\r\n\r\n const handleDate = (date) => {\r\n if (!moment.isMoment(date))\r\n return;\r\n\r\n setFieldValue(\"selectedDate\", date);\r\n\r\n if (values.visitType.code?.toLowerCase() === \"order\") {\r\n let times = getAvailableTimes('08:00', '19:40', 20);\r\n setAvailableTimes(times);\r\n return;\r\n }\r\n else {\r\n var availableDate = availability.availableDates.filter(x => moment(x.date).format('DD/MM/YYYY') === date.format('DD/MM/YYYY') && x.available);\r\n if (availableDate.length > 0) {\r\n var availableTimesAux = availableDate[0].availableAppointments.filter(x => x.available);\r\n setAvailableTimes(availableTimesAux);\r\n return;\r\n }\r\n }\r\n\r\n setAvailableTimes([]);\r\n }\r\n\r\n const handleTime = (_controlName, selectedValue) => {\r\n\r\n if (values.selectedDate) {\r\n let datastart = values.selectedDate.toDate();\r\n let dataend = values.selectedDate.toDate();\r\n\r\n datastart.setHours(selectedValue.appointmentInit.split(\":\")[0]);\r\n datastart.setMinutes(selectedValue.appointmentInit.split(\":\")[1]);\r\n dataend.setHours(selectedValue.appointmentEnd.split(\":\")[0]);\r\n dataend.setMinutes(selectedValue.appointmentEnd.split(\":\")[1]);\r\n\r\n setFieldValue(\"start\", datastart);\r\n setFieldValue(\"end\", dataend);\r\n }\r\n }\r\n\r\n const handleAvailabilityDate = (current, selected) => {\r\n if (calendarView.current !== \"days\" || values.visitType?.code?.toLowerCase() === \"order\")\r\n return true;\r\n\r\n return validateAvailabilityDate(current, selected, availability)\r\n }\r\n\r\n const onNavigate = (selectedView) => {\r\n calendarView.current = selectedView;\r\n }\r\n\r\n const onSubmit = (e) => {\r\n e.preventDefault();\r\n if (!isValidEventStart(values.start)) {\r\n HandleError(\"calendarErrors.Event_Create_StartLowerThanNow\");\r\n return;\r\n }\r\n else {\r\n handleSubmit();\r\n }\r\n }\r\n\r\n if (isEditLoading)\r\n return ;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n formType === \"new\" ?\r\n t('calendar.newAppointmentTitle') :\r\n <>\r\n {t('calendar.editAppointmentTitle')}: {values.patient?.fullName} {values.start && moment(values.start, 'HH:mm').format('HH:mm')} - {values.end && moment(values.end, 'HH:mm').format('HH:mm')}\r\n }\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"calendar.patient\")}\r\n {\r\n formType === \"edit\" ? :\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n formType !== \"edit\" &&\r\n <>\r\n
    \r\n \r\n {t(\"calendar.newPatient\")}\r\n \r\n \r\n }\r\n \r\n
    \r\n \r\n \r\n \r\n {t(\"calendar.visitType\")}\r\n \r\n \r\n \r\n \r\n {\r\n values.visitType && (values.visitType.code?.toLowerCase() !== \"studies\" && values.visitType.code?.toLowerCase() !== \"order\") &&\r\n \r\n {\r\n values.visitType.code?.toLowerCase() == \"protocol\" ?\r\n {t(\"calendar.isLongVisit\")} :\r\n {t(\"calendar.isFirstTime\")}\r\n }\r\n
    \r\n \r\n \r\n
    \r\n }\r\n \r\n
    \r\n\r\n {\r\n values.visitType && (values.visitType.code?.toLowerCase() === \"protocol\" || values.visitType.code?.toLowerCase() === \"prescreening\") &&\r\n \r\n \r\n \r\n {t(\"calendar.protocol\")}\r\n \r\n \r\n \r\n \r\n }\r\n\r\n {\r\n values.visitType && (values.visitType.code?.toLowerCase() !== \"protocol\" && values.visitType.code?.toLowerCase() !== \"prescreening\") &&\r\n \r\n \r\n \r\n {t(\"calendar.appointmentType\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"calendar.medicalServiceInfo.medicalService\")}\r\n x.id == values.medicalServiceId) : values.medicalService}\r\n placeholder={t('commons.select')}\r\n isDisabled={!values.patient || !values.medicalInsurance}\r\n options={medicalServices}\r\n isLoading={isMSLoading}\r\n getOptionLabel={(option) => option.serviceNameReference}\r\n getOptionValue={(option) => option.id}\r\n onChange={handleMedicalService}\r\n isMulti={false} />\r\n \r\n \r\n \r\n }\r\n {\r\n values.visitType && medicalServicePrice && (values.visitType.code?.toLowerCase() !== \"protocol\" && values.visitType.code?.toLowerCase() !== \"prescreening\") &&\r\n \r\n } />\r\n }\r\n \r\n \r\n \r\n {t(\"calendar.practitioner\")}\r\n option.fullName}\r\n getOptionValue={(option) => option.userId}\r\n onChange={handlePractitionerChange}\r\n isMulti={false} />\r\n \r\n \r\n\r\n {\r\n values.practitioner &&\r\n <>\r\n \r\n \r\n \r\n {t(\"calendar.dayAndTime\")}\r\n {\r\n formType === \"edit\" &&\r\n <> {t(\"calendar.actual\")}: {values.start && moment(values.start, 'HH:mm').format('HH:mm')} - {values.end && moment(values.end, 'HH:mm').format('HH:mm')}\r\n }\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n !availableTimes || availableTimes.length === 0 ?\r\n {t(\"calendarNotifications.noAppointmentAvailable\")} :\r\n option.appointmentInit}\r\n getOptionValue={(option) => option.appointmentInit}\r\n options={availableTimes}\r\n onChange={handleTime}\r\n isMulti={false} />\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {t('calendar.notes')}\r\n \r\n \r\n \r\n \r\n \r\n {t('calendar.location')}\r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n {t(\"buttons.save\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nAppointmentForm.propTypes = {\r\n masterdata: PropTypes.array.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n currentPatient: PropTypes.string,\r\n formType: PropTypes.string,\r\n};","import * as Yup from 'yup';\r\nimport { setLocale } from 'yup';\r\n\r\nsetLocale({\r\n mixed: {\r\n required: ({ fieldName }) => ({ key: 'formValidation.field_required', values: { fieldName } })\r\n },\r\n string: {\r\n min: ({ min }) => ({ key: 'formValidation.field_too_short', values: { min } }),\r\n max: ({ max }) => ({ key: 'formValidation.field_too_big', values: { max } }),\r\n email: 'formValidation.field_mail_invalid',\r\n matches: 'formValidation.field_format_invalid',\r\n required: 'formValidation.field_required'\r\n },\r\n number: {\r\n min: ({ min }) => ({ key: 'formValidation.number_field_too_short', values: { min } }),\r\n max: ({ max }) => ({ key: 'formValidation.number_field_too_big', values: { max } }),\r\n },\r\n date: {\r\n min: ({ min }) => ({ key: 'formValidation.date_gt', values: { min } }),\r\n max: ({ max }) => ({ key: 'formValidation.date_lt', values: { max } }),\r\n },\r\n});\r\n\r\nexport const getAgendaAppointmentSchema = () => {\r\n return Yup.object().shape({\r\n //selectedDate: Yup.date().nullable().required(),\r\n start: Yup.date().nullable().required(),\r\n visitType: Yup.object().nullable().required(),\r\n isFirstTime: Yup.object()\r\n .when(\"visitType\", (visitType) => {\r\n if (visitType && (visitType?.code?.toLowerCase() !== \"studies\" && visitType?.code?.toLowerCase() !== \"order\"))\r\n return Yup.bool().nullable().required();\r\n else\r\n return Yup.bool().nullable();\r\n }),\r\n });\r\n}\r\n\r\nexport const getPatientSchema = () => {\r\n\r\n return Yup.object().shape({\r\n given: Yup.string().nullable().required().min(2).max(50),\r\n familyName: Yup.string().nullable().required().min(2).max(50),\r\n identificationType: Yup.string().nullable().required(),\r\n identificationNumber: Yup.string().matches(/^[0-9]*$/).nullable().required(),\r\n birthDate: Yup.date().nullable().required().max(new Date(), { key: 'formValidation.date_lt' }),\r\n gender: Yup.string().nullable().required(),\r\n address: Yup.object().shape({\r\n fullAddress: Yup.string().nullable()//.required(),\r\n }),\r\n telecom: Yup.object().shape({\r\n cellPhone: Yup.string().matches(/^(?=.*[0-9])[- +()0-9]+$/).nullable(),\r\n phone: Yup.string().matches(/^(?=.*[0-9])[- +()0-9]+$/).nullable(),\r\n email: Yup.string().nullable().email()\r\n }),\r\n relatedContacts: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n relationship: Yup.string().required().min(2).max(20),\r\n given: Yup.string().required().min(2).max(50),\r\n familyName: Yup.string().required().min(2).max(50),\r\n phone: Yup.string().required(),\r\n email: Yup.string().email().required(),\r\n streetName: Yup.string().required(),\r\n streetNumber: Yup.string().matches(/^[0-9]*$/).required()\r\n })\r\n ),\r\n medicalInsuranceInfo: Yup.object().shape({\r\n medicalInsurance: Yup.object().nullable(),\r\n medicalInsuranceNumber: Yup.string()\r\n .when([\"medicalInsurance\"], (medicalInsurance) => {\r\n if (medicalInsurance)\r\n return Yup.string().nullable().required()\r\n return Yup.string().nullable()\r\n }),\r\n }),\r\n });\r\n}\r\n\r\nexport const getUserSchema = () => {\r\n\r\n return Yup.object().shape({\r\n given: Yup.string().nullable().required(),\r\n familyName: Yup.string().nullable().required(),\r\n userName: Yup.string().matches(/^(?=[a-zA-Z0-9._]{3,20}$)(?!.*[_.]{2})[^_.].*[^_.]$/,\r\n {\r\n message: 'El nombre de usuario no debe contener espacios, no debe contener caracteres especiales y debe tener entre 3 y 20 caracteres. ',\r\n //excludeEmptyString: true,\r\n }).nullable().required(),\r\n workEmail: Yup.string().nullable().email().required(),\r\n //password: Yup.string().matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@!\"#$%&\\/()=])[A-Za-z\\d@!\"#$%&\\/()=]{6,}$/,\r\n // {\r\n // message: 'La contraseña debe contener Mayúsculas, Minúsculas, Números, Simbolos y mínimo 6 caracteres. ',\r\n // //excludeEmptyString: true,\r\n // }).nullable().required(),\r\n //confirmPassword: Yup.string().oneOf([Yup.ref('password'), null], 'Las contraseñas deben ser iguales'),\r\n role: Yup.object().nullable().required(),\r\n });\r\n}\r\n\r\nexport const getUserProfileSchema = () => {\r\n\r\n return Yup.object().shape({\r\n given: Yup.string().nullable().required().min(2).max(50),\r\n familyName: Yup.string().nullable().required().min(2).max(50),\r\n identificationType: Yup.string().nullable().required(),\r\n identificationNumber: Yup.string().nullable().required(),\r\n birthDate: Yup.date().nullable().required().max(new Date(), { key: 'formValidation.date_lt' }),\r\n nationality: Yup.string().nullable().required(),\r\n gender: Yup.string().nullable().required(),\r\n maritalStatus: Yup.string().nullable().required(),\r\n address: Yup.object().shape({\r\n fullAddress: Yup.string().nullable().required(),\r\n }),\r\n telecom: Yup.object().shape({\r\n cellPhone: Yup.string().nullable().required(),\r\n email: Yup.string().nullable().email().required()\r\n }),\r\n password: Yup.string()\r\n .when(\"rsaPublicCert\", (publicCert) => {\r\n if (!publicCert)\r\n return Yup.string();\r\n else\r\n return Yup.string().nullable().required();\r\n }),\r\n });\r\n}\r\n\r\nexport const getTenantSchema = () => {\r\n\r\n return Yup.object().shape({\r\n tenantName: Yup.string().nullable().required(),\r\n tenantDomain: Yup.string().nullable().required(),\r\n servicePlan: Yup.string().nullable().required(),\r\n isActive: Yup.boolean().nullable().required(),\r\n });\r\n}\r\n\r\nexport const getSettingsSchema = () => {\r\n //resultItems\r\n return Yup.object().shape({\r\n name: Yup.string().nullable().required(),\r\n resultItems: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.object().nullable().required(),\r\n unit: Yup.object().nullable().required(),\r\n })\r\n )\r\n });\r\n}\r\n\r\nconst dateRangeYup = {\r\n fromDay: Yup.number().nullable(),\r\n fromMonth: Yup.number().nullable(),\r\n fromYear: Yup.number().required().nullable(),\r\n toYear: Yup\r\n .number()\r\n .when([\"fromYear\"], (fromYear) => {\r\n return Yup.number().min(fromYear, { key: 'formValidation.date_range' }).nullable();\r\n }),\r\n toMonth: Yup\r\n .number()\r\n .when([\"fromYear\", \"fromMonth\", \"toYear\"], (fromYear, fromMonth, toYear) => {\r\n if (fromYear == toYear && fromMonth)\r\n return Yup.number().min(fromMonth, { key: 'formValidation.date_range' });\r\n return Yup.number().nullable();\r\n\r\n }),\r\n toDay: Yup\r\n .number()\r\n .when([\"fromYear\", \"fromMonth\", \"fromDay\", \"toYear\", \"toMonth\"], (fromYear, fromMonth, fromDay, toYear, toMonth) => {\r\n if (fromYear == toYear && fromMonth == toMonth && fromDay)\r\n return Yup.number().min(fromDay, { key: 'formValidation.date_range' });\r\n return Yup.number().nullable();\r\n }),\r\n}\r\nexport const getMedicalRecordsSchema = () => {\r\n\r\n return {\r\n adverseEvent: Yup.object().shape({\r\n adverseEvents: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.object().required().nullable().default(null),\r\n ...dateRangeYup\r\n })\r\n )\r\n }),\r\n drugs: Yup.object().shape({\r\n drugs: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.object().nullable().required(),\r\n routeOfAdministration: Yup.object().nullable().required(),\r\n reason: Yup.string().required(),\r\n dose: Yup.string().nullable().required(),\r\n ...dateRangeYup\r\n })\r\n )\r\n }),\r\n drugsEdit: Yup.object().shape({\r\n drugs: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.object().nullable().required(),\r\n routeOfAdministration: Yup.object().nullable().required(),\r\n dose: Yup.string().nullable().required(),\r\n ...dateRangeYup\r\n })\r\n )\r\n }),\r\n prescriptionsEdit: Yup.object().shape({\r\n prescriptionDate: Yup.string().nullable().required(),\r\n prescriptions: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n packageCount: Yup.number().nullable().required(),\r\n drug: Yup.object().nullable().required(),\r\n frequency: Yup.object().nullable().required(),\r\n unit: Yup.object().nullable().required(),\r\n posology: Yup.string().nullable().required(),\r\n })\r\n )\r\n }),\r\n orders: Yup.object().shape({\r\n orderDate: Yup.string().nullable().required(),\r\n orders: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n procedure: Yup.object().nullable().required()\r\n })\r\n )\r\n }),\r\n procedures: Yup.object().shape({\r\n procedures: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.string().required(),\r\n reason: Yup.string().required(),\r\n ...dateRangeYup\r\n })\r\n )\r\n }),\r\n proceduresEdit: Yup.object().shape({\r\n procedures: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.string().required(),\r\n ...dateRangeYup\r\n })\r\n )\r\n }),\r\n laboratories: Yup.object().shape({\r\n laboratories: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.object().nullable().required(),\r\n result: Yup.string().nullable().required(),\r\n unit: Yup.object().nullable().required(),\r\n //significance: Yup.object().nullable().required()\r\n })\r\n ),\r\n }),\r\n resultsTemplates: Yup.object().shape({\r\n name: Yup.object().nullable(),\r\n result: Yup.string(),\r\n unit: Yup.string()\r\n }),\r\n anthropometrics: Yup.object().shape({\r\n weight: Yup.string().matches(/^[1-9]\\d*(\\.\\d+)?$/,\r\n {\r\n message: 'Ingresar un peso válido en Kg. ',\r\n }).nullable().required(),\r\n height: Yup.string().matches(/^\\d+$/,\r\n {\r\n message: 'La altura debe estar expresada en Centimetros. ',\r\n }).nullable().required(),\r\n waist: Yup.string().matches(/^[1-9]\\d*(\\.\\d+)?$/,\r\n {\r\n message: 'Debe estar expresado con \\'.\\'',\r\n }).nullable(),\r\n sagittal: Yup.string().matches(/^[1-9]\\d*(\\.\\d+)?$/,\r\n {\r\n message: 'Debe estar expresado con \\'.\\'',\r\n }).nullable(),\r\n neck: Yup.string().matches(/^[1-9]\\d*(\\.\\d+)?$/,\r\n {\r\n message: 'Debe estar expresado con \\'.\\'',\r\n }).nullable(),\r\n }),\r\n vitals: Yup.object().shape({\r\n bloodPressureHigh: Yup.string().matches(/^[1-9]\\d*$/, { message: 'Número entero sin decimal', }).required(),\r\n bloodPressureLow: Yup.string().matches(/^[1-9]\\d*$/, { message: 'Número entero sin decimal', }).required(),\r\n heartRate: Yup.string().matches(/^[1-9]\\d*$/, { message: 'Número entero sin decimal', }).required(),\r\n temperatureC: Yup.string().matches(/^[1-9]\\d*(\\.\\d+)?$/,\r\n {\r\n message: 'Debe estar expresado con \\'.\\'',\r\n }).nullable(),\r\n oxygenSaturation: Yup.string().matches(/^[1-9]\\d*(\\.\\d+)?$/,\r\n {\r\n message: 'Debe estar expresado con \\'.\\'',\r\n }).nullable()\r\n }),\r\n familyHistory: Yup.object().shape({\r\n familyHistories: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n name: Yup.object().nullable().required(),\r\n relative: Yup.object().nullable().required(),\r\n })\r\n )\r\n })\r\n };\r\n}\r\n\r\nexport const getProtocolBriefSchema = () => {\r\n\r\n return Yup.object().shape({\r\n brief: Yup.object().shape({\r\n laboratory: Yup.object().nullable().required(),\r\n protocolNumber: Yup.string().trim().matches(/^[A-Za-z0-9\\-\\_]+$/,\r\n {\r\n message: 'Solo Números, Letras, -, _',\r\n }).required(),\r\n centerNumber: Yup.string().trim().matches(/^[A-Za-z0-9\\-\\_]+$/,\r\n {\r\n message: 'Solo Números, Letras, -, _',\r\n }).required(),\r\n title: Yup.string().required(),\r\n fullTitle: Yup.string().required(),\r\n phase: Yup.object().nullable().required(),\r\n indication: Yup.object().nullable().required(),\r\n //status: Yup.object().nullable().required(),\r\n specialty: Yup.object().nullable().required(),\r\n patientsObjective: Yup.number().min(1).nullable().required(),\r\n principalInvestigator: Yup.object().nullable().required(),\r\n studyRole: Yup.object().nullable().required(),\r\n currentUserStudyRole: Yup.object().nullable().required(),\r\n })\r\n });\r\n}\r\n\r\nexport const getProtocolBriefEditSchema = () => {\r\n\r\n return Yup.object().shape({\r\n brief: Yup.object().shape({\r\n laboratory: Yup.object().nullable().required(),\r\n protocolNumber: Yup.string().trim().matches(/^[A-Za-z0-9\\-\\_]+$/,\r\n {\r\n message: 'Solo Números, Letras, -, _',\r\n }).required(),\r\n centerNumber: Yup.string().trim().matches(/^[A-Za-z0-9\\-\\_]+$/,\r\n {\r\n message: 'Solo Números, Letras, -, _',\r\n }).required(),\r\n title: Yup.string().required(),\r\n fullTitle: Yup.string().required(),\r\n phase: Yup.object().nullable().required(),\r\n indication: Yup.object().nullable().required(),\r\n specialty: Yup.object().nullable().required(),\r\n patientsObjective: Yup.number().min(1).nullable().required(),\r\n principalInvestigator: Yup.object().nullable().required(),\r\n })\r\n });\r\n}\r\n\r\nexport const getProtocolPatientsSchema = () => {\r\n\r\n return Yup.object().shape({\r\n patients: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n patient: Yup.object().nullable().required(),\r\n numberInProtocol: Yup.string().trim().matches(/^[A-Za-z0-9\\-\\_]+$/,\r\n {\r\n message: 'Solo Números, Letras, -, _',\r\n }).required(),\r\n })\r\n ),\r\n });\r\n}\r\n\r\nexport const getProtocolPatientNumberSchema = () => {\r\n\r\n return Yup.object().shape({\r\n updatedNumberInProtocol: Yup.string().trim().matches(/^[A-Za-z0-9\\-\\_]+$/,\r\n {\r\n message: 'Solo Números, Letras, -, _',\r\n }).required()\r\n });\r\n}\r\n\r\nexport const getProtocolPractitionersSchema = () => {\r\n\r\n return Yup.object().shape({\r\n practitioners: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n practitioner: Yup.object().nullable().required(),\r\n studyRole: Yup.object().nullable().required(),\r\n studyTasks: Yup.array().nullable(),\r\n startOfTask: Yup.date().nullable().required(),\r\n endOfTask: Yup.date().nullable(),\r\n })\r\n ),\r\n });\r\n}\r\n\r\nexport const getProtocolVisitHeaderSchema = () => {\r\n\r\n return Yup.object().shape({\r\n visit: Yup.object().shape({\r\n title: Yup.string().required(),\r\n type: Yup.object().nullable().required(),\r\n stage: Yup.object().nullable().required(),\r\n offsetType: Yup.object().when(\"offset\", (offset) => {\r\n if (!offset || offset === 0)\r\n return Yup.object().nullable();\r\n else\r\n return Yup.object().nullable().required();\r\n }),\r\n //offsetFrom: Yup.object().nullable().required(),\r\n offset: Yup.number().nullable().required(),\r\n windowNeg: Yup.number().min(0).required(),\r\n windowPos: Yup.number().min(0).required()\r\n })\r\n });\r\n}\r\n\r\nexport const getValidationSchema = () => {\r\n\r\n let renderable = Yup.lazy(function (item) {\r\n if ((item.hide !== true && item.required) || item._t === \"ArrayField\") {\r\n switch (item._t) {\r\n case \"SingleLineField\":\r\n return Yup.object().shape({ value: Yup.string().nullable().required() });\r\n case \"MultiLineField\":\r\n return Yup.object().shape({ value: Yup.string().nullable().required() });\r\n case \"IntegerField\":\r\n return Yup.object().shape({\r\n value: Yup.string().nullable().matches(/^(?<=\\s|^)\\d+(?=\\s|$)/,\r\n {\r\n message: 'Solo se adminten números enteros',\r\n }).required()\r\n });\r\n case \"NumberField\":\r\n case \"DecimalField\":\r\n return Yup.object().shape({\r\n value: Yup.string().nullable().matches(/^[0-9]\\d*(\\.\\d+)?$/,\r\n {\r\n message: 'Debe estar expresado con \\'.\\'',\r\n }).required()\r\n });\r\n case \"TimeField\":\r\n return Yup.object().shape({ value: Yup.date().nullable().required() });\r\n case \"DateField\":\r\n return Yup.object().shape({\r\n value: Yup.string().required().matches(/([A-Za-z0-9]{1,3})\\/([A-Za-z0-9]{1,3})\\/([12][0-9]{3}$)/,\r\n {\r\n message: 'El año es requerido',\r\n }).nullable()\r\n });\r\n case \"DateTimeField\":\r\n return Yup.object().shape({ value: Yup.date().nullable().required() });\r\n case \"AdherenceField\":\r\n case \"SelectField\":\r\n case \"SelectAsyncField\":\r\n case \"SnomedField\":\r\n return Yup.object().shape({ value: Yup.object().nullable().required() });\r\n case \"YesNoField\":\r\n return Yup.object().shape({ value: Yup.string().nullable().required() });\r\n case 'PayableField':\r\n case \"BooleanField\":\r\n return Yup.object().shape({ value: Yup.boolean().nullable().required() });\r\n case \"RadioField\":\r\n return Yup.object().shape({ value: Yup.string().nullable().required() });\r\n case \"MultiCheckBoxField\":\r\n return Yup.object().shape({ value: Yup.array().nullable().required() });\r\n case \"CheckboxField\":\r\n return Yup.object().shape({ value: Yup.boolean().nullable().required() });\r\n case \"FileUploadField\":\r\n return Yup.object().shape({ value: Yup.object().nullable().required() });\r\n return Yup.object().shape({\r\n value: Yup.object().shape({\r\n uploadedBy: Yup.string().nullable(),\r\n validatedBy: Yup\r\n .string()\r\n .nullable()\r\n .when([\"uploadedBy\", \"validatedBy\"], (uploadedBy, validatedBy) => {\r\n if (uploadedBy !== validatedBy)\r\n return Yup.object().nullable().required();\r\n else\r\n return Yup.object().nullable().required();\r\n })\r\n }).nullable().required()\r\n });\r\n case \"ArrayField\":\r\n return Yup.object().shape({\r\n components: Yup.array().of(\r\n Yup.object().shape({\r\n fields: Yup.array().of(renderable)\r\n })\r\n )\r\n });\r\n default:\r\n return Yup.mixed().notRequired();\r\n }\r\n }\r\n return Yup.mixed().notRequired()\r\n });\r\n\r\n return Yup.object().shape({\r\n fields: Yup.array().of(renderable)\r\n });\r\n}\r\n\r\nexport const getValidationAuditTrailModal = () => {\r\n return Yup.object().shape({\r\n reason: Yup.object().nullable().required(),\r\n comments: Yup.object()\r\n .when(\"reason\", (reason) => {\r\n if (!reason)\r\n return Yup.string();\r\n else\r\n return reason.code === \"other\" ? Yup.string().nullable().required() : Yup.string().nullable();\r\n }),\r\n });\r\n}\r\n\r\nexport const getRoleSchema = () => {\r\n return Yup.object().shape({\r\n role: Yup.object().shape({\r\n name: Yup.string().nullable().required(),\r\n claims: Yup.array().nullable().required(),\r\n })\r\n });\r\n}\r\n\r\nexport const getStudyRoleSchema = () => {\r\n return Yup.object().shape({\r\n role: Yup.object().shape({\r\n name: Yup.string().nullable().required(),\r\n permissions: Yup.array().nullable(),\r\n })\r\n });\r\n}\r\n\r\nexport const getCodeableConceptSchema = () => {\r\n\r\n return Yup.object().shape({\r\n studyTask: Yup.object().shape({\r\n code: Yup.string().nullable().required(),\r\n title: Yup.string().nullable().required(),\r\n description: Yup.string().nullable()\r\n })\r\n });\r\n}\r\n\r\nexport const getLaboratoriesSchema = () => {\r\n\r\n return Yup.object().shape({\r\n laboratory: Yup.object().shape({\r\n code: Yup.string().nullable().required(),\r\n title: Yup.string().nullable().required(),\r\n description: Yup.string().nullable()\r\n })\r\n });\r\n}\r\n\r\nexport const getFreezerSchema = () => {\r\n return Yup.object().shape({\r\n freezer: Yup.object().shape({\r\n Description: Yup.string().nullable().required(),\r\n Location: Yup.string().nullable(),\r\n Type: Yup.object().nullable().required(),\r\n State: Yup.object().nullable().required(),\r\n })\r\n })\r\n}\r\n\r\nexport const getDeviceSchema = () => {\r\n return Yup.object().shape({\r\n device: Yup.object().shape({\r\n Name: Yup.string().nullable().required(),\r\n State: Yup.object().nullable().required()\r\n })\r\n })\r\n}\r\n\r\nexport const getAssignDeviceSchema = () => {\r\n return Yup.object().shape({\r\n freezer: Yup.object().shape({\r\n FreezerId: Yup.string().nullable().required(),\r\n Id: Yup.number().min(1).nullable().required(),\r\n })\r\n })\r\n}\r\n\r\nexport const getFreezerConfigurationSchema = () => {\r\n return Yup.object().shape({\r\n configuration: Yup.object().shape({\r\n MinTemperature: Yup.number().required(),\r\n MaxTemperature: Yup.number().required().when([\"MinTemperature\"], (MinTemperature, schema) => {\r\n return schema.min(MinTemperature);\r\n }),\r\n AssignedFreezers: Yup.array().of(Yup.string()).optional()\r\n })\r\n })\r\n}\r\n\r\nexport const getDigitalSignSchema = () => {\r\n return Yup.object().shape({\r\n password: Yup.string().nullable().required()\r\n });\r\n}","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { AppointmentForm } from '../../components/Agenda/AppointmentForm';\r\nimport { getAgendaAppointmentSchema } from '../../components/Validations/FormValidationSchema';\r\n\r\nexport const AddAppointmentContainer = (props) => {\r\n return (\r\n \r\n );\r\n}\r\nAddAppointmentContainer.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n\r\nconst AddAppointmentFormik = withFormik({\r\n validationSchema: getAgendaAppointmentSchema(),\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n displayName: 'AddAppointment',\r\n})(AppointmentForm);\r\n\r\nAddAppointmentFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};","import { withFormik } from 'formik';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { AppointmentForm, EditAppointmentForm } from '../../components/Agenda/AppointmentForm';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { ModalSpinner, Spinner } from '../../components/Utils/Loaders';\r\nimport { getAgendaAppointmentSchema } from '../../components/Validations/FormValidationSchema';\r\nimport { useEvents } from './Hooks';\r\n\r\nexport const EditAppointmentContainer = (props) => {\r\n const [, , , getEvent] = useEvents();\r\n const [appointment, setAppointment] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const fetchAppointment = async () => {\r\n try {\r\n setIsLoading(true);\r\n let res = await getEvent(props.appointment?.id);\r\n if (res && res.data) {\r\n res.data.start = moment.utc(moment.utc(res.data.start)).local().toDate();\r\n res.data.end = moment.utc(moment.utc(res.data.end)).local().toDate();\r\n setAppointment(res.data);\r\n }\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n if (props.appointment?.id)\r\n fetchAppointment();\r\n }, [])\r\n\r\n if (isLoading || !appointment)\r\n return \r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nEditAppointmentContainer.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n masterdata: PropTypes.object.isRequired,\r\n appointment: PropTypes.object.isRequired\r\n};\r\n\r\nconst EditAppointmentFormik = withFormik({\r\n mapPropsToValues: (props) => (props.appointment),\r\n validationSchema: getAgendaAppointmentSchema(),\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n displayName: 'EditAppointment'\r\n})(AppointmentForm);\r\n\r\nEditAppointmentFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { ScheduleLockForm } from '../../components/Agenda/ScheduleLock';\r\n\r\nexport const ScheduleLockContainer = (props) => {\r\n return (\r\n \r\n );\r\n}\r\nScheduleLockContainer.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nconst ScheduleLockFormik = withFormik({\r\n //validationSchema: getAgendaAppointmentSchema(),\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n displayName: 'ScheduleLock',\r\n})(ScheduleLockForm);\r\n\r\nScheduleLockFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n};","import moment from 'moment';\r\nimport React, { useState } from 'react';\r\nimport { Calendar as BigCalendar, momentLocalizer } from 'react-big-calendar';\r\nimport 'react-big-calendar/lib/addons/dragAndDrop/styles.scss';\r\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\r\nimport \"react-datetime/css/react-datetime.css\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { cancelEvent, createEvent, createScheduleLockAPI, exportToExcel, notAttendanceAppointment, setPresent, updateEvent, updateEventAttendance, updateEventStatus } from '../../api/agenda';\r\nimport '../../assets/sass/lbd/_react-big-calendar.scss';\r\nimport { Event, EventAgenda, EventMonth } from \"../../components/Agenda/Event\";\r\nimport { ConfirmRemove } from '../../components/Agenda/Modals';\r\nimport { ScheduleLockAppointmentsTaken } from '../../components/Agenda/ScheduleLock';\r\nimport { colourStyles, visitTypeColorGetter } from '../../components/Agenda/Utils';\r\nimport { ViewEvent } from \"../../components/Agenda/ViewEvent\";\r\nimport { useAuthorization } from '../../components/Authorization/useAuthorization';\r\nimport { WithAuth } from '../../components/Authorization/WithAuth';\r\nimport { Card } from '../../components/Cards/Card';\r\nimport { CustomSelect } from '../../components/CustomControls/CustomSelect';\r\nimport { PatientPicker } from '../../components/CustomControls/PatientPicker';\r\nimport { PractitionerSelect } from '../../components/CustomControls/PractitionerSelect';\r\nimport { ProtocolPicker } from '../../components/CustomControls/ProtocolPicker';\r\nimport ExportToExcel from \"../../components/Export/ExportToExcel\";\r\nimport { IconSVG, Lock } from '../../components/Icons/Icons';\r\nimport { HandleApiError, HandleError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { getQueryParam } from '../../components/Utils/Commons';\r\nimport { ModalSpinner } from '../../components/Utils/Loaders';\r\nimport { AddAppointmentContainer } from './AddAppointment';\r\nimport { EditAppointmentContainer } from './EditAppointment';\r\nimport { useEvents, useMasterData } from './Hooks';\r\nimport { ScheduleLockContainer } from './ScheduleLock';\r\n\r\nrequire('moment/locale/es.js');\r\n\r\n// Setup the localizer by providing the moment Object to the correct localizer.\r\nmoment.locale('es', { week: { dow: 0, doy: 0, }, });\r\n\r\nconst localizer = momentLocalizer(moment);\r\n\r\nexport const Agenda = (props) => {\r\n const { t } = useTranslation();\r\n const currentPatient = getQueryParam(props.location.search, \"medicalRecordNumber\");\r\n const [, , isAuthorized] = useAuthorization();\r\n\r\n const [modal, setModal] = useState(null);\r\n const [query, setQuery] = useState({ view: \"week\", currentDate: moment().format(\"YYYY-MM-DD\"), projects: [], protocols: [], practitioners: [], type: {}, medicalRecord: currentPatient });\r\n const [events, , setEvents] = useEvents(query);\r\n const [masterdata] = useMasterData();\r\n\r\n const isValidEventStart = (startDate) => {\r\n if (moment().isSameOrAfter(startDate)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n const handleNavigate = (currentDate, currentView) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.view = currentView;\r\n newQuery.currentDate = moment(currentDate).format(\"YYYY-MM-DD\");\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n const handleViewChange = (currentView) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.view = currentView;\r\n setQuery(newQuery);\r\n }\r\n\r\n const handleFilterChange = (name, selectedValues) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n switch (name) {\r\n case \"practitioners\":\r\n newQuery[name] = selectedValues ? selectedValues.map(x => x.userId) : [];\r\n break;\r\n case \"protocols\":\r\n newQuery[name] = selectedValues ? selectedValues.map(x => x.id) : [];\r\n break;\r\n case \"projects\":\r\n newQuery[name] = selectedValues ? selectedValues.map(x => x.id) : [];\r\n break;\r\n case \"medicalRecord\":\r\n newQuery[name] = selectedValues ? selectedValues.medicalRecordNumber : null;\r\n break;\r\n default:\r\n newQuery[name] = selectedValues;\r\n break;\r\n }\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n const handleNewAppointment = () => {\r\n\r\n if (!isAuthorized([\"Agenda.Create\"]))\r\n return;\r\n\r\n setModal(\r\n \r\n );\r\n }\r\n\r\n const handleSubmit = async (selectedAppointment) => {\r\n\r\n if (!isValidEventStart(selectedAppointment.start)) {\r\n HandleError(\"calendarErrors.Event_Create_StartLowerThanNow\");\r\n setModal(\r\n \r\n );\r\n return;\r\n }\r\n\r\n const event = {\r\n title: selectedAppointment.patient.fullName,\r\n patient: selectedAppointment.patient,\r\n visitType: selectedAppointment.visitType,\r\n medicalInsuranceId: selectedAppointment.medicalInsurance?.id,\r\n medicalInsurancePlanId: selectedAppointment.medicalInsurance?.plan,\r\n medicalServiceId: selectedAppointment.medicalService?.id,\r\n start: selectedAppointment.start,\r\n end: selectedAppointment.end,\r\n practitioner: selectedAppointment.practitioner,\r\n project: selectedAppointment.project,\r\n protocol: selectedAppointment.protocol,\r\n location: selectedAppointment.location,\r\n desc: selectedAppointment.desc,\r\n isFirstTime: selectedAppointment.isFirstTime\r\n };\r\n\r\n //console.log(event);\r\n //return;\r\n\r\n try {\r\n setModal();\r\n var res = await createEvent(event);\r\n event.id = res.data.id;\r\n\r\n setEvents([].concat(events, event));\r\n setModal(null);\r\n Success(\"calendarNotifications.Event_Created\");\r\n\r\n if (currentPatient) {\r\n const source = getQueryParam(props.location.search, \"source\");\r\n if (source)\r\n props.history.push(source)\r\n }\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n console.log(error);\r\n setModal(\r\n \r\n );\r\n }\r\n }\r\n\r\n const handleNewScheduleLock = () => {\r\n\r\n if (!isAuthorized([\"Agenda.Create\"]))\r\n return;\r\n\r\n setModal(\r\n \r\n );\r\n }\r\n\r\n const handleSubmitScheduleLock = async (scheduleLock) => {\r\n\r\n try {\r\n setModal();\r\n var res = await createScheduleLockAPI(scheduleLock);\r\n if (res && res.data && res.data.appointmentsTaken?.length > 0)\r\n setModal()\r\n else\r\n setModal(null);\r\n setQuery(JSON.parse(JSON.stringify(query)));\r\n Success(\"calendarNotifications.ScheduleLock_Created\");\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n console.log(error);\r\n setModal(null);\r\n }\r\n }\r\n\r\n const handleSelectedEvent = (event) => {\r\n setModal(\r\n \r\n );\r\n }\r\n\r\n const handleEventStatus = (eventId, confirmed) => {\r\n\r\n const event = events.find(x => x.id === eventId);\r\n const idx = events.findIndex(x => x.id === eventId);\r\n\r\n if (!isValidEventStart(event.start)) {\r\n HandleError(\"calendarErrors.Event_UpdateStatus_StartLowerThanNow\");\r\n return;\r\n }\r\n\r\n const updatedEvent = { ...event, confirmed: confirmed };\r\n\r\n updateEventStatus(eventId, confirmed).then(res => {\r\n const nextEvents = [...events];\r\n nextEvents.splice(idx, 1, updatedEvent);\r\n setEvents(nextEvents);\r\n setModal(null);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n const handleAttended = (eventId) => {\r\n\r\n const event = events.find(x => x.id === eventId);\r\n const idx = events.findIndex(x => x.id === eventId);\r\n\r\n if (moment().isSameOrBefore(event.start)) {\r\n return false;\r\n }\r\n\r\n const updatedEvent = {\r\n ...event,\r\n attended: true\r\n }\r\n\r\n updateEventAttendance(eventId).then(res => {\r\n\r\n const nextEvents = [...events];\r\n nextEvents.splice(idx, 1, updatedEvent);\r\n setEvents(nextEvents);\r\n setModal(null);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n const handleNotAttendance = (eventId) => {\r\n setModal(\r\n setModal(null)}\r\n onConfirm={onNotAttendance}\r\n id={eventId}\r\n title={t(\"calendar.notAssistModalTitle\")}\r\n />\r\n );\r\n }\r\n\r\n const onNotAttendance = (eventId, reason) => {\r\n\r\n const event = events.find(x => x.id === eventId);\r\n const idx = events.findIndex(x => x.id === eventId);\r\n\r\n if (moment().isSameOrBefore(event.start)) {\r\n return false;\r\n }\r\n\r\n const updatedEvent = {\r\n ...event,\r\n attended: false\r\n }\r\n\r\n notAttendanceAppointment(eventId, reason).then(res => {\r\n const nextEvents = [...events];\r\n nextEvents.splice(idx, 1, updatedEvent);\r\n setEvents(nextEvents);\r\n setModal(null);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n const handleViewEdit = (event) => {\r\n if (!isValidEventStart(event.start)) {\r\n HandleError(\"calendarErrors.calendarErrors.Event_Update_StartLowerThanNow\");\r\n return;\r\n }\r\n\r\n if (!isAuthorized([\"Agenda.Edit\"]))\r\n return;\r\n\r\n setModal(\r\n \r\n );\r\n }\r\n\r\n const editEvent = (event) => {\r\n if (!isValidEventStart(event.start)) {\r\n HandleError(\"calendarErrors.Event_Update_StartLowerThanNow\");\r\n return;\r\n }\r\n\r\n const updatedEvent = {\r\n ...event,\r\n start: event.start,\r\n end: event.end,\r\n desc: event.desc,\r\n location: event.location,\r\n isFirstTime: event.isFirstTime\r\n }\r\n\r\n updateEvent(updatedEvent).then(res => {\r\n setQuery(JSON.parse(JSON.stringify(query)));\r\n setModal(null);\r\n Success(\"calendarNotifications.Event_Updated\")\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setModal(\r\n );\r\n console.log(error);\r\n });\r\n }\r\n\r\n const handleCancelEvent = (event) => {\r\n setModal(\r\n setModal(null)}\r\n onConfirm={onCancelEvent}\r\n id={event.id}\r\n title={t(\"calendar.cancelModalTitle\")}\r\n />\r\n );\r\n }\r\n\r\n const onCancelEvent = (eventId, reason) => {\r\n setModal(null);\r\n\r\n const event = events.find(x => x.id === eventId);\r\n\r\n if (!isValidEventStart(event.start)) {\r\n HandleError(\"calendarErrors.Event_Delete_StartLowerThanNow\");\r\n return;\r\n }\r\n\r\n const idx = events.findIndex(x => x.id === eventId);\r\n\r\n cancelEvent(event.id, reason).then(res => {\r\n const nextEvents = [...events];\r\n nextEvents.splice(idx, 1);\r\n setEvents(nextEvents);\r\n setModal(null);\r\n Success(\"calendarNotifications.Event_Deleted\")\r\n\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n const handleModalClose = () => {\r\n if (currentPatient) {\r\n const source = getQueryParam(props.location.search, \"source\");\r\n if (source)\r\n props.history.push(source)\r\n }\r\n setModal(null);\r\n setQuery(JSON.parse(JSON.stringify(query)));\r\n }\r\n\r\n const eventStyleGetter = (event) => {\r\n return { className: visitTypeColorGetter(event.visitType?.code, event, false) }\r\n }\r\n\r\n const handleSetPresent = async (eventId) => {\r\n if (!eventId)\r\n return;\r\n\r\n try {\r\n const res = await setPresent(eventId);\r\n setModal(null);\r\n Success(\"calendarNotifications.Event_Present\")\r\n }\r\n catch (error) {\r\n setModal(null);\r\n HandleApiError(error);\r\n }\r\n\r\n }\r\n\r\n const formats = {\r\n eventTimeRangeFormat: () => null,\r\n dayFormat: (date, culture, localizer) => {\r\n const day = localizer.format(date, 'dddd D', culture);\r\n return day.charAt(0).toUpperCase() + day.slice(1)\r\n },\r\n dayRangeHeaderFormat: ({ start, end }, culture, localizer) => {\r\n const startFormat = localizer.format(start, 'D MMMM', culture);\r\n const endFormat = localizer.format(end, 'D MMMM YYYY', culture);\r\n return `${startFormat} - ${endFormat}`;\r\n },\r\n dayHeaderFormat: (date, culture, localizer) => {\r\n return localizer.format(date, 'D [de] MMMM [de] YYYY', culture);\r\n },\r\n agendaHeaderFormat: ({ start }, culture, localizer) => {\r\n return localizer.format(start, 'dddd D [de] MMMM [de] YYYY', culture);\r\n }\r\n\r\n };\r\n\r\n const messages = {\r\n previous: \"<\",\r\n next: \">\",\r\n today: t('calendar.today'),\r\n month: t('calendar.month'),\r\n week: t('calendar.week'),\r\n day: t('calendar.day'),\r\n date: t('calendar.date'),\r\n time: t('calendar.time'),\r\n event: t('calendar.event'),\r\n noEventsInRange: t('calendar.noEventsInRange'),\r\n showMore: total => `+${total} ${t('calendar.more')}`,\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n }\r\n\r\n content={\r\n <>\r\n {modal}\r\n
    \r\n
    \r\n handleSelectedEvent(event)}\r\n onView={handleViewChange}\r\n onNavigate={handleNavigate}\r\n eventPropGetter={(eventStyleGetter)}\r\n components={{\r\n event: Event,\r\n month: { event: EventMonth },\r\n agenda: { event: EventAgenda },\r\n timeGutterHeader: () => (t('calendar.time')),\r\n }}\r\n\r\n formats={formats}\r\n messages={messages}\r\n />\r\n
    \r\n
    \r\n \r\n }\r\n />\r\n );\r\n}","import React from \"react\";\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from \"../Cards/Card\";\r\nimport { ContactInfo } from \"../Icons/Icons\";\r\n\r\nexport const AddressData = props => {\r\n\r\n const patient = props.data;\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n {t('person.address.address')}: {patient.address?.fullAddress}\r\n {t('person.address.postalCode')}: {patient.address?.postalCode}\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n {patient.address?.floor && <>{t('person.address.floor')}: {patient.address?.floor}}\r\n {patient.address?.department && <>{t('person.address.department')}: {patient.address?.department}}\r\n {patient.address?.body && <>{t('person.address.body')}: {patient.address?.body}}\r\n {patient.address?.between && <>{t('person.address.between')}: {patient.address?.between}}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n }\r\n />\r\n );\r\n}","import React, { useEffect, useState } from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport { Add, RemoveCircle, IconSVG } from '../Icons/Icons';\r\n\r\nexport const ExpandableContent = (props) => {\r\n const { title, expandedAll, children, content } = props;\r\n const [expanded, setExpanded] = useState(props.expanded);\r\n\r\n useEffect(() => {\r\n if (expandedAll !== null && expandedAll !== undefined)\r\n setExpanded(expandedAll)\r\n }, [expandedAll])\r\n\r\n return (\r\n
    \r\n
    setExpanded(!expanded)}>\r\n

    \r\n \r\n {title}\r\n

    \r\n \r\n
    \r\n
    \r\n {expanded && children}\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nExpandableContent.defaultProps = {\r\n expandedAll: false,\r\n expanded: true\r\n}\r\n\r\nExpandableContent.propTypes = {\r\n expandedAll: PropTypes.bool,\r\n}\r\n","import { ErrorMessage } from 'formik';\r\nimport React from 'react';\r\nimport { Col, ControlLabel, FormControl, Grid, Row } from 'react-bootstrap';\r\nimport Card from '../Cards/Card';\r\nimport Autocomplete from \"react-google-autocomplete\";\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { googleAPIKey } from '../../variables/Constants';\r\nimport { ExpandableContent } from '../CustomControls/ExpandableContent';\r\n\r\n\r\nexport const AddressDataForm = props => {\r\n\r\n const {\r\n values,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n t\r\n } = props;\r\n\r\n const getPostalCode = (addressArray) => {\r\n for (let i = 0; i < addressArray.length; i++) {\r\n for (let i = 0; i < addressArray.length; i++) {\r\n if (addressArray[i].types[0] && \"postal_code\" === addressArray[i].types[0]) {\r\n return addressArray[i].long_name;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onPlaceSelected = (place) => {\r\n //const addressArray = place.address_components,\r\n const latValue = place.geometry?.location?.lat(), lngValue = place.geometry?.location?.lng();\r\n\r\n // Set these values in the state.\r\n setFieldValue(\"address.fullAddress\", place.formatted_address, false);\r\n setFieldValue(\"address.postalCode\", getPostalCode(place.address_components), false);\r\n setFieldValue(\"address.lat\", latValue, false);\r\n setFieldValue(\"address.long\", lngValue, false);\r\n };\r\n\r\n if (!values.address) values.address = { fullAddress: '', streetName: '', streetNumber: '' };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"person.address.address\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.address.postalCode\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.address.floor\")}\r\n \r\n \r\n \r\n {t(\"person.address.department\")}\r\n \r\n \r\n \r\n {t(\"person.address.body\")}\r\n \r\n \r\n \r\n {t(\"person.address.between\")}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from \"../Cards/Card\";\r\nimport { CellPhone, Email, Facebook, Instagram, Phone, Twitter } from \"../Icons/Icons\";\r\n\r\nexport const ContactData = props => {\r\n\r\n const { t } = useTranslation();\r\n const patient = props.data;\r\n\r\n if (!patient.telecom)\r\n return (<>);\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.contact.cellPhone\")}
    \r\n
    {patient.telecom.cellPhone}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.contact.phone\")}
    \r\n
    {patient.telecom.phone}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.contact.email\")}
    \r\n
    {patient.telecom.email}
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Instagram
    \r\n
    {patient.telecom.instagram}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Facebook
    \r\n
    {patient.telecom.facebook}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Twitter
    \r\n
    {patient.telecom.twitter}
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n }\r\n />\r\n );\r\n}","import { ErrorMessage } from 'formik';\r\nimport React from 'react';\r\nimport { Col, ControlLabel, FormControl, Grid, Row } from 'react-bootstrap';\r\nimport Card from '../Cards/Card';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { Facebook, Instagram, Twitter } from '../Icons/Icons';\r\nimport { ExpandableContent } from '../CustomControls/ExpandableContent';\r\n\r\n\r\n\r\nexport const ContactDataForm = props => {\r\n\r\n const {\r\n values,\r\n handleChange,\r\n handleBlur,\r\n t,\r\n } = props;\r\n\r\n if (!values.telecom) values.telecom = { cellPhone: '', email: '' };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"person.contact.cellPhone\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.contact.phone\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.contact.email\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Instagram\r\n \r\n \r\n \r\n Facebook\r\n \r\n \r\n \r\n Twitter\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from \"../Cards/Card\";\r\n\r\nexport const MedicalData = props => {\r\n\r\n const { t } = useTranslation();\r\n const patient = props.data;\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n
    {t(\"person.bloodGroup\")}
    \r\n
    {patient.bloodGroup}
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t(\"person.bloodFactor\")}
    \r\n
    {patient.bloodFactor}
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    {t('person.medicalRecord')}: {patient.medicalRecordNumber}
    \r\n
    {t('person.medicalInsuranceInfo.medicalInsurance')}: {patient.medicalInsuranceInfo?.medicalInsurance?.title} ({patient.medicalInsuranceInfo?.medicalInsurancePlan?.title})
    \r\n
    {t('person.medicalInsuranceInfo.medicalInsuranceNumber')}: {patient.medicalInsuranceInfo?.medicalInsuranceNumber}
    \r\n
    \r\n
    \r\n
    {t('person.familyDoctor')}: {patient.familyDoctor}
    \r\n
    {t('person.internalPractitioner')}: {patient.internalPractitioner?.fullName}
    \r\n
    \r\n \r\n \r\n }\r\n />\r\n );\r\n}","import { ErrorMessage } from 'formik';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, FormControl, Grid, Row } from 'react-bootstrap';\r\nimport { getMedicalInsurancePlanByMedicalInsurance } from '../../api/admin';\r\nimport { bloodFactor, bloodGroup } from \"../../variables/Enums\";\r\nimport Card from '../Cards/Card';\r\nimport { CustomSelect } from \"../CustomControls/CustomSelect\";\r\nimport { PractitionerSelect } from '../CustomControls/PractitionerSelect';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\n\r\nexport const MedicalDataForm = props => {\r\n\r\n const {\r\n values,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n setFieldTouched,\r\n t,\r\n masterData\r\n } = props;\r\n\r\n const [medicalPlans, setMedicalPlans] = useState([]);\r\n\r\n const onChangeMedicalInsurance = (field, value, shouldValidate) => {\r\n\r\n if (value) {\r\n getMedicalInsurancePlanByMedicalInsurance(value.id).then(res => {\r\n setMedicalPlans(res.data);\r\n \r\n }).catch(error => {\r\n console.log('Error getting Medical Insurance Plans', error);\r\n });\r\n }\r\n setFieldValue(field, value, shouldValidate);\r\n setFieldValue(\"medicalInsuranceInfo.medicalInsurancePlan\", null);\r\n }\r\n\r\n if (!values.medicalInsuranceInfo) values.medicalInsuranceInfo = { medicalInsurance: '', medicalInsuranceNumber: '' };\r\n\r\n return (\r\n
    \r\n {t(\"person.medicalData\")}\r\n \r\n \r\n \r\n {t(\"person.medicalInsuranceInfo.medicalInsurance\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.medicalInsuranceInfo.medicalInsurancePlan\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.medicalInsuranceInfo.medicalInsuranceNumber\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.bloodGroup\")}\r\n x.title === values.bloodGroup)}\r\n //value={values.bloodGroup}\r\n onChange={setFieldValue}\r\n onBlur={setFieldTouched}\r\n name=\"bloodGroup\"\r\n placeholder={t(\"commons.select\")}\r\n options={bloodGroup} />\r\n \r\n \r\n {t(\"person.bloodFactor\")}\r\n x.title === values.bloodFactor)}\r\n //value={values.bloodFactor}\r\n onChange={setFieldValue}\r\n onBlur={setFieldTouched}\r\n name=\"bloodFactor\"\r\n placeholder={t(\"commons.select\")}\r\n options={bloodFactor} />\r\n \r\n \r\n {t(\"person.familyDoctor\")}\r\n \r\n \r\n \r\n {t(\"person.internalPractitioner\")}\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n
    \r\n );\r\n}","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport class CustomImage extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n src: props.src,\r\n errored: false,\r\n };\r\n }\r\n\r\n onError = () => {\r\n if (!this.state.errored) {\r\n this.setState({\r\n src: this.props.defaultSrc,\r\n errored: true,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { src } = this.state;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nCustomImage.propTypes = {\r\n src: PropTypes.string,\r\n defaultSrc: PropTypes.string.isRequired,\r\n isLoading: PropTypes.bool\r\n};","import moment from \"moment\";\r\nimport React from \"react\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport profilePic from \"../../assets/img/faces/face-0.jpg\";\r\nimport Card from \"../Cards/Card\";\r\nimport { CustomImage } from \"../CustomControls/Image\";\r\n\r\nexport const PersonalData = props => {\r\n const patient = props.data;\r\n const { t } = useTranslation();\r\n\r\n const ageComponent = patient.age ? <>({patient.age} {t('person.age')}) : null;\r\n const date = patient.birthPlace ? moment(patient.birthDate).format('DD/MM/YYYY') : \"-\";\r\n const id = patient.identificationType ?
    {patient.identificationType?.title}: {patient.identificationNumber}
    : null;\r\n const medicalRecord = patient.medicalRecordNumber ? <>(HC:{patient.medicalRecordNumber}) : null;\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    {patient.fullName} {medicalRecord}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t('person.birthDate')}: {date} {ageComponent}
    \r\n {id}\r\n
    {t('person.gender')}: {patient.gender?.title}
    \r\n
    {t('person.maritalStatus')}: {patient.maritalStatus?.title}
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t('person.birthPlace')}: {patient.birthPlace}
    \r\n
    {t('person.nationality')}: {patient.nationality}
    \r\n {/*
    {t(\"person.languageTitle\")}: {patient.language}
    */}\r\n
    \r\n \r\n
    \r\n \r\n \r\n }\r\n />\r\n );\r\n}","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport Camera from 'react-html5-camera-photo';\r\nimport 'react-html5-camera-photo/build/css/index.css';\r\n\r\nexport const ModalTakePic = (props) => {\r\n const { onHide, onPhotoTaken } = props;\r\n const { t } = useTranslation();\r\n\r\n function handleTakePhotoAnimationDone(dataUri) {\r\n onPhotoTaken(dataUri);\r\n }\r\n\r\n return ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t(\"person.camera\")}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n )\r\n};\r\n\r\nModalTakePic.propTypes = {\r\n onHide: PropTypes.func.isRequired,\r\n onPhotoTaken: PropTypes.func.isRequired,\r\n};","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { Button, Modal as BootstrapModal, Table } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Cancel, Edit, View } from \"../Icons/Icons\";\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\n\r\nexport const ModalDuplicatedPatient = (props) => {\r\n const { patients, onHide } = props;\r\n const { t } = useTranslation();\r\n\r\n return ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t(\"commons.attention\")}\r\n \r\n \r\n {t(\"databaseNotifications.patient_duplicated_description\")}:\r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n patients.map((patient, idx) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
    {t(\"person.medicalRecord\")}{t(\"person.identificationNumber\")}{t(\"person.familyName\")}{t(\"person.given\")}{t(\"commons.actions\")}
    {patient.medicalRecordNumber}{patient.identificationType} {patient.identificationNumber}{patient.familyName}{patient.given}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    , document.body\r\n )\r\n};\r\n\r\nModalDuplicatedPatient.propTypes = {\r\n onHide: PropTypes.func.isRequired,\r\n patients: PropTypes.array.isRequired\r\n};","import { ErrorMessage } from \"formik\";\r\nimport React, { useState } from \"react\";\r\nimport { Col, ControlLabel, FormControl, Row } from \"react-bootstrap\";\r\nimport Autocomplete from \"react-google-autocomplete\";\r\nimport profilePic from \"../../assets/img/faces/face-0.jpg\";\r\nimport Card from \"../Cards/Card\";\r\nimport { CustomDate } from \"../CustomControls/CustomDateTime\";\r\nimport { CustomSelect } from \"../CustomControls/CustomSelect\";\r\nimport { ModalTakePic } from \"../Database/ModalTakePic\";\r\nimport { Camera } from \"../Icons/Icons\";\r\nimport { searchPatients } from \"../../api/database\";\r\nimport { FormErrorMessage } from \"../Validations/FormValidationErrors\";\r\nimport { ModalDuplicatedPatient } from \"../Database/ModalDuplicatedPatient\";\r\nimport { googleAPIKey } from \"../../variables/Constants\";\r\nimport { language } from \"../../variables/Enums\";\r\nimport { ExpandableContent } from \"../CustomControls/ExpandableContent\";\r\n\r\nexport const PersonalDataForm = (props) => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n setFieldTouched,\r\n t,\r\n isSubmitting,\r\n masterData,\r\n } = props;\r\n\r\n const [modal, setModal] = useState(null);\r\n const [selectedValue, setSelectedValue] = useState(null);\r\n\r\n function handlePhotoTaken(dataUri) {\r\n setFieldValue(\"photo\", dataUri, false);\r\n setModal(null);\r\n }\r\n\r\n\r\n function handleShowTakePhoto() {\r\n setModal(\r\n setModal(null)}\r\n onPhotoTaken={handlePhotoTaken}\r\n />\r\n );\r\n }\r\n\r\n const getNationality = (addressArray) => {\r\n for (let i = 0; i < addressArray.length; i++) {\r\n for (let i = 0; i < addressArray.length; i++) {\r\n if (\r\n addressArray[i].types[0] &&\r\n \"country\" === addressArray[i].types[0]\r\n ) {\r\n return addressArray[i].long_name;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onPlaceSelected = (place) => {\r\n // Set these values in the state.\r\n setFieldValue(\r\n \"nationality\",\r\n getNationality(place.address_components),\r\n false\r\n );\r\n };\r\n\r\n const onFamilyNameBlur = (evt) => {\r\n if (evt.currentTarget && evt.currentTarget.value.length > 2) {\r\n searchPatients(`${values.given} ${values.familyName}`)\r\n .then((response) => {\r\n if (response.data && response.data.length > 0) {\r\n setModal(\r\n setModal(null)}\r\n >\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n setFieldTouched(evt.currentTarget.name);\r\n };\r\n\r\n const onSelectChange = (_name, value) => {\r\n setSelectedValue(value);\r\n }\r\n\r\n const onIdentificationNumberBlur = (evt) => {\r\n if (evt.currentTarget && evt.currentTarget.value.length > 6) {\r\n searchPatients(values.identificationNumber)\r\n .then((response) => {\r\n if (response.data && response.data.length > 0) {\r\n setModal(\r\n setModal(null)}\r\n >\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n setFieldTouched(evt.currentTarget.name);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \"image\"\r\n
    \r\n \r\n {t(\"buttons.takePhoto\")}\r\n \r\n
    \r\n {modal}\r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"person.prefix\")}\r\n \r\n \r\n \r\n {t(\"person.given\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.familyName\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.suffix\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.birthDate\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.birthPlace\")}\r\n \r\n \r\n \r\n {t(\"person.nationality\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.languageTitle\")}\r\n x.code === values.language)}\r\n //value={values.language ?? \"\"}\r\n onChange={setFieldValue}\r\n onBlur={setFieldTouched}\r\n onPlaceSelected={onPlaceSelected}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.identificationType\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.identificationNumber\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.gender\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.maritalStatus\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n
    \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from '../Cards/Card';\r\nimport { RelatedContact } from '../Icons/Icons';\r\n\r\nexport const RelatedContactData = props => {\r\n\r\n const { t } = useTranslation();\r\n const patient = props.data;\r\n\r\n let relatedContactsContent = \"\";\r\n\r\n if (patient.relatedContacts && patient.relatedContacts.length > 0) {\r\n\r\n relatedContactsContent = patient.relatedContacts.map((relatedContact, index) => (\r\n
    \r\n \r\n \r\n
    \r\n {t(\"person.relationship\")}: {relatedContact.relationship}\r\n
    \r\n \r\n \r\n
    \r\n {t(\"person.given\")}: {relatedContact.given}\r\n
    \r\n \r\n \r\n
    \r\n {t(\"person.familyName\")}: {relatedContact.familyName}\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n {t(\"person.address.streetName\")}: {relatedContact.streetName} {relatedContact.streetNumber}\r\n
    \r\n \r\n \r\n
    \r\n {t(\"person.contact.phone\")}: {relatedContact.phone}\r\n
    \r\n \r\n \r\n
    \r\n {t(\"person.contact.email\")}: {relatedContact.email}\r\n
    \r\n \r\n
    \r\n
    \r\n ));\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {relatedContactsContent}\r\n \r\n
    \r\n \r\n }\r\n />\r\n\r\n );\r\n}","import { ErrorMessage, FieldArray } from 'formik';\r\nimport React from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Grid, Row } from 'react-bootstrap';\r\nimport Card from '../Cards/Card';\r\nimport { Remove } from '../Icons/Icons';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\n\r\n\r\nexport const RelatedContactDataForm = props => {\r\n\r\n const {\r\n values,\r\n handleChange,\r\n handleBlur,\r\n t\r\n } = props;\r\n\r\n const emptyRelatedContact = {\r\n relationship: \"\",\r\n given: \"\",\r\n familyName: \"\",\r\n phone: \"\",\r\n email: \"\", streetName: '',\r\n streetNumber: ''\r\n }\r\n return (\r\n
    \r\n {t(\"person.relatedContactData\")}\r\n (\r\n
    \r\n {values.relatedContacts && values.relatedContacts.length > 0 ? (\r\n values.relatedContacts.map((relatedContact, index) => (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.relationship\")}\r\n \r\n \r\n \r\n {t(\"person.given\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.familyName\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.address.streetName\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.address.streetNumber\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.contact.phone\")}\r\n \r\n \r\n \r\n \r\n {t(\"person.contact.email\")}\r\n \r\n \r\n \r\n \r\n \r\n arrayHelpers.remove(index)} // remove from the list\r\n >\r\n {t(\"commons.remove\")}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n />\r\n ))\r\n ) : \"\"}\r\n\r\n \r\n \r\n )}\r\n />\r\n
    \r\n );\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Card } from '../../components/Cards/Card';\r\nimport { IconSVG, ViewMR } from '../Icons/Icons';\r\nimport { WithAuth } from '../Authorization/WithAuth';\r\n\r\nexport const Actions = (props) => {\r\n const { t } = useTranslation();\r\n const { onCreateAppointment, onRedirectTo, onEditPatient, onViewMR, onExportToPDF } = props;\r\n\r\n var redirectTo = null;\r\n if (onRedirectTo) {\r\n redirectTo = (\r\n \r\n );\r\n }\r\n\r\n var createAppointment = null;\r\n if (onCreateAppointment) {\r\n createAppointment = (\r\n \r\n );\r\n }\r\n var editPatient = null;\r\n if (onEditPatient) {\r\n editPatient = (\r\n \r\n );\r\n }\r\n\r\n var viewMR = null;\r\n if (onViewMR) {\r\n viewMR = (\r\n \r\n );\r\n }\r\n\r\n var exportToPDF = null;\r\n if (onExportToPDF) {\r\n exportToPDF = (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n {viewMR}\r\n \r\n \r\n {createAppointment}\r\n \r\n \r\n {editPatient}\r\n \r\n \r\n {exportToPDF}\r\n \r\n {redirectTo}\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nActions.propTypes = {\r\n onViewMR: PropTypes.func,\r\n onCreateAppointment: PropTypes.func,\r\n onRedirectTo: PropTypes.func,\r\n onEditPatient: PropTypes.func,\r\n onExportToPDF: PropTypes.func,\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport SweetAlert from \"react-bootstrap-sweetalert\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport Card from '../Cards/Card';\r\nimport { Back, Save } from '../Icons/Icons';\r\nimport { AddressData } from '../Person/AddressData';\r\nimport { AddressDataForm } from '../Person/AddressDataForm';\r\nimport { ContactData } from '../Person/ContactData';\r\nimport { ContactDataForm } from '../Person/ContactDataForm';\r\nimport { MedicalData } from '../Person/MedicalData';\r\nimport { MedicalDataForm } from '../Person/MedicalDataForm';\r\nimport { PersonalData } from '../Person/PersonalData';\r\nimport { PersonalDataForm } from '../Person/PersonalDataForm';\r\nimport { RelatedContactData } from '../Person/RelatedContactData';\r\nimport { RelatedContactDataForm } from '../Person/RelatedContactDataForm';\r\nimport { Actions } from './Actions';\r\n\r\nexport const Patient = props => {\r\n let history = useHistory();\r\n const location = useLocation();\r\n const patient = props.data;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n history.push(`/admin/agenda?medicalRecordNumber=${patient?.medicalRecordNumber}&source=${location.pathname}`)}\r\n onEditPatient={() => history.push(`/admin/database/${patient?.medicalRecordNumber}/edit`)}\r\n onRedirectTo={() => history.goBack()}\r\n onViewMR={() => history.push(`/admin/medicalRecords/${patient?.medicalRecordNumber}`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const PatientForm = props => {\r\n const {\r\n handleSubmit,\r\n isSubmitting,\r\n isValid,\r\n validateForm,\r\n form,\r\n t\r\n } = props;\r\n\r\n let navigation = useHistory();\r\n\r\n const onSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n if (form === \"new\") {\r\n validateForm().then(\r\n () => {\r\n if (isValid)\r\n warningWithConfirmAndCancelMessage(props.values);\r\n else\r\n handleSubmit()\r\n }\r\n );\r\n }\r\n else {\r\n handleSubmit()\r\n }\r\n }\r\n\r\n const [modal, setModal] = useState(null);\r\n const submitForm = () => { setModal(null); handleSubmit(); }\r\n const cancelForm = () => { setModal(null); }\r\n\r\n const warningWithConfirmAndCancelMessage = (values) => {\r\n setModal(\r\n submitForm()}\r\n onCancel={() => cancelForm()}\r\n confirmBtnBsStyle=\"success\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.save\")}\r\n cancelBtnText={t(\"buttons.back\")}\r\n showCancel\r\n >\r\n
    \r\n {values.identificationType.title} - {values.identificationNumber}\r\n
    \r\n );\r\n }\r\n\r\n return (\r\n \r\n {modal}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n }\r\n />\r\n\r\n );\r\n};","import { useState, useEffect } from \"react\";\r\nimport { HandleApiError } from \"../../components/Notifications/APIErrorHandler\";\r\nimport { getMasterData, getPatients, getPatient } from '../../api/database'\r\n\r\nexport const usePatients = (query) => {\r\n const [patients, setPatients] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [totalSize, setTotalSize] = useState(0);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const getAllPatients = async () => {\r\n try {\r\n const paginatedPatients = await getPatients(query);\r\n\r\n if (isSubscribed) {\r\n setTotalSize(paginatedPatients.data.count);\r\n setPatients(paginatedPatients.data.data);\r\n setIsLoading(false);\r\n }\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n getAllPatients();\r\n\r\n return () => isSubscribed = false\r\n\r\n }, [query]);\r\n\r\n return [patients, isLoading, totalSize];\r\n}\r\n\r\nexport const usePatient = (medicalRecordNumber) => {\r\n const [patient, setPatient] = useState({});\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n const patient = await getPatient(medicalRecordNumber, true);\r\n\r\n if (isSubscribed) {\r\n setPatient(patient.data);\r\n setIsLoading(false);\r\n }\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [medicalRecordNumber]);\r\n\r\n return [patient, isLoading];\r\n}\r\n\r\nexport const useMasterData = () => {\r\n const [masterData, setMasterData] = useState({});\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n getMasterData().then(res => {\r\n setMasterData(res.data);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n fetchData();\r\n }, []);\r\n\r\n return [masterData, isLoading];\r\n}","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect } from \"react\";\r\nimport { withTranslation } from 'react-i18next';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { createPatient } from \"../../api/database\";\r\nimport { PatientForm } from \"../../components/Database/Patient\";\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { getQueryParam } from '../../components/Utils/Commons';\r\nimport { getPatientSchema } from \"../../components/Validations/FormValidationSchema\";\r\nimport { useUsers } from \"../Users/Hooks\";\r\nimport { useMasterData } from \"./Hooks\";\r\n\r\n\r\nexport const CreatePatientContainer = () => {\r\n let history = useHistory();\r\n let location = useLocation();\r\n const [practitioners, isLoadingPractitioners] = useUsers();\r\n const [masterData, isLoadingMasterdata] = useMasterData();\r\n\r\n if (isLoadingPractitioners || isLoadingMasterdata) return null;\r\n\r\n const handlePostSubmit = (mrn) => {\r\n\r\n const redirectTo = getQueryParam(location.search, \"redirectTo\");\r\n if (mrn && redirectTo === \"agenda\")\r\n history.push(`/admin/agenda?medicalRecordNumber=${mrn}&appointment=true`)\r\n else\r\n history.push(`/admin/database`)\r\n }\r\n\r\n return (\r\n history.push(`/admin/database`)}\r\n form=\"new\"\r\n masterData={masterData}\r\n practitioners={practitioners}\r\n />\r\n );\r\n}\r\n\r\nconst CreatePatientFormik = withTranslation()(withFormik({\r\n\r\n enableReinitialize: true,\r\n mapPropsToValues: () => ({\r\n given: '',\r\n familyName: '',\r\n identificationType: '',\r\n identificationNumber: '',\r\n birthDate: '',\r\n gender: '',\r\n address: {\r\n fullAddress: '',\r\n },\r\n telecom: {\r\n cellPhone: '',\r\n email: ''\r\n },\r\n relatedContacts: [],\r\n medicalInsuranceInfo: {\r\n medicalInsuranceNumber: '',\r\n medicalInsurance: '',\r\n },\r\n }),\r\n\r\n validationSchema: getPatientSchema(),\r\n\r\n handleSubmit: async (patient, formikBag) => {\r\n\r\n var patientCopy = {\r\n ...patient,\r\n bloodGroup: patient.bloodGroup != null ? patient.bloodGroup.title : \"\",\r\n bloodFactor: patient.bloodFactor != null ? patient.bloodFactor.title : \"\"\r\n }\r\n\r\n try {\r\n var createdPatient = await createPatient(patientCopy);\r\n formikBag.resetForm();\r\n formikBag.setSubmitting(false);\r\n Success(\"databaseNotifications.Database_PatientCreated\")\r\n formikBag.props.onSubmit && formikBag.props.onSubmit(createdPatient.data.medicalRecordNumber);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n }\r\n },\r\n\r\n displayName: 'PatientForm',\r\n\r\n})(PatientForm));\r\n\r\nCreatePatientFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n form: PropTypes.string.isRequired,\r\n masterData: PropTypes.object.isRequired,\r\n practitioners: PropTypes.array.isRequired\r\n};","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport PropTypes from 'prop-types'\r\nimport { withFormik } from 'formik';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { PatientForm } from \"../../components/Database/Patient\";\r\nimport { useUsers } from \"../Users/Hooks\";\r\nimport { useMasterData, usePatient } from \"./Hooks\";\r\nimport { getPatientSchema } from \"../../components/Validations/FormValidationSchema\";\r\nimport { updatePatient } from \"../../api/database\";\r\n\r\nexport const EditPatientContainer = (props) => {\r\n const { match: { params } } = props;\r\n const medicalRecordNumber = params.medicalRecordNumber;\r\n let history = useHistory();\r\n\r\n const [patient, isLoadingPatient] = usePatient(medicalRecordNumber);\r\n const [practitioners, isLoadingPractitioners] = useUsers();\r\n const [masterData, isLoadingMasterdata] = useMasterData();\r\n\r\n if (isLoadingPractitioners || isLoadingMasterdata || isLoadingPatient) return null;\r\n\r\n return (\r\n history.push(`/admin/database`)}\r\n onCancel={() => history.push(`/admin/database`)}\r\n form=\"edit\"\r\n data={patient}\r\n masterData={masterData}\r\n practitioners={practitioners}\r\n />\r\n );\r\n}\r\n\r\nconst EditPatientFormik = withTranslation()(withFormik({\r\n\r\n enableReinitialize: true,\r\n mapPropsToValues: (props) => (props.data),\r\n\r\n validationSchema: getPatientSchema(),\r\n\r\n handleSubmit: (patient, formikBag) => {\r\n //console.log(patient);\r\n\r\n var patientCopy = {\r\n ...patient,\r\n bloodGroup: patient.bloodGroup != null ? patient.bloodGroup.title : \"\",\r\n bloodFactor: patient.bloodFactor != null ? patient.bloodFactor.title : \"\"\r\n }\r\n\r\n updatePatient(patientCopy).then(res => {\r\n formikBag.setSubmitting(false);\r\n Success(\"databaseNotifications.Database_PatientUpdated\");\r\n formikBag.props.onSubmit();\r\n }).catch(error => {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'PatientForm',\r\n\r\n})(PatientForm));\r\n\r\nEditPatientFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n data: PropTypes.object.isRequired,\r\n form: PropTypes.string.isRequired,\r\n masterData: PropTypes.object.isRequired,\r\n practitioners: PropTypes.array.isRequired\r\n};","import React from 'react'\r\nimport { Patient } from '../../components/Database/Patient';\r\nimport { usePatient } from './Hooks';\r\n\r\nexport const PatientContainer = (props) => {\r\n const { match: { params } } = props;\r\n const medicalRecordNumber = params.medicalRecordNumber;\r\n\r\n const [patient, isLoading] = usePatient(medicalRecordNumber);\r\n\r\n if (isLoading)\r\n return null;\r\n\r\n return (\r\n \r\n );\r\n}","import { debounce } from 'lodash';\r\nimport React, { useCallback, useState } from 'react';\r\nimport { FormControl, FormGroup, InputGroup } from \"react-bootstrap\";\r\nimport { IconSVG } from '../Icons/Icons';\r\n\r\nexport const CustomSearchBox = (props) => {\r\n\r\n const [value, setValue] = useState(\"\");\r\n const debouncedSearch = useCallback(\r\n debounce((value) => {\r\n props.handleSearch(value);\r\n }, 1000),\r\n [],\r\n );\r\n\r\n const handleInputChange = (ev) => {\r\n\r\n if (!ev) {\r\n setValue(\"\");\r\n debouncedSearch(\"\");\r\n return;\r\n }\r\n\r\n var q = ev.currentTarget.value;\r\n setValue(q);\r\n if (q && q.length >= 2) {\r\n debouncedSearch(q);\r\n }\r\n\r\n // Limpio búsqueda. \r\n if (q.length === 0) {\r\n debouncedSearch(\"\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import i18n from 'i18next';\r\n\r\nexport const VisitStages = () => {\r\n return [\r\n { id: 0, code: 'screening', title: i18n.t(\"protocols.visit.screening\") },\r\n { id: 1, code: 'random', title: i18n.t(\"protocols.visit.random\") },\r\n { id: 2, code: 'treatment', title: i18n.t(\"protocols.visit.treatment\") },\r\n { id: 3, code: 'followUp', title: i18n.t(\"protocols.visit.followUp\") }\r\n ]\r\n};\r\n\r\nexport const NotesEnum = () => {\r\n return [\r\n { id: 0, code: 'initial', title: i18n.t(\"notes.status.initial\") },\r\n { id: 1, code: 'fixed', title: i18n.t(\"notes.status.fixed\") },\r\n { id: 2, code: 'invalid', title: i18n.t(\"notes.status.invalid\") }\r\n ]\r\n};\r\n\r\nexport const OffsetTypes = () => {\r\n return [{ id: 0, code: 'days', title: i18n.t(\"protocols.visit.days\") }, { id: 1, code: 'weeks', title: i18n.t(\"protocols.visit.weeks\") }, { id: 2, code: 'months', title: i18n.t(\"protocols.visit.months\") }]\r\n};\r\n\r\nexport const Types = () => {\r\n return [{ id: 0, code: 'P', title: i18n.t(\"protocols.visitTracking.onsite\") }, { id: 1, code: 'EP', title: i18n.t(\"protocols.visitTracking.remote\") }]\r\n};","export function EnumValue(value, name) {\r\n this.Value = value;\r\n this.Name = name;\r\n}","import { EnumValue } from \"./Utils\";\r\n\r\nexport function IotDevice({ id, name, createAt, freezerId, state, certificatePath } = {}) {\r\n this.Id = id ?? 0;\r\n this.Name = name ?? null;\r\n this.CreateAt = createAt ?? null;\r\n this.FreezerId = freezerId\r\n this.State = DeviceStates.TryParseState(state)\r\n this.CertificatePath = certificatePath;\r\n}\r\n\r\nexport const DeviceStates = {\r\n Active: new EnumValue(1, \"active\"),\r\n Asociated: new EnumValue(2, \"asociated\"),\r\n InRepair: new EnumValue(3, \"in repair\"),\r\n Deleted: new EnumValue(4, \"deleted\"),\r\n\r\n TryParseState: (state) => {\r\n switch (state?.toLowerCase()) {\r\n default:\r\n case \"active\": return DeviceStates.Active\r\n case \"asociated\": return DeviceStates.Asociated\r\n case \"in repair\": return DeviceStates.InRepair\r\n case \"deleted\": return DeviceStates.Deleted\r\n }\r\n },\r\n\r\n ToArray: () => {\r\n const arr = new Array();\r\n arr.push(DeviceStates.Active)\r\n arr.push(DeviceStates.InRepair)\r\n arr.push(DeviceStates.Asociated)\r\n return arr;\r\n }\r\n}","import { IotDevice } from \"./IotDevice\";\r\nimport { EnumValue } from \"./Utils\";\r\n\r\nexport function Freezer({ id, description, device, createAt, deviceId, location, type, state } = {}) {\r\n this.Id = id ?? null;\r\n this.Description = description ?? null;\r\n this.Device = device != null ? new IotDevice(device) : null;\r\n this.DeviceId = deviceId ?? 0;\r\n this.CreateAt = createAt ?? null;\r\n this.Location = location ?? null;\r\n this.State = FreezerStates.TryParseState(state)\r\n this.Type = FreezerTypes.TryParseState(type)\r\n this.HasDevice = function () { return this.Device != null || this.DeviceId > 0; }\r\n}\r\n\r\n\r\n\r\nexport const FreezerTypes = {\r\n Ambient: new EnumValue(1, \"ambient\"),\r\n Fridge: new EnumValue(2, \"fridge\"),\r\n Freezer: new EnumValue(3, \"freezer\"),\r\n UltraFreezer: new EnumValue(4, \"ultra freezer\"),\r\n\r\n TryParseState: (state) => {\r\n switch (state?.toLowerCase()) {\r\n default:\r\n case \"ambient\": return FreezerTypes.Ambient\r\n case \"fridge\": return FreezerTypes.Fridge\r\n case \"freezer\": return FreezerTypes.Freezer\r\n case \"ultra freezer\": return FreezerTypes.UltraFreezer\r\n }\r\n },\r\n\r\n ToArray: () => {\r\n const arr = new Array();\r\n arr.push(FreezerTypes.Ambient)\r\n arr.push(FreezerTypes.Fridge)\r\n arr.push(FreezerTypes.Freezer)\r\n arr.push(FreezerTypes.UltraFreezer)\r\n return arr;\r\n }\r\n}\r\n\r\nexport const FreezerStates = {\r\n Active: new EnumValue(1, \"active\"),\r\n InRepair: new EnumValue(2, \"in repair\"),\r\n Inactive: new EnumValue(3, \"inactive\"),\r\n Deleted: new EnumValue(4, \"deleted\"),\r\n\r\n TryParseState: (state) => {\r\n switch (state?.toLowerCase()) {\r\n default:\r\n case \"active\": return FreezerStates.Active\r\n case \"in repair\": return FreezerStates.InRepair\r\n case \"inactive\": return FreezerStates.Inactive\r\n case \"deleted\": return FreezerStates.Deleted\r\n }\r\n },\r\n\r\n ToArray: () => {\r\n const arr = new Array();\r\n arr.push(FreezerStates.Active)\r\n arr.push(FreezerStates.InRepair)\r\n arr.push(FreezerStates.Inactive)\r\n return arr;\r\n }\r\n}\r\n\r\n","import React from \"react\";\r\nimport { ErrorMessage } from 'formik';\r\nimport { Grid, Row, Col, FormGroup, ControlLabel, FormControl } from 'react-bootstrap'\r\nimport { FreezerStates, FreezerTypes, Freezer } from \"../../../api/Freezer/Entities/Freezer\";\r\nimport { CustomSelect } from \"../../../components/CustomControls/CustomSelect\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { FormErrorMessage } from \"../../../components/Validations/FormValidationErrors\";\r\n\r\nexport function FreezerForm({ values, handleSubmit, handleChange, handleBlur, t, onCancel, isSubmitting, setFieldValue, setFieldTouched }) {\r\n if (!values.freezer) {\r\n values.freezer = new Freezer()\r\n }\r\n const { freezer } = values;\r\n\r\n const isEdition = (freezer.Id !== null && freezer.Id !== \"\")\r\n return (\r\n \r\n \r\n {t(\"commons.description\")}\r\n \r\n \r\n \r\n\r\n \r\n {t(\"commons.location\")}\r\n \r\n \r\n \r\n\r\n \r\n {t(\"commons.type\")}\r\n t(`settings.freezer.types.${option.Name}`)}\r\n getOptionValue={(option) => option.Value}\r\n />\r\n \r\n\r\n {isEdition && \r\n {t(\"commons.status\")}\r\n t(`settings.freezer.states.${option.Name}`)}\r\n getOptionValue={(option) => option.Value}\r\n />\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n )\r\n}","export function Url(basePath) {\r\n const BasePath = basePath;\r\n return (path) => `${BasePath}${path ?? \"\"}`\r\n}\r\nexport function ResponseResult({ succeeded, errors, value = null }) {\r\n this.Succeeded = succeeded ?? false;\r\n this.Value = value ?? null\r\n this.Errors = errors ?? [];\r\n}\r\n\r\nexport function PaginationResult({ values = [], pageSize = 10, totalPages = 1, totalCount = 0, pageNumber = 1, hasNext = false, hasPrevious = false, search = '', sortColumn = null, sortOrder = null } = {}) {\r\n this.Values = values;\r\n this.TotalPages = totalPages;\r\n this.PageSize = pageSize;\r\n this.TotalCount = totalCount;\r\n this.PageNumber = pageNumber;\r\n this.HasNext = hasNext;\r\n this.HasPrevious = hasPrevious;\r\n this.Search = search;\r\n this.SortColumn = sortColumn;\r\n this.SortOrder = sortOrder;\r\n\r\n this.ToPage = function (page) {\r\n if (page <= 0) return null\r\n if (page > this.TotalPages) return null\r\n\r\n return new PaginationRequest({ pageNumber: page, pageSize: this.PageSize, search: this.Search, sortColumn: this.SortColumn, sortOrder: this.SortOrder })\r\n }\r\n}\r\n\r\nexport function PaginationRequest({ search = '', pageNumber = 1, pageSize = 10, sortColumn = null, sortOrder = null, tenantId } = {}) {\r\n this.search = search;\r\n this.pageNumber = pageNumber;\r\n this.pageSize = pageSize;\r\n this.sortColumn = sortColumn;\r\n this.sortOrder = sortOrder;\r\n this.tenant = tenantId\r\n}\r\n\r\nexport function GetBlobData({ data, headers }) {\r\n const blob = new Blob([data], { type: data.type })\r\n const contentDisposition = headers['content-disposition']\r\n let fileName = 'unknown'\r\n\r\n if (contentDisposition) {\r\n const fileNameMatch = contentDisposition.match(/filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/)\r\n if (fileNameMatch.length > 1)\r\n fileName = fileNameMatch[1].replace(/['\"]+/g, '');\r\n }\r\n\r\n return { blob, fileName }\r\n}","import axios from \"axios\";\r\nimport { PaginationRequest, PaginationResult, ResponseResult, Url } from \"./Util\";\r\nimport { Freezer } from \"./Entities/Freezer\";\r\nimport { IotDevice } from \"./Entities/IotDevice\";\r\n\r\nconst GetUrl = Url(\"api/v1/Freezer\");\r\n\r\nexport default {\r\n Find,\r\n Create,\r\n Update,\r\n Delete,\r\n GetById,\r\n GetAvailableDevices\r\n}\r\n\r\nasync function Find({ search, pageNumber, sortOrder, pageSize, withDevices = false, freezerIds = [] } = {}){\r\n const response = await axios.post(GetUrl('/Find'), { search, pageNumber, sortOrder, pageSize, withDevices, freezerIds });\r\n const data = new PaginationResult(response.data);\r\n data.Values = data.Values.map(f => new Freezer(f))\r\n return data;\r\n}\r\n\r\nasync function Create(freezer) {\r\n const response = await axios.post(GetUrl(), { ...freezer, State: freezer.State.Name, Type: freezer.Type.Name });\r\n return new ResponseResult({ ...response.data, value: new Freezer(response.data.value) });\r\n}\r\nasync function Update(freezer) {\r\n const response = await axios.put(GetUrl(), { ...freezer, State: freezer.State.Name, Type: freezer.Type.Name });\r\n return new ResponseResult({ ...response.data, value: new Freezer(response.data.value) });\r\n}\r\nasync function Delete(freezerId) {\r\n const response = await axios.delete(GetUrl(`/${freezerId}`));\r\n return new ResponseResult({ ...response.data })\r\n}\r\n\r\nasync function GetById(id) {\r\n if (id == null || id == '') throw new Error('The ID can not be empty')\r\n const response = await axios.get(GetUrl(`/${id}`))\r\n return new Freezer(response.data.value);\r\n}\r\n\r\n\r\nasync function GetAvailableDevices() {\r\n const response = await axios.get(GetUrl(\"/AvailableDevices\"))\r\n const result = new ResponseResult(response.data);\r\n result.Value.map(d => new IotDevice(d))\r\n return result\r\n}\r\n\r\n","import React from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { withFormik } from 'formik';\r\nimport { FreezerForm } from \"./FreezerForm\";\r\nimport FreezerService from \"../../../api/Freezer/FreezerService\";\r\nimport { getFreezerSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { ErrorMessage, Success } from \"../../../components/Notifications/Notifications\";\r\n\r\nexport default function CreateFreezerContainer() {\r\n let history = useHistory();\r\n\r\n const handleSubmit = () => {\r\n history.push(`/admin/settings/freezers`);\r\n }\r\n const handleCancel = () => {\r\n history.push(`/admin/settings/freezers`);\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst CreateFreezerContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({}),\r\n validationSchema: getFreezerSchema(),\r\n handleSubmit: async (values, formikBag) => {\r\n try {\r\n const result = await FreezerService.Create(values.freezer)\r\n if (result.Succeeded) {\r\n Success(\"commons.successSave\")\r\n formikBag.props.onSubmit();\r\n } else {\r\n formikBag.props.onSubmit(false);\r\n ErrorMessage(\"errors.serverError\")\r\n }\r\n } catch (err) {\r\n ErrorMessage(\"errors.serverError\")\r\n } finally {\r\n formikBag.setSubmitting(false);\r\n }\r\n },\r\n displayName: 'FreezerForm',\r\n})(FreezerForm))","import { useEffect, useState } from \"react\"\r\nconst props = {\r\n onLoad: async () => { },\r\n onError: async (err) => err,\r\n}\r\n\r\nexport default function useLoading({ onLoad, onError } = props) {\r\n const [isLoading, setLoading] = useState(false)\r\n const [reload, setReload] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!onLoad) return;\r\n\r\n async function fetchData() {\r\n setLoading(true);\r\n setReload(false);\r\n try {\r\n await onLoad();\r\n } catch (err) {\r\n if (onError)\r\n onError(err)\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n fetchData()\r\n }, [reload])\r\n\r\n const useLoad = async (callback, errCallback = null) => {\r\n setLoading(true);\r\n try {\r\n await callback();\r\n } catch (err) {\r\n if (errCallback) errCallback(err)\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n const doReaload = () => setReload(true)\r\n\r\n return [isLoading, useLoad, doReaload]\r\n}","import { withFormik } from \"formik\";\r\nimport React from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { FreezerForm } from \"./FreezerForm\";\r\nimport useFreezer from \"../useFreezer\";\r\nimport PropTypes from 'prop-types'\r\nimport FreezerService from \"../../../api/Freezer/FreezerService\";\r\nimport { getFreezerSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { ErrorMessage, Success } from \"../../../components/Notifications/Notifications\";\r\n\r\nexport default function EditFreezerContainer({ match: { params } }) {\r\n let history = useHistory();\r\n const [freezer, isLoading] = useFreezer(params.freezerId ?? \"\")\r\n\r\n const handleSubmit = () => {\r\n history.push(`/admin/settings/freezers`);\r\n }\r\n const handleCancel = () => {\r\n history.push(`/admin/settings/freezers`);\r\n }\r\n\r\n if (!freezer.Id)\r\n return null;\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst EditFreezerContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: ({ freezer }) => ({ freezer }),\r\n validationSchema: getFreezerSchema(),\r\n handleSubmit: async (values, formikBag) => {\r\n try {\r\n const result = await FreezerService.Update(values.freezer)\r\n if (result.Succeeded)\r\n Success(\"commons.successSave\")\r\n else\r\n ErrorMessage(\"errors.serverError\")\r\n } catch (err) {\r\n ErrorMessage(\"errors.serverError\")\r\n } finally {\r\n formikBag.setSubmitting(false);\r\n }\r\n },\r\n displayName: 'FreezerForm'\r\n})(FreezerForm))\r\n\r\nEditFreezerContainerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n}\r\n\r\n","import { useState } from \"react\"\r\nimport useLoading from \"../../components/Common/useLoading\"\r\nimport { PaginationRequest, PaginationResult } from \"../../api/Freezer/Util\"\r\nimport FreezerService from \"../../api/Freezer/FreezerService\"\r\n\r\nconst propsTemplate = { ...new PaginationRequest(), withDevices: true }\r\n\r\nexport default function useFreezers(props = propsTemplate) {\r\n const [pagedFreezers, setPagedFreezers] = useState(new PaginationResult())\r\n const [isLoading, useLoad, reload] = useLoading({\r\n onLoad: async () => {\r\n const result = await FreezerService.Find(props)\r\n setPagedFreezers(result)\r\n },\r\n onError: () => {\r\n setPagedFreezers(new PaginationResult())\r\n }\r\n })\r\n\r\n const Navigation = {\r\n ToPage: async ({ page }) => useLoad(async () => {\r\n const request = pagedFreezers.ToPage(page);\r\n\r\n if (request == null) return\r\n\r\n const result = await FreezerService.Find({ ...request, withDevices: true })\r\n setPagedFreezers(result)\r\n }),\r\n Reload: reload\r\n }\r\n\r\n return [pagedFreezers, isLoading, Navigation]\r\n}","import React from \"react\";\r\nimport { useTranslation } from 'react-i18next'\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { Edit, Remove, Attach } from \"../../../components/Icons/Icons\";\r\nimport { Tooltip } from \"../../../components/Utils/Tooltips\";\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuth\";\r\n\r\nexport function Freezers({ pagedFreezers, isLoading, onEdit, onRemove, onTableChange, onOpenCertificate }) {\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'Description', text: t(\"commons.description\"), headerStyle: { width: '15.625rem' } },\r\n { dataField: 'Location', text: t(\"commons.location\"), headerStyle: { width: '12.5rem' } },\r\n { dataField: 'State', text: t(\"commons.status\"), headerStyle: { width: '8rem' }, formatter: function (_cell, freezer, rowIndex) { return freezer.State !== null ? t(`settings.freezer.states.${freezer.State.Name}`) : \"-\" } },\r\n { dataField: 'Type', text: t(\"commons.type\"), headerStyle: { width: '8rem' }, formatter: function (_cell, freezer, rowIndex) { return freezer.Type !== null ? t(`settings.freezer.types.${freezer.Type.Name}`) : \"-\" } },\r\n {\r\n text: t(\"settings.freezer.device\"), headerStyle: { width: '4rem' }\r\n , formatter: function (_cell, freezer, rowIndex) {\r\n return freezer.HasDevice() ? freezer.Device.Name : \" - \"\r\n }\r\n },\r\n {\r\n dataField: 'view',\r\n text: \"\",\r\n isDummyField: true,\r\n headerClasses: 'header-actions',\r\n classes: 'row-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n {row.Device?.CertificatePath != null && }\r\n \r\n
    \r\n )\r\n }\r\n }\r\n ]\r\n\r\n return (\r\n <>\r\n <>{t(\"commons.noData\")}}\r\n />\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { Modal, Button } from 'react-bootstrap'\r\nimport { useTranslation } from 'react-i18next'\r\nimport FreezerService from \"../../../api/Freezer/FreezerService\";\r\nimport { ErrorMessage, Success } from \"../../../components/Notifications/Notifications\";\r\nimport useLoading from \"../../../components/Common/useLoading\";\r\n\r\nexport function DeleteFreezerModal({ state: { show, value, onClose, onEvent } }) {\r\n const { t } = useTranslation();\r\n const [isLoading, withLoad] = useLoading()\r\n\r\n\r\n const onDelete = async () => {\r\n await withLoad(async () => {\r\n try {\r\n const result = await FreezerService.Delete(value.Id)\r\n if (result.Succeeded)\r\n Success(t('commons.deleteSuccess'))\r\n else\r\n ErrorMessage(t('commons.deleteError'))\r\n } finally {\r\n onClose()\r\n onEvent(\"reload\")\r\n }\r\n })\r\n }\r\n\r\n if (!show) return null\r\n\r\n return (\r\n \r\n \r\n {t(\"commons.deleteTitle\")} - {value?.Description}\r\n \r\n \r\n {t('commons.confirmRemove')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import { useReducer } from \"react\"\r\n\r\nfunction ModalStateReducer(state, action) {\r\n switch (action.type?.toLowerCase()) {\r\n case 'open': return { value: action.value, show: true }\r\n case 'close':\r\n default: return { value: undefined, show: false }\r\n }\r\n}\r\n\r\nexport function useModalContext({ handleEvent } = {}) {\r\n const [state, dispatch] = useReducer(ModalStateReducer, {\r\n show: false,\r\n value: undefined\r\n })\r\n\r\n const onClose = () => dispatch({ type: 'close' })\r\n const onOpen = (value) => dispatch({ type: 'open', value: value })\r\n const onEvent = (e) => { if (handleEvent !== null) handleEvent(e) }\r\n\r\n return [{ ...state, onClose, onEvent }, onOpen]\r\n}","import React from \"react\";\r\nimport { Spinner } from \"../Utils/Loaders\";\r\n\r\nexport default function Loader({ children, isLoading, loadingText }) {\r\n if (!isLoading)\r\n return children;\r\n return (\r\n
    \r\n \r\n {loadingText && {loadingText}}\r\n
    )\r\n}","import DocViewer, { DocViewerRenderers } from \"@cyntler/react-doc-viewer\";\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport \"../../../assets/sass/lbd/_documentViewer.scss\";\r\nimport { ModalData } from \"../../Modals/ModalData\";\r\nimport { Spinner } from \"../../Utils/Loaders\";\r\n\r\nexport const DocumentViewer = ({ file, fileName, inModal, isLoading }) => {\r\n const { t } = useTranslation();\r\n const [isShowing, setIsShowing] = useState(true);\r\n\r\n const rigthClickBlock = (event) => {\r\n event.preventDefault()\r\n }\r\n useEffect(() => {\r\n if (file) {\r\n document.addEventListener('contextmenu', rigthClickBlock);\r\n setIsShowing(true);\r\n }\r\n else {\r\n document.removeEventListener('contextmenu', rigthClickBlock);\r\n setIsShowing(false);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('contextmenu', rigthClickBlock);\r\n };\r\n }, [file]);\r\n\r\n const toggleModal = () => {\r\n try { window.URL.revokeObjectURL(urlBlob); }\r\n catch (error) { console.error(error) }\r\n setIsShowing(!isShowing);\r\n };\r\n\r\n if (!file)\r\n return null;\r\n\r\n let urlBlob = window.URL.createObjectURL(file);\r\n\r\n const viewer = (\r\n \r\n );\r\n\r\n if (inModal)\r\n return (\r\n \r\n <>\r\n {isLoading ?? }\r\n {viewer}\r\n \r\n \r\n )\r\n\r\n return viewer;\r\n /* \r\n return ();*/\r\n}\r\n\r\nDocumentViewer.defaultProps = {\r\n inModal: true\r\n};\r\n\r\nDocumentViewer.propTypes = {\r\n fileName: PropTypes.string,\r\n file: PropTypes.object,\r\n inModal: PropTypes.bool,\r\n};","import axios from \"axios\";\r\nimport { GetBlobData, PaginationRequest, PaginationResult, ResponseResult, Url } from \"./Util\";\r\nimport { IotDevice } from \"./Entities/IotDevice\";\r\n\r\nconst GetUrl = Url(\"api/v1/IotDevice\");\r\n\r\nexport default {\r\n Find,\r\n AssignFreezer,\r\n GetById,\r\n Create,\r\n Delete,\r\n UploadCertificate,\r\n GetCertificate\r\n}\r\n\r\nasync function Find(request = {}) {\r\n const { search, pageNumber, sortOrder, pageSize } = request\r\n\r\n const response = await axios.get(GetUrl('/Find'), { params: new PaginationRequest({ sortColumn: 'name', search, pageNumber, sortOrder, pageSize }) });\r\n const data = new PaginationResult(response.data)\r\n data.Values = data.Values.map(f => new IotDevice(f))\r\n return data;\r\n\r\n}\r\n\r\nasync function AssignFreezer({ freezerId, deviceId }) {\r\n if (freezerId == null || freezerId == '') throw new Error('FreezerId: The ID can not be empty')\r\n if (isNaN(deviceId)) throw new Error('DeviceId: Numeric ID is required');\r\n\r\n const response = await axios.post(GetUrl('AssignFreezer'), { Id: deviceId, FreezerId: freezerId });\r\n return response.data.Succeeded;\r\n}\r\nasync function GetById(id) {\r\n if (isNaN(id)) throw new Error('Numeric ID is required')\r\n\r\n const response = await axios.get(GetUrl(`/${id}`))\r\n return new IotDevice(response.data.value);\r\n}\r\n\r\nasync function Create(device) {\r\n const response = await axios.post(GetUrl(), { ...device });\r\n return new ResponseResult({ ...response.data, value: new IotDevice(response.data.value) });\r\n}\r\n\r\nasync function Delete(deviceId) {\r\n if (isNaN(deviceId)) throw new Error('Numeric ID is required')\r\n\r\n const response = await axios.delete(GetUrl(`/${deviceId}`));\r\n return new ResponseResult({ ...response.data })\r\n}\r\n\r\nasync function UploadCertificate(deviceId, file) {\r\n const formData = new FormData();\r\n formData.append('certificate', file);\r\n const response = await axios.post(GetUrl(`/UploadCertificate/${deviceId}`), formData, {\r\n headers: {\r\n 'Content-Type': 'application/pdf'\r\n }\r\n });\r\n return new ResponseResult(response.data)\r\n}\r\n\r\nasync function GetCertificate(path) {\r\n const response = await axios.get(path, { responseType: 'blob' })\r\n const blob = GetBlobData(response)\r\n return blob\r\n}","import React, { useContext, useState } from \"react\";\r\nimport { useTranslation } from 'react-i18next'\r\nimport { NavLink, useHistory } from \"react-router-dom\"\r\nimport useFreezers from '../useFreezers';\r\nimport { Freezers } from \"./Freezers\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { Add } from \"../../../components/Icons/Icons\";\r\nimport { DeleteFreezerModal } from \"./DeleteFreezerModal.jsx\";\r\nimport FreezerService from \"../../../api/Freezer/FreezerService\";\r\nimport { useModalContext } from \"../../../components/Modals/useModalContext\";\r\nimport Loader from \"../../../components/Common/Loader\";\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuth\";\r\nimport { DocumentViewer } from \"../../../components/CustomControls/DocViewer/DocumentViewer\";\r\nimport DeviceService from \"../../../api/Freezer/DeviceService\";\r\n\r\nexport default function FreezersContainer({ }) {\r\n const { t } = useTranslation()\r\n let history = useHistory();\r\n const [pagedFreezers, isLoading, navigation] = useFreezers()\r\n const [certificate, setCertificate] = useState(null)\r\n const [modalContext, openDeleteModal] = useModalContext({\r\n handleEvent: (e) => navigation.Reload()\r\n })\r\n\r\n\r\n const handleEdit = (freezerId) => {\r\n history.push(`/admin/settings/freezers/${freezerId}`);\r\n }\r\n const handleRemove = async (freezerId) => {\r\n if (freezerId) {\r\n const freezer = await FreezerService.GetById(freezerId)\r\n openDeleteModal(freezer)\r\n }\r\n }\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n navigation.ToPage({ page })\r\n }\r\n\r\n const handleOpenCertificate = async (path) => {\r\n const result = await DeviceService.GetCertificate(path)\r\n setCertificate(result)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {t(\"settings.freezer.add\")}\r\n \r\n \r\n \r\n }\r\n content={\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\n\r\n","import React from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { withFormik } from 'formik';\r\nimport { getDeviceSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { ErrorMessage, Success } from \"../../../components/Notifications/Notifications\";\r\nimport DeviceService from \"../../../api/Freezer/DeviceService\";\r\nimport { DeviceForm } from \"./DeviceForm\";\r\n\r\nexport default function CreateIotDeviceContainer() {\r\n let history = useHistory();\r\n\r\n const handleSubmit = () => {\r\n history.push(`/admin/settings/devices`);\r\n }\r\n const handleCancel = () => {\r\n history.push(`/admin/settings/devices`);\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst CreateFreezerContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({}),\r\n validationSchema: getDeviceSchema(),\r\n handleSubmit: async (values, formikBag) => {\r\n try {\r\n const result = await DeviceService.Create(values.device)\r\n if (result.Succeeded) {\r\n Success(\"commons.successSave\")\r\n formikBag.props.onSubmit();\r\n } else {\r\n formikBag.props.onSubmit(false);\r\n ErrorMessage(\"errors.serverError\")\r\n }\r\n } catch (err) {\r\n ErrorMessage(\"errors.serverError\")\r\n } finally {\r\n formikBag.setSubmitting(false);\r\n\r\n }\r\n },\r\n displayName: 'DeviceForm',\r\n})(DeviceForm))","import React from \"react\";\r\nimport { ErrorMessage } from 'formik';\r\nimport { Grid, Row, Col, FormGroup, ControlLabel, FormControl } from 'react-bootstrap'\r\nimport { CustomSelect } from \"../../../components/CustomControls/CustomSelect\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { FormErrorMessage } from \"../../../components/Validations/FormValidationErrors\";\r\nimport { DeviceStates, IotDevice } from \"../../../api/Freezer/Entities/IotDevice\";\r\n\r\nexport function DeviceForm({ values, handleSubmit, handleChange, handleBlur, t, onCancel, isSubmitting, setFieldValue, setFieldTouched }) {\r\n if (!values.device) {\r\n values.device = new IotDevice()\r\n }\r\n const { device } = values;\r\n const isEdition = (device.Id !== null && device.Id > 0)\r\n return (\r\n \r\n \r\n {t(\"commons.name\")}\r\n \r\n \r\n \r\n\r\n {isEdition && \r\n {t(\"settings.device.detail.state\")}\r\n t(`settings.device.states.${option.Name}`)}\r\n getOptionValue={(option) => option.Value}\r\n />\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n )\r\n}","import React from \"react\"\r\nimport './Field.css'\r\n\r\nexport const Field = ({ title, value }) => {\r\n return (
    \r\n
    \r\n {title}: \r\n
    \r\n
    \r\n {value}\r\n
    \r\n
    )\r\n}","import React, { useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { Col, Row, Grid, Modal, Button } from 'react-bootstrap';\r\nimport useIotDevice from \"../useIotDevice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Loader from \"../../../components/Common/Loader\";\r\nimport moment from \"moment\";\r\nimport { DocumentViewer } from \"../../../components/CustomControls/DocViewer/DocumentViewer\";\r\nimport useLoading from \"../../../components/Common/useLoading\";\r\nimport { useModalContext } from \"../../../components/Modals/useModalContext\";\r\nimport DeviceService from \"../../../api/Freezer/DeviceService\";\r\nimport { ErrorMessage, Success } from \"../../../components/Notifications/Notifications\";\r\nimport { Field } from \"../../../components/Common/Field/Field\";\r\n\r\nexport default function DeviceDetails({ match: { params } }) {\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n const [device, isLoading, reload, getCertificate] = useIotDevice(params.deviceId ?? 0)\r\n\r\n const [certificate, setCertificate] = useState(null)\r\n const [modalContext, openModal] = useModalContext({\r\n handleEvent: (e) => {\r\n reload()\r\n }\r\n })\r\n\r\n const handleCancel = () => {\r\n history.push(`/admin/settings/devices`);\r\n }\r\n\r\n const handleCertificate = async () => {\r\n openModal(device.Id)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n } />\r\n \r\n \r\n )\r\n}\r\n\r\nfunction UploadCertificateModal({ state: { show, value, onClose, onEvent } }) {\r\n const [certificate, setCertificate] = useState(null)\r\n const [isLoading, withLoad] = useLoading()\r\n const { t } = useTranslation();\r\n const onHandleUpload = (e) => withLoad(async () => {\r\n try {\r\n const file = certificate.files[0]\r\n const result = await DeviceService.UploadCertificate(value, file)\r\n if (result.Succeeded)\r\n Success(t('commons.fileUploaded'))\r\n else\r\n ErrorMessage(t('errors.serverError'))\r\n } catch (err) {\r\n ErrorMessage(t('errors.serverError'))\r\n } finally {\r\n onEvent(\"reload\")\r\n onClose()\r\n }\r\n });\r\n\r\n const setFile = (e) => {\r\n console.log(e)\r\n setCertificate(e.target)\r\n }\r\n\r\n if (!show) return null\r\n\r\n return (<>\r\n \r\n \r\n {t('commons.certificate')}\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import { useState } from \"react\"\r\nimport useLoading from \"../../components/Common/useLoading\"\r\nimport DeviceService from \"../../api/Freezer/DeviceService\"\r\nimport { PaginationRequest, PaginationResult } from \"../../api/Freezer/Util\"\r\nimport { ErrorMessage } from \"../../components/Notifications/Notifications\"\r\n\r\nconst propsTemplate = { ...new PaginationRequest() }\r\nexport default function useIotDevices(props = propsTemplate) {\r\n const [pagedDevices, setPagedDevices] = useState(new PaginationResult())\r\n const [isLoading, useLoad, reload] = useLoading({\r\n onLoad: async () => {\r\n const result = await DeviceService.Find({ ...propsTemplate })\r\n setPagedDevices(result)\r\n },\r\n onError: () => {\r\n setPagedDevices(new PaginationResult())\r\n }\r\n })\r\n\r\n const Navigation = {\r\n ToPage: async ({ page }) => useLoad(async () => {\r\n const request = pagedDevices.ToPage(page);\r\n\r\n if (request == null) return\r\n\r\n const result = await DeviceService.Find(request)\r\n setPagedDevices(result)\r\n }),\r\n Reload: reload\r\n }\r\n\r\n return [pagedDevices, isLoading, Navigation]\r\n}","import React from \"react\";\r\nimport { useTranslation } from 'react-i18next'\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { Tooltip } from \"../../../components/Utils/Tooltips\";\r\nimport { Edit, Remove, Attach } from \"../../../components/Icons/Icons\";\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuth\";\r\n\r\nexport default function IotDevices({ pagedDevices, isLoading, onTableChange, onRemove, onDetail }) {\r\n const { t } = useTranslation();\r\n const columns = [\r\n { dataField: 'Id', text: 'ID', headerStyle: { width: '3rem' } },\r\n { dataField: 'Name', text: t(\"commons.name\"), headerStyle: { width: '15.625rem' } },\r\n { dataField: 'State', text: t(\"commons.state\"), headerStyle: { width: '10rem' }, formatter: function (_cell, device, rowIndex) { return device.State !== null ? t(`settings.device.states.${device.State.Name}`) : \"-\" } },\r\n {\r\n dataField: 'view',\r\n text: t(\"\"),\r\n isDummyField: true,\r\n headerClasses: 'header-actions',\r\n classes: 'row-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ]\r\n\r\n return (\r\n <>\r\n <>{t(\"commons.noData\")}}\r\n />\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { Modal, Button } from 'react-bootstrap'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { ErrorMessage, Success } from \"../../../components/Notifications/Notifications\";\r\nimport useLoading from \"../../../components/Common/useLoading\";\r\nimport DeviceService from \"../../../api/Freezer/DeviceService\";\r\n\r\nexport function DeleteDeviceModal({ state: { show, value, onClose, onEvent } }) {\r\n const { t } = useTranslation();\r\n const [isLoading, withLoad] = useLoading()\r\n\r\n const onDelete = async () => {\r\n await withLoad(async () => {\r\n try {\r\n const result = await DeviceService.Delete(value.Id)\r\n if (result.Succeeded)\r\n Success(t('commons.deleteSuccess'))\r\n else\r\n ErrorMessage(t('commons.deleteError'))\r\n } finally {\r\n onClose()\r\n onEvent(\"reload\")\r\n }\r\n })\r\n }\r\n\r\n if (!show) return null\r\n\r\n return (\r\n \r\n \r\n {t(\"commons.deleteTitle\")} - {value?.Name}\r\n \r\n \r\n {t('commons.confirmRemove')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from 'react-i18next'\r\nimport useIotDevices from \"../useIotDevices\";\r\nimport IotDevices from \"./IotDevices\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport Loader from \"../../../components/Common/Loader\";\r\nimport { DeleteDeviceModal } from \"./DeleteDeviceModal\";\r\nimport { useModalContext } from \"../../../components/Modals/useModalContext\";\r\nimport DeviceService from \"../../../api/Freezer/DeviceService\";\r\nimport { NavLink, useHistory } from \"react-router-dom\"\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuth\";\r\nimport { Add } from \"../../../components/Icons/Icons\";\r\n\r\nexport default function IotDevicesContainers({ }) {\r\n const { t } = useTranslation();\r\n let history = useHistory();\r\n const [pagedDevices, isLoading, navigation] = useIotDevices()\r\n const [modalContext, openDeleteModal] = useModalContext({\r\n handleEvent: (e) => navigation.Reload()\r\n })\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n navigation.ToPage({ page })\r\n }\r\n\r\n const handleRemove = async (deviceId) => {\r\n if (deviceId) {\r\n const device = await DeviceService.GetById(deviceId)\r\n openDeleteModal(device)\r\n }\r\n }\r\n\r\n const handleDetail = async (deviceId) => {\r\n history.push(`/admin/settings/devices/detail/${deviceId}`);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {t(\"settings.device.add\")}\r\n \r\n \r\n \r\n }\r\n content={\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n )\r\n}","import debounce from \"lodash.debounce\";\r\nimport PropTypes from 'prop-types';\r\nimport React, { useCallback, useEffect, useState } from \"react\";\r\nimport { Mention, MentionsInput } from 'react-mentions';\r\nimport { getUsers } from \"../../api/identity\";\r\nimport { HandleApiError } from \"../Notifications/APIErrorHandler\";\r\nimport { getPractitionersByProtocol } from \"../../api/protocol\";\r\n\r\nexport const TextBoxUsersMentions = (props) => {\r\n const { name, value, disabled, onChange, onBlur, maxLength, isProtocol, protocolId } = props;\r\n const [innerValue, setInnerValue] = useState('');\r\n const INPUT_DELAY = 500;\r\n\r\n useEffect(() => {\r\n if (value) {\r\n setInnerValue(value);\r\n } else {\r\n setInnerValue('');\r\n }\r\n }, [value]);\r\n\r\n const debouncedHandleOnChange = useCallback(\r\n debounce((name, value) => {\r\n if (onChange) {\r\n onChange(name, value);\r\n }\r\n }, INPUT_DELAY),\r\n []\r\n );\r\n\r\n const handleChange = useCallback((event) => {\r\n const newValue = event.target.value;\r\n if (maxLength && newValue.length > maxLength)\r\n return;\r\n\r\n setInnerValue(newValue);\r\n debouncedHandleOnChange(name, event.target.value);\r\n }, [debouncedHandleOnChange]);\r\n\r\n const handleBlur = () => {\r\n if (onBlur)\r\n onBlur(name, true);\r\n };\r\n\r\n const debouncedHandleOnSearch = useCallback(\r\n debounce((query, callback) => {\r\n if (isProtocol)\r\n getPractitionersByProtocol(protocolId, query)\r\n .then(response => {\r\n return response.data.data.map(user => ({ display: user.fullName, id: user.userId }))\r\n })\r\n .then(callback)\r\n .catch(error => {\r\n HandleApiError(error);\r\n });\r\n else\r\n getUsers({ query: query })\r\n .then(response => {\r\n return response.data.data.map(user => ({ display: user.fullName, id: user.userId }))\r\n })\r\n .then(callback)\r\n .catch(error => {\r\n HandleApiError(error);\r\n });\r\n }, INPUT_DELAY),\r\n []\r\n );\r\n\r\n const handleSearch = useCallback((query, callback) => {\r\n if (!query) return;\r\n\r\n debouncedHandleOnSearch(query, callback);\r\n }, [debouncedHandleOnSearch]);\r\n\r\n const onSearch = (query, callback) => {\r\n if (!query) return;\r\n if (isProtocol)\r\n getPractitionersByProtocol(protocolId, query)\r\n .then(response => {\r\n return response.data.data.map(user => ({ display: user.fullName, id: user.userId }))\r\n })\r\n .then(callback)\r\n .catch(error => {\r\n HandleApiError(error);\r\n });\r\n else\r\n getUsers({ query: query })\r\n .then(response => {\r\n return response.data.data.map(user => ({ display: user.fullName, id: user.userId }))\r\n })\r\n .then(callback)\r\n .catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n maxLength &&\r\n
    {innerValue.length}/{maxLength}
    \r\n }\r\n \r\n );\r\n}\r\n\r\nTextBoxUsersMentions.defaultProps = {\r\n maxLength: null,\r\n isProtocol: false\r\n}\r\n\r\nTextBoxUsersMentions.propTypes = {\r\n value: PropTypes.string,\r\n name: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool,\r\n isProtocol: PropTypes.bool,\r\n placeholder: PropTypes.string,\r\n onChange: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n max_length: PropTypes.number,\r\n protocolId: PropTypes.number,\r\n};\r\n\r\nconst defaultMentionStyle = {\r\n backgroundColor: '#cee4e5',\r\n}\r\nconst defaultStyle = {\r\n control: {\r\n backgroundColor: '#fff',\r\n\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n\r\n highlighter: {\r\n overflow: 'hidden',\r\n },\r\n\r\n input: {\r\n margin: 0,\r\n },\r\n\r\n '&singleLine': {\r\n control: {\r\n display: 'inline-block',\r\n width: 130,\r\n },\r\n\r\n highlighter: {\r\n padding: 1,\r\n border: '2px inset transparent',\r\n },\r\n\r\n input: {\r\n padding: 1,\r\n border: '2px inset',\r\n },\r\n },\r\n\r\n '&multiLine': {\r\n control: {\r\n //fontFamily: 'monospace',\r\n border: '1px solid silver',\r\n backgroundColor: '#ffffff',\r\n borderRadius: '4px',\r\n color: '#565656',\r\n boxShadow: 'none'\r\n },\r\n\r\n highlighter: {\r\n padding: 9,\r\n },\r\n\r\n input: {\r\n padding: 9,\r\n minHeight: 63,\r\n outline: 0,\r\n border: 0,\r\n },\r\n },\r\n\r\n suggestions: {\r\n list: {\r\n backgroundColor: 'white',\r\n border: '1px solid rgba(0,0,0,0.15)',\r\n fontSize: 14,\r\n },\r\n\r\n item: {\r\n padding: '5px 15px',\r\n borderBottom: '1px solid rgba(0,0,0,0.15)',\r\n\r\n '&focused': {\r\n backgroundColor: '#cee4e5',\r\n },\r\n },\r\n },\r\n}","import React, { useState } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { Modal, Button, Grid, Row, Col, ControlLabel, FormGroup } from 'react-bootstrap'\r\nimport { CustomSelect } from '../CustomControls/CustomSelect'\r\nimport { TextBoxUsersMentions } from '../CustomControls/TextBoxUsersMentions'\r\nimport { getValidationAuditTrailModal } from '../Validations/FormValidationSchema'\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors'\r\n\r\nexport const AuditModal = (props) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n {props.title}\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nAuditModal.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n};\r\n\r\nexport const CreateAuditModal = (props) => {\r\n const { t } = useTranslation();\r\n\r\n const [reason, setReason] = useState(null);\r\n const [comments, setComments] = useState(null);\r\n const handleChange = (name, value) => {\r\n if (name === \"auditTrail.reason\")\r\n setReason(value);\r\n if (name === \"auditTrail.comments\")\r\n setComments(value);\r\n\r\n getValidationAuditTrailModal()\r\n .isValid({ reason, comments })\r\n .then((valid) => {\r\n if (valid && errors)\r\n setErrors(null);\r\n });\r\n }\r\n const handleBlur = () => {\r\n getValidationAuditTrailModal()\r\n .isValid({ reason, comments })\r\n .then((valid) => {\r\n if (valid && errors)\r\n setErrors(null);\r\n });\r\n }\r\n\r\n const [errors, setErrors] = useState(null);\r\n const handleSubmit = () => {\r\n\r\n try {\r\n var isValid = getValidationAuditTrailModal().validateSync({ reason, comments });\r\n if (isValid) {\r\n props.onSave(reason, comments);\r\n }\r\n } catch (e) {\r\n setErrors(e.errors);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {t('auditTrail.modalTitle')}\r\n \r\n \r\n \r\n {\r\n reason && reason.code === \"other\" &&\r\n <>\r\n

    \r\n \r\n \r\n }\r\n {\r\n errors &&\r\n errors.map((error) => {\r\n return {t(error.key)}\r\n })\r\n }\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nCreateAuditModal.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onSave: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n};\r\n\r\nexport const CreateAudit = (props) => {\r\n const { t } = useTranslation();\r\n\r\n const [reason, setReason] = useState(null);\r\n const [comments, setComments] = useState('');\r\n const handleChange = (name, value) => {\r\n if (name === \"auditTrail.reason\")\r\n setReason(value);\r\n if (name === \"auditTrail.comments\")\r\n setComments(value);\r\n\r\n getValidationAuditTrailModal()\r\n .isValid({ reason, comments })\r\n .then((valid) => {\r\n if (valid && errors)\r\n setErrors(null);\r\n });\r\n }\r\n const handleBlur = () => {\r\n getValidationAuditTrailModal()\r\n .isValid({ reason, comments })\r\n .then((valid) => {\r\n if (valid && errors)\r\n setErrors(null);\r\n });\r\n }\r\n\r\n const [errors, setErrors] = useState(null);\r\n const handleSubmit = () => {\r\n\r\n try {\r\n var isValid = getValidationAuditTrailModal().validateSync({ reason, comments });\r\n if (isValid) {\r\n props.onSave(reason, comments);\r\n }\r\n } catch (e) {\r\n setErrors(e.errors);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {t('auditTrail.modalTitle')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n reason && reason.code === \"other\" &&\r\n <>\r\n

    \r\n \r\n \r\n }\r\n \r\n \r\n {\r\n errors &&\r\n errors.map((error) => {\r\n return {t(error.key)}\r\n })\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nCreateAudit.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onSave: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n};","import React from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useUserInfo } from \"../../containers/Users/Hooks\";\r\nimport Card from \"../Cards/Card\";\r\nimport { dateTimeUTCFormatter } from '../Utils/Formatter';\r\nimport { Spinner } from \"../Utils/Loaders\";\r\n\r\nexport const DigitalSign = props => {\r\n\r\n const { signedBy, signStatus, signedDate } = props;\r\n const { t } = useTranslation();\r\n const [isLoading, userInfo] = useUserInfo(signedBy);\r\n\r\n if (isLoading)\r\n return ;\r\n\r\n const getDigitalSignStatus = (status) => {\r\n switch (status) {\r\n case 0: return <>{t('digitalSign.status.valid')};\r\n case 1: return <>{t('digitalSign.status.invalid')};\r\n case 2: return <>{t('digitalSign.status.verifError')};\r\n case 3: return <>{t('digitalSign.status.notVerified')};\r\n case 3: return <>{t('digitalSign.status.notSigned')};\r\n default:\r\n return <>{t('digitalSign.status.notSigned')};\r\n }\r\n }\r\n\r\n if (!signedBy)\r\n return null;\r\n \r\n return (\r\n \r\n
    {t(\"digitalSign.signedBy\")}: {userInfo?.fullName}
    \r\n
    {t(\"digitalSign.signed\")}: {dateTimeUTCFormatter(signedDate)}
    \r\n
    {t(\"sign.specialty\")}: {`${userInfo?.speciality} ${userInfo?.registrationNumber || \"\"}`}
    \r\n
    {t(\"digitalSign.state\")}: {getDigitalSignStatus(signStatus)}
    \r\n \r\n }\r\n />\r\n );\r\n}","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { WithAuth } from '../../components/Authorization/WithAuth';\r\nimport { Card } from '../../components/Cards/Card';\r\nimport { Audit, Edit, IconSVG, Remove } from '../Icons/Icons';\r\n\r\nexport const Actions = (props) => {\r\n const { t } = useTranslation();\r\n const { onCreateEntry, onCreateAppointment, onRedirectTo, onEditPatient, onEditEntry, onDeleteEntry, onAuditTrail, isLoading, status, isProtocol } = props;\r\n\r\n var createEntry = null;\r\n if (onCreateEntry) {\r\n createEntry = (\r\n \r\n );\r\n }\r\n\r\n var redirectTo = null;\r\n if (onRedirectTo) {\r\n redirectTo = (\r\n \r\n );\r\n }\r\n\r\n var createAppointment = null;\r\n if (onCreateAppointment) {\r\n createAppointment = (\r\n \r\n );\r\n }\r\n var editPatient = null;\r\n if (onEditPatient) {\r\n editPatient = (\r\n \r\n );\r\n }\r\n\r\n var saveEntry = null;\r\n if (props.onSaveEntry) {\r\n saveEntry = (\r\n \r\n );\r\n }\r\n\r\n var publishEntry = null;\r\n if (props.onPublishEntry && !isProtocol) {\r\n publishEntry = (\r\n \r\n );\r\n }\r\n\r\n var exportToPDF = null;\r\n if (props.onExportToPDF) {\r\n exportToPDF = (\r\n \r\n );\r\n }\r\n\r\n var editEntry = null;\r\n if (onEditEntry && !isProtocol) {\r\n editEntry = (\r\n \r\n );\r\n }\r\n\r\n var deleteEntry = null;\r\n if (onDeleteEntry && !isProtocol && status !== 'Published') {\r\n deleteEntry = (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {createEntry}\r\n \r\n \r\n {createAppointment}\r\n \r\n \r\n {editPatient}\r\n \r\n \r\n {editEntry}\r\n \r\n \r\n {saveEntry}\r\n \r\n \r\n {publishEntry}\r\n \r\n \r\n {deleteEntry}\r\n \r\n \r\n {exportToPDF}\r\n \r\n {\r\n onAuditTrail &&\r\n \r\n {t('protocols.visitTracking.auditTrail')}\r\n \r\n }\r\n {redirectTo}\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nActions.defaultProps = {\r\n showNewEntry: true,\r\n isLoading: false,\r\n};\r\n\r\nActions.propTypes = {\r\n onCreateEntry: PropTypes.func,\r\n onCreateAppointment: PropTypes.func,\r\n onRedirectTo: PropTypes.func,\r\n onEditPatient: PropTypes.func,\r\n onEditEntry: PropTypes.func\r\n};\r\n","import debounce from \"lodash.debounce\";\r\nimport PropTypes from 'prop-types';\r\nimport React, { useCallback, useEffect, useState } from \"react\";\r\nimport ReactQuill from \"react-quill\";\r\nimport 'react-quill/dist/quill.snow.css';\r\n\r\nexport const RichTextControl = (props) => {\r\n const { onChange, value, name, isDisabled, toolbar, autoFocus, height } = props;\r\n const [innerValue, setInnerValue] = useState('');\r\n const INPUT_DELAY = 300;\r\n\r\n useEffect(() => {\r\n if (value) {\r\n setInnerValue(value);\r\n } else {\r\n setInnerValue('');\r\n }\r\n }, [value]);\r\n\r\n const debouncedHandleOnChange = useCallback(\r\n debounce((name, value) => {\r\n if (onChange) {\r\n onChange(name, value);\r\n }\r\n }, INPUT_DELAY),\r\n [],\r\n );\r\n\r\n const handleOnChange = useCallback((content) => {\r\n setInnerValue(content);\r\n debouncedHandleOnChange(name, content);\r\n }, [debouncedHandleOnChange]);\r\n\r\n /*const toolbarOptions = [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n ['link', 'image', 'video', 'formula'],\r\n\r\n [{ 'header': 1 }, { 'header': 2 }], // custom button values\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' }, { 'list': 'check' }],\r\n [{ 'script': 'sub' }, { 'script': 'super' }], // superscript/subscript\r\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\r\n [{ 'direction': 'rtl' }], // text direction\r\n\r\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\r\n [{ 'font': [] }],\r\n [{ 'align': [] }],\r\n\r\n ['clean'] // remove formatting button\r\n ];\r\n */\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nRichTextControl.defaultProps = {\r\n autoFocus: false,\r\n isDisabled: false,\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{ 'color': [] }],\r\n [{ 'indent': '-1' }, { 'indent': '+1' }],\r\n [{ 'align': [] }],\r\n ['clean']\r\n ],\r\n height: 400\r\n}\r\n\r\nRichTextControl.propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n isDisabled: PropTypes.bool,\r\n name: PropTypes.string.isRequired,\r\n autoFocus: PropTypes.bool\r\n};\r\n","import moment from 'moment';\r\nimport React from 'react';\r\nimport { Disabled, Enabled } from '../Icons/Icons';\r\nimport { dateFormatter as date, labelFormatter as label } from '../Utils/Formatter';\r\n\r\n\r\nexport const dateFormatter = (cell) => {\r\n return date(cell, 'DD/MM/YYYY');\r\n}\r\n\r\nexport const dateMMMFormatter = (cell) => {\r\n return date(cell, 'DD/MMM/YYYY');\r\n}\r\n\r\nexport const dateTimeFormatter = (cell) => {\r\n return (
    {moment(cell).format('DD/MM/YYYY HH:mm')}
    );\r\n}\r\n\r\nexport const labelFormatter = (cell) => {\r\n return label(cell);\r\n}\r\n\r\nexport const statusFormatter = (cell) => {\r\n\r\n if (cell)\r\n return (
    );\r\n\r\n return (
    );\r\n}\r\n\r\nexport const customDateTimeFormatter = (dateTime) => {\r\n if (!dateTime)\r\n return \"\";\r\n\r\n return (<>{moment(dateTime).format('DD/MM/YYYY HH:mm')} );\r\n}\r\n\r\nexport const customDateTimeFormatterString = (dateTime) => {\r\n if (!dateTime)\r\n return \"\";\r\n\r\n return (moment(dateTime).format('DD/MM/YYYY HH:mm'));\r\n}\r\n","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { ExpandableContent } from '../CustomControls/ExpandableContent';\r\nimport { RichTextControl } from '../CustomControls/RichTextControl';\r\nimport { customDateTimeFormatterString } from '../Table/Formatters';\r\n\r\nconst Entry = (props) => {\r\n const {\r\n entry,\r\n text,\r\n onEntryChange,\r\n rows,\r\n isDisabled,\r\n style\r\n } = props;\r\n\r\n const onChangeText = (_name, value) => {\r\n onEntryChange(value);\r\n }\r\n\r\n const getGroup = () => {\r\n if (!entry)\r\n return null;\r\n\r\n switch (entry.groupCode) {\r\n case \"PROJECT\": return `${entry.group}: ${entry.project} ${customDateTimeFormatterString(entry.created)}`;\r\n case \"PROTOCOL\": return `${entry.group} - ${entry.type}: ${entry.protocol} ${customDateTimeFormatterString(entry.created)}`;\r\n default:\r\n return `Evolución ${entry.group} ${customDateTimeFormatterString(entry.created)}`;\r\n }\r\n }\r\n \r\n if (!entry)\r\n return null;\r\n \r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nEntry.defaultProps = {\r\n rows: 4,\r\n isDisabled: false\r\n};\r\n\r\nEntry.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n rows: PropTypes.number,\r\n isDisabled: PropTypes.bool,\r\n};\r\n\r\nexport default Entry;\r\n\r\n","import PropTypes from 'prop-types';\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Add, Contract, Expand, IconSVG } from \"../Icons/Icons\";\r\nimport { Card } from '../Cards/Card';\r\n\r\nexport const EntryOptions = (props) => {\r\n const items = ['personalHistory', 'familyHistory', 'personalHabits', 'vitals', 'anthropometrics', 'drugs', 'procedures', 'laboratory', 'attachments'];\r\n const [showOthers, setShowOthers] = useState(false)\r\n const { t } = useTranslation();\r\n\r\n const handleClick = (contentName) => {\r\n props.onClick(contentName)\r\n }\r\n\r\n const handleOthersClick = () => { setShowOthers(!showOthers); }\r\n\r\n const otherContent = (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n\r\n const content = items.map(function (name, index) {\r\n\r\n if (name === \"others\") {\r\n return ();\r\n }\r\n\r\n return ();\r\n });\r\n\r\n return (\r\n \r\n {!props.isDisabled && content}\r\n {showOthers && otherContent}\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nEntryOptions.propTypes = {\r\n onClick: PropTypes.func.isRequired,\r\n isDisabled: PropTypes.bool,\r\n};","import React, { useState } from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport HTMLEllipsis from 'react-lines-ellipsis/lib/html'\r\nimport LinesEllipsis from 'react-lines-ellipsis'\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const ReadMore = (props) => {\r\n const [readMore, setReadMore] = useState(false);\r\n const [isClamped, setIsClamped] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n if (!props.content)\r\n return null;\r\n\r\n const linkName = readMore ? t(\"commons.viewLess\") : t(\"commons.viewMore\");\r\n return (\r\n <>\r\n {\r\n readMore ?\r\n :\r\n { setIsClamped(clamped) }}\r\n />\r\n }\r\n {\r\n isClamped && { setReadMore(!readMore) }}>{linkName}\r\n }\r\n \r\n );\r\n}\r\nReadMore.propTypes = {\r\n maxLine: PropTypes.number,\r\n component: PropTypes.string,\r\n};\r\nReadMore.defaultProps = {\r\n maxLine: 3,\r\n component: \"div\"\r\n};\r\n\r\n\r\nexport const ReadMoreLines = (props) => {\r\n const [readMore, setReadMore] = useState(false);\r\n //const [isClamped, setIsClamped] = useState(false);\r\n\r\n if (!props.content)\r\n return null;\r\n\r\n const linkName = readMore ? '<< ' : '>> ';\r\n return (\r\n <>\r\n {\r\n readMore ?\r\n
    setReadMore(!readMore)} tabIndex='0'>\r\n
    {props.content}
    \r\n
    \r\n :\r\n
    setReadMore(!readMore)} tabIndex='0'>\r\n \r\n
    \r\n }\r\n {/*\r\n readMore ?\r\n {props.content} :\r\n { setIsClamped(clamped) }}\r\n />\r\n */}\r\n {\r\n // isClamped && { setReadMore(!readMore) }}>{linkName}\r\n }\r\n \r\n );\r\n}\r\nReadMoreLines.propTypes = {\r\n maxLine: PropTypes.number,\r\n component: PropTypes.string,\r\n};\r\nReadMoreLines.defaultProps = {\r\n maxLine: 3,\r\n component: \"span\"\r\n};\r\n","import moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport profilePic from \"../../assets/img/faces/face-0.jpg\";\r\nimport \"../../assets/sass/lbd/_skeleton.scss\";\r\nimport Card from '../Cards/Card';\r\nimport { CustomImage } from \"../CustomControls/Image\";\r\nimport { ReadMoreLines } from '../CustomControls/ReadMore';\r\nimport { BirthDate, Identification, MedicalInsurance, MedicalInsuranceNumber, MedicalRecord } from \"../Icons/Icons\";\r\nimport { dateFormatter } from '../Utils/Formatter';\r\n\r\nexport const PatientInfo = (props) => {\r\n const { patient, isLoading } = props;\r\n const { t } = useTranslation();\r\n\r\n if (isLoading || !patient)\r\n return ;\r\n\r\n const ageComponent = patient.age ? <>({patient.age} {t('medicalRecords.patientInfo.age')}) : null;\r\n //console.log(patient)\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    {patient.fullName}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t('medicalRecords.patientInfo.birthDate')}: {moment(patient.birthDate).format('DD/MM/YY')} {ageComponent}
    \r\n
    {patient.identificationType}: {patient.identificationNumber}
    \r\n {patient.medicalInsurance &&
    {t('medicalRecords.patientInfo.medicalInsurance')}: {patient.medicalInsurance} {patient.medicalInsurancePlan ? <>({patient.medicalInsurancePlan}) : null}
    }\r\n {patient.medicalInsuranceNumber &&
    {t('medicalRecords.patientInfo.medicalInsuranceNumber')}: {patient.medicalInsuranceNumber}
    }\r\n
    {t('medicalRecords.patientInfo.medicalRecord')}: {patient.medicalRecordNumber}
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {t('person.address.address')}: \r\n \r\n \r\n \r\n
    \r\n
    {t('person.contact.cellPhone')}: {patient.cellPhone}
    \r\n
    {t('person.contact.email')}: {patient.email}
    \r\n {patient.protocols?.length > 0 &&
    {t('medicalRecords.patientInfo.protocol')}: {patient.protocols[0].title}
    }\r\n
    \r\n \r\n
    \r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nPatientInfo.propTypes = {\r\n patient: PropTypes.object.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n};\r\n\r\nconst PatientInfoSkeleton = () => {\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\n\r\nexport const PatientInfo2 = ({ patient, isLoading }) => {\r\n const { t } = useTranslation();\r\n\r\n if (isLoading || !patient)\r\n return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    {patient.fullName}
    \r\n
    {patient.age} años ({dateFormatter(patient.birthDate, \"DD/MMM/YYYY\")})
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalRecord\")}
    \r\n
    {patient.medicalRecordNumber}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {patient.identificationType}
    \r\n
    {patient.identificationNumber}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalInsurance\")}
    \r\n
    {patient.medicalInsurance}
    \r\n
    {patient.medicalInsurancePlan}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalInsuranceNumber\")}
    \r\n
    {patient.medicalInsuranceNumber}
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nPatientInfo2.propTypes = {\r\n patient: PropTypes.object.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n};\r\n\r\nconst PatientInfo2Skeleton = () => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.birthDate\")}
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalInsurance\")}
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalRecord\")}
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nexport const PatientInfo3 = ({ patient, isLoading }) => {\r\n const { t } = useTranslation();\r\n\r\n if (isLoading || !patient)\r\n return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    {patient.fullName}
    \r\n
    \r\n \r\n \r\n
    \r\n
    {patient.age} años
    \r\n
    ({dateFormatter(patient.birthDate, \"DD/MMM/YYYY\")})
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalRecord\")}
    \r\n
    {patient.medicalRecordNumber}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {patient.identificationType}
    \r\n
    {patient.identificationNumber}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalInsurance\")}
    \r\n
    {patient.medicalInsurance}
    \r\n
    {patient.medicalInsurancePlan}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"medicalRecords.patientInfo.medicalInsuranceNumber\")}
    \r\n
    {patient.medicalInsuranceNumber}
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nPatientInfo3.propTypes = {\r\n patient: PropTypes.object.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n};","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport SweetAlert from 'react-bootstrap-sweetalert';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Prompt, useHistory } from 'react-router-dom';\r\nimport ReactDOM from 'react-dom';\r\nimport { Button, Modal as BootstrapModal } from 'react-bootstrap';\r\n\r\nconst RouteChangeDetect = ({ when, confirmCallback }) => {\r\n const [modalVisible, setModalVisible] = useState(false);\r\n const [lastLocation, setLastLocation] = useState(null);\r\n\r\n const handleBlockedNavigation = (nextLocation, _action) => {\r\n\r\n if (!lastLocation || lastLocation.pathname !== nextLocation.pathname) {\r\n setModalVisible(true);\r\n setLastLocation(nextLocation);\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n const handleConfirmNavigationClick = () => {\r\n setModalVisible(false);\r\n confirmCallback(lastLocation.pathname, false);\r\n };\r\n\r\n const handleSaveClick = () => {\r\n setModalVisible(false);\r\n confirmCallback(lastLocation.pathname, true);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n};\r\nexport default RouteChangeDetect;\r\n\r\nRouteChangeDetect.propTypes = {\r\n when: PropTypes.bool.isRequired,\r\n confirmCallback: PropTypes.func.isRequired,\r\n};\r\n\r\nconst ConfirmChangeModal = (props) => {\r\n const { t } = useTranslation();\r\n\r\n return props.visible ? ReactDOM.createPortal(\r\n \r\n props.onConfirm()}\r\n onCancel={() => { props.onCancel() }}\r\n confirmBtnBsStyle=\"success\"\r\n cancelBtnBsStyle=\"danger\"\r\n confirmBtnText={t(\"buttons.saveAndContinue\")}\r\n cancelBtnText={t(\"buttons.exit\")}\r\n showCancel\r\n reverseButtons\r\n >\r\n \r\n , document.body\r\n ) : null;\r\n}\r\n\r\nConfirmChangeModal.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired\r\n};\r\n\r\nexport function RouterPrompt(props) {\r\n const { when, title } = props;\r\n\r\n const history = useHistory();\r\n\r\n const [showPrompt, setShowPrompt] = useState(false);\r\n const [currentPath, setCurrentPath] = useState(\"\");\r\n\r\n const unblockRef = useRef();\r\n\r\n function handleShowModal() {\r\n setShowPrompt(true);\r\n }\r\n\r\n function onCancel() {\r\n setShowPrompt(false);\r\n }\r\n\r\n useEffect(() => {\r\n unblockRef.current = history.block((location) => {\r\n if (when) {\r\n setCurrentPath(location.pathname);\r\n handleShowModal();\r\n return false;\r\n }\r\n return true;\r\n });\r\n return () => {\r\n unblockRef.current && unblockRef.current();\r\n };\r\n }, [when]);\r\n\r\n function handleConfirm() {\r\n if (unblockRef) {\r\n unblockRef.current();\r\n }\r\n setShowPrompt(false);\r\n history.push(currentPath);\r\n }\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n pepepepep\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport './Slider.css'\r\n\r\nexport const Slider = (props) => {\r\n const { isOpen, children } = props;\r\n\r\n if (!isOpen)\r\n return (\r\n
    \r\n
    );\r\n\r\n return (\r\n
    \r\n {children}\r\n
    \r\n );\r\n}\r\n\r\nSlider.propTypes = {\r\n isOpen: PropTypes.bool,\r\n children: PropTypes.object\r\n};","import debounce from \"lodash.debounce\";\r\nimport isequal from \"lodash.isequal\";\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"moment\";\r\nimport React from \"react\";\r\nimport { Alert } from \"react-bootstrap\";\r\n\r\nconst AutoSaveDisplay = ({ isSaving, lastSaved }) => {\r\n const [time, setTime] = React.useState();\r\n let timer = null;\r\n\r\n React.useEffect(() => {\r\n if (lastSaved) {\r\n timer = setInterval(() => {\r\n setTime(moment(lastSaved).fromNow())\r\n }, 1000)\r\n }\r\n\r\n return () => {\r\n clearInterval(timer);\r\n }\r\n\r\n }, [lastSaved]);\r\n\r\n return (\r\n {!!isSaving\r\n ? \"Guardando...\"\r\n : lastSaved && time\r\n ? `Autoguardado ${time}`\r\n : null}\r\n );\r\n};\r\n\r\n/**\r\n * AutoSave component only has one job\r\n * on each `values` change, trigger debounced save function\r\n */\r\nexport const AutoSave = ({ doSave, isSaving, needsResave, values, lastSaved }) => {\r\n\r\n React.useEffect(() => {\r\n doSave(values);\r\n }, [doSave, values, needsResave]);\r\n\r\n return ;\r\n};\r\n\r\nexport const AutoSavingForm = (props) => {\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const [lastSaved, setLastSaved] = React.useState(null);\r\n const [needsResave, setNeedsResave] = React.useState(false);\r\n\r\n const isSavingRef = React.useRef(isSaving);\r\n const lastSubmittedValues = React.useRef(props.initialValues);\r\n const currentValues = React.useRef(props.initialValues);\r\n\r\n const mounted = React.useRef(false);\r\n React.useEffect(() => {\r\n mounted.current = true;\r\n\r\n return () => {\r\n mounted.current = false;\r\n };\r\n }, []);\r\n\r\n const debouncedAutoSave = React.useCallback(\r\n debounce(async (valuesToSave) => {\r\n if (isSavingRef.current || !mounted.current) {\r\n return;\r\n }\r\n\r\n if (!isequal(lastSubmittedValues.current, valuesToSave)) {\r\n // prevent this check from passing again until onSave returns\r\n lastSubmittedValues.current = valuesToSave;\r\n\r\n console.log(\"debouncedAutoSave: received new values, saving.\");\r\n isSavingRef.current = true;\r\n setIsSaving(isSavingRef.current);\r\n\r\n const returnedValues = await props.onSave(valuesToSave, props.formikProps);\r\n\r\n setLastSaved(new Date());\r\n\r\n // check again, did the user change the values?\r\n //console.log(\"debouncedAutoSave: recomparing\");\r\n\r\n if (isequal(currentValues.current, valuesToSave)) {\r\n // check again, did the user change the values?\r\n //console.log(\"debouncedAutoSave: user has not changed values inbewteensave, updating\");\r\n // prevent this check from passing again when return value is updated\r\n lastSubmittedValues.current = returnedValues;\r\n props.setInitialValues(returnedValues);\r\n } else {\r\n props.setInitialValues(currentValues.current);\r\n //console.log(\"debouncedAutoSave: user changed values after autosave submission, trying again.\");\r\n setNeedsResave(true);\r\n }\r\n\r\n isSavingRef.current = false;\r\n setIsSaving(isSavingRef.current);\r\n } else {\r\n console.log(\"debouncedAutoSave: values are equal, save skipped.\");\r\n }\r\n }, props.debounceTime),\r\n []\r\n );\r\n\r\n const autoSave = React.useCallback(\r\n async (valuesToSave) => {\r\n setNeedsResave(false);\r\n\r\n if (currentValues.current.id !== valuesToSave.id) { // Comparo forms id. Si cambie de form, cancelo autosave. \r\n currentValues.current = valuesToSave;\r\n return;\r\n }\r\n \r\n currentValues.current = valuesToSave;\r\n await debouncedAutoSave(valuesToSave);\r\n },\r\n [debouncedAutoSave]\r\n );\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nAutoSavingForm.defaultProps = {\r\n debounceTime: 4000,\r\n};\r\nAutoSavingForm.propTypes = {\r\n initialValues: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.object]).isRequired,\r\n valuesToSave: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.object]).isRequired,\r\n debounceTime: PropTypes.number,\r\n onSave: PropTypes.func.isRequired,\r\n setInitialValues: PropTypes.func.isRequired\r\n};\r\n\r\nexport const AutoSaving = (props) => {\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const [lastSaved, setLastSaved] = React.useState(null);\r\n const [needsResave, setNeedsResave] = React.useState(false);\r\n\r\n const isSavingRef = React.useRef(isSaving);\r\n const lastSubmittedValues = React.useRef(props.initialValues);\r\n const currentValues = React.useRef(props.initialValues);\r\n\r\n const mounted = React.useRef(false);\r\n React.useEffect(() => {\r\n mounted.current = true;\r\n\r\n return () => {\r\n mounted.current = false;\r\n };\r\n }, []);\r\n\r\n // note, if props.onSubmit is changed,\r\n // the debounce interval will change, possibly double-firing\r\n const debouncedAutoSave = React.useCallback(\r\n debounce(async (valuesToSave) => {\r\n if (isSavingRef.current || !mounted.current) {\r\n return;\r\n }\r\n\r\n //if (lastSubmittedValues.current && !isequal(lastSubmittedValues.current, valuesToSave)) {\r\n if (!isequal(lastSubmittedValues.current, valuesToSave)) {\r\n // prevent this check from passing again until onSave returns\r\n lastSubmittedValues.current = valuesToSave;\r\n\r\n //console.log(\"debouncedAutoSave: received new values, saving.\");\r\n isSavingRef.current = true;\r\n setIsSaving(isSavingRef.current);\r\n\r\n const returnedValues = await props.onSave(valuesToSave);\r\n\r\n setLastSaved(new Date());\r\n\r\n // check again, did the user change the values?\r\n //console.log(\"debouncedAutoSave: recomparing\");\r\n\r\n if (isequal(currentValues.current, valuesToSave)) {\r\n // check again, did the user change the values?\r\n //console.log(\"debouncedAutoSave: user has not changed values inbewteensave, updating\");\r\n // prevent this check from passing again when return value is updated\r\n lastSubmittedValues.current = valuesToSave;\r\n if (returnedValues && returnedValues.data)\r\n props.setInitialValues(returnedValues.data.text);\r\n } else {\r\n props.setInitialValues(currentValues.current);\r\n //console.log(\"debouncedAutoSave: user changed values after autosave submission, trying again.\");\r\n setNeedsResave(true);\r\n }\r\n\r\n isSavingRef.current = false;\r\n setIsSaving(isSavingRef.current);\r\n } else {\r\n //console.log(\"debouncedAutoSave: values are equal, save skipped.\");\r\n }\r\n }, props.debounceTime),\r\n []\r\n );\r\n\r\n const autoSave = React.useCallback(\r\n async (valuesToSave) => {\r\n setNeedsResave(false);\r\n currentValues.current = valuesToSave;\r\n await debouncedAutoSave(valuesToSave);\r\n },\r\n [debouncedAutoSave]\r\n );\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nAutoSaving.defaultProps = {\r\n debounceTime: 4000,\r\n};\r\nAutoSaving.propTypes = {\r\n initialValues: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.object]).isRequired,\r\n valuesToSave: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.object]).isRequired,\r\n debounceTime: PropTypes.number,\r\n onSave: PropTypes.func.isRequired,\r\n setInitialValues: PropTypes.func.isRequired\r\n};\r\n","import { ErrorMessage } from 'formik';\r\nimport React from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Grid, Row } from 'react-bootstrap';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const DigitalSignForm = props => {\r\n\r\n const {\r\n values,\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n currentUser \r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"digitalSign.user\")}\r\n {currentUser}\r\n \r\n \r\n PIN\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n}","import { withFormik } from \"formik\";\r\nimport React from \"react\";\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { useAuthorization } from \"../../components/Authorization/useAuthorization\";\r\nimport { DigitalSignForm } from '../../components/DigitalSign/DigitalSignForm';\r\nimport { Spinner } from \"../../components/Utils/Loaders\";\r\nimport { getDigitalSignSchema } from \"../../components/Validations/FormValidationSchema\";\r\n\r\nexport const ModalDigitalSign = (props) => {\r\n const { isShowing, hide, isLoading, onSubmit } = props;\r\n const [, user] = useAuthorization();\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t(\"digitalSign.title\")}\r\n \r\n \r\n {\r\n isLoading ?\r\n :\r\n \r\n }\r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nconst DigitalSignContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: () => ({ password: '' }),\r\n validationSchema: getDigitalSignSchema(),\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n displayName: 'DigitalSignForm',\r\n})(DigitalSignForm));","import { conceptType } from '../variables/Enums';\r\nimport axios from './index';\r\n\r\nexport const searchConcept = (conceptId, term, type = conceptType.events) => {\r\n return axios.get(`api/v1/snowstorm/${type}/SearchConcept/${conceptId}/${term}`);\r\n};\r\n\r\nexport const searchConceptByExpression = (expression, term, type = conceptType.events) => {\r\n return axios.get(`api/v1/snowstorm/${type}/SearchByExpression/${expression}/${term}`);\r\n};","import PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { AsyncTypeahead } from 'react-bootstrap-typeahead';\r\nimport { searchConcept, searchConceptByExpression } from '../../api/snomed';\r\nimport { HandleApiError } from \"../Notifications/APIErrorHandler\";\r\n\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\n\r\nexport const SnomedPicker = (props) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n\r\n const handleChange = value => {\r\n if (value.length > 0) {\r\n if (props.multiple)\r\n props.onChange(props.name, value);\r\n else\r\n props.onChange(props.name, value[0]);\r\n }\r\n else\r\n props.onChange(props.name, null);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n const onSearch = async (term) => {\r\n setIsLoading(true);\r\n\r\n let func = null;\r\n let query = \"\";\r\n\r\n if (props.conceptId) {\r\n func = searchConcept;\r\n query = props.conceptId;\r\n }\r\n else {\r\n func = searchConceptByExpression;\r\n query = props.expression;\r\n }\r\n \r\n func(query, encodeURIComponent(term), props.conceptType).then(response => {\r\n setOptions(response.data);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n setIsLoading(false);\r\n setOptions([]);\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n return true}\r\n options={options}\r\n isLoading={isLoading}\r\n onSearch={onSearch}\r\n highlightOnlyResult={true}\r\n delay={500}\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n />;\r\n}\r\n\r\nSnomedPicker.propTypes = {\r\n multiple: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n minLength: PropTypes.number,\r\n conceptId: PropTypes.string,\r\n expression: PropTypes.string,\r\n clearButton: PropTypes.bool,\r\n conceptType: PropTypes.string\r\n};\r\n\r\nSnomedPicker.defaultProps = {\r\n multiple: false,\r\n onChange: () => { },\r\n minLength: 3,\r\n allowNew: false,\r\n clearButton: true\r\n};","import moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, ControlLabel, Row } from 'react-bootstrap';\r\nimport DateTime from 'react-datetime';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const NullableDatePicker = (props) => {\r\n\r\n const [dateValue, setDateValue] = useState(null);\r\n\r\n const handleChange = value => {\r\n let dateNumber;\r\n\r\n if (value) {\r\n switch (props.viewMode) {\r\n case \"days\":\r\n dateNumber = value.date();\r\n break;\r\n case \"months\":\r\n dateNumber = value.month() + 1;\r\n break;\r\n case \"years\":\r\n dateNumber = value.year();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n setDateValue(value);\r\n\r\n // this is going to call setFieldValue and manually update values.[name]\r\n props.onChange(props.name, dateNumber, value);\r\n };\r\n const handleBlur = () => {\r\n // this is going to call setFieldTouched and manually update touched.[name]\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.value && props.value !== \"\") {\r\n switch (props.viewMode) {\r\n case \"days\":\r\n setDateValue(new Date(2000, 1, props.value));\r\n break;\r\n case \"months\":\r\n setDateValue(new Date(2000, props.value - 1, 1));\r\n break;\r\n case \"years\":\r\n setDateValue(new Date(props.value, 1, 1));\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }, [props.value, props.viewMode]);\r\n\r\n return <>\r\n \r\n ;\r\n}\r\n\r\nNullableDatePicker.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.number,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func.isRequired\r\n};\r\n\r\nexport const NullableDatePickerCombo = (props) => {\r\n const {\r\n dayLabel,\r\n monthLabel,\r\n yearLabel,\r\n valueDay, valueMonth, valueYear,\r\n onChange,\r\n onBlur,\r\n disabled\r\n } = props;\r\n\r\n const [day, setDay] = useState(null);\r\n const [month, setMonth] = useState(null);\r\n const [year, setYear] = useState(null);\r\n\r\n const [selectDay, setSelectDay] = useState(valueDay ?? (dayLabel));\r\n const [selectMonth, setSelectMonth] = useState(valueMonth ?? (monthLabel));\r\n const [selectYear, setSelectYear] = useState(valueYear ?? (yearLabel));\r\n useEffect(() => {\r\n let day = [], month = [], year = [];\r\n let maxDays = 31;\r\n let maxMonths = 11;\r\n\r\n if (selectYear && selectYear !== yearLabel && selectMonth && selectMonth !== monthLabel) {\r\n maxDays = moment(`${selectYear}-${parseInt(selectMonth) + 1}`, \"YYYY-MM\").daysInMonth();\r\n }\r\n\r\n if (selectYear && selectYear === moment().year().toString()) {\r\n maxMonths = moment().month();\r\n\r\n if (selectMonth && selectMonth === moment().month().toString())\r\n maxDays = moment().date();\r\n }\r\n for (let i = 1; i <= maxDays; i++) {\r\n day.push(i);\r\n }\r\n\r\n for (let i = 0; i <= maxMonths; i++) {\r\n month.push({\r\n text: props.useMonthNames ? moment.monthsShort('-MMM-', i) : (i + 1),\r\n value: i\r\n });\r\n }\r\n\r\n for (let i = moment().year(); i >= props.minYear; i--) {\r\n year.push(i);\r\n }\r\n\r\n setDay(day); setMonth(month); setYear(year);\r\n }, [selectDay, selectMonth, selectYear,]);\r\n\r\n const handleBlur = () => {\r\n if (onBlur)\r\n onBlur(props.name, true);\r\n };\r\n\r\n const handleChange = (e, type) => {\r\n let value = e.target.value == '' ? null : e.target.value;\r\n switch (type) {\r\n case \"selectDay\":\r\n setSelectDay(value);\r\n onChange(props.nameDay, value);\r\n break;\r\n case \"selectMonth\":\r\n setSelectMonth(value);\r\n onChange(props.nameMonth, value);\r\n break;\r\n case \"selectYear\":\r\n setSelectYear(e.target.value);\r\n onChange(props.nameYear, value);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n if (!day || !month || !year)\r\n return null;\r\n\r\n const dayElement = day.map((day, id) => {\r\n return ;\r\n });\r\n const monthElement = month.map((month, id) => {\r\n return ;\r\n });\r\n const yearElement = year.map((year, id) => {\r\n return ;\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nNullableDatePickerCombo.propTypes = {\r\n onChange: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n dayLabel: PropTypes.string,\r\n monthLabel: PropTypes.string,\r\n yearLabel: PropTypes.string,\r\n minYear: PropTypes.number,\r\n selectDay: PropTypes.string,\r\n selectMonth: PropTypes.string,\r\n selectYear: PropTypes.string,\r\n useMonthNames: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n};\r\n\r\nNullableDatePickerCombo.defaultProps = {\r\n dayLabel: 'dia',\r\n monthLabel: 'mes',\r\n yearLabel: 'año',\r\n minYear: 1916,\r\n selectDay: '',\r\n selectMonth: '',\r\n selectYear: '',\r\n useMonthNames: true,\r\n disabled: false\r\n};\r\n\r\nexport const FromToNullableDatePicker = (props) => {\r\n const {\r\n valuesFrom,\r\n valuesTo,\r\n onChange,\r\n onBlur,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {t(\"medicalRecords.from\")}\r\n \r\n \r\n \r\n {t(\"medicalRecords.to\")}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nFromToNullableDatePicker.defaultProps = {\r\n nameFromDay: 'fromDay',\r\n nameFromMonth: 'fromMonth',\r\n nameFromYear: 'fromYear',\r\n nameToDay: 'toDay',\r\n nameToMonth: 'toMonth',\r\n nameToYear: 'toYear',\r\n disabledTo: false,\r\n};","import React from \"react\";\r\n\r\nexport const CustomCheckbox = (props) => {\r\n\r\n const { isChecked, name, label, inline, id, ...rest } = props;\r\n const classes = inline !== undefined ? \"checkbox checkbox-inline\" : \"checkbox\";\r\n\r\n const handleClick = (event) => {\r\n if (props.onChange)\r\n props.onChange(props.name, event.currentTarget.checked, id);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n","import { ErrorMessage } from 'formik';\r\nimport React, { useEffect } from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Grid, Row } from 'react-bootstrap';\r\nimport { FromToNullableDatePicker } from \"../../CustomControls/DatePicker\";\r\nimport { FormErrorMessage } from '../../Validations/FormValidationErrors';\r\nimport { CustomSelect } from '../../CustomControls/CustomSelect';\r\nimport { CustomCheckbox } from '../../CustomControls/CustomCheckbox';\r\n\r\nexport const DiagnosisForm = props => {\r\n\r\n const {\r\n values,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleSubmit,\r\n handleChange,\r\n isSubmitting,\r\n t\r\n } = props;\r\n\r\n const options = [\r\n { id: 0, code: \"mild\", title: t(\"medicalRecords.condition.intensity.mild\") },\r\n { id: 1, code: \"moderate\", title: t(\"medicalRecords.condition.intensity.moderate\") },\r\n { id: 2, code: \"severe\", title: t(\"medicalRecords.condition.intensity.severe\") }\r\n ];\r\n\r\n useEffect(() => {\r\n values.condition.intensity = values.condition.intensityCode ? options.find(x => x.code == values.condition.intensityCode) : values.condition.intensity;\r\n values.condition.serious = null;\r\n values.condition.reported = null;\r\n values.condition.relationwithdrug = null;\r\n values.condition.action = null;\r\n }, []);\r\n\r\n if (!values.condition) {\r\n values.condition = {\r\n intensity: '',\r\n fromYear: ''\r\n };\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.adverseEvents.intensity\")}\r\n x.code == values.condition.intensityCode) : values.condition.intensity}\r\n onChange={setFieldValue}\r\n onBlur={setFieldTouched}\r\n name={`condition.intensity`}\r\n placeholder={t(\"commons.select\")}\r\n options={options}\r\n optionValue={(option) => option.code}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.condition.chronic\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.adverseEvents.notes\")}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n\r\n
    \r\n
    \r\n );\r\n}","import { useEffect, useState } from 'react';\r\nimport { deleteCondition, getConditions, postCondition, putAdverseEvent } from '../../../api/medicalRecord';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { conditions } from '../../../variables/Enums';\r\n\r\nexport const useDiagnoses = (entryId) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n }\r\n });\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setReload(false);\r\n setIsLoading(true);\r\n const paginatedItems = await getConditions(entryId, conditions.diagnosis, query);\r\n if (isSubscribed) {\r\n setTotalSize(paginatedItems.data.count);\r\n setData(paginatedItems.data.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n default: break;\r\n }\r\n }\r\n\r\n const create = (entryId, data) => {\r\n return postCondition(entryId, data, conditions.diagnosis);\r\n }\r\n\r\n const remove = (entryId, id, reason, comments) => {\r\n return deleteCondition(entryId, id, reason, comments);\r\n }\r\n\r\n const update = (entryId, id, data) => {\r\n return putAdverseEvent(entryId, id, data);\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, setReload, create, remove, update];\r\n}","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { conditions } from '../../variables/Enums';\r\nimport { Audit } from '../Icons/Icons';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst Conditions = ({ data, onAuditTrail }) => {\r\n const { t } = useTranslation();\r\n if (!data)\r\n return null;\r\n\r\n return (\r\n
    \r\n {\r\n data.map((condition, idx) =>\r\n
    \r\n {condition.adverseEffect}\r\n {\r\n condition.hasAudit &&\r\n \r\n \r\n \r\n }\r\n {\r\n condition.intensity &&\r\n
    \r\n {t(\"medicalRecords.adverseEvents.intensity\")}: {condition.intensity}\r\n
    \r\n }\r\n {\r\n condition.category === conditions.diagnosis && condition.from &&\r\n
    \r\n {t(\"medicalRecords.adverseEvents.from\")}: {condition.from}\r\n
    \r\n }\r\n {\r\n condition.category === conditions.diagnosis && condition.to &&\r\n
    \r\n {t(\"medicalRecords.adverseEvents.to\")}: {condition.to}\r\n
    \r\n }\r\n
    )\r\n }\r\n
    \r\n );\r\n}\r\n\r\nConditions.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n onAuditTrail: PropTypes.func,\r\n};\r\n\r\nexport default Conditions;","import React from 'react';\r\n\r\nexport const HighLight = ({ children }) => { return {children} }\r\nexport const Italic = ({ children }) => { return {children} }","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { Col, ControlLabel, Panel, PanelGroup, Row, Table } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { attachmentFormatter, boolFormatter, dateTimeFormatter, dateTimeUTCFormatter, extractContentFromHTML, objectFormatter, patientVisitStatusFormatter, timeFormatter, visitStatusFormatter, yesNoFormatter, yesNoNotApplyFormatter } from '../../components/Utils/Formatter';\r\nimport { HighLight } from '../CustomControls/CustomTextStyle';\r\nimport isequal from \"lodash.isequal\";\r\n\r\n\r\nexport const Audit = ({ medicalRecordNumber, audit, fields }) => {\r\n const { t } = useTranslation();\r\n\r\n const _getActionName = (actionCode) => {\r\n switch (actionCode) {\r\n case 0: return t('auditTrail.actions.detached');\r\n case 1: return t('auditTrail.actions.unchanged');\r\n case 2: return t('auditTrail.actions.deleted');\r\n case 3: return t('auditTrail.actions.modified');\r\n case 4: return t('auditTrail.actions.added');\r\n default:\r\n return t('auditTrail.actions.detached');\r\n }\r\n }\r\n\r\n const _getLocaleSuffix = (entity) => {\r\n switch (entity) {\r\n case \"Protocol\": return \"protocols.brief.\";\r\n case \"ProtocolPractitioner\": return \"protocols.practitioner.\";\r\n case \"VisitTrackingForm\":\r\n case \"VisitTrackingExtra\": return \"protocols.visitTrackingFields.\";\r\n case \"Entry\": return \"medicalRecords.\";\r\n case \"AdverseEvents\":\r\n case \"Drugs\":\r\n case \"Procedures\":\r\n case \"Vitals\":\r\n case \"Anthropometrics\":\r\n case \"FamilyHistory\":\r\n case \"PersonalHistory\":\r\n case \"PersonalHabits\":\r\n case \"LaboratoryResult\":\r\n case \"Prescriptions\":\r\n case \"PrescriptionsItems\":\r\n case \"Orders\":\r\n case \"OrdersItems\":\r\n case \"All\":\r\n return \"medicalRecords\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n const _uncapitalize = (text) => {\r\n return text.toString().charAt(0).toLowerCase() + text.toString().slice(1);\r\n }\r\n\r\n const _uncapitalizeAll = (text) => {\r\n return text.replace(/^([A-Z])|(\\.[A-Z])/g, function (_, g1, g2) {\r\n return (typeof g1 === 'undefined') ? g2.toLowerCase() : g1.toLowerCase();\r\n });\r\n }\r\n\r\n const _getValueFormatted = (item, value, index) => {\r\n //console.log(`item: ${JSON.stringify(item)} value: ${value}`)\r\n if (item._t) {\r\n switch (item._t?.toLowerCase()) {\r\n case \"timefield\":\r\n return timeFormatter(value);\r\n case \"datetimefield\":\r\n case \"modified\":\r\n case \"datetime\":\r\n return dateTimeFormatter(value);\r\n case \"yesnofield\":\r\n return yesNoNotApplyFormatter(value, t);\r\n case \"yesno\":\r\n return yesNoFormatter(value, t);\r\n case \"payablefield\":\r\n case \"booleanfield\":\r\n case \"checkboxfield\":\r\n return boolFormatter(value, t);\r\n case \"selectasyncfield\":\r\n return objectFormatter(value);\r\n case \"array\": {\r\n return value?.map((element, idx) => {\r\n let rows = [];\r\n for (var propertyName in element) {\r\n if (!element[propertyName] || propertyName.includes(\"ToYear\") || propertyName.includes(\"ToMonth\") || propertyName.includes(\"ToDay\") ||\r\n propertyName.includes(\"FromYear\") || propertyName.includes(\"FromMonth\") || propertyName.includes(\"FromDay\") ||\r\n propertyName.includes(\"EntryId\") || propertyName.includes(\"Created\") || propertyName.includes(\"CreatedBy\"))\r\n continue;\r\n\r\n var elementValue = \"\";\r\n if (element[propertyName] instanceof Object) {\r\n elementValue = objectFormatter(element[propertyName]);\r\n }\r\n else {\r\n elementValue = element[propertyName];\r\n }\r\n rows.push(\r\n
    \r\n {\r\n t(`${item.localeSuffix}.${_uncapitalize(propertyName)}`)\r\n }\r\n :\r\n {\r\n elementValue\r\n }\r\n
    \r\n );\r\n }\r\n\r\n return rows;\r\n })\r\n }\r\n case \"arrayfield\": {\r\n if (!Array.isArray(value))\r\n return value;\r\n\r\n return value?.map((component, idx) => {\r\n let rows = [];\r\n component.Fields.forEach((field, childIdx) => {\r\n var elementValue = _getValueFormatted(field, field[\"Value\"], \"recursive\");\r\n\r\n rows.push(\r\n
    \r\n {field[\"Label\"]}\r\n :\r\n {elementValue}\r\n
    \r\n );\r\n });\r\n\r\n return rows;\r\n })\r\n }\r\n case \"arrayofstrings\": {\r\n return value?.map((element, idx) => {\r\n return
    \r\n {element}\r\n
    ;\r\n })\r\n }\r\n case \"adverseeventsopenitemsfield\":\r\n case \"drugsopenitemsfield\":\r\n case \"proceduresopenitemsfield\": {\r\n if (!Array.isArray(value))\r\n return value?.toString();\r\n\r\n const rows = value?.map((item, idx) => {\r\n return
    \r\n {item.Name}\r\n :\r\n {`${t(`medicalRecords.to`)} ${item.Closed.ToDay ?? \"UNK\"}/${item.Closed.ToMonth ?? \"UNK\"}/${item.Closed.ToYear}`}\r\n
    \r\n })\r\n return rows;\r\n }\r\n case \"fileuploadfield\": {\r\n if (value && item?.propertyName?.includes(\".ValidatedBy\"))\r\n return t(\"protocols.visit.formTemplate.label_fileUploadField\");\r\n\r\n if (value instanceof Object)\r\n return attachmentFormatter(value);\r\n else\r\n return value?.toString();\r\n }\r\n default: {\r\n if (value !== null && value !== undefined) {\r\n if (value instanceof Object)\r\n return objectFormatter(value);\r\n else\r\n return extractContentFromHTML(value.toString())\r\n }\r\n\r\n return \"\";\r\n }\r\n }\r\n }\r\n\r\n if (item.propertyName) {\r\n switch (item.propertyName) {\r\n case \"Status\":\r\n return visitStatusFormatter(value);\r\n case \"PatientStatus\":\r\n return patientVisitStatusFormatter(value);\r\n default: {\r\n if (value !== null && value !== undefined) {\r\n if (value instanceof Object)\r\n return objectFormatter(value);\r\n else\r\n return extractContentFromHTML(value.toString())\r\n }\r\n\r\n return \"\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n const _getFieldTypeFromName = (propertyName) => {\r\n switch (propertyName) {\r\n case \"Created\":\r\n case \"Modified\":\r\n case \"StartOfTask\":\r\n case \"EndOfTask\":\r\n return \"DateTimeField\"\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n const _getFieldName = (entityName, propertyName) => {\r\n switch (entityName) {\r\n case \"Protocol\": return t(`protocols.brief.${_uncapitalizeAll(propertyName)}`);\r\n case \"ProtocolPractitioner\": return t(`protocols.practitioner.${_uncapitalizeAll(propertyName)}`);\r\n case \"VisitTracking\": return t(`protocols.visitTrackingFields.${_uncapitalizeAll(propertyName)}`);\r\n case \"VisitTrackingExtra\": return t(`protocols.visitTrackingFields.${_uncapitalizeAll(propertyName)}`);\r\n default:\r\n return t(`${_getLocaleSuffix(entityName)}.${_uncapitalizeAll(entityName)}.${_uncapitalizeAll(propertyName)}`);;\r\n }\r\n }\r\n\r\n const Reason = ({ reason }) => {\r\n if (!reason || reason === \"\")\r\n return '';\r\n\r\n return (\r\n \r\n \r\n \r\n {t('auditTrail.reason')}\r\n \r\n \r\n \r\n {t(`auditTrail.reasons.${reason}`)}\r\n \r\n \r\n );\r\n }\r\n\r\n const Comments = ({ comments }) => {\r\n if (!comments || comments === \"\")\r\n return '';\r\n\r\n return (\r\n \r\n \r\n \r\n {t('auditTrail.comments')}\r\n \r\n \r\n \r\n {comments}\r\n \r\n );\r\n }\r\n\r\n const Visit = ({ visitId }) => {\r\n if (!visitId || visitId === 0 || !medicalRecordNumber)\r\n return null;\r\n\r\n const url = medicalRecordNumber && `/admin/medicalRecords/${medicalRecordNumber}/entry/${visitId}`;\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.viewVisit\")}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const _getFieldNameType = (row, field, propertyName) => {\r\n const indexes = [...propertyName.matchAll(/\\d+/g)];\r\n if (propertyName.includes(\".Components[\")) { // Updated item in arrayField. \r\n const componentField = field.components[indexes[1]].fields[indexes[2]];\r\n row.fieldName = field.componentsType === \"LaboratoryResults\" ? field.components[indexes[1]].fields[0]?.value?.description : componentField.label;\r\n row._t = field.componentsType;\r\n }\r\n else\r\n if (propertyName.includes(\"].Components\")) { // New item in ArrayField \r\n row.fieldName = t(`medicalRecords.${_uncapitalize(field.componentsType)}.title`);\r\n row._t = field._t;\r\n }\r\n else {\r\n row.fieldName = field.label;\r\n row._t = field._t;\r\n }\r\n }\r\n\r\n const _getFieldVisitTrackingFormMetadata = (row, propertyName) => {\r\n const indexes = [...propertyName.matchAll(/\\d+/g)];\r\n if (!indexes || indexes.length === 0) return;\r\n\r\n const field = fields[indexes[0]];\r\n if (!field) return;\r\n\r\n switch (field._t) {\r\n case \"AdverseEventsOpenItemsField\":\r\n case \"DrugsOpenItemsField\":\r\n case \"ProceduresOpenItemsField\":\r\n if (!field.value[indexes[1]]) {\r\n row.fieldName = \"Item Cerrado\";\r\n } else\r\n row.fieldName = `${field.value[indexes[1]].name}: ${_getFieldName(\"VisitTracking\", propertyName.slice(propertyName.lastIndexOf(\".\") + 1))}`;\r\n row._t = field._t;\r\n return;\r\n default:\r\n _getFieldNameType(row, field, propertyName);\r\n return;\r\n }\r\n }\r\n\r\n const auditItem = audit?.map((item, idx) => {\r\n const oldValues = item.oldValues;\r\n const currentValues = item.newValues;\r\n\r\n var rows = [];\r\n\r\n // Si se borró un item, el \"for\" lo hago desde oldValues. \r\n const values = isequal(item.newValues, {}) ? item.oldValues : item.newValues;\r\n for (var propertyName in values) {\r\n var row = {\r\n propertyName,\r\n before: oldValues[propertyName],\r\n current: currentValues[propertyName]\r\n };\r\n\r\n try {\r\n // Ignoro campos internos. \r\n if (\r\n propertyName.includes(\".Id\") || propertyName.includes(\"Id\")\r\n || propertyName.includes(\".ConceptId\")\r\n || propertyName.includes(\".FileExtension\")\r\n || propertyName.includes(\".Path\") //|| propertyName.includes(\".ValidatedBy\") || propertyName.includes(\".UploadedBy\")\r\n || propertyName.includes(\".Code\")\r\n || propertyName.includes(\"ToYear\") || propertyName.includes(\"ToMonth\") || propertyName.includes(\"ToDay\")\r\n || propertyName.includes(\"FromYear\") || propertyName.includes(\"FromMonth\") || propertyName.includes(\"FromDay\")\r\n || propertyName.includes(\"DiagnosisYear\") || propertyName.includes(\"DiagnosisMonth\") || propertyName.includes(\"DiagnosisDay\")\r\n || propertyName.includes(\"CreatedBy\")\r\n || propertyName.includes(\"Category\")\r\n )\r\n continue;\r\n\r\n switch (item.entityName.toLowerCase()) {\r\n case \"visittrackingform\":\r\n case \"visittrackingextraform\":\r\n _getFieldVisitTrackingFormMetadata(row, propertyName);\r\n break;\r\n default: {\r\n if (Array.isArray(currentValues[propertyName])) {\r\n row.fieldName = t(`${_getLocaleSuffix(item.entityName)}${_uncapitalize(propertyName)}`); //.title\r\n row.localeSuffix = `${_getLocaleSuffix(item.entityName)}${_uncapitalize(propertyName)}`;\r\n row._t = propertyName === \"StudyTasks\" || propertyName === \"Keywords\" ? \"ArrayOfStrings\" : \"Array\";\r\n }\r\n else {\r\n propertyName = propertyName.replace(/\\[\\d*\\]/g, '');\r\n row.fieldName = _getFieldName(item.entityName, propertyName);\r\n row._t = _getFieldTypeFromName(propertyName);\r\n }\r\n }\r\n break;\r\n }\r\n rows.push(row);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"auditTrail.date\")}: {dateTimeUTCFormatter(item.dateTime)} {t(\"auditTrail.action\")}: {_getActionName(item.auditAction)} {t(\"auditTrail.user\")}: {item.userId}\r\n \r\n \r\n {\r\n rows.length > 0 &&\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n rows.map((row, idx) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
    {t(\"auditTrail.field\")}{t(\"auditTrail.before\")}{t(\"auditTrail.after\")}
    {row.fieldName}{_getValueFormatted(row, row.before, `before-${idx}`)}{_getValueFormatted(row, row.current, `current-${idx}`)}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n });\r\n\r\n return (\r\n \r\n {auditItem}\r\n \r\n );\r\n}\r\n\r\nAudit.propTypes = {\r\n audit: PropTypes.array.isRequired,\r\n fields: PropTypes.array,\r\n};","import React, { useState, useEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport { Audit } from '../../components/AuditTrail/Audit';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { getAuditTrail } from '../../api/admin';\r\nimport { Spinner } from '../../components/Utils/Loaders';\r\n\r\nexport const AuditTrail = ({ medicalRecordNumber, entity, entityId, parentKey, fields }) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [audit, setAudit] = useState([]);\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getAuditTrail(entity, entityId, parentKey)\r\n .then(response => {\r\n var auditTrails = response.data;\r\n console.log(auditTrails)\r\n setAudit(auditTrails);\r\n setIsLoading(false);\r\n })\r\n .catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n })\r\n }\r\n\r\n fetchData();\r\n }, [entity, entityId]);\r\n\r\n if (isLoading)\r\n return \r\n\r\n if (fields && fields.length > 0) {\r\n return (\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nAuditTrail.propTypes = {\r\n entity: PropTypes.string,\r\n entityId: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]).isRequired,\r\n parentKey: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n fields: PropTypes.array,\r\n medicalRecordNumber: PropTypes.string,\r\n};","import { useEffect, useState } from 'react';\r\nimport { getAdverseEvent, getAdverseEventHistoryAPI, getAdverseEvents, getEvents, postAdverseEvents, putAdverseEvent, } from '../../../api/medicalRecord';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\n\r\nexport const useEvents = (medicalRecordNumber, entryId, actual) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n medicalRecordNumber: medicalRecordNumber ? medicalRecordNumber : 0,\r\n entryId: entryId ? entryId : 0,\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n actual: actual ?? false\r\n });\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setReload(false);\r\n setIsLoading(true);\r\n const paginatedItems = await getEvents(query);\r\n\r\n if (isSubscribed) {\r\n setTotalSize(paginatedItems.data.count);\r\n setData(paginatedItems.data.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n\r\n if (medicalRecordNumber || entryId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n default: break;\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, setReload];\r\n}\r\n\r\nexport const useAdverseEvents = (medicalRecordNumber, entryId, includePersonalHistory, actual) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n medicalRecordNumber: medicalRecordNumber ? medicalRecordNumber : 0,\r\n entryId: entryId ? entryId : 0,\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n includePersonalHistory: includePersonalHistory ?? false,\r\n actual: actual ?? false\r\n });\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setReload(false);\r\n setIsLoading(true);\r\n const paginatedItems = await getAdverseEvents(query);\r\n\r\n if (isSubscribed) {\r\n setTotalSize(paginatedItems.data.count);\r\n setData(paginatedItems.data.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n\r\n if (medicalRecordNumber || entryId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n default: break;\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, setReload];\r\n}\r\n\r\nexport const useAdverseEvent = (entryId, id) => {\r\n\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState(null);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setIsLoading(true);\r\n const res = await getAdverseEvent(entryId, id);\r\n\r\n if (isSubscribed) {\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData(null);\r\n }\r\n }\r\n\r\n if (id)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [entryId, id]);\r\n\r\n const create = (entryId, data) => {\r\n return postAdverseEvents(entryId, data);\r\n }\r\n\r\n const update = (entryId, id, data) => {\r\n return putAdverseEvent(entryId, id, data);\r\n }\r\n\r\n return [data, isLoading, create, update];\r\n}\r\n\r\nexport const useAdverseEventHistory = () => {\r\n\r\n const fetchData = (medicalRecordNumber, conceptId, condition) => {\r\n try {\r\n return getAdverseEventHistoryAPI(medicalRecordNumber, conceptId, condition);\r\n } catch (error) {\r\n HandleApiError(error);\r\n }\r\n }\r\n return [fetchData];\r\n}","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Token } from 'react-bootstrap-typeahead';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { AuditModal, CreateAuditModal } from \"../../../components/AuditTrail/AuditModal\";\r\nimport { ExpandableContent } from \"../../../components/CustomControls/ExpandableContent\";\r\nimport { SnomedPicker } from '../../../components/CustomControls/SnomedPicker';\r\nimport { DiagnosisForm } from '../../../components/MedicalRecords/Forms/DiagnosisForm';\r\nimport { ModalData } from '../../../components/Modals/ModalData';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { getRemovedElement } from '../../../components/Utils/Commons';\r\nimport { nullableDateFormatter } from '../../../components/Utils/Formatter';\r\nimport { getMedicalRecordsSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { conceptType, snomedExpressions } from '../../../variables/Enums';\r\nimport { useDiagnoses } from '../Hooks/useDiagnosis';\r\nimport Conditions from '../../../components/MedicalRecords/Conditions';\r\nimport { AuditTrail } from '../../Admin/AuditTrail';\r\nimport { useAdverseEvent } from '../Hooks/useAdverseEvents';\r\n\r\nexport const DiagnosesContainer = (props) => {\r\n const { medicalRecordNumber, entryId } = props;\r\n const [data] = useDiagnoses(entryId);\r\n const [diagnoses, setDiagnoses] = useState([]);\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n setDiagnoses(data.map(x => {\r\n return {\r\n ...x,\r\n conceptId: x.adverseEffectId,\r\n description: x.adverseEffect\r\n }\r\n }))\r\n }, [data]);\r\n\r\n const [modal, setModal] = useState(null);\r\n const handleAuditTrail = (entityId) => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n if (diagnoses?.length === 0)\r\n return null\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const DiagnosisCreateContainer = (props) => {\r\n const { entryStatus, entryId, onSubmit, disabled } = props;\r\n const [data, , , , , setReload, create, remove, update] = useDiagnoses(entryId);\r\n const [content, setContent] = useState(null);\r\n const [diagnoses, setDiagnoses] = useState([]);\r\n let _addedDiagnosis = null;\r\n let _addedDiagnoses = [];\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n if (props.contentToReload?.contentName === \"conditions\")\r\n setReload(true);\r\n\r\n }, [props.contentToReload]);\r\n\r\n useEffect(() => {\r\n setDiagnoses(data.map(x => {\r\n return {\r\n ...x,\r\n conceptId: x.adverseEffectId,\r\n description: x.adverseEffect\r\n }\r\n }))\r\n }, [data]);\r\n\r\n const handleSubmit = async (data) => {\r\n if (entryStatus === \"Published\" || entryStatus === \"AutoPublished\") {\r\n setContent( setContent(null)}\r\n onSave={(reason, comments) => onConfirmSubmit(data, reason, comments)}\r\n />)\r\n }\r\n else {\r\n onConfirmSubmit(data);\r\n }\r\n }\r\n\r\n const onConfirmSubmit = async (data, reason, comments) => {\r\n if (!_addedDiagnosis)\r\n return;\r\n\r\n if (reason) {\r\n data.auditReason = reason;\r\n data.auditComments = comments;\r\n }\r\n\r\n data.condition.name = {};\r\n Object.assign(data.condition.name, _addedDiagnosis); // Mergeo props de Picker y modal. \r\n\r\n try {\r\n const res = await create(entryId, data);\r\n _addedDiagnosis.id = res.data?.id;\r\n // Actualizo State. \r\n Object.assign(_addedDiagnosis, data.condition); // Mergeo props de Picker y modal. \r\n const editedDiagnoses = _addedDiagnoses.map((condition) => condition.conceptId === _addedDiagnosis.conceptId ? _addedDiagnosis : condition);\r\n\r\n setDiagnoses(editedDiagnoses);\r\n _addedDiagnosis = null;\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n console.log(error)\r\n }\r\n\r\n setContent(null);\r\n onSubmit(\"diagnoses\", _addedDiagnoses?.length > 0); // Indico al padre sobre q contenido hacer Reload. \r\n }\r\n\r\n const handleCancel = () => {\r\n const editedDiagnoses = diagnoses.filter(x => x.conceptId !== _addedDiagnosis.conceptId);\r\n setContent(null);\r\n setDiagnoses(editedDiagnoses);\r\n }\r\n\r\n const handleChangeDiagnosis = async (_name, value) => {\r\n if (entryStatus === \"Published\" || entryStatus === \"AutoPublished\") {\r\n setContent( setContent(null)}\r\n onSave={(reason, comments) => onConfirmChangeDiagnosis(value, reason, comments)}\r\n />)\r\n }\r\n else {\r\n onConfirmChangeDiagnosis(value);\r\n }\r\n }\r\n const onConfirmChangeDiagnosis = async (value, reason, comments) => {\r\n _addedDiagnoses = value;\r\n\r\n // Determino si se agregó o eliminó un elemento (o todos)\r\n if (value == null || diagnoses?.length > value.length) { // Elemento/s eliminado/s\r\n _addedDiagnosis = null;\r\n const elementoEliminado = getRemovedElement(diagnoses, value);\r\n if (elementoEliminado && elementoEliminado.id) {\r\n try {\r\n await remove(entryId, elementoEliminado.id, reason?.code, comments);\r\n setContent(null);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setContent(null);\r\n console.log(error)\r\n }\r\n }\r\n\r\n onSubmit(\"diagnoses\", _addedDiagnoses?.length > 0); // Indico al padre sobre q contenido hacer Reload. \r\n setDiagnoses(value);\r\n }\r\n else { // Elemento agregado\r\n _addedDiagnosis = value.at(-1); // Obtengo último diagnostico agregado, para poder modificarlo. \r\n if (_addedDiagnosis) {\r\n setContent(\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n const handleEdit = async (data) => {\r\n if (entryStatus === \"Published\" || entryStatus === \"AutoPublished\") {\r\n setContent( setContent(null)}\r\n onSave={(reason, comments) => onConfirmEdit(data, reason, comments)}\r\n />)\r\n }\r\n else {\r\n onConfirmEdit(data);\r\n }\r\n }\r\n\r\n const onConfirmEdit = async (data, reason, comments) => {\r\n try {\r\n if (data && data.condition) {\r\n let adverseEvent = data.condition;\r\n if (reason) {\r\n adverseEvent.auditReason = reason;\r\n adverseEvent.auditComments = comments;\r\n }\r\n await update(entryId, adverseEvent.id, adverseEvent);\r\n setContent(null);\r\n setReload(true);\r\n }\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n console.log(error);\r\n }\r\n }\r\n\r\n const handleClickDiagnosis = (item) => {\r\n setContent( setContent(null)}\r\n />)\r\n }\r\n\r\n return (\r\n <>\r\n {content}\r\n \r\n (\r\n \r\n
    handleClickDiagnosis(option)}>\r\n
    \r\n {option.isChronic && t(\"medicalRecords.condition.chronic\")} {option.description}\r\n
    \r\n {\r\n option.intensity &&\r\n
    \r\n {t(\"medicalRecords.condition.intensity.title\")}: {option?.intensity?.title || option.intensity}\r\n
    \r\n }\r\n {\r\n option.fromYear &&\r\n
    \r\n {t(\"medicalRecords.condition.from\")}: {nullableDateFormatter(option.fromDay, option.fromMonth, option.fromYear)}\r\n
    \r\n }\r\n {\r\n option.toYear &&\r\n
    \r\n {t(\"medicalRecords.condition.to\")}: {nullableDateFormatter(option.toDay, option.toMonth, option.toYear)}\r\n
    \r\n }\r\n
    \r\n
    \r\n )}\r\n />\r\n
    \r\n \r\n );\r\n}\r\n\r\nconst DiagnosisModalEditContainer = (props) => {\r\n const { condition, onSubmit, onCancel } = props;\r\n const [data, isLoading] = useAdverseEvent(condition.entryId, condition.id);\r\n\r\n if (!data || isLoading)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport const DiagnosisContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => (props.condition && { condition: props.condition }),\r\n\r\n validationSchema: getMedicalRecordsSchema().adverseEvent,\r\n\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n\r\n displayName: 'DiagnosisForm',\r\n\r\n})(DiagnosisForm));\r\n\r\nDiagnosisContainerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n adverseEvent: PropTypes.object.isRequired,\r\n};","import React from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport Card from '../Cards/Card';\r\nimport { Add, Audit, Chart, Edit, Remove, RemoveCircle, View } from '../Icons/Icons';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\n\r\nexport const EntryItemsTable = (props) => {\r\n const { data, columns, query, totalSize, isLoading, onTableChange, rowClasses, withCard } = props;\r\n const { t } = useTranslation();\r\n\r\n if (props.query || props.onAuditTrail || props.onEdit)\r\n columns.push({\r\n dataField: 'actions',\r\n text: t(\"commons.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-actions',\r\n classes: 'row-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n {\r\n props.customActions && props.customActions(row, props)\r\n }\r\n {\r\n props.onHistory &&\r\n \r\n \r\n \r\n }\r\n {\r\n props.query && row.entryId != props.entryId && props.query.medicalRecordNumber !== 0 && props.query.medicalRecordNumber !== null &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n row.hasAudit && props.onAuditTrail &&\r\n \r\n \r\n \r\n }\r\n {\r\n props.onEdit && row.entryId == props.entryId &&\r\n \r\n \r\n \r\n }\r\n {\r\n props.onRemove && row.entryId == props.entryId &&\r\n \r\n \r\n \r\n }\r\n
    \r\n )\r\n }\r\n });\r\n\r\n const expandRow = {\r\n parentClassName: 'parent-table-expanded',\r\n className: 'table-expanded',\r\n renderer: props.expandContent,\r\n showExpandColumn: true,\r\n onlyOneExpanding: true,\r\n expanded: props.expandAll && data.map(x => x.id),\r\n expandHeaderColumnRenderer: ({ isAnyExpands }) => {\r\n if (isAnyExpands)\r\n return \r\n else\r\n return ;\r\n },\r\n expandColumnRenderer: () => (\"\")\r\n };\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n onTableChange(type, { page, sizePerPage, sortField, sortOrder });\r\n }\r\n\r\n const content = (\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n );\r\n\r\n if (withCard)\r\n return (\r\n \r\n );\r\n else\r\n return content;\r\n}\r\n\r\n\r\nEntryItemsTable.defaultProps = {\r\n withCard: true\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useEvents } from '../../containers/MedicalRecords/Hooks/useAdverseEvents';\r\nimport { NullableDatePickerCombo } from '../CustomControls/DatePicker';\r\nimport { ExpandableContent } from '../CustomControls/ExpandableContent';\r\nimport { dateFormatter, yesNoFormatter } from '../Utils/Formatter';\r\nimport { EntryItemsTable } from './EntryItemsTable';\r\nimport { conditions } from '../../variables/Enums';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { Add } from '../Icons/Icons';\r\n\r\nexport const AdverseEvents = (props) => {\r\n const { t } = useTranslation();\r\n\r\n function _getCategory(item) {\r\n const chronic = item.isChronic ? ` ${t(\"medicalRecords.condition.chronic\")}` : \"\";\r\n if (item.category === conditions.diagnosis)\r\n return (({t(\"medicalRecords.condition.diagnosis\")}{chronic}) )\r\n if (item.isPersonalHistory)\r\n return (({t(\"medicalRecords.condition.personalHistory\")}{chronic}) )\r\n }\r\n\r\n const columns = [\r\n {\r\n dataField: 'adverseEffect', text: t('medicalRecords.adverseEvents.adverseEvent'), formatter: function (_cell, row, rowindex) {\r\n return (\r\n\r\n \r\n \r\n {dateFormatter(row.created, \"DD/MM/YY\")} - \r\n {_getCategory(row)}\r\n {row.adverseEffect}\r\n \r\n {\r\n row.from &&\r\n \r\n
    {t('medicalRecords.from')}: {row.from}
    \r\n \r\n }\r\n {\r\n row.to &&\r\n \r\n
    {t('medicalRecords.to')}: {row.to}
    \r\n \r\n }\r\n
    \r\n )\r\n }\r\n },\r\n ];\r\n\r\n const customActions = function (row, props) {\r\n if (props.onAddDiagnosis && props.entryId != row.entryId)\r\n return \r\n \r\n \r\n }\r\n\r\n const expandedContent = (row) => (\r\n
    \r\n {row.intensity &&
    {t('medicalRecords.adverseEvents.intensity')}: {row.intensity.title ?? row.intensity}
    }\r\n {row.action &&
    {t('medicalRecords.adverseEvents.action')}: {row.action}
    }\r\n {row.serious &&
    {t('medicalRecords.adverseEvents.serious')}: {yesNoFormatter(row.serious, t)}
    }\r\n {row.relationwithdrug &&
    {t('medicalRecords.adverseEvents.relationwithdrug')}: {row.relationwithdrug}
    }\r\n {row.reported &&
    {t('medicalRecords.adverseEvents.reported')}: {yesNoFormatter(row.reported, t)}
    }\r\n {row.notes &&
    {t('medicalRecords.adverseEvents.notes')}: {row.notes}
    }\r\n
    \r\n )\r\n\r\n const rowClasses = (row) => { return row.originalId && row.originalId !== row.id ? 'item-modified' : ''; };\r\n\r\n return ();\r\n}\r\n\r\nexport const AdverseEventsOpenItems = (props) => {\r\n const { value, medicalRecordNumber, expandedAll, isDisabled, title } = props;\r\n const [adverseEvents, query, totalSize, isLoading, handleTableChange] = useEvents(medicalRecordNumber, null, true);\r\n const [closedItems, setClosedItems] = useState(value !== \"\" && value !== null ? value : []);\r\n const { t } = useTranslation();\r\n\r\n const handleChange = (item, name, value) => {\r\n let dateName = name.split(\".\")[1];\r\n var closedItem = closedItems.find(x => x.id === item.id);\r\n\r\n if (closedItem) { // Update\r\n closedItem.closed[dateName] = value;\r\n\r\n if (!closedItem.closed.toDay && !closedItem.closed.toMonth && !closedItem.closed.toYear) {\r\n const closedItemsCopy = closedItems.filter(x => x.id !== closedItem.id); // Remove\r\n setClosedItems(closedItemsCopy);\r\n props.onChange(props.name, closedItemsCopy);\r\n } else {\r\n let closedItemsCopy = JSON.parse(JSON.stringify(closedItems));\r\n var index = closedItemsCopy.findIndex(x => x.id === item.id);\r\n closedItemsCopy.splice(index, 1, closedItem); // Update. \r\n setClosedItems(closedItemsCopy);\r\n props.onChange(props.name, closedItemsCopy);\r\n }\r\n }\r\n else {\r\n // New\r\n var joined = closedItems.concat({\r\n id: item.id,\r\n closed: { [dateName]: value },\r\n name: item.adverseEffect\r\n });\r\n setClosedItems(joined);\r\n props.onChange(props.name, joined);\r\n }\r\n }\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n const columns = [\r\n { dataField: 'adverseEffect', text: t('medicalRecords.adverseEvents.adverseEvent') },\r\n { dataField: 'from', text: t('medicalRecords.from') },\r\n {\r\n isDummyField: true,\r\n dataField: 'to',\r\n text: t('medicalRecords.to'),\r\n formatter: function (_cell, row, rowindex) {\r\n var closedItem = closedItems?.find(x => x.id === row.id);\r\n\r\n return (\r\n handleChange(row, name, value)}\r\n onBlur={handleBlur}\r\n valueDay={closedItem ? closedItem.closed.toDay : row.toDay}\r\n valueMonth={closedItem ? closedItem.closed.toMonth : row.toMonth}\r\n valueYear={closedItem ? closedItem.closed.toYear : row.toYear}\r\n disabled={isDisabled}\r\n />\r\n \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const columnsClosed = [\r\n { dataField: 'name', text: t('medicalRecords.adverseEvents.adverseEvent') },\r\n {\r\n isDummyField: true,\r\n dataField: 'to',\r\n text: t('medicalRecords.to'),\r\n formatter: function (_cell, row, rowindex) {\r\n if (!row.closed) return \"\";\r\n\r\n return (\r\n \r\n handleChange(row, name, value)}\r\n onBlur={handleBlur}\r\n valueDay={row.closed.toDay}\r\n valueMonth={row.closed.toMonth}\r\n valueYear={row.closed.toYear}\r\n disabled={isDisabled}\r\n />\r\n \r\n )\r\n }\r\n }\r\n ];\r\n\r\n let data = [];\r\n if (!isLoading && value && value.length > 0 && adverseEvents.length > 0) {\r\n value.forEach(closed => {\r\n if (!adverseEvents.find(x => x.id === closed.id)) {\r\n data.push(closed);\r\n }\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n data && data.length > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n \r\n \r\n );\r\n}","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { Button, Modal as BootstrapModal, Table } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Cancel, View } from \"../Icons/Icons\";\r\nimport { dateTimeFormatter } from \"../Utils/Formatter\";\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\n\r\nexport const ModalDuplicatedItem = (props) => {\r\n const { items, item, onHide } = props;\r\n const { t } = useTranslation();\r\n\r\n const getItemName = () => {\r\n switch (item) {\r\n case \"adverseEvent\": return t('medicalRecords.adverseEvents.title');\r\n case \"drugs\": return t('medicalRecords.drugs.title');\r\n case \"procedures\": return t('medicalRecords.procedures.title');\r\n case \"personalHistory\": return t('medicalRecords.personalHistory.title');\r\n default:\r\n return \"items\";\r\n }\r\n }\r\n\r\n const getItemPropertyName = () => {\r\n switch (item) {\r\n case \"adverseEvent\":\r\n case \"personalHistory\": return \"adverseEffect\";\r\n case \"drugs\": return \"drug\";\r\n case \"procedures\": return \"procedure\";\r\n default:\r\n return \"name\";\r\n }\r\n }\r\n\r\n return ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t(\"commons.attention\")}\r\n \r\n \r\n {t(\"medicalRecordsNotifications.entry_Duplicated\", { itemName: getItemName() })}\r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n items.map((item, idx) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
    {t(\"medicalRecords.adverseEvents.created\")}{getItemName()}{t(\"medicalRecords.adverseEvents.from\")}{t(\"medicalRecords.adverseEvents.to\")}{t(\"medicalRecords.actions\")}
    {dateTimeFormatter(item.created)}{item[getItemPropertyName()]}{item.from}{item.to}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    , document.body\r\n )\r\n};\r\n\r\nModalDuplicatedItem.propTypes = {\r\n onHide: PropTypes.func.isRequired,\r\n items: PropTypes.array.isRequired,\r\n item: PropTypes.string.isRequired\r\n};","import { ErrorMessage, FieldArray } from 'formik';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Grid, Row, Panel, PanelGroup } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { conceptType, snomedExpressions } from '../../../variables/Enums';\r\nimport { FromToNullableDatePicker, NullableDatePickerCombo } from \"../../CustomControls/DatePicker\";\r\nimport { CustomSelect } from \"../../CustomControls/CustomSelect\";\r\nimport { SnomedPicker } from '../../CustomControls/SnomedPicker';\r\nimport { Remove } from '../../Icons/Icons';\r\nimport { FormErrorMessage } from '../../Validations/FormValidationErrors';\r\nimport { CustomCheckbox } from '../../CustomControls/CustomCheckbox';\r\n\r\nexport const AdverseEventForm = props => {\r\n\r\n const {\r\n values,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleSubmit,\r\n handleChange,\r\n isSubmitting,\r\n t\r\n } = props;\r\n\r\n const emptyResult = {\r\n name: '',\r\n intensity: '',\r\n serious: '',\r\n reported: '',\r\n relationwithdrug: '',\r\n action: '',\r\n fromYear: ''\r\n };\r\n\r\n if (!values.adverseEvents) {\r\n values.adverseEvents = [emptyResult];\r\n }\r\n\r\n return (\r\n
    \r\n \r\n (\r\n
    \r\n {values.adverseEvents && values.adverseEvents.length > 0 && (\r\n values.adverseEvents.map((adverseEvent, index) => (\r\n \r\n \r\n {adverseEvent.name ? adverseEvent.name.description : 'Evento'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.adverseEvents.adverseEvent\")}\r\n \r\n \r\n \r\n \r\n arrayHelper.remove(index)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.adverseEvents.intensity\")}\r\n option.code}\r\n />\r\n \r\n \r\n {t(\"medicalRecords.condition.chronic\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.adverseEvents.notes\")}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ))\r\n )}\r\n {\r\n (values.adverseEvents.length === 0 || (values.adverseEvents.length > 0 && !values.adverseEvents[0].id)) &&\r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n )}\r\n />\r\n
    \r\n \r\n {\r\n values.adverseEvents && values.adverseEvents.length > 0 &&\r\n \r\n }\r\n\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport const AdverseEventCloseForm = props => {\r\n const { adverseEvent, onCancel, onCloseItem } = props;\r\n const { t } = useTranslation();\r\n const [closeDate, setCloseDate] = useState({});\r\n\r\n const handleChange = (name, value) => {\r\n setCloseDate({\r\n ...closeDate,\r\n [name]: value\r\n });\r\n }\r\n\r\n const handleCloseItem = () => {\r\n if (closeDate && onCloseItem)\r\n onCloseItem(adverseEvent, closeDate);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {t(\"medicalRecords.from\")}\r\n \r\n \r\n \r\n {t(\"medicalRecords.to\")}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n}","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { putAdverseEvent, removeAdverseEventAPI } from \"../../../api/medicalRecord\";\r\nimport { AuditModal, CreateAudit, CreateAuditModal } from \"../../../components/AuditTrail/AuditModal\";\r\nimport { ExpandableContent } from \"../../../components/CustomControls/ExpandableContent\";\r\nimport { AdverseEvents } from \"../../../components/MedicalRecords/AdverseEvents\";\r\nimport { ModalDuplicatedItem } from \"../../../components/MedicalRecords/ModalDuplicatedItem\";\r\nimport { AdverseEventForm } from \"../../../components/MedicalRecords/Forms/AdverseEventsForm\";\r\nimport { getMedicalRecordsSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { AuditTrail } from \"../../Admin/AuditTrail\";\r\nimport { useAdverseEvent, useAdverseEvents } from \"../Hooks/useAdverseEvents\";\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { ModalConfirm } from '../../../components/Modals/ModalConfirm';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { ModalSpinner } from '../../../components/Utils/Loaders';\r\n\r\nexport const AdverseEventsContainer = (props) => {\r\n const [content, setContent] = useState(null);\r\n const { medicalRecordNumber, entryStatus, entryId, expandedAll } = props;\r\n const [adverseEvents, query, totalSize, isLoading, handleTableChange, setReload] = useAdverseEvents(medicalRecordNumber, entryId, false, true);\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n if (props.contentToReload?.contentName === \"adverseEvents\")\r\n setReload(true);\r\n\r\n }, [props.contentToReload]);\r\n\r\n const handleEdit = (id) => {\r\n setContent();\r\n }\r\n\r\n const handleSubmit = async (data) => {\r\n\r\n if (!data || !data.adverseEvents || data.adverseEvents.length === 0)\r\n return;\r\n\r\n if (entryStatus !== \"Published\" && entryStatus !== \"AutoPublished\" && entryId == data.adverseEvents[0].entryId && (!data.adverseEvents[0].originalId || data.adverseEvents[0].id == data.adverseEvents[0].originalId)) {\r\n onConfirmSubmit(data);\r\n } else {\r\n setContent( setContent(null)}\r\n onSave={(reason, comments) => onConfirmSubmit(data, reason, comments)}\r\n />)\r\n }\r\n }\r\n\r\n const onConfirmSubmit = async (data, reason, comments) => {\r\n try {\r\n if (data && data.adverseEvents && data.adverseEvents.length > 0) {\r\n let adverseEvent = data.adverseEvents[0];\r\n if (reason) {\r\n adverseEvent.auditReason = reason;\r\n adverseEvent.auditComments = comments;\r\n }\r\n await putAdverseEvent(entryId, adverseEvent.id, adverseEvent);\r\n setContent(null);\r\n setReload(true);\r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n const handleClose = () => { setContent(null); }\r\n\r\n const handleAuditTrail = (entityId) => {\r\n setContent(\r\n { setContent(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n //#region Delete item with audit\r\n const handleRemove = (id) => {\r\n setContent(\r\n confirmRemoveItem(id)}\r\n onCancel={() => setContent(null)}\r\n title={t(\"medicalRecordsNotifications.item_delete_title\")}\r\n description={t(\"medicalRecordsNotifications.item_delete_description\")}\r\n confirmStyle=\"danger\"\r\n />);\r\n }\r\n const confirmRemoveItem = (id) => {\r\n if (entryStatus === \"Published\" || entryStatus === \"AutoPublished\") {\r\n setContent( setContent(null)}\r\n onSave={(reason, comments) => _removeItemAudited(id, reason, comments)}\r\n />)\r\n }\r\n else {\r\n _removeItemAudited(id, null, null);\r\n }\r\n }\r\n const _removeItemAudited = async (id, reason, comments) => {\r\n try {\r\n setContent();\r\n await removeAdverseEventAPI(entryId, id, reason?.code, comments);\r\n setReload(true);\r\n setContent(null);\r\n Success(\"medicalRecordsNotifications.item_DeletedSuccessfully\");\r\n }\r\n catch (error) {\r\n setContent(null);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n //#endregion\r\n\r\n if (totalSize === 0)\r\n return null;\r\n\r\n return (\r\n \r\n {content}\r\n \r\n \r\n );\r\n}\r\n\r\nexport const AdverseEventCreateContainer = (props) => {\r\n const { entryStatus, entryId, onSubmit } = props;\r\n const [, , create,] = useAdverseEvent(entryId);\r\n const [content, setContent] = useState(null);\r\n\r\n const handleSubmit = async (data) => {\r\n\r\n if (entryStatus === \"Published\" || entryStatus === \"AutoPublished\") {\r\n setContent( setContent(null)}\r\n onSave={(reason, comments) => onConfirmSubmit(data, reason, comments)}\r\n />)\r\n }\r\n else {\r\n onConfirmSubmit(data);\r\n }\r\n }\r\n\r\n const onConfirmSubmit = async (data, reason, comments) => {\r\n try {\r\n if (reason) {\r\n data.auditReason = reason;\r\n data.auditComments = comments;\r\n }\r\n const resp = await create(entryId, data);\r\n if (resp.data.length > 0)\r\n setContent( { setContent(null); onSubmit(\"adverseEvents\"); }}\r\n items={resp.data}\r\n item=\"adverseEvent\"\r\n medicalRecordNumber={props.medicalRecordNumber}\r\n />);\r\n else {\r\n setContent(null);\r\n onSubmit(\"adverseEvents\"); // Indico al padre sobre q contenido hacer Reload. \r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n const handleCancel = () => {\r\n props.hide()\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n content ??\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nconst AdverseEventEditContainer = (props) => {\r\n const { entryId, id, onSubmit, onCancel } = props;\r\n const [data, isLoading] = useAdverseEvent(entryId, id);\r\n\r\n if (!data || isLoading)\r\n return null;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst AdverseEventContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => (props.adverseEvent && { adverseEvents: [props.adverseEvent] }),\r\n\r\n validationSchema: getMedicalRecordsSchema().adverseEvent,\r\n\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n\r\n displayName: 'AdverseEventForm',\r\n\r\n})(AdverseEventForm));\r\n\r\nAdverseEventContainerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n adverseEvent: PropTypes.object.isRequired,\r\n};","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Warning } from '../Icons/Icons';\r\nimport { dateFormatter, toLocaleDateTimeFormatter } from '../Utils/Formatter';\r\nimport { EntryItemsTable } from './EntryItemsTable';\r\n\r\nexport const Anthropometrics = (props) => {\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n {\r\n dataField: 'created', text: t('commons.date'), formatter: function (cell) {\r\n return props.inProtocol ? toLocaleDateTimeFormatter(cell, \"DD/MM/YY\") : dateFormatter(cell, \"DD/MM/YY\")\r\n }, headerClasses: 'header-date'\r\n },\r\n { dataField: 'weight', text: t('medicalRecords.anthropometrics.weight') },\r\n { dataField: 'height', text: t('medicalRecords.anthropometrics.height') },\r\n {\r\n dataField: 'bmi', text: t('medicalRecords.anthropometrics.bmi'), formatter: function (_cell, row) {\r\n var bmiColor = \"#20ad9b\"; //Normopeso (18.5-24.9 kg/m2 ) \r\n var showWarning = false;\r\n if (row.bmi < 18.5) {\r\n showWarning = true;\r\n bmiColor = \"#ca6e6e\"; //Bajo peso (<18.5 kg/m2)\r\n } else if (row.bmi >= 25 && row.bmi < 30) {\r\n showWarning = true;\r\n bmiColor = \"#ffa534\"; //Sobrepeso (25-29.9 kg/m2 ) \r\n } else if (row.bmi >= 30) {\r\n bmiColor = \"#ca6e6e\"; //Obesidad\r\n showWarning = true;\r\n }\r\n\r\n return
    {row.bmi} {showWarning && }
    ;\r\n }\r\n },\r\n { dataField: 'waist', text: t('medicalRecords.anthropometrics.waist') }\r\n ];\r\n\r\n const expandedContent = (row) => {\r\n return (\r\n
    \r\n {row.sagittal &&
    {t('medicalRecords.anthropometrics.sagittal')}: {row.sagittal}
    }\r\n {row.neck &&
    {t('medicalRecords.anthropometrics.neck')}: {row.neck}
    }\r\n {row.others &&
    {t('medicalRecords.anthropometrics.others')}: {row.others}
    }\r\n {row.notes &&
    {t('medicalRecords.drugs.notes')}: {row.notes}
    }\r\n
    \r\n )\r\n }\r\n\r\n return ();\r\n}\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport { getAnthropometric, getAnthropometrics, getAnthropometricsHistory, postAnthropometric, putAnthropometric, } from '../../../api/medicalRecord';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\n\r\nexport const useAnthropometrics = (medicalRecordNumber, entryId) => {\r\n \r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n medicalRecordNumber: medicalRecordNumber ? medicalRecordNumber : 0,\r\n entryId: entryId ? entryId : 0,\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n actual: false\r\n });\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setReload(false);\r\n setIsLoading(true);\r\n const paginatedItems = await getAnthropometrics(query);\r\n\r\n if (isSubscribed) {\r\n setTotalSize(paginatedItems.data.count);\r\n setData(paginatedItems.data.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n default: break;\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, setReload];\r\n}\r\n\r\nexport const useAnthropometric = (entryId, id) => {\r\n \r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState(null);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setIsLoading(true);\r\n const res = await getAnthropometric(entryId, id);\r\n\r\n if (isSubscribed) {\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData(null);\r\n }\r\n }\r\n\r\n if (id)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [entryId, id]);\r\n\r\n const create = (entryId, data) => {\r\n return postAnthropometric(entryId, data);\r\n }\r\n\r\n const update = (entryId, id, data) => {\r\n return putAnthropometric(entryId, id, data);\r\n }\r\n\r\n return [data, isLoading, create, update];\r\n}\r\n\r\nexport const useAnthropometricsHistory = () => {\r\n const fetchData = (medicalRecordNumber) => {\r\n try {\r\n return getAnthropometricsHistory(medicalRecordNumber);\r\n } catch (error) {\r\n HandleApiError(error);\r\n }\r\n }\r\n return [fetchData];\r\n}","import { BarElement, CategoryScale, Chart as ChartJS, Legend, LinearScale, LineElement, PointElement, TimeSeriesScale, Title, Tooltip, Decimation, TimeScale } from 'chart.js';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport React from 'react';\r\nimport { Bar, Line } from 'react-chartjs-2';\r\nimport 'chartjs-adapter-moment';\r\n\r\nChartJS.register(\r\n CategoryScale,\r\n LinearScale,\r\n BarElement,\r\n PointElement,\r\n LineElement,\r\n TimeSeriesScale,\r\n TimeScale,\r\n ChartDataLabels,\r\n Title,\r\n Tooltip,\r\n Legend,\r\n Decimation,\r\n);\r\n\r\nexport const Chart = ({ data, type, options }) => {\r\n if (!data || data.length === 0)\r\n return null;\r\n\r\n switch (type) {\r\n case \"bar\":\r\n return ;\r\n case \"line\":\r\n return ;\r\n\r\n default:\r\n return ;\r\n }\r\n}","import moment from 'moment';\r\n\r\nexport const getOffset = (prevDate, prevOffset, offset, offsetType) => {\r\n switch (offsetType) {\r\n case 0: //\"days\":\r\n prevDate.setDate(prevDate.getDate() + (Math.abs(prevOffset ?? 0) - Math.abs(offset ?? 0)));\r\n break;\r\n case 1: //\"weeks\":\r\n prevDate.setDate(prevDate.getDate() + (Math.abs(prevOffset ?? 0) - Math.abs(offset ?? 0)) * 7);\r\n break;\r\n case 2: // \"months\":\r\n prevDate.setMonth(prevDate.getMonth() + Math.abs(offset ?? 0));\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return prevDate;\r\n}\r\n\r\nexport const getOffsetFromRandom = (date, offset, offsetType) => {\r\n switch (offsetType) {\r\n case 0: //\"days\":\r\n date.setDate(date.getDate() + Math.abs(offset ?? 0));\r\n break;\r\n case 1: //\"weeks\":\r\n date.setDate(date.getDate() + (Math.abs(offset ?? 0) * 7));\r\n break;\r\n case 2: // \"months\":\r\n date.setMonth(date.getMonth() + Math.abs(offset ?? 0));\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return date;\r\n}\r\n\r\nexport const isLowerThanToday = (date) => {\r\n return moment(date).isBefore(moment());\r\n}\r\nexport const isGreatherThanToday = (date) => {\r\n return moment(date).isAfter(moment());\r\n}\r\n\r\nexport const isBetween = (date, dateFrom, dateTo) => {\r\n return moment(date).isBetween(dateFrom, dateTo, \"minutes\", '[]');\r\n}\r\n\r\nexport const addDays = (date, daysToAdd) => {\r\n return moment(date).add(daysToAdd, 'days');\r\n}\r\n\r\nexport const dateFormatter = (dateTime, format) => {\r\n if (!format)\r\n format = 'DD/MM/YYYY';\r\n\r\n if (dateTime)\r\n return moment(dateTime).format(format);\r\n\r\n return null;\r\n}","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Chart } from '../Charts/Chart';\r\nimport { Warning } from '../Icons/Icons';\r\nimport { dateFormatter } from '../Utils/Dates';\r\nimport { EntryItemsTable } from './EntryItemsTable';\r\n\r\nexport const AnthropometricsHistory = (props) => {\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'created', text: t('commons.date'), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YY\") }, headerClasses: 'header-date' },\r\n { dataField: 'weight', text: t('medicalRecords.anthropometrics.weight') },\r\n { dataField: 'height', text: t('medicalRecords.anthropometrics.height') },\r\n {\r\n dataField: 'bmi', text: t('medicalRecords.anthropometrics.bmi'), formatter: function (_cell, row) {\r\n var bmiColor = \"#20ad9b\"; //Normopeso (18.5-24.9 kg/m2 ) \r\n var showWarning = false;\r\n if (row.bmi < 18.5) {\r\n showWarning = true;\r\n bmiColor = \"#ca6e6e\"; //Bajo peso (<18.5 kg/m2)\r\n } else if (row.bmi >= 25 && row.bmi < 30) {\r\n showWarning = true;\r\n bmiColor = \"#ffa534\"; //Sobrepeso (25-29.9 kg/m2 ) \r\n } else if (row.bmi >= 30) {\r\n bmiColor = \"#ca6e6e\"; //Obesidad\r\n showWarning = true;\r\n }\r\n\r\n return
    {row.bmi} {showWarning && }
    ;\r\n }\r\n },\r\n { dataField: 'waist', text: t('medicalRecords.anthropometrics.waist') },\r\n { dataField: 'sagittal', text: t('medicalRecords.anthropometrics.sagittal') },\r\n { dataField: 'neck', text: t('medicalRecords.anthropometrics.neck') }\r\n ];\r\n\r\n return ();\r\n}\r\n\r\nexport const AnthropometricsHistoryChart = ({ data, type }) => {\r\n const { t } = useTranslation();\r\n if (!data || data.length === 0)\r\n return null;\r\n\r\n const options = {\r\n responsive: true,\r\n plugins: {\r\n datalabels: {\r\n color: '#247dbd',\r\n align: 'top',\r\n },\r\n legend: {\r\n position: 'bottom',\r\n },\r\n title: {\r\n display: true,\r\n text: t(\"medicalRecords.anthropometrics.history\"),\r\n },\r\n },\r\n };\r\n\r\n const chartData = {\r\n labels: data.sort(function (a, b) {\r\n return new Date(a.created) - new Date(b.created);\r\n }).map(x => dateFormatter(x.created)),\r\n datasets: [\r\n {\r\n label: t(\"medicalRecords.anthropometrics.weight\"),\r\n data: data.map(x => x.weight),\r\n borderColor: 'rgb(218, 220, 222)',\r\n backgroundColor: 'rgba(218, 220, 222, 0.39)',\r\n },\r\n //{\r\n // label: t(\"medicalRecords.anthropometrics.height\"),\r\n // data: data.map(x => x.height),\r\n // borderColor: 'rgb(36, 125, 189)',\r\n // backgroundColor: 'rgba(36, 125, 189, 0.29)',\r\n //},\r\n {\r\n label: t(\"medicalRecords.anthropometrics.bmi\"),\r\n data: data.map(x => x.bmi),\r\n borderColor: 'rgb(28, 151, 136)',\r\n backgroundColor: 'rgba(28, 151, 136, 0.29)',\r\n },\r\n {\r\n label: t(\"medicalRecords.anthropometrics.waist\"),\r\n data: data.map(x => x.waist),\r\n borderColor: 'rgb(187, 44, 13)',\r\n backgroundColor: 'rgba(187, 44, 13, 0.29)',\r\n },\r\n {\r\n label: t(\"medicalRecords.anthropometrics.sagittal\"),\r\n data: data.map(x => x.sagittal),\r\n borderColor: 'rgb(156, 187, 13)',\r\n backgroundColor: 'rgba(156, 187, 13, 0.29)',\r\n },\r\n {\r\n label: t(\"medicalRecords.anthropometrics.neck\"),\r\n data: data.map(x => x.neck),\r\n borderColor: 'rgb(160, 13, 187)',\r\n backgroundColor: 'rgba(160, 13, 187, 0.29)',\r\n },\r\n ],\r\n };\r\n\r\n return ();\r\n}","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Button, Col, Grid, Modal, Row } from 'react-bootstrap';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ChartBar, ChartLine, Table } from '../../../components/Icons/Icons';\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Tooltip } from '../../../components/Utils/Tooltips';\r\nimport { AnthropometricsHistory, AnthropometricsHistoryChart } from '../../../components/MedicalRecords/AnthropometricsHistory';\r\nimport { useAnthropometricsHistory } from '../Hooks/useAnthropometrics';\r\n\r\nexport const ModalAnthropometricsHistory = (props) => {\r\n const { t } = useTranslation();\r\n var { medicalRecordNumber } = props;\r\n\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState([]);\r\n const [fetchHistory] = useAnthropometricsHistory();\r\n const [type, setType] = useState(\"bar\"); // table, bar, line\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => {\r\n try {\r\n const res = await fetchHistory(medicalRecordNumber);\r\n if (isSubscribed) {\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData(null);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [medicalRecordNumber]);\r\n\r\n if (isLoading)\r\n return null;\r\n\r\n let component = null;\r\n switch (type) {\r\n case \"table\":\r\n component = ();\r\n break;\r\n case \"line\":\r\n case \"bar\":\r\n component = ();\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return (\r\n \r\n \r\n {props.title}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n )}\r\n />\r\n \r\n \r\n {\r\n values.laboratories && values.laboratories.length > 0 &&\r\n \r\n }\r\n
    \r\n \r\n );\r\n}","import React from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { Audit, Chart, Edit, Remove, View } from '../Icons/Icons';\r\nimport { dateFormatter } from '../Utils/Formatter';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { EntryItemsTable } from './EntryItemsTable';\r\n\r\nexport const Laboratory = (props) => {\r\n const { t } = useTranslation();\r\n var { onEdit, onAuditTrail, onLaboratoryResultHistory, ...rest } = props;\r\n\r\n const columns = [\r\n { dataField: 'laboratoryDate', text: t('commons.date'), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YY\") }, headerClasses: 'header-date' },\r\n {\r\n isDummyField: true,\r\n dataField: 'resultsCount',\r\n text: \"Cantidad Resultados\",\r\n headerClasses: 'header-date',\r\n formatter: function (_cell, row) {\r\n return
    {row.results?.length}
    \r\n }\r\n }\r\n ];\r\n\r\n const columnsResults = [\r\n { dataField: 'name.description', text: t('medicalRecords.laboratory.laboratory') },\r\n {\r\n dataField: 'result', text: t('medicalRecords.laboratory.result'),\r\n formatter: function (_cell, row) {\r\n return
    {`${row.result} ${row.unit?.title}`}
    \r\n }\r\n },\r\n {\r\n dataField: 'actions',\r\n text: t(\"commons.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-actions',\r\n classes: 'row-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n {\r\n onLaboratoryResultHistory &&\r\n \r\n \r\n \r\n }\r\n {\r\n row.entryId != props.entryId && props.query.medicalRecordNumber !== 0 &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n row.hasAudit && onAuditTrail &&\r\n \r\n \r\n \r\n }\r\n {\r\n onEdit &&\r\n \r\n \r\n \r\n }\r\n {\r\n props.onRemoveResult && row.entryId == props.entryId &&\r\n \r\n \r\n \r\n }\r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const expandedContent = (row, _rowIndex) => {\r\n return (\r\n <>{t(\"commons.noData\")}n}\r\n pagination={paginationFactory({\r\n page: 1,\r\n sizePerPage: 6,\r\n totalSize: row.results.length,\r\n hideSizePerPage: true,\r\n hidePageListOnlyOnePage: true\r\n })}\r\n />\r\n );\r\n };\r\n\r\n return ();\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { getLaboratories, postLaboratories, putLaboratoryResult, getLaboratoryResult, getLaboratoryResults, getLaboratoryResultHistory } from '../../../api/medicalRecord';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\n\r\nexport const useLaboratories = (medicalRecordNumber, entryId) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n medicalRecordNumber: medicalRecordNumber ? medicalRecordNumber : 0,\r\n entryId: entryId ? entryId : 0,\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n actual: false\r\n });\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setReload(false);\r\n setIsLoading(true);\r\n const paginatedItems = await getLaboratories(query);\r\n\r\n if (isSubscribed) {\r\n setTotalSize(paginatedItems.data.count);\r\n setData(paginatedItems.data.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, setReload];\r\n}\r\n\r\nexport const useLaboratory = (entryId, id) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState(null);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => {\r\n try {\r\n setIsLoading(true);\r\n const res = await getLaboratoryResult(entryId, id);\r\n //console.log(\"useLaboratory\", res.data)\r\n\r\n if (isSubscribed) {\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData(null);\r\n }\r\n }\r\n\r\n if (id)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [entryId, id]);\r\n\r\n const create = (entryId, data) => {\r\n return postLaboratories(entryId, data);\r\n }\r\n\r\n const update = (entryId, id, data) => {\r\n return putLaboratoryResult(entryId, id, data);\r\n }\r\n\r\n return [data, isLoading, create, update];\r\n}\r\n\r\nexport const useLaboratoryResults = () => {\r\n const fetchData = (laboratoryId) => {\r\n try {\r\n return getLaboratoryResults(laboratoryId);\r\n } catch (error) {\r\n HandleApiError(error);\r\n }\r\n }\r\n return [fetchData];\r\n}\r\n\r\nexport const useLaboratoryResultHistory = () => {\r\n const fetchData = (laboratoryId) => {\r\n try {\r\n return getLaboratoryResultHistory(laboratoryId);\r\n } catch (error) {\r\n HandleApiError(error);\r\n }\r\n }\r\n return [fetchData];\r\n}","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Chart } from '../Charts/Chart';\r\nimport { dateFormatter } from '../Utils/Dates';\r\nimport { EntryItemsTable } from './EntryItemsTable';\r\n\r\nexport const LaboratoryResultHistory = (props) => {\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'laboratoryDate', text: t('commons.date'), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YY\") }, headerClasses: 'header-date' },\r\n { dataField: 'name.description', text: t('medicalRecords.laboratory.laboratory') },\r\n {\r\n dataField: 'result', text: t('medicalRecords.laboratory.result'),\r\n formatter: function (_cell, row) {\r\n return
    {`${row.result} ${row.unit?.title}`}
    \r\n }\r\n }\r\n ];\r\n\r\n return ();\r\n}\r\n\r\nexport const LaboratoryResultHistoryChart = ({ data, type }) => {\r\n\r\n if (!data || data.length === 0)\r\n return null;\r\n\r\n const options = {\r\n responsive: true,\r\n plugins: {\r\n datalabels: {\r\n color: '#247dbd',\r\n align: 'top',\r\n },\r\n legend: {\r\n position: 'bottom',\r\n },\r\n title: {\r\n display: true,\r\n text: `${data[0].name.description} (${data[0].unit.title})`,\r\n },\r\n },\r\n };\r\n\r\n const chartData = {\r\n labels: data.sort(function (a, b) {\r\n return new Date(a.laboratoryDate) - new Date(b.laboratoryDate);\r\n }).map(x => dateFormatter(x.laboratoryDate)),\r\n datasets: [\r\n {\r\n label: `${data[0].name.description} (${data[0].unit.title})`,\r\n data: data.map(x => x.result),\r\n borderColor: 'rgb(32, 173, 155)',\r\n backgroundColor: 'rgba(32, 173, 155, 0.19)',\r\n },\r\n ],\r\n };\r\n\r\n return ();\r\n}","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Button, Col, Grid, Modal, Row } from 'react-bootstrap';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ChartBar, ChartLine, Table } from '../../../components/Icons/Icons';\r\nimport { LaboratoryResultHistory, LaboratoryResultHistoryChart } from '../../../components/MedicalRecords/LaboratoryHistory';\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Tooltip } from '../../../components/Utils/Tooltips';\r\nimport { useLaboratoryResultHistory } from \"../Hooks/useLaboratories\";\r\n\r\nexport const ModalLaboHistory = (props) => {\r\n const { t } = useTranslation();\r\n var { medicalRecordNumber, laboratoryId } = props;\r\n\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState([]);\r\n const [fetchLaboHistory] = useLaboratoryResultHistory();\r\n const [type, setType] = useState(\"table\"); // table, bar, line\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => {\r\n try {\r\n const res = await fetchLaboHistory(laboratoryId);\r\n if (isSubscribed) {\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData(null);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [laboratoryId]);\r\n\r\n let component = null;\r\n switch (type) {\r\n case \"table\":\r\n component = ();\r\n break;\r\n case \"line\":\r\n case \"bar\":\r\n component = ();\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return (\r\n \r\n \r\n {props.title}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nexport const CloseProtocolModal = (props) => {\r\n const { t } = useTranslation();\r\n return (\r\n { props.onClose() }}\r\n confirmBtnBsStyle=\"primary\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.confirm\")}\r\n cancelBtnText={t(\"buttons.cancel\")}\r\n showCancel\r\n >\r\n {props.children}\r\n \r\n );\r\n}\r\nCloseProtocolModal.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired\r\n};","import React, { Fragment, useContext, useState } from \"react\";\r\nimport { Button, ButtonGroup, ButtonToolbar } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink, useHistory } from \"react-router-dom\";\r\nimport { AuditModal } from '../../../components/AuditTrail/AuditModal';\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuthProtocol\";\r\nimport { Audit, Close, Edit, Remove } from \"../../../components/Icons/Icons\";\r\nimport { Brief, CloseProtocolModal } from \"../../../components/Protocols/Brief\";\r\nimport { Tooltip } from \"../../../components/Utils/Tooltips\";\r\nimport { AuditTrail } from \"../../Admin/AuditTrail\";\r\nimport ProtocolContext from \"../ProtocolContext/ProtocolContext\";\r\nimport { ModalConfirm } from \"../../../components/Modals/ModalConfirm\";\r\nimport { ModalSpinner } from \"../../../components/Utils/Loaders\";\r\nimport { removeProtocolApi } from \"../../../api/protocol\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const ProtocolBriefContainer = () => {\r\n const { t } = useTranslation();\r\n const [modal, setModal] = useState(null);\r\n const history = useHistory();\r\n const context = useContext(ProtocolContext);\r\n\r\n const handleAuditTrail = () => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n const handleCloseProtocol = () => {\r\n setModal(\r\n { setModal(null); }}\r\n onConfirm={() => { context.closeProtocol(context.protocolId); setModal(null); history.push(\"/admin/protocols/\"); }}\r\n title={t(\"protocols.brief.closeProtocolTitle\")}\r\n >\r\n {t(\"protocols.brief.closeProtocolDescription\")}\r\n \r\n )\r\n }\r\n\r\n const handleRemoveProtocol = () => {\r\n setModal(\r\n { setModal(null); }}\r\n onConfirm={onRemoveProtocol}\r\n title={t(\"protocols.brief.removeProtocolTitle\")}\r\n description={t(\"protocols.brief.removeProtocolDescription\")}\r\n />\r\n )\r\n }\r\n\r\n const onRemoveProtocol = async () => {\r\n setModal();\r\n try {\r\n await removeProtocolApi(context.protocolId);\r\n setModal(null);\r\n history.push(\"/admin/protocols/\");\r\n }\r\n catch (error) {\r\n setModal(null);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n if (context.isLoading || !context.protocolId)\r\n return null;\r\n\r\n return (\r\n \r\n {modal}\r\n \r\n\r\n \r\n \r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n {t(\"buttons.edit\")}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}","import { ErrorMessage, FieldArray } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, Grid, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { getPractitionerAttachmentsEndpoint } from '../../api/protocol';\r\nimport { AuditTrail } from '../../containers/Admin/AuditTrail';\r\nimport { AuditModal } from '../AuditTrail/AuditModal';\r\nimport { WithAuth } from '../Authorization/WithAuthProtocol';\r\nimport { CustomDate } from \"../CustomControls/CustomDateTime\";\r\nimport { CustomSelect } from \"../CustomControls/CustomSelect\";\r\nimport { Files, FilesForm } from '../CustomControls/Files/Files';\r\nimport { PractitionerPicker } from '../CustomControls/PractitionerPicker';\r\nimport { Attach, Audit, Edit, Remove, Save } from '../Icons/Icons';\r\nimport { dateFormatter } from '../Utils/Formatter';\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\n\r\nexport const Practitioners = props => {\r\n\r\n const { protocolId, practitioners, query, totalSize, onTableChange, onEdit, onRemove } = props;\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'userId', text: 'ID', hidden: true },\r\n { dataField: 'fullName', text: t(\"protocols.practitioner.fullName\"), sort: true },\r\n { dataField: 'studyRole', text: t(\"protocols.practitioner.role\") },\r\n {\r\n dataField: 'studyTasks', text: t(\"protocols.practitioner.studyTasks\"),\r\n formatter: function (cell, _row, rowIndex) {\r\n const content = cell?.map((item, index) => {\r\n return
    {item.title}
    ;\r\n })\r\n return
    {content}
    \r\n }\r\n },\r\n {\r\n dataField: 'startOfTask', text: t(\"protocols.practitioner.startOfTask\"), sort: true,\r\n formatter: function (cell) {\r\n return dateFormatter(cell, \"DD/MMM/YYYY\")\r\n }\r\n },\r\n {\r\n dataField: 'endOfTask', text: t(\"protocols.practitioner.endOfTask\"),\r\n formatter: function (cell) {\r\n return dateFormatter(cell, \"DD/MMM/YYYY\")\r\n }\r\n },\r\n {\r\n dataField: 'view',\r\n text: t(\"protocols.practitioner.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-protocol-actions',\r\n classes: 'row-protocol-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n {\r\n onEdit &&\r\n \r\n \r\n \r\n }\r\n {/*\r\n row.hasAudit &&\r\n \r\n \r\n */\r\n }\r\n {\r\n onRemove &&\r\n \r\n \r\n \r\n }\r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const expandRow = {\r\n renderer: row => (),\r\n showExpandColumn: true,\r\n onlyOneExpanding: true,\r\n expandByColumnOnly: true,\r\n expandHeaderColumnRenderer: () => {\r\n return ;\r\n },\r\n expandColumnRenderer: ({ expanded, rowKey, expandable }) => {\r\n if (!expandable)\r\n return;\r\n if (expanded) {\r\n return (\r\n -\r\n );\r\n }\r\n return ();\r\n },\r\n nonExpandable: practitioners.filter((item) => item.attachments.length == 0).map(item => item.userId)\r\n };\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n onTableChange(type, { page, sizePerPage, sortField, sortOrder });\r\n }\r\n\r\n const [modal, setModal] = useState(null);\r\n const handleAuditTrail = (userId) => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {modal}\r\n <>{t(\"commons.noData\")}}\r\n overlay={overlayFactory({ spinner: true })}\r\n expandRow={expandRow}\r\n pagination={paginationFactory({\r\n page: query.pagination.page,\r\n sizePerPage: query.pagination.sizePerPage,\r\n totalSize: totalSize,\r\n hideSizePerPage: true,\r\n })}\r\n onTableChange={handleTableChange}\r\n />\r\n \r\n );\r\n}\r\n\r\nPractitioners.propTypes = {\r\n protocolId: PropTypes.string.isRequired,\r\n practitioners: PropTypes.array.isRequired,\r\n query: PropTypes.object.isRequired,\r\n totalSize: PropTypes.number.isRequired,\r\n onTableChange: PropTypes.func.isRequired,\r\n onEdit: PropTypes.func.isRequired,\r\n onRemove: PropTypes.func.isRequired\r\n};\r\n\r\nexport const PractitionersForm = props => {\r\n\r\n const {\r\n values,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleSubmit,\r\n studyTasks,\r\n roles,\r\n t\r\n } = props;\r\n\r\n const emptyPractitioner = { practitioner: '', role: '', studyTasks: null, startOfTask: null, endOfTask: null };\r\n if (!values.practitioners) {\r\n values.practitioners = [];\r\n values.practitioners.push(emptyPractitioner);\r\n }\r\n\r\n return (\r\n
    \r\n (\r\n \r\n {values.practitioners && values.practitioners.length > 0 ? (\r\n values.practitioners.map((practitioner, index) => (\r\n \r\n \r\n {t(\"protocols.practitioner.practitioner\")}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.practitioner.role\")}\r\n option.name}\r\n />\r\n \r\n \r\n \r\n arrayHelper.remove(index)} >\r\n \r\n \r\n \r\n \r\n {t(\"protocols.practitioner.studyTasks\")}\r\n 0 ? studyTasks : []}\r\n isMulti={true}\r\n closeMenuOnSelect={false}\r\n />\r\n \r\n \r\n \r\n {t(\"protocols.practitioner.startOfTask\")}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.practitioner.endOfTask\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : \"\"}\r\n\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const PractitionerForm = props => {\r\n\r\n const {\r\n values,\r\n protocolId,\r\n practitionerUserId,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleSubmit,\r\n studyTasks,\r\n roles,\r\n t\r\n } = props;\r\n\r\n if (!values.practitioner) {\r\n return '';\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n {t(\"protocols.practitioner.practitioner\")}\r\n
    {values.practitioner.fullName}
    \r\n {values.practitioner.speciality}\r\n \r\n \r\n {t(\"protocols.practitioner.role\")}\r\n x.id === values.practitioner.studyRoleId)}\r\n onChange={setFieldValue}\r\n onBlur={setFieldTouched}\r\n name={`practitioner.studyRole`}\r\n placeholder={t(\"commons.select\")}\r\n options={roles ? roles : []}\r\n getOptionLabel={(option) => option.name}\r\n />\r\n \r\n \r\n \r\n {t(\"protocols.practitioner.studyTasks\")}\r\n 0 ? studyTasks : []}\r\n isMulti={true}\r\n />\r\n \r\n \r\n \r\n {t(\"protocols.practitioner.startOfTask\")}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.practitioner.endOfTask\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n","import { useState, useEffect } from \"react\";\r\nimport { getStudyRoles } from \"../../../api/security\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const useStudyRoles = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n setReload(false);\r\n getStudyRoles().then(response => {\r\n if (isSubscribed) {\r\n setData(response.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n setData([]);\r\n setIsLoading(false);\r\n HandleApiError(error);\r\n }\r\n });\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [reload]);\r\n\r\n return [data, isLoading, setReload];\r\n}","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { addPractitioners, uploadPractitionerAttachment } from '../../../api/protocol';\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from \"../../../components/Notifications/Notifications\";\r\nimport { PractitionersForm } from \"../../../components/Protocols/Practitioners\";\r\nimport { getProtocolPractitionersSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { useStudyRoles } from \"../../Security/Authorization/useStudyRoles\";\r\nimport { useStudyTasks } from '../Hooks';\r\n\r\n\r\nexport const AddPractitionerModal = (props) => {\r\n const { isShowing, hide, protocolId, submit } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t('protocols.practitioner.addPractitionerTitle')}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nconst ProtocolAddPractitionersContainer = (props) => {\r\n const protocolId = props.protocolId;\r\n const studyTasks = useStudyTasks(protocolId);\r\n const [studyRoles] = useStudyRoles();\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst ProtocolAddPractitionersFormik = withTranslation()(withFormik({\r\n mapPropsToValues: () => ({}),\r\n\r\n validationSchema: getProtocolPractitionersSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n //console.log(\"Posting Practitioners:\", values.practitioners);\r\n\r\n values.practitioners.map(x => { x.studyRoleId = x.studyRole.id; x.studyRole = x.studyRole.name })\r\n\r\n // Add relation Protocol - Practitioner\r\n addPractitioners(formikBag.props.protocolId, values.practitioners)\r\n .then(res => {\r\n var items = res.data\r\n\r\n // Upload Attachmens\r\n var promises = [];\r\n values.practitioners.forEach(relation => {\r\n // Upload attachments if any. \r\n if (relation.attachments && relation.attachments.length > 0) {\r\n const attachmentsUploads = relation.attachments.map(async attachment => {\r\n // Initial FormData\r\n const formData = new FormData();\r\n formData.append(\"attachment\", attachment);\r\n formData.append(\"title\", attachment.name);\r\n\r\n // Make an AJAX upload request using Axios\r\n try {\r\n await uploadPractitionerAttachment(formikBag.props.protocolId, relation.practitioner.userId, formData);\r\n //uploaded = true;\r\n }\r\n catch (error) {\r\n console.log(error.response);\r\n var message = formikBag.props.t(\"protocolNotifications.Attachment_Error\") + attachment.title;\r\n console.log(message);\r\n HandleApiError(error);\r\n }\r\n });\r\n\r\n promises = promises.concat(attachmentsUploads);\r\n }\r\n });\r\n\r\n // Once all the files are uploaded \r\n Promise.all(promises)\r\n .then((response) => {\r\n //console.log(response)\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.practitioners_Added\");\r\n formikBag.props.onSubmit(items);\r\n })\r\n .catch(error => console.log(`Error in executing ${error}`));\r\n\r\n }).catch(error => {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'AddPractitioners',\r\n\r\n})(PractitionersForm));\r\n\r\nProtocolAddPractitionersFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n protocolId: PropTypes.string.isRequired,\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { getPractitioner } from '../../../api/protocol';\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { PractitionerForm } from \"../../../components/Protocols/Practitioners\";\r\nimport { getProtocolPractitionersSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { useStudyRoles } from \"../../Security/Authorization/useStudyRoles\";\r\nimport { useStudyTasks } from '../Hooks';\r\n\r\nexport const EditPractitionerModal = (props) => {\r\n const { isShowing, hide, protocolId, practitionerId, submit } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t('protocols.practitioner.editPractitionerTitle')}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nconst ProtocolEditPractitionerContainer = (props) => {\r\n const protocolId = props.protocolId;\r\n const practitionerUserId = props.practitionerId;\r\n const studyTasks = useStudyTasks(protocolId);\r\n const [studyRoles] = useStudyRoles();\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [practitioner, setPractitioner] = useState(null);\r\n useEffect(() => {\r\n const fetchfData = () => {\r\n setIsLoading(true);\r\n getPractitioner(protocolId, practitionerUserId)\r\n .then(response => {\r\n var res = response.data\r\n //console.log(\"GET Practitioner In Protocol: \", res);\r\n\r\n setPractitioner(res);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n fetchfData();\r\n }, [protocolId, practitionerUserId]);\r\n\r\n const handleSubmit = (practitioner) => {\r\n props.onSubmit(practitioner);\r\n }\r\n\r\n const handleCancel = () => {\r\n props.onClose();\r\n }\r\n\r\n if (!practitioner || !studyTasks || !studyRoles)\r\n return '';\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst ProtocolEditPractitionerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({ practitioner: props.practitioner }),\r\n\r\n validationSchema: getProtocolPractitionersSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values.practitioner);\r\n },\r\n\r\n displayName: 'PractitionerForm',\r\n\r\n})(PractitionerForm));\r\n\r\nProtocolEditPractitionerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n protocolId: PropTypes.string.isRequired,\r\n practitionerUserId: PropTypes.string.isRequired,\r\n studyTasks: PropTypes.array.isRequired,\r\n};","import React from 'react'\r\nimport BootstrapTable from 'react-bootstrap-table-next'\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css'\r\nimport overlayFactory from 'react-bootstrap-table2-overlay'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { dateFormatter, dateTimeFormatter } from '../Utils/Formatter'\r\n\r\nexport const AuditProtocolUserRole = (props) => {\r\n const { data, isLoading } = props;\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'actionDateTime', text: t('protocols.auditUserRole.dateTime'), formatter: dateTimeFormatter },\r\n { dataField: 'actionByUser.fullName', text: t('protocols.auditUserRole.actionBy') },\r\n { dataField: 'role.name', text: t('protocols.auditUserRole.role') },\r\n { dataField: 'start', text: t('protocols.auditUserRole.start'), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YYYY\") } },\r\n { dataField: 'end', text: t('protocols.auditUserRole.end'), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YYYY\") } }\r\n ];\r\n\r\n return (\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading} //only loading is true, react-bootstrap-table will render overlay\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n );\r\n}\r\n\r\nAuditProtocolUserRole.propTypes = {\r\n};","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n//Components\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { AuditProtocolUserRole } from '../../../components/AuditTrail/AuditUserRole';\r\nimport { PractitionerPicker } from '../../../components/CustomControls/PractitionerPicker';\r\nimport { useAuditsUserRole } from './hooks';\r\n\r\nexport const AuditUserRoleContainer = ({ protocolId }) => {\r\n const { t } = useTranslation();\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"FullName\",\r\n sortOrder: \"asc\"\r\n },\r\n filters: {}\r\n });\r\n\r\n const [getAudits, audits, isLoading] = useAuditsUserRole(protocolId);\r\n\r\n const handleSearch = (_name, value) => {\r\n if (value)\r\n getAudits(value.userId);\r\n }\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = {};\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { useState } from \"react\";\r\nimport { getAuditProtocolUserRoleAPI } from \"../../../api/admin\";\r\nimport { getUsersByIdAPI } from \"../../../api/identity\";\r\nimport { getStudyRolesByIdAPI } from \"../../../api/security\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const useAuditsUserRole = (protocolId) => {\r\n const [audits, setAudits] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const fetchData = async (userId) => {\r\n setIsLoading(true);\r\n try {\r\n setIsLoading(true);\r\n var response = await getAuditProtocolUserRoleAPI(protocolId, userId);\r\n if (!response.data)\r\n return null;\r\n \r\n // Obtengo datos del usuario q realizó la acción\r\n var usersResponse = await getUsersByIdAPI(response.data.map(x => { return x.actionBy }))\r\n if (usersResponse.data) {\r\n response.data.forEach(item => {\r\n item.actionByUser = usersResponse.data.find(x => x.userId == item.actionBy)\r\n });\r\n }\r\n\r\n // Obtengo datos del Rol\r\n var rolesResponse = await getStudyRolesByIdAPI(response.data.map(x => { return x.roleId }))\r\n if (rolesResponse.data) {\r\n response.data.forEach(item => {\r\n item.role = rolesResponse.data.find(x => x.id == item.roleId)\r\n });\r\n }\r\n console.log(response.data)\r\n\r\n setAudits(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n return [fetchData, audits, isLoading];\r\n}","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { editPractitioner, getPractitioners, removePractitioner, uploadPractitionerAttachment } from \"../../../api/protocol\";\r\nimport { AuditModal, CreateAuditModal } from \"../../../components/AuditTrail/AuditModal\";\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuthProtocol\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { Add, Audit } from \"../../../components/Icons/Icons\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from \"../../../components/Notifications/Notifications\";\r\nimport { Practitioners } from \"../../../components/Protocols/Practitioners\";\r\nimport ProtocolContext from \"../ProtocolContext/ProtocolContext\";\r\nimport { AddPractitionerModal } from \"./AddPractitioners\";\r\nimport { EditPractitionerModal } from \"./EditPractitioner\";\r\nimport { ModalConfirm } from \"../../../components/Modals/ModalConfirm\";\r\nimport { ModalSpinner } from \"../../../components/Utils/Loaders\";\r\nimport { AuditTrail } from \"../../Admin/AuditTrail\";\r\nimport { AuditUserRoleContainer } from \"../Audit/AuditUserRole\";\r\n\r\nexport const ProtocolPractitionersContainer = ({ protocolId }) => {\r\n const { t } = useTranslation();\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const context = useContext(ProtocolContext);\r\n const [practitioners, setPractitioners] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [reload, setReload] = useState(false);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 5,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"FullName\",\r\n sortOrder: \"desc\"\r\n }\r\n });\r\n useEffect(() => {\r\n const fetchPractitionersData = () => {\r\n setIsLoading(true);\r\n setReload(false);\r\n getPractitioners(protocolId, query)\r\n .then(response => {\r\n var paginatedData = response.data\r\n //console.log(\"GET Practitioners: \", paginatedData);\r\n\r\n setTotalSize(paginatedData.count);\r\n setPractitioners(paginatedData.data);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n fetchPractitionersData();\r\n }, [protocolId, query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n\r\n if (type === 'pagination') {\r\n let newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n let newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const [modal, setModal] = useState(null);\r\n const handleEditPractitioner = (practitionerUserId) => {\r\n setModal( setModal(null)}\r\n submit={handleEditedPractitioner}\r\n isShowing={true} />);\r\n }\r\n\r\n const handleEditedPractitioner = (practitioner) => {\r\n setModal( setModal(null)}\r\n onSave={(reason, comments) => confirmEdited(practitioner, reason, comments)}\r\n />)\r\n }\r\n\r\n const confirmEdited = (practitioner, reason, comments) => {\r\n practitioner.audit = {\r\n reason: reason,\r\n comments: comments\r\n }\r\n\r\n if (practitioner.studyRole && practitioner.studyRole.id) {\r\n practitioner.studyRoleId = practitioner.studyRole.id;\r\n practitioner.studyRole = practitioner.studyRole.name;\r\n }\r\n\r\n // Add relation Protocol - Practitioner\r\n editPractitioner(protocolId, practitioner.userId, practitioner)\r\n .then(res => {\r\n //var items = res.data\r\n\r\n // Upload Attachmens\r\n var promises = [];\r\n // Upload attachments if any. \r\n if (practitioner.newattachments && practitioner.newattachments.length > 0) {\r\n const attachmentsUploads = practitioner.newattachments.map(async attachment => {\r\n // Initial FormData\r\n const formData = new FormData();\r\n formData.append(\"attachment\", attachment.file);\r\n formData.append(\"title\", attachment.title);\r\n\r\n // Make an AJAX upload request using Axios\r\n try {\r\n await uploadPractitionerAttachment(protocolId, practitioner.userId, formData);\r\n }\r\n catch (error) { HandleApiError(error); }\r\n });\r\n\r\n promises = promises.concat(attachmentsUploads);\r\n }\r\n\r\n // Once all the files are uploaded \r\n Promise.all(promises)\r\n .then(() => {\r\n Success(\"protocolNotifications.practitioner_Updated\");\r\n setModal(null);\r\n setReload(true);\r\n })\r\n .catch(error => console.log(`Error in executing ${error}`));\r\n\r\n }).catch(error => { HandleApiError(error); });\r\n\r\n }\r\n\r\n const handleAddPractitioner = () => {\r\n setModal( setModal(null)}\r\n submit={() => { setModal(null); setReload(true) }}\r\n isShowing={true} />);\r\n }\r\n\r\n //#region Delete item with audit\r\n const handleDeletePractitioner = (practitioner) => {\r\n setModal( setModal(null)}\r\n onConfirm={() => { confirmRemoveItem(practitioner) }}\r\n />);\r\n }\r\n const confirmRemoveItem = (practitioner) => {\r\n setModal( setModal(null)}\r\n onSave={(reason, comments) => _removeItemAudited(practitioner.userId, reason, comments)}\r\n />)\r\n }\r\n const _removeItemAudited = async (practitionerId, reason, comments) => {\r\n try {\r\n setModal();\r\n await removePractitioner(protocolId, practitionerId, reason?.code, comments);\r\n setReload(true);\r\n setModal(null);\r\n Success(\"protocolNotifications.practitioners_Deleted\");\r\n }\r\n catch (error) {\r\n setModal(null);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Audit\r\n const handleAuditTrail = () => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n const handleAuditProtocolUserRole = () => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n \r\n {modal}\r\n \r\n \r\n\r\n \r\n
    \r\n }\r\n content={\r\n \r\n }\r\n />\r\n );\r\n}","import { ErrorMessage, FieldArray } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, FormControl, Grid, Label, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AuditTrail } from '../../containers/Admin/AuditTrail';\r\nimport { patientInProtocolStatus } from \"../../variables/Enums\";\r\nimport { AuditModal } from '../AuditTrail/AuditModal';\r\nimport { PatientPicker } from \"../CustomControls/PatientPicker\";\r\nimport { Audit } from '../Icons/Icons';\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\n\r\nexport const Patients = props => {\r\n const { t } = useTranslation();\r\n const { patients, query, totalSize, onTableChange } = props;\r\n\r\n const columns = [\r\n { dataField: 'numberInProtocol', text: t(\"protocols.patient.nro\"), sort: true },\r\n { dataField: 'fullName', text: t(\"protocols.patient.fullName\"), sort: true },\r\n {\r\n dataField: 'status', text: t(\"protocols.brief.status\"), formatter: function (cell, row, rowIndex, formatExtraData) {\r\n return ();\r\n },\r\n },\r\n {\r\n dataField: 'view',\r\n text: t(\"protocols.practitioner.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-protocol-actions',\r\n classes: 'row-protocol-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n onTableChange(type, { page, sizePerPage, sortField, sortOrder });\r\n }\r\n\r\n const [modal, setModal] = useState(null);\r\n const handleAuditTrail = (medicalRecordNumber) => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {modal}\r\n <>{t(\"commons.noData\")}}\r\n />\r\n \r\n );\r\n}\r\n\r\nPatients.propTypes = {\r\n patients: PropTypes.array.isRequired,\r\n query: PropTypes.object.isRequired,\r\n totalSize: PropTypes.number.isRequired,\r\n onTableChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const PatientsForm = props => {\r\n\r\n const {\r\n values,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n t\r\n } = props;\r\n\r\n const empty = { patient: null, numberInProtocol: '' };\r\n if (!values.patients) {\r\n values.patients = [];\r\n values.patients.push(empty);\r\n }\r\n\r\n return (\r\n
    \r\n (\r\n \r\n \r\n {t(\"protocols.patient.nro\")}\r\n {t(\"protocols.patient.patient\")}\r\n {/*{t(\"protocols.patient.actions\")}*/}\r\n \r\n {values.patients && values.patients.length > 0 ? (\r\n values.patients.map((patient, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n arrayHelper.remove(index)} >\r\n \r\n \r\n */}\r\n \r\n ))\r\n ) : \"\"}\r\n\r\n {/**/}\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const PatientStatusInProtocol = ({ status }) => {\r\n const { t } = useTranslation();\r\n let content = '';\r\n switch (status) {\r\n case patientInProtocolStatus.Screening:\r\n content = (); break;\r\n case patientInProtocolStatus.Random:\r\n content = (); break;\r\n case patientInProtocolStatus.Treatment:\r\n content = (); break;\r\n case patientInProtocolStatus.FollowUp:\r\n content = (); break;\r\n case patientInProtocolStatus.Failed:\r\n content = (); break;\r\n case patientInProtocolStatus.LostToFollowUp:\r\n content = (); break;\r\n case patientInProtocolStatus.WithoutDrugs:\r\n content = (); break;\r\n case patientInProtocolStatus.Discontinuation:\r\n content = (); break;\r\n case patientInProtocolStatus.EndParticipationInProtocol:\r\n content = (); break;\r\n default:\r\n content = \"\";\r\n }\r\n\r\n return {content}\r\n}\r\n\r\nPatientStatusInProtocol.propTypes = {\r\n status: PropTypes.number.isRequired,\r\n};\r\n\r\nexport const PatientNumberForm = props => {\r\n\r\n const {\r\n values,\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n t\r\n } = props;\r\n\r\n return (\r\n
    \r\n \r\n \r\n {t(\"protocols.patient.nro\")}\r\n {t(\"protocols.patient.patient\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {values.fullName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}","import PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { CustomSelect } from \"../../CustomControls/CustomSelect\";\r\n\r\n\r\nexport const VisitTrackingStatusFilter = (props) => {\r\n const { t } = useTranslation();\r\n const {\r\n selectedStatus,\r\n onChangeFilter,\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nVisitTrackingStatusFilter.propTypes = {\r\n onChangeFilter: PropTypes.func.isRequired,\r\n selectedStatus: PropTypes.object,\r\n};\r\n\r\nexport const VisitTrackingStageFilter = (props) => {\r\n const { selectedStage, onChangeFilter, } = props;\r\n const { t } = useTranslation();\r\n return (\r\n <>\r\n \r\n {/*\r\n \r\n
    Etapas a mostrar:
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    */}\r\n \r\n );\r\n}\r\n\r\nVisitTrackingStageFilter.propTypes = {\r\n onChangeFilter: PropTypes.func.isRequired,\r\n selectedStage: PropTypes.object,\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { addPatients } from '../../../api/protocol';\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from \"../../../components/Notifications/Notifications\";\r\nimport { PatientsForm } from '../../../components/Protocols/Patients';\r\nimport { getProtocolPatientsSchema } from '../../../components/Validations/FormValidationSchema';\r\n\r\nexport const AddPatientModal = (props) => {\r\n const { isShowing, hide, submit, protocolId } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t('protocols.patient.addPatientTitle')}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nconst ProtocolAddPatientsContainer = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({}),\r\n\r\n validationSchema: getProtocolPatientsSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n //console.log(\"Posting Patients:\", values.patients);\r\n const list = values.patients.map(x => {\r\n x.patient.numberInProtocol = x.numberInProtocol;\r\n return x.patient;\r\n });\r\n //console.log(list)\r\n addPatients(formikBag.props.protocolId, list)\r\n .then(res => {\r\n var item = res.data\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.patients_Added\");\r\n formikBag.props.onSubmit(item);\r\n }).catch(error => {\r\n console.error(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'AddPatients',\r\n\r\n})(PatientsForm));\r\n\r\nProtocolAddPatientsContainer.propTypes = {\r\n //onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n protocolId: PropTypes.string.isRequired,\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { PatientNumberForm } from '../../../components/Protocols/Patients';\r\nimport { getProtocolPatientNumberSchema } from '../../../components/Validations/FormValidationSchema';\r\n\r\nexport const PatientNumberModal = (props) => {\r\n const { isShowing, hide, submit, patient } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t('protocols.patient.changePatientNumber')}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nconst ProtocolPatientNumberContainer = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => (props.patient),\r\n\r\n validationSchema: getProtocolPatientNumberSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n\r\n displayName: 'PatientNumberForm',\r\n\r\n})(PatientNumberForm));\r\n\r\nProtocolPatientNumberContainer.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n protocolId: PropTypes.string.isRequired,\r\n};","import React, { Fragment, useContext, useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink, useHistory } from 'react-router-dom';\r\nimport { changePatientNumber, getVisitsTracking, removePatient } from '../../../api/protocol';\r\nimport '../../../assets/sass/lbd/_visits-tracking.scss';\r\nimport { CreateAuditModal } from '../../../components/AuditTrail/AuditModal';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol';\r\nimport Card from '../../../components/Cards/Card';\r\nimport { CustomSearchBox } from '../../../components/CustomControls/CustomSearchBox';\r\nimport { Add, Edit, Remove } from '../../../components/Icons/Icons';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { PatientStatusInProtocol } from '../../../components/Protocols/Patients';\r\nimport { VisitTrackingStageFilter, VisitTrackingStatusFilter } from '../../../components/Protocols/Tracking/Filters';\r\nimport { AddPatientModal } from '../Patients/AddPatients';\r\nimport { PatientNumberModal } from '../Patients/PatientNumber';\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext';\r\nimport { getVisitsTrackingColumns, getVisitsTrackingGrid } from './Services';\r\nimport { ModalConfirm } from '../../../components/Modals/ModalConfirm';\r\n\r\nexport const VisitsTrackingContainer = props => {\r\n const { t } = useTranslation();\r\n const { protocolId } = props;\r\n let history = useHistory();\r\n const context = useContext(ProtocolContext);\r\n\r\n const firstColumns = [\r\n {\r\n dataField: 'numberInProtocol', text: t('protocols.patient.nro'), sort: true, headerStyle: { width: '150px' }, formatter: function (cell, row) {\r\n return <>\r\n {cell}\r\n \r\n \r\n \r\n {\r\n row.visits && row.visits.length === 0 &&\r\n \r\n \r\n \r\n }\r\n ;\r\n }\r\n },\r\n {\r\n dataField: 'fullName', text: 'Int.', sort: true, headerStyle: { width: '150px' }, formatter: function (cell, row, rowIndex) {\r\n return \r\n {cell}\r\n \r\n }\r\n },\r\n {\r\n dataField: 'statusInProtocol', text: 'Status', headerStyle: { width: '150px' }, formatter: function (cell, _row, rowIndex) {\r\n return ()\r\n }\r\n },\r\n ];\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [modal, setModal] = useState(null);\r\n const [reload, setReload] = useState(false);\r\n const [columns, setColumns] = useState(firstColumns);\r\n const [selectedStage, setSelectedStage] = useState(null);\r\n const [data, setData] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 5,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: 'numberinprotocol',\r\n //sortOrder: 'desc'\r\n },\r\n filters: {}\r\n });\r\n\r\n const [visitTemplates, setVisitTemplates] = useState([]);\r\n const [patientsData, setPatientsData] = useState([]);\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setReload(false);\r\n setIsLoading(true);\r\n getVisitsTracking(protocolId, query)\r\n .then(response => {\r\n var visitTracking = response.data\r\n //console.log(response.data)\r\n let visits = visitTracking.visits;\r\n setVisitTemplates(visits);\r\n let patients = [];\r\n\r\n const currentPatient = new URLSearchParams(props.location.search).get(\"patient\");\r\n if (currentPatient) {\r\n patients = visitTracking.patients.data.filter(patient => (patient.medicalRecordNumber === currentPatient));\r\n } else {\r\n patients = visitTracking.patients.data;\r\n }\r\n\r\n setPatientsData(patients);\r\n\r\n // Armo columnas a mostrar.\r\n const cols = getVisitsTrackingColumns(protocolId, visits, history, t);\r\n let allcolumns = firstColumns.concat(cols);\r\n setColumns(allcolumns);\r\n //console.log(allcolumns)\r\n // Armo grilla\r\n var data = getVisitsTrackingGrid(patients, visits);\r\n setTotalSize(visitTracking.patients.count);\r\n setData(data);\r\n //console.log(data)\r\n setIsLoading(false);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n })\r\n }\r\n\r\n fetchData();\r\n }, [protocolId, query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n\r\n if (type === 'pagination') {\r\n let newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n if (type === 'sort') {\r\n let newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const handleFilterChange = (filterName, selectedValue) => {\r\n if (filterName) {\r\n\r\n if (filterName === \"patientNumber\") {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.filters[filterName] = selectedValue;\r\n setQuery(newQuery);\r\n }\r\n if (filterName === \"status\") {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.filters[filterName] = selectedValue != null ? selectedValue.id : selectedValue;\r\n setQuery(newQuery);\r\n }\r\n if (filterName === \"stage\") {\r\n setSelectedStage(selectedValue);\r\n\r\n let filteredVisits = [];\r\n if (selectedValue != null)\r\n filteredVisits = visitTemplates.filter(x => x.stage === selectedValue.id);\r\n else\r\n filteredVisits = visitTemplates;\r\n\r\n\r\n // Armo columnas a mostrar.\r\n const cols = getVisitsTrackingColumns(protocolId, filteredVisits, history, t);\r\n let allcolumns = firstColumns.concat(cols);\r\n setColumns(allcolumns);\r\n // Armo grilla\r\n var data = getVisitsTrackingGrid(patientsData, filteredVisits);\r\n setTotalSize(patientsData.count);\r\n setData(data);\r\n }\r\n }\r\n }\r\n\r\n const handleAddPatient = () => {\r\n setModal( setModal(null)}\r\n submit={() => { setReload(true); setModal(null) }}\r\n isShowing={true} />);\r\n }\r\n\r\n const handlePatientNumberChange = (patient) => {\r\n setModal( setModal(null)}\r\n submit={(value) => { handleAuditChange(value) }}\r\n isShowing={true}\r\n patient={patient}\r\n />);\r\n }\r\n\r\n const handleAuditChange = (value) => {\r\n setModal( setModal(null)}\r\n onSave={(reason, comments) => confirmChangePatientNumberSubmit(value, reason, comments)}\r\n />)\r\n }\r\n\r\n const confirmChangePatientNumberSubmit = async (patient, reason, comments) => {\r\n try {\r\n patient.audit = {\r\n reason: reason,\r\n comments: comments\r\n }\r\n await changePatientNumber(protocolId, patient.medicalRecordNumber, patient);\r\n setModal(null);\r\n setReload(true);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setModal(null)\r\n }\r\n }\r\n\r\n const handleDeletePatient = (patient) => {\r\n setModal( setModal(null)}\r\n onConfirm={() => { confirmDeletePatient(patient) }}\r\n />);\r\n }\r\n\r\n const confirmDeletePatient = async (patient) => {\r\n try {\r\n await removePatient(protocolId, patient.numberInProtocol);\r\n setModal(null);\r\n setReload(true);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setModal(null)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleFilterChange(\"patientNumber\", value)} placeholder={t('protocols.visitTracking.searchByNumber')}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n content={\r\n <>\r\n {modal}\r\n\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading} //only loading is true, react-bootstrap-table will render overlay\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n \r\n }\r\n />\r\n \r\n );\r\n}","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport NumericInput from 'react-numeric-input';\r\n\r\nexport const CustomInput = (props) => {\r\n\r\n const { name, mobile, value } = props;\r\n\r\n const handleChange = (value) => {\r\n //console.log(value)\r\n props.onChange(name, value);\r\n };\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n props.onBlur(props.name, true);\r\n };\r\n\r\n return ();\r\n}\r\n\r\nCustomInput.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n min: PropTypes.number,\r\n max: PropTypes.number,\r\n};\r\nCustomInput.defaultProps = {\r\n mobile: true,\r\n min: 0,\r\n max: 100\r\n};\r\n","import { ErrorMessage } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, FormControl, Grid, HelpBlock, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from '../../Cards/Card';\r\nimport { CustomCheckbox } from \"../../CustomControls/CustomCheckbox\";\r\nimport { CustomInput } from '../../CustomControls/CustomInput';\r\nimport { CustomSelect } from \"../../CustomControls/CustomSelect\";\r\nimport { Save } from '../../Icons/Icons';\r\nimport { dateFormatter } from '../../Utils/Formatter';\r\nimport { FormErrorMessage } from '../../Validations/FormValidationErrors';\r\nimport { OffsetTypes, Types, VisitStages } from './Enums';\r\nimport { ConfirmSaveModal } from './Modals';\r\n\r\nexport const VisitHeaderForm = props => {\r\n\r\n const {\r\n values,\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n setFieldTouched,\r\n t\r\n } = props;\r\n\r\n const [modal, setModal] = useState(null);\r\n const onSubmit = (e) => {\r\n e.preventDefault();\r\n if (values.visit.version % 1 === 0) {\r\n setModal( setModal(null)}\r\n onConfirm={() => { setModal(null); handleSubmit(); }}\r\n />)\r\n }\r\n else {\r\n handleSubmit();\r\n }\r\n }\r\n\r\n const emptyVisit = {\r\n title: '',\r\n version: '0.1',\r\n stage: null,\r\n type: null,\r\n visitType: null,\r\n offsetType: null,\r\n offsetFrom: null,\r\n offset: 0,\r\n windowPos: 0,\r\n windowNeg: 0,\r\n };\r\n if (!values.visit) {\r\n values.visit = emptyVisit;\r\n }\r\n //{t(\"protocols.visit.visitData\")} ({t(\"commons.version\")}: {values.visit.version})\r\n\r\n return (\r\n
    \r\n {modal}\r\n
    \r\n {values.visit.title}\r\n \r\n \r\n \r\n {t(\"protocols.visit.visitName\")}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.visit.visitType\")}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.visit.visitStage\")}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.visit.visitOrder\")}\r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n */}\r\n \r\n \r\n\r\n {t(\"protocols.visit.visitDate\")}\r\n \r\n\r\n \r\n \r\n {t(\"protocols.visit.visitOffset\")}\r\n \r\n {t(\"protocols.visit.visitOffsetHelp\")}\r\n \r\n \r\n \r\n {t(\"protocols.visit.visitOffsetType\")}\r\n \r\n \r\n \r\n {/*\r\n {t(\"protocols.visit.visitOffsetFrom\")}\r\n x.crossVersionId === values.visit.offsetFrom)}\r\n name={`visit.offsetFrom`}\r\n placeholder={t(\"commons.select\")}\r\n onChange={setFieldValue}\r\n onBlur={setFieldTouched}\r\n options={props.visits}\r\n getOptionValue={(x) => x.crossVersionId}\r\n />\r\n \r\n */}\r\n \r\n {t('protocols.visit.visitWindowNeg')}\r\n \r\n \r\n \r\n \r\n {t('protocols.visit.visitWindowPos')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('protocols.visit.visitNotes')}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\nVisitHeaderForm.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n visits: PropTypes.array.isRequired,\r\n};\r\n\r\nexport const VisitHeader = props => {\r\n\r\n const { visit, visits } = props;\r\n const { t } = useTranslation();\r\n\r\n const title = visit && (\r\n
    \r\n {visit.title} - {t(\"commons.version\")}: {visit.version}\r\n
    \r\n );\r\n const content = (visit && \r\n \r\n \r\n {t(\"protocols.visit.visitType\")}\r\n \r\n \r\n {Types().find(x => x.id === visit.type)?.title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"protocols.visit.visitOffset\")}\r\n \r\n \r\n {visit.offset}\r\n \r\n \r\n {t(\"protocols.visit.visitOffsetType\")}\r\n \r\n \r\n {OffsetTypes().find(x => x.id === visit.offsetType)?.title}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.visit.visitWindow\")}\r\n \r\n \r\n - {visit.windowNeg} + {visit.windowPos}\r\n \r\n \r\n {t(\"protocols.visit.visitOffsetFrom\")}\r\n \r\n \r\n {visits.find(x => x.id === visit.offsetFrom)?.title}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.visit.visitStage\")}\r\n \r\n \r\n {VisitStages().find(x => x.id === visit.stage)?.title}\r\n \r\n \r\n \r\n \r\n {t(\"protocols.visit.visitNotes\")}\r\n \r\n \r\n {visit.notes}\r\n \r\n \r\n );\r\n\r\n return (\r\n {t(\"commons.created\")}: {dateFormatter(visit.created, \"DD/MMM/YYYY HH:mm\")} - {t(\"commons.createdBy\")}: {visit.createdBy?.fullName})}\r\n content={content}\r\n />\r\n );\r\n}\r\n\r\nVisitHeader.propTypes = {\r\n visit: PropTypes.object,\r\n onRemoveVisit: PropTypes.func.isRequired,\r\n onPublishVisit: PropTypes.func.isRequired,\r\n};","import { withFormik } from 'formik';\r\nimport React from 'react';\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { copyVisit, createVisit } from '../../../api/protocol';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { OffsetTypes, Types, VisitStages } from '../../../components/Protocols/Visit/Enums';\r\nimport { VisitHeaderForm } from '../../../components/Protocols/Visit/Header';\r\nimport { getProtocolVisitHeaderSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { useProtocolVisits } from '../Hooks';\r\n\r\n\r\nexport const AddVisitModal = (props) => {\r\n const { isShowing, hide, protocolId, submit } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t('protocols.visit.addVisitTitle')}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nconst CreateVisitContainer = (props) => {\r\n let history = useHistory();\r\n const protocolId = props.protocolId;\r\n const visits = useProtocolVisits(protocolId);\r\n\r\n const handleSubmit = (visit) => {\r\n history.push(`/admin/protocols/${protocolId}/visitsTemplate/${visit.crossVersionId}`);\r\n }\r\n const handleCancel = () => {\r\n //history.push(`/admin/protocols/${protocolId}/section/visitsTemplate`);\r\n props.onClose();\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst CreateVisitFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({ visit: props.visit }),\r\n //enableReinitialize\r\n\r\n validationSchema: getProtocolVisitHeaderSchema(),\r\n\r\n handleSubmit: (value, formikBag) => {\r\n //console.log(\"Posting Visit Header:\", value.visit);\r\n\r\n let visit = value.visit;\r\n visit.type = visit.type.id;\r\n visit.stage = visit.stage.id;\r\n visit.offsetType = visit.offsetType?.id\r\n visit.offsetFrom = visit.offsetFrom?.id\r\n\r\n createVisit(formikBag.props.protocolId, visit)\r\n .then(res => {\r\n var item = res.data\r\n\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.visit_Created\");\r\n formikBag.props.onSubmit(item);\r\n\r\n }).catch(error => {\r\n console.error(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'CreateVisit',\r\n\r\n})(VisitHeaderForm));\r\n\r\nexport const CopyVisitModal = (props) => {\r\n const { isShowing, hide, protocolId, visitId, submit } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t('protocols.visit.copyVisitTitle')}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\n\r\nconst CopyVisitContainer = (props) => {\r\n let history = useHistory();\r\n const { protocolId, visitId } = props;\r\n\r\n const visits = useProtocolVisits(protocolId);\r\n\r\n const handleSubmit = (visit) => {\r\n history.push(`/admin/protocols/${protocolId}/visitsTemplate/${visit.crossVersionId}`);\r\n }\r\n const handleCancel = () => {\r\n //history.push(`/admin/protocols/${protocolId}/section/visitsTemplate`);\r\n props.onClose();\r\n }\r\n\r\n if (!visitId || visits.length === 0)\r\n return null;\r\n\r\n let visit = visits.filter(x => x.crossVersionId == visitId)[0];\r\n if (!visit) return null;\r\n\r\n let visitCopy = JSON.parse(JSON.stringify(visit));\r\n visitCopy.title = visit.title + \" - Copia\";\r\n visitCopy.type = Types().find(x => x.id == visit.type);\r\n visitCopy.stage = VisitStages().find(x => x.id == visit.stage);\r\n visitCopy.offsetType = OffsetTypes().find(x => x.id == visit.offsetType);\r\n visitCopy.version = 0.1;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst CopyVisitFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({ visit: props.visit }),\r\n\r\n validationSchema: getProtocolVisitHeaderSchema(),\r\n\r\n handleSubmit: (value, formikBag) => {\r\n //console.log(\"Posting Visit Header:\", value.visit);\r\n\r\n let visit = value.visit;\r\n visit.type = visit.type.id;\r\n visit.stage = visit.stage.id;\r\n visit.offsetType = visit.offsetType?.id\r\n visit.offsetFrom = visit.offsetFrom?.id\r\n\r\n copyVisit(formikBag.props.protocolId, visit.id, visit)\r\n .then(res => {\r\n var item = res.data\r\n\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.visit_Created\");\r\n formikBag.props.onSubmit(item);\r\n\r\n }).catch(error => {\r\n console.error(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'CopyVisit',\r\n\r\n})(VisitHeaderForm));\r\n","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { editVisit, getVisit } from '../../../api/protocol';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { OffsetTypes, Types, VisitStages } from '../../../components/Protocols/Visit/Enums';\r\nimport { VisitHeaderForm } from '../../../components/Protocols/Visit/Header';\r\nimport { getProtocolVisitHeaderSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { useProtocolVisits } from '../Hooks';\r\n\r\nexport const EditVisitModal = (props) => {\r\n const { isShowing, hide, protocolId, visitId, submit } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t('protocols.practitioner.editPractitionerTitle')}\r\n \r\n \r\n \r\n \r\n \r\n , document.body\r\n ) : null;\r\n};\r\n\r\nconst EditVisitContainer = (props) => {\r\n const { protocolId, visitId } = props;\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [visit, setVisit] = useState(null);\r\n const visits = useProtocolVisits(protocolId);\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getVisit(protocolId, visitId)\r\n .then(response => {\r\n var resVisit = response.data;\r\n resVisit.type = Types().find(x => x.id == resVisit.type);\r\n resVisit.stage = VisitStages().find(x => x.id == resVisit.stage);\r\n resVisit.offsetType = OffsetTypes().find(x => x.id == resVisit.offsetType);\r\n\r\n setVisit(resVisit);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n fetchData();\r\n }, [protocolId, visitId]);\r\n\r\n const handleSubmit = () => {\r\n props.onSubmit();\r\n }\r\n const handleCancel = () => {\r\n props.onClose();\r\n }\r\n\r\n if (isLoading || !visit)\r\n return null;\r\n\r\n return (\r\n \r\n );\r\n}\r\nEditVisitContainer.propTypes = {\r\n protocolId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n visitId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n};\r\n\r\nconst EditVisitFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({ visit: props.visit }),\r\n\r\n validationSchema: getProtocolVisitHeaderSchema(),\r\n\r\n handleSubmit: (value, formikBag) => {\r\n let visit = value.visit;\r\n visit.type = visit.type.id;\r\n visit.stage = visit.stage.id;\r\n visit.offsetType = visit.offsetType?.id\r\n visit.offsetFrom = visit.offsetFrom?.id\r\n\r\n editVisit(formikBag.props.protocolId, value.visit.crossVersionId, visit)\r\n .then(res => {\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.visit_Updated\");\r\n formikBag.props.onSubmit(res.data);\r\n\r\n }).catch(error => {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'EditVisit',\r\n\r\n})(VisitHeaderForm));\r\n\r\nEditVisitFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n protocolId: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]).isRequired,\r\n visit: PropTypes.object.isRequired,\r\n};","import React from \"react\"\r\nimport PropTypes from 'prop-types'\r\nimport { useTranslation } from 'react-i18next'\r\nimport SweetAlert from \"react-bootstrap-sweetalert\"\r\nimport { Grid, Row, Col } from 'react-bootstrap'\r\n\r\nexport const RemoveVisit = (props) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n props.onConfirm(props.visitId)}\r\n onCancel={() => { props.onClose() }}\r\n confirmBtnBsStyle=\"danger\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.delete\")}\r\n cancelBtnText={t(\"buttons.cancel\")}\r\n showCancel\r\n >\r\n {t(\"commons.areyousure\")}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nRemoveVisit.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n visitId: PropTypes.string.isRequired,\r\n};\r\n\r\n\r\nexport const RemoveForm = (props) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n props.onConfirm(props.id)}\r\n onCancel={() => { props.onClose() }}\r\n confirmBtnBsStyle=\"danger\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.delete\")}\r\n cancelBtnText={t(\"buttons.cancel\")}\r\n showCancel\r\n >\r\n Are you sure?\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nRemoveForm.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n visitId: PropTypes.string.isRequired,\r\n};\r\n\r\n\r\nexport const RemoveModal = (props) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n props.onConfirm(props.id)}\r\n onCancel={() => { props.onClose() }}\r\n confirmBtnBsStyle=\"danger\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.delete\")}\r\n cancelBtnText={t(\"buttons.cancel\")}\r\n showCancel\r\n >\r\n {props.subtitle}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nRemoveModal.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n id: PropTypes.number.isRequired,\r\n};\r\n\r\nexport const PublishModal = (props) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n props.onConfirm(value, props.id)}\r\n onCancel={() => { props.onClose() }}\r\n confirmBtnBsStyle=\"primary\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.publish\")}\r\n cancelBtnText={t(\"buttons.cancel\")}\r\n showCancel\r\n >\r\n {props.subtitle}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nPublishModal.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n id: PropTypes.string.isRequired,\r\n};","import { useEffect, useState } from \"react\";\r\nimport { copyVisitsAPI, getAllVisits, getVisits } from \"../../../api/protocol\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const useAllVisits = (protocolId) => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [reload, setReload] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Created\",\r\n sortOrder: \"desc\"\r\n },\r\n filters: [{ stage: 0 }]\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n setReload(false);\r\n try {\r\n const response = await getAllVisits(protocolId, query);\r\n if (isSubscribed) {\r\n const paginatedResult = response.data;\r\n\r\n setTotalSize(paginatedResult.count);\r\n setData(paginatedResult.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId, query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n\r\n var newQuery = null;\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const handleFilterChange = (filterName, selectedValue) => {\r\n if (filterName) {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.filters[filterName] = selectedValue != null ? selectedValue.id : selectedValue;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n return [setData, data, query, totalSize, isLoading, handleTableChange, handleFilterChange, setReload];\r\n}\r\n\r\nexport const useVisits = () => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const fetchData = async (protocolId) => {\r\n setIsLoading(true);\r\n try {\r\n const response = await getVisits(protocolId);\r\n setData(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n return [fetchData, data, setData, isLoading];\r\n}\r\n\r\nexport const useCopyVisits = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const copyVisits = async (protocolId, fromProtocolId, selectedVisitIds) => {\r\n try {\r\n setIsLoading(true);\r\n const response = await copyVisitsAPI(protocolId, fromProtocolId, selectedVisitIds);\r\n setIsLoading(false);\r\n\r\n return response;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n return [copyVisits, isLoading];\r\n}","import React, { useState } from 'react';\r\n\r\nimport { ControlLabel, Col, Grid, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ProtocolPicker } from '../../CustomControls/ProtocolPicker';\r\nimport { Copy } from '../../Icons/Icons';\r\nimport { OffsetTypes, VisitStages } from './Enums';\r\n\r\nexport const CopyVisits = ({ visits, isLoading, onSelectedProtocol, onCopyVisits, onCancel }) => {\r\n const { t } = useTranslation();\r\n const [selectedProtocol, setSelectedProtocol] = useState(null);\r\n const [selectedVisits, setSelectedVisits] = useState([]);\r\n\r\n const handleProtocolSelected = (_name, selected) => {\r\n if (onSelectedProtocol && selected && selected.length > 0) {\r\n setSelectedProtocol(selected[0].id);\r\n onSelectedProtocol(selected[0].id);\r\n }\r\n else {\r\n setSelectedProtocol(null);\r\n onSelectedProtocol(null);\r\n }\r\n }\r\n\r\n const handleCopyVisits = () => {\r\n if (selectedProtocol && selectedVisits.length > 0)\r\n onCopyVisits(selectedProtocol, selectedVisits);\r\n }\r\n\r\n const columns = [\r\n { dataField: 'title', text: t(\"protocols.visit.visitName\") },\r\n {\r\n dataField: 'offset', text: t(\"protocols.visit.visitOffset\"),\r\n formatter: function (cell, row) {\r\n return `${cell} ${OffsetTypes().find(x => x.id === row.offsetType)?.title}`;\r\n }\r\n },\r\n {\r\n dataField: 'stage', text: t(\"protocols.visit.visitStage\"),\r\n formatter: function (cell) {\r\n return VisitStages().find(x => x.id === cell)?.title;\r\n }\r\n },\r\n ];\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n onSelect: (row, isSelect) => {\r\n if (isSelect)\r\n setSelectedVisits(selectedVisits.concat(row.id));\r\n else\r\n setSelectedVisits(selectedVisits.filter((id) => id !== row.id));\r\n },\r\n onSelectAll: (isSelect, rows) => {\r\n if (isSelect) {\r\n setSelectedVisits(rows.map(r => r.id));\r\n }\r\n else {\r\n setSelectedVisits([]);\r\n }\r\n },\r\n };\r\n\r\n return (<>\r\n \r\n \r\n \r\n {t(\"protocols.visit.copyVisits_selectProtocol\")}\r\n \r\n \r\n\r\n \r\n \r\n {\r\n visits && visits.length > 0 &&\r\n \r\n \r\n \r\n {t(\"protocols.visit.copyVisits_protocolVisits\")}\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n selectRow={selectRow}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport { CopyVisits } from '../../../components/Protocols/Visit/CopyVisits';\r\nimport { useCopyVisits, useVisits } from './useVisits';\r\n\r\nexport const CopyVisitsContainer = ({ protocolId, onClose }) => {\r\n\r\n const [getVisits, data, setData, isLoading] = useVisits();\r\n const [copyVisits, isLoadingCopyVisits] = useCopyVisits();\r\n\r\n const handleSelectedProtocol = (id) => {\r\n if (id)\r\n getVisits(id);\r\n else\r\n setData([])\r\n }\r\n\r\n const handleCopyVisits = async (originProtocolId, selectedVisitIds) => {\r\n if (!originProtocolId || !selectedVisitIds || selectedVisitIds.length === 0)\r\n return;\r\n\r\n // Llamo al backend para copiar visitas. \r\n var res = await copyVisits(protocolId, originProtocolId, selectedVisitIds);\r\n onClose();\r\n }\r\n\r\n return \r\n}","import React, { useContext, useState } from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink, useHistory } from \"react-router-dom\";\r\nimport { removeVisit, swapVisits } from '../../../api/protocol';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol';\r\nimport Card from '../../../components/Cards/Card';\r\nimport { CustomSelect } from '../../../components/CustomControls/CustomSelect';\r\nimport { Add, Copy, Down, Edit, Remove, Up, View } from '../../../components/Icons/Icons';\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { OffsetTypes, VisitStages } from '../../../components/Protocols/Visit/Enums';\r\nimport { Tooltip } from \"../../../components/Utils/Tooltips\";\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext';\r\nimport { AddVisitModal, CopyVisitModal } from './CreateVisit';\r\nimport { EditVisitModal } from './EditVisit';\r\nimport { RemoveModal } from './RemoveVisit';\r\nimport { useAllVisits } from './useVisits';\r\nimport { CopyVisitsContainer } from './CopyVisits';\r\nimport { ModalData } from '../../../components/Modals/ModalData';\r\n\r\nexport const ProtocolVisitsContainer = ({ protocolId }) => {\r\n const { t } = useTranslation();\r\n const context = useContext(ProtocolContext);\r\n let history = useHistory();\r\n const [setData, data, query, totalSize, isLoading, handleTableChange, handleFilterChange, setReload] = useAllVisits(protocolId);\r\n\r\n const columns = [\r\n {\r\n dataField: 'sortViews',\r\n text: '',\r\n isDummyField: true,\r\n headerClasses: 'header-swap-btn',\r\n formatter: function (_cell, _row, rowIndex, _formatExtraData) {\r\n if (context.isDisabled) return null;\r\n return (\r\n
    \r\n \r\n {\r\n data.length !== rowIndex + 1 ?\r\n handleSwapVisit(rowIndex, rowIndex + 1)} >\r\n \r\n \r\n : \"\"\r\n }\r\n {\r\n 0 !== rowIndex ?\r\n handleSwapVisit(rowIndex, rowIndex - 1)} >\r\n \r\n \r\n : \"\"\r\n }\r\n \r\n
    \r\n )\r\n }\r\n },\r\n { dataField: 'order', text: t(\"protocols.visit.visitOrder\") },\r\n { dataField: 'title', text: t(\"protocols.visit.visitName\") },\r\n { dataField: 'version', text: t(\"protocols.visit.visitVersion\") },\r\n {\r\n dataField: 'offset', text: t(\"protocols.visit.visitOffset\"),\r\n formatter: function (cell, row) {\r\n return `${cell} ${OffsetTypes().find(x => x.id === row.offsetType)?.title}`;\r\n }\r\n },\r\n {\r\n dataField: 'stage', text: t(\"protocols.visit.visitStage\"),\r\n formatter: function (cell) {\r\n return VisitStages().find(x => x.id === cell)?.title;\r\n }\r\n },\r\n {\r\n dataField: 'view',\r\n text: t(\"commons.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-visit-actions',\r\n classes: 'row-visit-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const handleSwapVisit = (oldIndex, newIndex) => {\r\n swapVisits(protocolId, data[oldIndex].crossVersionId, data[newIndex].crossVersionId)\r\n .then(res => {\r\n // Hago swap en cliente. \r\n let copiedVisits = JSON.parse(JSON.stringify(data));\r\n copiedVisits[oldIndex].order = newIndex;\r\n copiedVisits[newIndex].order = oldIndex;\r\n\r\n setData(copiedVisits.sort((function (a, b) { return a.order - b.order; })));\r\n })\r\n .catch(error => {\r\n HandleApiError(error);\r\n });\r\n };\r\n\r\n const [modal, setModal] = useState(null);\r\n const handleRemoveVisit = (visitId) => {\r\n console.log(visitId)\r\n setModal( { setModal(null); }}\r\n onConfirm={handleConfirmRemove} />)\r\n }\r\n const handleConfirmRemove = (visitId) => {\r\n if (visitId) {\r\n removeVisit(protocolId, visitId)\r\n .then(() => {\r\n let copiedData = JSON.parse(JSON.stringify(data));\r\n setData(copiedData.filter(obj => obj.crossVersionId !== visitId));\r\n Success(\"protocolNotifications.visit_Removed\");\r\n setModal(null);\r\n }).catch(error => {\r\n console.error(error);\r\n HandleApiError(error);\r\n setModal(null);\r\n });\r\n }\r\n setModal(null);\r\n }\r\n\r\n const handleAddVisit = () => {\r\n setModal( setModal(null)}\r\n submit={() => history.push(`/admin/protocols/${protocolId}/visitsTemplate/`)}\r\n isShowing={true} />);\r\n }\r\n\r\n const handleEditVisit = (visitId) => {\r\n setModal( setModal(null)}\r\n submit={() => history.push(`/admin/protocols/${protocolId}/visitsTemplate/${visitId}`)}\r\n isShowing={true} />);\r\n }\r\n\r\n const handleCopyVisit = (visitId) => {\r\n setModal( setModal(null)}\r\n submit={() => history.push(`/admin/protocols/${protocolId}/visitsTemplate/`)}\r\n isShowing={true} />);\r\n }\r\n\r\n //#region CopyVisits\r\n const handleCopyVisits = () => {\r\n setModal( setModal(null)}\r\n >\r\n { setReload(true); setModal(null) }} />\r\n \r\n );\r\n }\r\n\r\n //#endregion\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n }\r\n content={\r\n
    \r\n {modal}\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n pagination={paginationFactory({\r\n page: query.pagination.page,\r\n sizePerPage: query.pagination.sizePerPage,\r\n totalSize: totalSize,\r\n hideSizePerPage: true,\r\n })}\r\n\r\n onTableChange={handleTableChange}\r\n />\r\n
    \r\n }\r\n />\r\n );\r\n}","import PropTypes from \"prop-types\";\r\nimport React from 'react';\r\nimport { Modal as BootstrapModal, Col, Grid, Row } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { FormAdditional, FormEarlyCompleted, FormExtraProtocol } from '../../../components/Icons/Icons';\r\n\r\nconst NewExtraForm = ({ protocolId, isShowing, hide }) => {\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t(\"protocols.extraForms.newForm\")}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    {t(\"protocols.extraForms.extraFormType.0\")}
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    {t(\"protocols.extraForms.extraFormType.1\")}
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    {t(\"protocols.extraForms.extraFormType.2\")}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    , document.body\r\n ) : null;\r\n}\r\n\r\nNewExtraForm.propTypes = {\r\n isShowing: PropTypes.bool.isRequired,\r\n hide: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewExtraForm;","import React, { useContext, useState } from 'react';\r\nimport { Alert } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol';\r\nimport Card from '../../../components/Cards/Card';\r\nimport { Add, Remove, View } from '../../../components/Icons/Icons';\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { Tooltip } from \"../../../components/Utils/Tooltips\";\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext';\r\n\r\nimport { removeExtraForm } from '../../../api/protocolsExtraForms';\r\nimport { RemoveModal } from '../Visits/RemoveVisit';\r\nimport NewExtraForm from './NewExtraForm';\r\nimport { useExtraForms } from './useExtraForms';\r\n\r\nexport const ExtraFormsContainer = ({ protocolId }) => {\r\n const { t } = useTranslation();\r\n const context = useContext(ProtocolContext);\r\n const [setData, data, , , isLoading, handleTableChange,] = useExtraForms(protocolId);\r\n\r\n const columns = [\r\n {\r\n dataField: 'extraFormType', text: t(\"protocols.extraForms.formType\"),\r\n formatter: function (_cell, row) { return t(`protocols.extraForms.extraFormType.${row.extraFormType}`) }\r\n },\r\n { dataField: 'title', text: t(\"protocols.extraForms.name\") },\r\n { dataField: 'type', text: t(\"protocols.extraForms.syncTo\") },\r\n {\r\n dataField: 'view',\r\n text: t(\"commons.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-extraform-actions',\r\n classes: 'row-extraform-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const [modal, setModal] = useState(null);\r\n const handleRemove = (formId) => {\r\n if (!formId) return;\r\n setModal( { setModal(null); }}\r\n onConfirm={handleConfirmRemove} />)\r\n }\r\n const handleConfirmRemove = (formId) => {\r\n if (formId) {\r\n removeExtraForm(protocolId, formId)\r\n .then(() => {\r\n let copiedData = JSON.parse(JSON.stringify(data));\r\n setData(copiedData.filter(obj => obj.id !== formId));\r\n Success(\"protocolNotifications.visit_Removed\");\r\n setModal(null);\r\n }).catch(error => {\r\n console.error(error);\r\n HandleApiError(error);\r\n setModal(null);\r\n });\r\n }\r\n setModal(null);\r\n }\r\n\r\n const handleAddExtraForm = () => {\r\n setModal( setModal(null)}\r\n isShowing={true} />);\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n }\r\n content={\r\n
    \r\n {modal}\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n //pagination={paginationFactory({\r\n // page: query.pagination.page,\r\n // sizePerPage: query.pagination.sizePerPage,\r\n // totalSize: totalSize,\r\n // hideSizePerPage: true,\r\n //})}\r\n\r\n onTableChange={handleTableChange}\r\n />\r\n
    \r\n }\r\n />\r\n );\r\n}","import { useEffect, useState } from \"react\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { getExtraForms } from \"../../../api/protocolsExtraForms\";\r\n\r\nexport const useExtraForms = (protocolId) => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Created\",\r\n sortOrder: \"desc\"\r\n },\r\n //filters: { extraFormType: 0 }\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const response = await getExtraForms(protocolId, query);\r\n if (isSubscribed) {\r\n const paginatedResult = response.data;\r\n\r\n setTotalSize(paginatedResult.count);\r\n setData(paginatedResult);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId, query]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n\r\n var newQuery = null;\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const handleFilterChange = (filterName, selectedValue) => {\r\n if (filterName) {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.filters[filterName] = selectedValue != null ? selectedValue.id : selectedValue;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n return [setData, data, query, totalSize, isLoading, handleTableChange, handleFilterChange];\r\n}","import { Freezer } from \"./Freezer\";\r\n\r\nexport function ProtocolFreezerConfiguration({ id, minTemperature, maxTemperature, assignedFreezers } = {}) {\r\n this.Id = id ?? null;\r\n this.MinTemperature = minTemperature ?? 0;\r\n this.MaxTemperature = maxTemperature ?? 0;\r\n this.AssignedFreezers = assignedFreezers?.map(a => new Freezer(a)) ?? [];\r\n\r\n this.IsTemperatureValid = function (value) {\r\n return (value >= this.MinTemperature) && (value <= this.MaxTemperature) \r\n }\r\n}","import axios from \"axios\";\r\nimport { ResponseResult, Url } from \"./Util\";\r\nimport { Freezer } from \"./Entities/Freezer\";\r\nimport { ProtocolFreezerConfiguration } from \"./Entities/ProtocolFreezerConfiguration\";\r\n\r\nconst GetUrl = Url(\"api/v1/Freezer/Protocol\");\r\n\r\nexport default {\r\n Configure,\r\n GetConfigById,\r\n GetUnassignedFreezers,\r\n GetProtocolConfigs\r\n}\r\n\r\nasync function Configure(protocol) {\r\n const obj = { ...protocol, protocolId: protocol.Id };\r\n const response = await axios.post(GetUrl('/Configure')\r\n , { ...protocol, protocolId: protocol.Id })\r\n\r\n return new ResponseResult(response.data);\r\n}\r\n\r\nasync function GetConfigById(protocolId) {\r\n const response = await axios.get(GetUrl(`/${protocolId}`))\r\n return new ResponseResult({ ...response.data, value: new ProtocolFreezerConfiguration({ ...response.data.value }) })\r\n}\r\n\r\nasync function GetUnassignedFreezers(protocolId) {\r\n const response = await axios.get(GetUrl(`/${protocolId}/Unassigned`))\r\n var freezers = response.data.value.map(f => new Freezer(f));\r\n return new ResponseResult({ ...response.data, value: [...freezers] })\r\n}\r\n\r\nasync function GetProtocolConfigs() {\r\n const response = await axios.get(GetUrl(`/Find`))\r\n const protocols = response.data.value.map(p => new ProtocolFreezerConfiguration(p));\r\n return new ResponseResult({ ...response.data, value: protocols })\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Grid, Row, Col, FormGroup, ControlLabel, FormControl } from 'react-bootstrap'\r\nimport FreezerProtocolServices from \"../../../api/Freezer/FreezerProtocolServices\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { withFormik } from \"formik\";\r\nimport { getFreezerConfigurationSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { FormErrorMessage } from \"../../../components/Validations/FormValidationErrors\";\r\nimport { ErrorMessage as ErrorNotification, Success } from \"../../../components/Notifications/Notifications\";\r\nimport { ErrorMessage } from 'formik';\r\nimport { CustomSelect } from \"../../../components/CustomControls/CustomSelect\";\r\nimport { EnumValue } from \"../../../api/Freezer/Entities/Utils\";\r\nimport Loader from \"../../../components/Common/Loader\";\r\nimport useLoading from \"../../../components/Common/useLoading\";\r\n\r\nexport const ConfigurationFreezerFormik = withTranslation()(withFormik({\r\n mapPropsToStatus: ({ configuration, protocolId }) => ({ configuration, protocolId }),\r\n validationSchema: getFreezerConfigurationSchema(),\r\n handleSubmit: async (values, formikBag) => {\r\n try {\r\n formikBag.setSubmitting(true);\r\n const result = await FreezerProtocolServices.Configure({ ...values.configuration, AssignedFreezers: values.configuration.AssignedFreezers })\r\n if (result.Succeeded) {\r\n Success(\"commons.successSave\")\r\n formikBag.props.onSubmit();\r\n }\r\n else {\r\n ErrorNotification(\"errors.serverError\")\r\n formikBag.props.onSubmit(false);\r\n }\r\n } catch (err) {\r\n ErrorNotification(\"errors.serverError\")\r\n formikBag.props.onSubmit(false);\r\n } finally {\r\n formikBag.setSubmitting(false);\r\n }\r\n },\r\n displayName: 'ConfigureFreezerForm'\r\n})(ConfigureFreezerForm))\r\n\r\nfunction ConfigureFreezerForm({ values, t, handleSubmit, handleChange, handleBlur, onCancel, isSubmitting, setFieldValue, setFieldTouched }) {\r\n const [selecteableFreezers, setSelecteableFreezers] = useState([]);\r\n const [currentFreezers, setCurrentFreezers] = useState([]);\r\n const [selectedFreezers, setSelectedFreezers] = useState([])\r\n const [isLoading, reload] = useLoading({\r\n onLoad: async () => {\r\n const unassignedFreezers = await FreezerProtocolServices.GetUnassignedFreezers(values.protocolId)\r\n setSelecteableFreezers(unassignedFreezers.Value?.map(f => new EnumValue(f.Id, f.Description)) ?? [])\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n setCurrentFreezers([...(values.configuration?.AssignedFreezers?.map(f => f.Id) ?? [])])\r\n values.configuration = {\r\n ...values.configuration\r\n , AssignedFreezers: [...(values.configuration?.AssignedFreezers?.map(f => f.Id) ?? [])]\r\n , Id: values.protocolId\r\n };\r\n }, [])\r\n\r\n useEffect(() => {\r\n configuration.AssignedFreezers = [...new Set([...currentFreezers, ...selectedFreezers])];\r\n }, [JSON.stringify(selectedFreezers)])\r\n const { configuration } = values;\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {t('protocols.freezer.minTemperature')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('protocols.freezer.maxTemperature')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('protocols.freezer.freezers')}\r\n {selecteableFreezers && selecteableFreezers.length > 0 &&\r\n {\r\n setSelectedFreezers(v?.map(v => v.Value) ?? [])\r\n }}\r\n onBlur={(e, v) => { }}\r\n name={\"configuration.AssignedFreezers\"}\r\n options={selecteableFreezers}\r\n getOptionLabel={(option) => option.Name}\r\n getOptionValue={(option) => option.Value}\r\n />\r\n ||
    {t('protocols.freezer.noAssignibleFreezers')}
    }\r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\n","import { useState } from \"react\";\r\nimport useLoading from \"../../../components/Common/useLoading\";\r\nimport FreezerProtocolServices from \"../../../api/Freezer/FreezerProtocolServices\";\r\n\r\nexport default function useProtocolFreezer(protocolId, defaultValue) {\r\n const [protocol, setProtocol] = useState(defaultValue)\r\n const [isLoading, useLoad, reload] = useLoading({\r\n onLoad: async () => {\r\n if (isNaN(protocolId)) return;\r\n const result = await FreezerProtocolServices.GetConfigById(protocolId);\r\n if (result.Succeeded) {\r\n setProtocol(result.Value)\r\n }\r\n }\r\n })\r\n return [protocol, isLoading, reload]\r\n}","import React, { useContext, useEffect } from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport Card from '../../../components/Cards/Card';\r\nimport { Modal, Button } from 'react-bootstrap'\r\nimport { useModalContext } from '../../../components/Modals/useModalContext';\r\nimport { ConfigurationFreezerFormik } from './ConfigureProtocolFreezerContainer';\r\nimport Loader from '../../../components/Common/Loader';\r\nimport useProtocolFreezer from './useProtocolFreezer';\r\nimport { ProtocolFreezerConfiguration } from '../../../api/Freezer/Entities/ProtocolFreezerConfiguration';\r\nimport { Field } from '../../../components/Common/Field/Field';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol';\r\n\r\nexport default function FreezerTabContainer() {\r\n const { t } = useTranslation();\r\n const protocolContext = useContext(ProtocolContext);\r\n const [protocolConfiguration, isLoading, reload] = useProtocolFreezer(protocolContext.protocolId, null);\r\n const [modalContext, openConfigModal] = useModalContext({\r\n handleEvent: (e) => { reload() }\r\n })\r\n const onHandleConfig = () => {\r\n openConfigModal({ protocolId: protocolContext.protocolId })\r\n }\r\n\r\n const columns = [\r\n { dataField: 'Description', text: t(\"commons.description\"), headerStyle: { width: '15.625rem' } },\r\n { dataField: 'Location', text: t(\"commons.location\"), headerStyle: { width: '12.5rem' } },\r\n ]\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n }\r\n content={\r\n <>\r\n \r\n {protocolConfiguration && \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {protocolConfiguration.AssignedFreezers?.length > 0\r\n &&\r\n
    \r\n
    {t('protocols.freezer.assignedFreezers')}
    \r\n
    \r\n <>{t(\"commons.noData\")}}\r\n />\r\n
    \r\n
    \r\n ||
    {t('protocols.freezer.emptyAssignations')}
    }\r\n
    \r\n \r\n
    \r\n ||
    \r\n \r\n {t('protocols.freezer.notConfigured')}\r\n \r\n
    }\r\n
    \r\n }\r\n />\r\n {!isNaN(protocolContext.protocolId) && }\r\n )\r\n}\r\n\r\n\r\n\r\n\r\nfunction ProtocolConfigModal({ state: { show, value, onClose, onEvent } }) {\r\n const { t } = useTranslation();\r\n const { protocolId } = value ?? {};\r\n const [protocolConfig, loading, reload] = useProtocolFreezer(protocolId, new ProtocolFreezerConfiguration({ id: protocolId }))\r\n\r\n useEffect(() => {\r\n reload()\r\n }, [protocolId])\r\n\r\n if (!show && isNaN(protocolId)) return null\r\n return (\r\n <>\r\n \r\n \r\n {t('protocols.freezer.formTitle')}\r\n \r\n \r\n \r\n {\r\n onClose()\r\n onEvent(\"reload\")\r\n }} />\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Col, Grid, Nav, NavItem, Row, Tab } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useAuthProtocol } from '../../components/Authorization/useAuthorization.js';\r\nimport { ProtocolInfo } from '../../components/Protocols/ProtocolInfo.jsx';\r\nimport { ProtocolBriefContainer } from './Brief/Brief.jsx';\r\nimport { ProtocolPractitionersContainer } from './Practitioners/Practitioners.jsx';\r\nimport { ProtocolProvider } from './ProtocolContext/ProtocolProvider.js';\r\nimport { VisitsTrackingContainer } from \"./Tracking/VisitsTracking\";\r\nimport { ProtocolVisitsContainer } from './Visits/Visits.jsx';\r\nimport { ExtraFormsContainer } from './ExtraForms/ExtraForms.js';\r\nimport FreezerTabContainer from './Freezers/FreezerTabContainer.jsx';\r\n\r\nconst ProtocolContainer = (props) => {\r\n const { match: { params: { protocolId, section } } } = props;\r\n const { t } = useTranslation();\r\n const [isAuthorized] = useAuthProtocol(protocolId);\r\n const [selectedTab, setSelectedTab] = useState(section ?? \"brief\");\r\n\r\n useEffect(() => {\r\n setSelectedTab(section);\r\n }, [section]);\r\n\r\n const handleChangeTab = (tab) => {\r\n setSelectedTab(tab)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ProtocolContainer;","import React, { useContext } from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Card } from '../../components/Cards/Card';\r\nimport { FormRestriction, IconSVG, Print, Remove } from '../Icons/Icons';\r\nimport { WithAuth } from '../Authorization/WithAuthProtocol';\r\nimport ProtocolContext from '../../containers/Protocols/ProtocolContext/ProtocolContext';\r\nimport { Spinner } from '../Utils/Loaders';\r\n\r\nexport const Actions = (props) => {\r\n const { t } = useTranslation();\r\n const context = useContext(ProtocolContext);\r\n\r\n const { onSave, onPublish, onEdit, onRemove, onBack, onPrint, onFormRestrictions, visit, isLoading } = props;\r\n\r\n var save = null;\r\n if (onSave && !context.isDisabled) {\r\n save = (\r\n \r\n );\r\n }\r\n\r\n var back = null;\r\n if (onBack) {\r\n back = (\r\n \r\n );\r\n }\r\n\r\n var edit = null;\r\n if (onEdit && !context.isDisabled) {\r\n edit = (\r\n \r\n );\r\n }\r\n\r\n var remove = null;\r\n if (onRemove && !context.isDisabled) {\r\n remove = (\r\n \r\n );\r\n }\r\n\r\n var publish = null;\r\n if (onPublish && !context.isDisabled) {\r\n publish = (\r\n \r\n );\r\n }\r\n\r\n var print = null;\r\n if (onPrint) {\r\n print = (\r\n \r\n );\r\n }\r\n\r\n var formRestrictions = null;\r\n if (onFormRestrictions && !context.isDisabled) {\r\n formRestrictions = (\r\n \r\n {t('protocols.visitTracking.formRestrictions.title')}\r\n )\r\n }\r\n\r\n if (isLoading || !visit)\r\n return }\r\n />\r\n\r\n return (\r\n \r\n \r\n {save}\r\n {publish}\r\n {edit}\r\n {formRestrictions}\r\n {remove}\r\n {print}\r\n \r\n {back}\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nActions.propTypes = {\r\n onSave: PropTypes.func,\r\n onPublish: PropTypes.func,\r\n onEdit: PropTypes.func,\r\n onBack: PropTypes.func,\r\n};\r\n","import PropTypes from 'prop-types'\r\nimport React, { useContext } from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { sortableContainer, sortableElement, sortableHandle } from 'react-sortable-hoc'\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol'\r\nimport { Spinner } from '../../../components/Utils/Loaders'\r\nimport ProtocolContext from '../../../containers/Protocols/ProtocolContext/ProtocolContext'\r\nimport Card from '../../Cards/Card'\r\nimport { Add, Config, Copy } from '../../Icons/Icons'\r\nimport { arrayMoveImmutable } from '../../Utils/Commons'\r\n\r\nexport const VisitForms = props => {\r\n const { t } = useTranslation();\r\n const context = useContext(ProtocolContext);\r\n\r\n if (props.isLoading || !props.visitId)\r\n return }\r\n />\r\n\r\n //#region Sort\r\n function handleSortEnd({ oldIndex, newIndex }) {\r\n if (oldIndex == newIndex)\r\n return;\r\n const orderedForms = arrayMoveImmutable(props.forms, oldIndex, newIndex);\r\n orderedForms.forEach((form, index) => {\r\n form.order = index + 1;\r\n });\r\n\r\n if (props.onSortEnd)\r\n props.onSortEnd(orderedForms);\r\n }\r\n\r\n const DragHandle = sortableHandle(() =>
    );\r\n const SortableItem = sortableElement(({ form }) => (\r\n
  • \r\n \r\n {form}\r\n
  • \r\n ));\r\n const SortableContainer = sortableContainer(({ children }) => {\r\n return
      {children}
    ;\r\n });\r\n //#endregion\r\n\r\n const subTitleComponent = !context.isDisabled && (\r\n \r\n \r\n {t(\"protocols.visit.addVisitForm\")}\r\n \r\n {t('protocols.visit.copyForms')}\r\n \r\n );\r\n\r\n const content = (\r\n {props.forms.map((form, index) => (\r\n \r\n {form.title}\r\n }\r\n />\r\n ))}\r\n );\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nVisitForms.propTypes = {\r\n onSortEnd: PropTypes.func.isRequired,\r\n forms: PropTypes.array,\r\n visitId: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ])\r\n};\r\n\r\nexport const VisitExtraForms = props => {\r\n const { t } = useTranslation();\r\n\r\n const content = (props.forms &&
      \r\n {props.forms.map((form, index) => (\r\n
    • \r\n \r\n {form.title}\r\n \r\n
    • \r\n ))}\r\n
    );\r\n\r\n if (props.isLoading || !props.forms)\r\n return }\r\n />\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nVisitExtraForms.propTypes = {\r\n forms: PropTypes.array\r\n};","import React, { useContext } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { DropdownButton, MenuItem } from 'react-bootstrap'\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\n\r\nimport Card from '../../Cards/Card';\r\nimport { dateTimeFormatter, toLocaleDateTimeFormatter } from '../../Utils/Formatter';\r\nimport { Tooltip } from '../../Utils/Tooltips';\r\nimport { Check, Comments, Remove } from '../../Icons/Icons';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { WithAuth } from '../../Authorization/WithAuthProtocol';\r\nimport ProtocolContext from '../../../containers/Protocols/ProtocolContext/ProtocolContext';\r\n\r\nconst isDraft = (version) => { return version % 1 !== 0 }\r\nconst hasDraft = (visits) => { return visits.find(x => isDraft(x.version)) }\r\n\r\nexport const VisitHistory = props => {\r\n const { t } = useTranslation();\r\n const context = useContext(ProtocolContext);\r\n\r\n // Establezco campo Status en base a su versión. \r\n let hasActiveVersion = false;\r\n props.visitHistory.map(history => {\r\n history.active = false;\r\n if (isDraft(history.version)) {\r\n history.versionStatus = t(\"protocols.visitHistory.draft\");\r\n }\r\n else {\r\n if (!isDraft(history.version) && !hasActiveVersion) {\r\n hasActiveVersion = true;\r\n history.versionStatus = t(\"protocols.visitHistory.active\");\r\n history.active = true;\r\n }\r\n else {\r\n history.versionStatus = t(\"protocols.visitHistory.history\")\r\n }\r\n }\r\n })\r\n\r\n if (context.isLoading) return null;\r\n\r\n const columns = [\r\n { dataField: 'version', text: t(\"commons.version\") },\r\n { dataField: 'versionStatus', text: t(\"commons.status\") },\r\n { dataField: 'modified', text: t(\"commons.modified\"), formatter: (cell) => toLocaleDateTimeFormatter(cell) },\r\n { dataField: 'modifiedBy.fullName', text: t(\"commons.modifiedBy\") },\r\n {\r\n dataField: 'versionComments', text: '', formatter: function (_cell, row) {\r\n\r\n if (isDraft(row.version) || !row.versionComments) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n {\r\n dataField: 'actions',\r\n text: t(\"commons.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-visit-actions',\r\n classes: 'row-visit-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n\r\n return (\r\n
    \r\n {\r\n !context.isDisabled &&\r\n \r\n }\r\n key={rowIndex}\r\n id={`dropdown-basic-${rowIndex}`}\r\n >\r\n {\r\n isDraft(row.version) || (!hasDraft(props.visitHistory) && row.active) ? ( props.onEditVisit(row.visitId)}> {t(\"protocols.visitHistory.edit\")}) : null\r\n }\r\n {\r\n isDraft(row.version) ? // Draft\r\n (<>\r\n props.onRemoveVisit(row.visitId)}> {t(\"protocols.visitHistory.remove\")}\r\n props.onPublishVisit(row.visitId)}> {t(\"protocols.visitHistory.activate\")}\r\n )\r\n : // History o Active\r\n (<>\r\n {t(\"protocols.visitHistory.createPDF\")}\r\n {t(\"protocols.visitHistory.saveAsTemplate\")}\r\n )\r\n }\r\n \r\n \r\n }\r\n
    \r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nVisitHistory.propTypes = {\r\n visitHistory: PropTypes.array.isRequired,\r\n onPublishVisit: PropTypes.func.isRequired,\r\n onRemoveVisit: PropTypes.func.isRequired,\r\n onEditVisit: PropTypes.func.isRequired,\r\n};","import PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { CustomSelect } from '../../CustomControls/CustomSelect';\r\nimport { CustomSwitch } from '../../CustomControls/CustomSwitch';\r\nimport { Save } from '../../Icons/Icons';\r\n\r\nexport const FormsRestrictions = props => {\r\n const { t } = useTranslation();\r\n const { forms, practitioners, isLoading, onSave, onCancel } = props;\r\n\r\n const [selectedPractitioner, setSelectedPractitioner] = useState(null);\r\n const [userFormsRestrictions, setUserFormsRestrictions] = useState([]);\r\n\r\n const handlePractitionerChange = (selected) => {\r\n setSelectedPractitioner(selected);\r\n // Al cambiar de Profesional, cargo sus restricciones\r\n const userFormRestrictions = forms.map((form) => {\r\n return form.formRestrictions?.find(x => x.userId === selected.userId);\r\n }).filter(function (element) { return element !== undefined; });\r\n setUserFormsRestrictions(userFormRestrictions || []);\r\n }\r\n\r\n const handleRestrictionChange = (name, selected, formId) => {\r\n // Modifico State\r\n let userFormsRestrictionsCopy = JSON.parse(JSON.stringify(userFormsRestrictions));\r\n var restriction = userFormsRestrictionsCopy.find(x => x.formId === formId);\r\n\r\n if (!restriction) {\r\n restriction = { formId: formId, userId: selectedPractitioner?.userId, restrictView: false, restrictContribute: false }\r\n restriction[name] = selected;\r\n userFormsRestrictionsCopy.push(restriction);\r\n }\r\n else {\r\n let index = userFormsRestrictionsCopy.findIndex(x => x.formId === formId);\r\n restriction[name] = selected;\r\n userFormsRestrictionsCopy.splice(index, 1, restriction); // Update. \r\n }\r\n\r\n setUserFormsRestrictions(userFormsRestrictionsCopy);\r\n }\r\n\r\n const handleSave = () => {\r\n if (onSave && selectedPractitioner)\r\n onSave(selectedPractitioner.userId, userFormsRestrictions);\r\n }\r\n\r\n const handleCancel = () => {\r\n if (onCancel)\r\n onCancel();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n option.fullName}\r\n getOptionValue={(option) => option.userId}\r\n onChange={(_name, value) => handlePractitionerChange(value)}\r\n isMulti={false} />\r\n \r\n \r\n \r\n\r\n {\r\n selectedPractitioner &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {forms.map((form, idx) => {\r\n let userRestrictions = userFormsRestrictions?.find(x => x.formId === form.id);\r\n if (!userRestrictions)\r\n userRestrictions = { formId: form.id, userId: selectedPractitioner?.userId, restrictView: false, restrictContribute: false }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n
    {t(\"protocols.visitTracking.formRestrictions.forms\")}{t(\"protocols.visitTracking.formRestrictions.restrictView\")}{t(\"protocols.visitTracking.formRestrictions.restrictContribute\")}
    {form.title}{ handleRestrictionChange(name, value, form.id)} />}{ handleRestrictionChange(name, value, form.id)} />}
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nFormsRestrictions.defaultProps = {\r\n}\r\n\r\nFormsRestrictions.propTypes = {\r\n forms: PropTypes.array.isRequired,\r\n practitioners: PropTypes.array.isRequired,\r\n onSave: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { getPractitioners, updateFormRestrictionsAPI } from \"../../../api/protocol\";\r\nimport { HandleApiError, HandleMessageError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from \"../../../components/Notifications/Notifications\";\r\nimport { FormsRestrictions } from \"../../../components/Protocols/Tracking/FormsRestrictions\";\r\n\r\nexport const FormRestrictionsContainer = ({ protocolId, forms, onCancel, onClose }) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [practitioners, setPractitioners] = useState(null);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchPractitionersData = () => {\r\n setIsLoading(true);\r\n\r\n getPractitioners(protocolId, {\r\n pagination: { page: 1, sizePerPage: 1000, totalSize: 0 },\r\n sort: { sortField: \"FullName\", sortOrder: \"desc\" }\r\n })\r\n .then(response => {\r\n if (isSubscribed) {\r\n var paginatedData = response.data\r\n setPractitioners(paginatedData.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n if (isSubscribed) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n });\r\n }\r\n\r\n fetchPractitionersData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId]);\r\n\r\n const handleSave = async (userId, restrictions) => {\r\n try {\r\n if (!userId) return HandleMessageError(\"protocolNotifications.visitTracking_formRestrictions_selectUser\");\r\n setIsLoading(true);\r\n await updateFormRestrictionsAPI(protocolId, restrictions);\r\n Success(\"protocolNotifications.visitTracking_formRestrictions_restrictionsSaved\");\r\n setIsLoading(false);\r\n if (onClose)\r\n onClose();\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n const handleCancel = () => {\r\n if (onCancel)\r\n onCancel();\r\n }\r\n\r\n return \r\n}","import PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, Grid, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { CustomSelect } from '../../../components/CustomControls/CustomSelect';\r\nimport { ProtocolPicker } from '../../../components/CustomControls/ProtocolPicker';\r\nimport { useCopyForms, useForms } from './useForms';\r\nimport { useVisits } from './useVisits';\r\nimport { Copy } from '../../../components/Icons/Icons';\r\nimport { Spinner } from '../../../components/Utils/Loaders';\r\n\r\nexport const CopyFormsContainer = ({ protocolId, visitId, crossVersionId, onCancel, onSubmitted }) => {\r\n const { t } = useTranslation();\r\n const [getVisits, data, setVisits, isVisitLoading] = useVisits();\r\n const [getForms, forms, setForms, isFormsLoading] = useForms();\r\n const [copyForms, isLoading] = useCopyForms(protocolId, visitId);\r\n const [selectedProtocolId, setSelectedProtocolId] = useState(null);\r\n const [selectedVisitId, setSelectedVisitId] = useState(null);\r\n const [selectedForms, setSelectedForms] = useState([]);\r\n\r\n const handleProtocolSelected = (_name, selected) => {\r\n setSelectedVisitId(null);\r\n if (selected && selected.length > 0) {\r\n getVisits(selected[0].id);\r\n setSelectedProtocolId(selected[0].id)\r\n }\r\n else {\r\n setSelectedProtocolId(null);\r\n setVisits([]);\r\n setForms([]);\r\n }\r\n }\r\n\r\n const handleVisitSelected = (_name, selected) => {\r\n if (selected) {\r\n getForms(selectedProtocolId, selected.crossVersionId);\r\n setSelectedVisitId(selected.crossVersionId);\r\n }\r\n else {\r\n setSelectedVisitId(null);\r\n setVisits([]);\r\n setForms([]);\r\n }\r\n }\r\n\r\n const handleCopyForms = async () => {\r\n if (selectedForms && selectedForms.length > 0) {\r\n const res = await copyForms(selectedProtocolId, selectedVisitId, selectedForms);\r\n onSubmitted()\r\n }\r\n }\r\n\r\n const columns = [\r\n { dataField: 'title', text: t(\"protocols.visit.formTitle\") },\r\n ];\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n onSelect: (row, isSelect) => {\r\n if (isSelect)\r\n setSelectedForms(selectedForms.concat(row.id));\r\n else\r\n setSelectedForms(selectedForms.filter((id) => id !== row.id));\r\n },\r\n onSelectAll: (isSelect, rows) => {\r\n if (isSelect) {\r\n setSelectedForms(rows.map(r => r.id));\r\n }\r\n else {\r\n setSelectedForms([]);\r\n }\r\n },\r\n };\r\n\r\n if (isLoading)\r\n return ;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {t(\"protocols.visit.copyVisits_selectProtocol\")}\r\n \r\n \r\n {\r\n data && data.length > 0 &&\r\n \r\n {t(\"protocols.visit.copyForms_selectVisit\")}\r\n option.title}\r\n getOptionValue={(option) => option.id}\r\n onChange={handleVisitSelected}\r\n />\r\n \r\n }\r\n \r\n \r\n {\r\n forms && forms.length > 0 &&\r\n \r\n \r\n \r\n {t(\"protocols.visit.copyForms_forms\")}\r\n <>{t(\"commons.noData\")}}\r\n loading={isFormsLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n selectRow={selectRow}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCopyFormsContainer.propTypes = {\r\n protocolId: PropTypes.number.isRequired,\r\n crossVersionId: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n visitId: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ])\r\n};","import { useState } from \"react\";\r\nimport { copyFormsAPI, getForms } from \"../../../api/protocol\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const useForms = () => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const fetchData = async (protocolId, visitId) => {\r\n try {\r\n setIsLoading(true);\r\n const response = await getForms(protocolId, visitId);\r\n setData(response.data.sort((function (a, b) { return a.order - b.order; })));\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n return [fetchData, data, setData, isLoading];\r\n}\r\n\r\nexport const useCopyForms = (protocolId, visitId) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const copyForms = async (fromProtocolId, fromVisitId, formsToCopyIds) => {\r\n try {\r\n setIsLoading(true);\r\n const response = await copyFormsAPI(protocolId, visitId, fromProtocolId, fromVisitId, formsToCopyIds);\r\n setIsLoading(false);\r\n\r\n return response;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n return [copyForms, isLoading];\r\n}","import React, { useState } from 'react';\r\n\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { CustomRadio } from '../../CustomControls/CustomRadio';\r\nimport { Spinner } from '../../Utils/Loaders';\r\n\r\nexport const SaveAsTemplate = ({ isLoading, onCancel, onSaveAsTemplate }) => {\r\n const { t } = useTranslation();\r\n const [isCrossProtocol, setIsCrossProtocol] = useState(null);\r\n\r\n const handleCrossProtocolChange = (_controlName, selectedvalue) => {\r\n if (selectedvalue)\r\n setIsCrossProtocol(selectedvalue === \"0\" ? true : false);\r\n }\r\n\r\n if (isLoading)\r\n return \r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Col, ControlLabel, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { createForm, editForm, getForm, removeForm } from '../../../api/protocol';\r\nimport { createFormTemplate, getFormTemplates, removeFormTemplate } from '../../../api/protocolTemplates';\r\nimport { useAuthProtocol } from '../../../components/Authorization/useAuthorization.js';\r\nimport { DynamicFormCreator } from '../../../components/DynamicForm/DynamicFormCreator';\r\nimport { ModalData } from '../../../components/Modals/ModalData';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { CustomRadio } from '../../../components/CustomControls/CustomRadio';\r\nimport { SaveAsTemplate } from '../../../components/Protocols/Visit/SaveAsTemplate';\r\n\r\nexport const VisitForm = (props) => {\r\n const { match: { params: { protocolId, formId, visitId } } } = props;\r\n let history = useHistory();\r\n const { t } = useTranslation();\r\n const [isAuthorized] = useAuthProtocol(protocolId);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [form, setForm] = useState(null);\r\n const [modal, setModal] = useState(null);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getForm(protocolId, visitId, formId)\r\n .then(response => {\r\n setForm(response.data);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n if (formId)\r\n fetchData();\r\n else\r\n setForm({\r\n type: '',\r\n title: ''\r\n });\r\n }, [protocolId, visitId, formId]);\r\n\r\n const [formTemplates, setFormTemplates] = useState([]);\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const response = await getFormTemplates(protocolId);\r\n setFormTemplates(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n }\r\n }\r\n fetchData();\r\n }, [protocolId]);\r\n\r\n\r\n const handleSaveClick = async (form) => {\r\n if (!form) return;\r\n\r\n setIsLoading(true);\r\n if (!formId) {\r\n try {\r\n await createForm(protocolId, visitId, form);\r\n setIsLoading(false);\r\n Success(\"protocolNotifications.form_Created\");\r\n history.push(`/admin/protocols/${protocolId}/visitsTemplate/${visitId}`);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n else {\r\n try {\r\n await editForm(protocolId, visitId, formId, form);\r\n setIsLoading(false);\r\n Success(\"protocolNotifications.form_Updated\");\r\n history.push(`/admin/protocols/${protocolId}/visitsTemplate/${visitId}`);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n const handleRemoveForm = (id) => {\r\n removeForm(protocolId, visitId, id)\r\n .then(() => {\r\n history.push(`/admin/protocols/${protocolId}/visitsTemplate/${visitId}`);\r\n }).catch(error => {\r\n console.error(error);\r\n HandleApiError(error);\r\n });\r\n }\r\n\r\n //#region Templates\r\n const handleSaveAsTemplate = async (form) => {\r\n setModal( setModal(null)}\r\n >\r\n setModal(null)}\r\n onSaveAsTemplate={(isCrossProtocol) => confirmSaveAsTemplate(form, isCrossProtocol)}\r\n />\r\n )\r\n }\r\n\r\n const confirmSaveAsTemplate = async (form, isCrossProtocol) => {\r\n try {\r\n setIsLoading(true);\r\n const formTemplate = await createFormTemplate(protocolId, isCrossProtocol, form);\r\n Success(\"protocolNotifications.formTemplate_Created\");\r\n setIsLoading(false);\r\n setFormTemplates([...formTemplates, formTemplate.data]);\r\n setModal(null)\r\n } catch (error) {\r\n console.log(error)\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n const handleRemoveTemplate = async (templateId) => {\r\n try {\r\n await removeFormTemplate(protocolId, templateId);\r\n Success(\"protocolNotifications.formTemplate_Removed\");\r\n setFormTemplates(formTemplates.filter((item) => item.id !== templateId));\r\n setIsLoading(false);\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n //#endregion\r\n\r\n const isDisabled = !isAuthorized([\"Visits.Add\"]);\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n );\r\n}","import { useState, useEffect } from \"react\";\r\nimport { getRoleMasterData, getRoles } from \"../../../api/security\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const useRoleMasterData = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getRoleMasterData().then(response => {\r\n if (isSubscribed) {\r\n setData(response.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n setData([]);\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return [isLoading, data];\r\n}\r\n\r\nexport const useRoles = (query) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = () => {\r\n if (isSubscribed) {\r\n setIsLoading(true);\r\n setReload(false);\r\n getRoles(query).then(response => {\r\n\r\n if (isSubscribed) {\r\n setData(response.data);\r\n setIsLoading(false);\r\n }\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setData([]);\r\n setIsLoading(false);\r\n });\r\n }\r\n };\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n return [data, isLoading, setReload];\r\n}","import PropTypes from 'prop-types'\r\nimport React from \"react\"\r\nimport SweetAlert from \"react-bootstrap-sweetalert\"\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nexport const ConfirmRemoveRole = (props) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n props.onConfirm(props.roleId)}\r\n onCancel={() => { props.onClose() }}\r\n confirmBtnBsStyle=\"success\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.yes\")}\r\n cancelBtnText={t(\"buttons.no\")}\r\n showCancel\r\n >\r\n \r\n \r\n );\r\n}\r\n\r\nConfirmRemoveRole.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n roleId: PropTypes.string.isRequired\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport { CustomSwitch } from \"../CustomControls/CustomSwitch\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useAuthorization } from \"./useAuthorization\";\r\n\r\nexport const Permissions = (props) => {\r\n const { claims, modules, onChange, disabled, name } = props;\r\n const [selectedClaims, setSelectedClaims] = useState([]);\r\n const { t } = useTranslation();\r\n const [, , isAuthorized] = useAuthorization();\r\n\r\n useEffect(() => {\r\n setSelectedClaims(claims);\r\n }, [])\r\n\r\n const handleChange = (claim, value) => {\r\n let claimsCopy = null;\r\n\r\n if (value) {\r\n // Agregado\r\n claimsCopy = [...JSON.parse(JSON.stringify(selectedClaims)), claim];\r\n setSelectedClaims(claimsCopy)\r\n }\r\n else {\r\n // Eliminado\r\n claimsCopy = JSON.parse(JSON.stringify(selectedClaims)).filter(x => x !== claim)\r\n setSelectedClaims(claimsCopy)\r\n }\r\n\r\n if (onChange)\r\n onChange(name, claimsCopy);\r\n };\r\n\r\n const yes = (name) => ();\r\n const no = (name) => ();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {modules.map((x, idx) => {\r\n if (!isAuthorized([\"Tenant.View\"]) && x === \"Tenant\")\r\n return \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n
    {t('security.permissions.module')}{t('security.permissions.view')}{t('security.permissions.list')}{t('security.permissions.create')}{t('security.permissions.edit')}{t('security.permissions.delete')}
    {t(`security.permissions.modules.${x}`)}{selectedClaims.filter(c => c == `${x}.View`).length > 0 ? yes(`${x}.View`) : no(`${x}.View`)}{selectedClaims.filter(c => c == `${x}.List`).length > 0 ? yes(`${x}.List`) : no(`${x}.List`)}{selectedClaims.filter(c => c == `${x}.Create`).length > 0 ? yes(`${x}.Create`) : no(`${x}.Create`)}{selectedClaims.filter(c => c == `${x}.Edit`).length > 0 ? yes(`${x}.Edit`) : no(`${x}.Edit`)}{selectedClaims.filter(c => c == `${x}.Delete`).length > 0 ? yes(`${x}.Delete`) : no(`${x}.Delete`)}
    \r\n );\r\n}\r\n\r\nPermissions.propTypes = {\r\n onChange: PropTypes.func,\r\n claims: PropTypes.array.isRequired,\r\n modules: PropTypes.array.isRequired\r\n};\r\n\r\nPermissions.defaultProps = {\r\n disabled: false,\r\n onText: \"Si\",\r\n offText: \"No\",\r\n bsSize: \"small\"\r\n};","import { ErrorMessage } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Grid, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from '../Cards/Card';\r\nimport { CustomSelect } from '../CustomControls/CustomSelect';\r\nimport { CustomSwitch } from '../CustomControls/CustomSwitch';\r\nimport { Edit, Remove } from '../Icons/Icons';\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { ConfirmRemoveRole } from './Modals';\r\nimport { Permissions } from './Permissions';\r\nimport { useAuthorization } from './useAuthorization';\r\nimport { WithAuth } from './WithAuth';\r\n\r\nexport const Roles = props => {\r\n const { t } = useTranslation();\r\n const { roles, onEdit, onRemove, isLoading } = props;\r\n const [modal, setModal] = useState(null);\r\n const [, , isAuthorized] = useAuthorization();\r\n\r\n const columns = [\r\n { dataField: 'name', text: t(\"security.roles.name\"), headerStyle: { width: '250px' }, },\r\n { dataField: 'tenant', text: t(\"security.roles.tenant\"), headerStyle: { width: '250px' }, },\r\n {\r\n dataField: 'view',\r\n text: t(\"protocols.practitioner.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-actions',\r\n classes: 'row-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const showModal = (roleId) => {\r\n setModal(\r\n setModal(null)}\r\n onConfirm={(confirmRemove)}\r\n roleId={roleId}\r\n />\r\n );\r\n }\r\n const confirmRemove = (roleId) => {\r\n setModal(null);\r\n onRemove(roleId);\r\n }\r\n\r\n const expandedContent = (row) => {\r\n const modules = [\r\n { id: 0, code: \"Tenant\", title: t(\"security.permissions.modules.Tenant\") },\r\n { id: 1, code: \"Agenda\", title: t(\"security.permissions.modules.Agenda\") },\r\n { id: 2, code: \"Database\", title: t(\"security.permissions.modules.Database\") },\r\n { id: 3, code: \"MedicalRecords\", title: t(\"security.permissions.modules.MedicalRecords\") },\r\n { id: 4, code: \"Protocols\", title: t(\"security.permissions.modules.Protocols\") },\r\n { id: 5, code: \"Security\", title: t(\"security.permissions.modules.Security\") },\r\n { id: 6, code: \"Users\", title: t(\"security.permissions.modules.Users\") },\r\n { id: 7, code: \"Settings\", title: t(\"security.permissions.modules.Settings\") },\r\n ];\r\n\r\n const claims = row.claims;\r\n const yes = ;//;\r\n const no = ; //;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {modules.map((x, idx) => {\r\n if (!isAuthorized([\"Tenant.View\"]) && x.code === \"Tenant\")\r\n return \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n
    {t('security.permissions.module')}{t('security.permissions.view')}{t('security.permissions.list')}{t('security.permissions.create')}{t('security.permissions.edit')}{t('security.permissions.delete')}
    {x.title}{claims.filter(c => c == `${x.code}.View`).length > 0 ? yes : no}{claims.filter(c => c == `${x.code}.List`).length > 0 ? yes : no}{claims.filter(c => c == `${x.code}.Create`).length > 0 ? yes : no}{claims.filter(c => c == `${x.code}.Edit`).length > 0 ? yes : no}{claims.filter(c => c == `${x.code}.Delete`).length > 0 ? yes : no}
    \r\n );\r\n }\r\n\r\n const expandRow = {\r\n renderer: expandedContent,\r\n onlyOneExpanding: true,\r\n };\r\n\r\n return (\r\n <>\r\n {modal}\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading} //only loading is true, react-bootstrap-table will render overlay\r\n overlay={overlayFactory({ spinner: true })}\r\n expandRow={expandRow}\r\n />\r\n \r\n );\r\n}\r\n\r\nRoles.propTypes = {\r\n roles: PropTypes.array.isRequired,\r\n onEdit: PropTypes.func.isRequired,\r\n onRemove: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const RoleForm = props => {\r\n\r\n const {\r\n values,\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n setFieldTouched,\r\n masterData,\r\n tenants,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n if (!values.role) {\r\n values.role = {\r\n name: '',\r\n claims: [],\r\n tenant: {}\r\n };\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n tenants && tenants.length > 0 &&\r\n \r\n \r\n {t('security.users.tenant')}\r\n x.tenantName}\r\n getOptionValue={x => x.tenantId}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n {t(\"security.roles.name\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"security.roles.permissions\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n","import axios from './index';\r\n\r\nexport const getTenants = () => {\r\n return axios.get(`api/v1/tenant`);\r\n};\r\nexport const getTenant = (tenantId) => {\r\n return axios.get(`api/v1/tenant/${tenantId}`);\r\n};\r\nexport const createTenant = (tenant) => {\r\n return axios.post(`api/v1/tenant`, tenant);\r\n};\r\nexport const editTenant = (tenantId, tenant) => {\r\n return axios.put(`api/v1/tenant/${tenantId}`, tenant);\r\n};\r\nexport const removeTenant = (tenantId) => {\r\n return axios.delete(`api/v1/tenant/${tenantId}`);\r\n};","import { useState } from \"react\";\r\nimport { HandleApiError } from \"../../components/Notifications/APIErrorHandler\";\r\nimport { getTenant, getTenants, editTenant, createTenant, removeTenant } from \"../../api/tenants\";\r\n\r\nexport const useTenants = () => {\r\n const [tenants, setTenants] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const getAll = () => {\r\n setIsLoading(true);\r\n getTenants()\r\n .then(response => {\r\n setTenants(response.data);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n\r\n const get = async (tenantId, isSubscribed) => {\r\n\r\n try {\r\n setIsLoading(true);\r\n const resp = await getTenant(tenantId);\r\n\r\n if (isSubscribed) {\r\n setIsLoading(false);\r\n return resp.data;\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n return {};\r\n }\r\n\r\n //return getTenant(tenantId);\r\n }\r\n\r\n const create = (tenantId, data) => {\r\n return createTenant(tenantId, data);\r\n }\r\n\r\n const update = (tenantId, data) => {\r\n return editTenant(tenantId, data);\r\n }\r\n\r\n const remove = (tenantId) => {\r\n return removeTenant(tenantId);\r\n }\r\n\r\n return [tenants, isLoading, getAll, get, create, update, remove];\r\n}","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { withFormik } from 'formik';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport { createRole } from \"../../../api/security\";\r\nimport { useRoleMasterData } from \"./useRoles\";\r\nimport { getRoleSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { RoleForm } from \"../../../components/Authorization/Roles\";\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { useTenants } from \"../../Tenants/Hooks\";\r\nimport { Spinner } from \"../../../components/Utils/Loaders\";\r\nimport { useAuthorization } from \"../../../components/Authorization/useAuthorization\";\r\n\r\nexport const CreateRoleContainer = () => {\r\n let history = useHistory();\r\n const [isLoading, data] = useRoleMasterData();\r\n const [tenants, isLoadingTenants, getAll] = useTenants();\r\n const [,, isAuthorized] = useAuthorization();\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => { await getAll(); }\r\n\r\n if (isAuthorized([\"Tenant.List\"]))\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n const handleSubmit = () => {\r\n history.push(`/admin/settings/roles`);\r\n }\r\n const handleCancel = () => {\r\n history.goBack()\r\n //history.push(`/admin/settings/roles`);\r\n }\r\n\r\n if (isLoading || isLoadingTenants) return ;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst CreateRoleContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: () => ({}),\r\n\r\n validationSchema: getRoleSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n //console.log(\"Posting Role:\", values.role);\r\n\r\n const role = {\r\n name: values.role.name,\r\n claims: values.role.claims,\r\n tenant: values.role.tenant\r\n }\r\n\r\n createRole(role)\r\n .then(res => {\r\n var role = res.data;\r\n formikBag.setSubmitting(false);\r\n Success(\"securityNotifications.role_Created\");\r\n formikBag.props.onSubmit(role);\r\n }).catch(error => {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'RoleForm',\r\n\r\n})(RoleForm));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport { CustomSwitch } from \"../CustomControls/CustomSwitch\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const StudyPermissions = (props) => {\r\n const { claims, onChange, disabled, name } = props;\r\n const [selectedClaims, setSelectedClaims] = useState([]);\r\n const { t } = useTranslation();\r\n\r\n const modules = [\r\n { id: 1, code: \"Brief\", title: t(\"protocolStudyRoles.modules.brief\") },\r\n { id: 2, code: \"Practitioners\", title: t(\"protocolStudyRoles.modules.practitioners\") },\r\n { id: 3, code: \"Patients\", title: t(\"protocolStudyRoles.modules.patients\") },\r\n { id: 4, code: \"Visits\", title: t(\"protocolStudyRoles.modules.visits\") },\r\n { id: 5, code: \"VisitTracking\", title: t(\"protocolStudyRoles.modules.visitTracking\") },\r\n { id: 6, code: \"InternalNotes\", title: t(\"protocolStudyRoles.modules.internalNotes\") },\r\n { id: 7, code: \"ExternalNotes\", title: t(\"protocolStudyRoles.modules.externalNotes\") },\r\n { id: 8, code: \"Freezers\", title: t(\"protocolStudyRoles.modules.freezers\") },\r\n ];\r\n\r\n useEffect(() => {\r\n setSelectedClaims(claims);\r\n }, [])\r\n\r\n const handleChange = (permission, value) => {\r\n const splitted = permission.split('.');\r\n const module = parseInt(splitted[0]);\r\n const action = parseInt(splitted[1]);\r\n\r\n let permissionsCopy = null;\r\n\r\n if (value) {\r\n // Agregado\r\n permissionsCopy = [...JSON.parse(JSON.stringify(selectedClaims)), { module, action }];\r\n setSelectedClaims(permissionsCopy)\r\n }\r\n else {\r\n // Eliminado\r\n const indexToRemove = selectedClaims.findIndex(x => x.module === module && x.action === action);\r\n permissionsCopy = JSON.parse(JSON.stringify(selectedClaims)).filter((_, i) => i !== indexToRemove);\r\n setSelectedClaims(permissionsCopy)\r\n }\r\n\r\n if (onChange)\r\n onChange(name, permissionsCopy);\r\n };\r\n\r\n const yes = (name) => ();\r\n const no = (name) => ();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {modules.map((x, idx) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (idx === 3 || idx === 4) &&\r\n \r\n }\r\n {\r\n (idx === 0) &&\r\n \r\n }\r\n {\r\n (idx === 4) &&\r\n \r\n }\r\n {\r\n (idx === 4) &&\r\n \r\n }\r\n \r\n )\r\n })}\r\n \r\n
    {t('security.permissions.module')}{t('security.permissions.view')}{t('security.permissions.list')}{t('security.permissions.create')}{t('security.permissions.edit')}{t('security.permissions.delete')}
    {x.title}{selectedClaims.filter(c => c.module === x.id && c.action === 5).length > 0 ? yes(`${x.id}.5`) : no(`${x.id}.5`)}{selectedClaims.filter(c => c.module === x.id && c.action === 4).length > 0 ? yes(`${x.id}.4`) : no(`${x.id}.4`)}{selectedClaims.filter(c => c.module === x.id && c.action === 1).length > 0 ? yes(`${x.id}.1`) : no(`${x.id}.1`)}{selectedClaims.filter(c => c.module === x.id && c.action === 2).length > 0 ? yes(`${x.id}.2`) : no(`${x.id}.2`)}{selectedClaims.filter(c => c.module === x.id && c.action === 3).length > 0 ? yes(`${x.id}.3`) : no(`${x.id}.3`)}{t('security.permissions.publish')}{selectedClaims.filter(c => c.module === x.id && c.action === 6).length > 0 ? yes(`${x.id}.6`) : no(`${x.id}.6`)}{t('security.permissions.close')}{selectedClaims.filter(c => c.module === x.id && c.action === 7).length > 0 ? yes(`${x.id}.7`) : no(`${x.id}.7`)}{t('security.permissions.upload')}{selectedClaims.filter(c => c.module === x.id && c.action === 8).length > 0 ? yes(`${x.id}.8`) : no(`${x.id}.8`)}{t('security.permissions.exportPatientVisit')}{selectedClaims.filter(c => c.module === x.id && c.action === 9).length > 0 ? yes(`${x.id}.9`) : no(`${x.id}.9`)}
    \r\n );\r\n}\r\n\r\nStudyPermissions.propTypes = {\r\n onChange: PropTypes.func,\r\n claims: PropTypes.array.isRequired\r\n};\r\n\r\nStudyPermissions.defaultProps = {\r\n disabled: false,\r\n onText: \"Si\",\r\n offText: \"No\",\r\n bsSize: \"small\"\r\n};","import { ErrorMessage } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Grid, Label, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from '../Cards/Card';\r\nimport { CustomSwitch } from '../CustomControls/CustomSwitch';\r\nimport { Edit, Remove } from '../Icons/Icons';\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { ConfirmRemoveRole } from './Modals';\r\nimport { StudyPermissions } from './StudyPermissions';\r\nimport { WithAuth } from './WithAuth';\r\n\r\nexport const StudyRoles = props => {\r\n const { t } = useTranslation();\r\n const { roles, onEdit, onRemove, isLoading } = props;\r\n const [modal, setModal] = useState(null);\r\n\r\n const columns = [\r\n { dataField: 'name', text: t(\"security.studyRoles.name\"), headerStyle: { width: '250px' }, },\r\n {\r\n dataField: 'view',\r\n text: t(\"protocols.practitioner.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-actions',\r\n classes: 'row-actions',\r\n formatter: function (_cell, row, rowIndex, _formatExtraData) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const showModal = (roleId) => {\r\n setModal(\r\n setModal(null)}\r\n onConfirm={(confirmRemove)}\r\n roleId={roleId}\r\n />\r\n );\r\n }\r\n const confirmRemove = (roleId) => {\r\n setModal(null);\r\n onRemove(roleId);\r\n }\r\n\r\n const expandedContent = (row) => {\r\n const modules = [\r\n { id: 1, code: \"Brief\", title: t(\"protocolStudyRoles.modules.brief\") },\r\n { id: 2, code: \"Practitioners\", title: t(\"protocolStudyRoles.modules.practitioners\") },\r\n { id: 3, code: \"Patients\", title: t(\"protocolStudyRoles.modules.patients\") },\r\n { id: 4, code: \"Visits\", title: t(\"protocolStudyRoles.modules.visits\") },\r\n { id: 5, code: \"VisitTracking\", title: t(\"protocolStudyRoles.modules.visitTracking\") },\r\n { id: 6, code: \"InternalNotes\", title: t(\"protocolStudyRoles.modules.internalNotes\") },\r\n { id: 7, code: \"ExternalNotes\", title: t(\"protocolStudyRoles.modules.externalNotes\") },\r\n ];\r\n\r\n const permissions = row.permissions;\r\n const yes = ;\r\n const no = ;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {modules.map((x, idx) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (idx === 0) &&\r\n \r\n }\r\n {\r\n (idx === 3 || idx === 4) &&\r\n \r\n }\r\n {\r\n (idx === 4) &&\r\n \r\n }\r\n {\r\n (idx === 4) &&\r\n \r\n }\r\n \r\n )\r\n })}\r\n \r\n
    {t('security.permissions.module')}{t('security.permissions.view')}{t('security.permissions.list')}{t('security.permissions.create')}{t('security.permissions.edit')}{t('security.permissions.delete')}
    {x.title}{permissions.filter(c => c == `${x.code}.View`).length > 0 ? yes : no}{permissions.filter(c => c == `${x.code}.List`).length > 0 ? yes : no}{permissions.filter(c => c == `${x.code}.Add`).length > 0 ? yes : no}{permissions.filter(c => c == `${x.code}.Edit`).length > 0 ? yes : no}{permissions.filter(c => c == `${x.code}.Delete`).length > 0 ? yes : no}{t('security.permissions.close')}{permissions.filter(c => c == `${x.code}.Close`).length > 0 ? yes : no}{t('security.permissions.publish')}{permissions.filter(c => c == `${x.code}.Publish`).length > 0 ? yes : no}{t('security.permissions.upload')}{permissions.filter(c => c === `${x.code}.UploadFile`).length > 0 ? yes : no}{t('security.permissions.exportPatientVisit')}{permissions.filter(c => c === `${x.code}.ExportPatientVisit`).length > 0 ? yes : no}
    \r\n );\r\n }\r\n\r\n const expandRow = {\r\n renderer: expandedContent,\r\n onlyOneExpanding: true,\r\n };\r\n\r\n return (\r\n <>\r\n {modal}\r\n <>{t(\"commons.noData\")}}\r\n expandRow={expandRow}\r\n />\r\n \r\n );\r\n}\r\n\r\nStudyRoles.propTypes = {\r\n roles: PropTypes.array.isRequired,\r\n onEdit: PropTypes.func.isRequired,\r\n onRemove: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const StudyRoleForm = props => {\r\n\r\n const {\r\n values,\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n if (!values.role) {\r\n values.role = {\r\n name: '',\r\n permissions: []\r\n };\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"security.studyRoles.name\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"security.roles.permissions\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n}","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { withFormik } from 'formik';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport { createStudyRole } from \"../../../api/security\";\r\nimport { getStudyRoleSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { StudyRoleForm } from \"../../../components/Authorization/StudyRoles\";\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\n\r\nexport const CreateStudyRoleContainer = () => {\r\n let history = useHistory();\r\n\r\n const handleSubmit = () => {\r\n history.push(`/admin/settings/studyRoles`);\r\n }\r\n const handleCancel = () => {\r\n history.push(`/admin/settings/studyRoles`);\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst CreateStudyRoleContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: () => ({}),\r\n\r\n validationSchema: getStudyRoleSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n const role = {\r\n name: values.role.name,\r\n permissions: values.role.permissions//.flat().filter(x => x)\r\n }\r\n //console.log(\"Posting StudyRole:\", values);\r\n createStudyRole(role)\r\n .then(res => {\r\n var role = res.data;\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.protocol_Created\");\r\n formikBag.props.onSubmit(role);\r\n }).catch(error => {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'StudyRoleForm',\r\n\r\n})(StudyRoleForm));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport PropTypes from 'prop-types'\r\nimport { withFormik } from 'formik';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport { getRole, editRole } from \"../../../api/security\";\r\nimport { useRoleMasterData } from \"./useRoles\";\r\nimport { getRoleSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { RoleForm } from \"../../../components/Authorization/Roles\";\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\n\r\nexport const EditRoleContainer = (props) => {\r\n let history = useHistory();\r\n const { match: { params } } = props;\r\n\r\n const [isRoleLoading, masterData] = useRoleMasterData();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [role, setRole] = useState(null);\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getRole(params.roleId)\r\n .then(response => {\r\n var role = response.data;\r\n //console.log(\"GET Role: \", role);\r\n //role.claims = role.claims.map(x => ({ id: x, title: x }));\r\n setRole(role);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n fetchData();\r\n }, [params.roleId]);\r\n\r\n const handleSubmit = (brief) => {\r\n history.push(`/admin/settings/roles`);\r\n }\r\n const handleCancel = () => {\r\n history.push(`/admin/settings/roles`);\r\n }\r\n\r\n if (isRoleLoading || isLoading)\r\n return null;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst EditRoleContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({ role: props.role }),\r\n\r\n validationSchema: getRoleSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n //console.log(\"Puting Role:\", values.role);\r\n const role = {\r\n id: values.role.id,\r\n name: values.role.name,\r\n claims: values.role.claims\r\n }\r\n\r\n editRole(role.id, role)\r\n .then(res => {\r\n var role = res.data;\r\n formikBag.setSubmitting(false);\r\n Success(\"securityNotifications.role_Updated\");\r\n formikBag.props.onSubmit(role);\r\n }).catch(error => {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'RoleForm',\r\n\r\n})(RoleForm));\r\n\r\nEditRoleContainerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n masterData: PropTypes.object.isRequired,\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport PropTypes from 'prop-types'\r\nimport { withFormik } from 'formik';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { getStudyRole, editStudyRole } from \"../../../api/security\";\r\nimport { getStudyRoleSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { StudyRoleForm } from \"../../../components/Authorization/StudyRoles\";\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { groupBy } from \"../../../components/Utils/Commons\";\r\nimport { Spinner } from \"../../../components/Utils/Loaders\";\r\n\r\nexport const EditStudyRoleContainer = (props) => {\r\n let history = useHistory();\r\n const { match: { params } } = props;\r\n const { t } = useTranslation();\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [role, setRole] = useState(null);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n getStudyRole(params.roleId)\r\n .then(response => {\r\n var role = response.data;\r\n //console.log(\"DatabaseRoles \", role)\r\n //role.permissions = groupBy(role.permissions.map(x => ({ ...x, title: t(`protocolStudyRoles.actions.${x.action}`) })), \"module\");\r\n setRole(role);\r\n setIsLoading(false);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n fetchData();\r\n }, [params.roleId]);\r\n\r\n const handleSubmit = () => {\r\n history.push(`/admin/settings/studyRoles`);\r\n }\r\n const handleCancel = () => {\r\n history.push(`/admin/settings/studyRoles`);\r\n }\r\n\r\n if (!role)\r\n return null;\r\n\r\n if (isLoading)\r\n return \r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst EditStudyRoleContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({ role: props.role }),\r\n\r\n validationSchema: getStudyRoleSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n const role = {\r\n id: values.role.id,\r\n name: values.role.name,\r\n permissions: values.role.permissions\r\n }\r\n\r\n //let permissions = [];\r\n //for (let index = 1; index < 6; index++) { // Hay 5 modulos.\r\n // if (values.role.permissions[index]) {\r\n // permissions = permissions.concat(values.role.permissions[index]);\r\n // }\r\n //}\r\n //role.permissions = permissions;\r\n\r\n editStudyRole(role.id, role)\r\n .then(res => {\r\n var role = res.data;\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.protocol_Updated\");\r\n formikBag.props.onSubmit(role);\r\n }).catch(error => {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n });\r\n },\r\n\r\n displayName: 'RoleForm',\r\n\r\n})(StudyRoleForm));\r\n\r\nEditStudyRoleContainerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n};","import React from 'react';\r\n\r\n// this is the equivalent to the createStore method of Redux\r\n// https://redux.js.org/api/createstore\r\n\r\nconst AdminContext = React.createContext();\r\n\r\nexport default AdminContext;","import React from 'react'\r\nimport BootstrapTable from 'react-bootstrap-table-next'\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css'\r\nimport overlayFactory from 'react-bootstrap-table2-overlay'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { dateFormatter, dateTimeFormatter } from '../Utils/Formatter'\r\n\r\nexport const AuditRolePermissions = (props) => {\r\n const { data, isLoading } = props;\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'actionDateTime', text: t('protocols.auditUserRole.dateTime'), formatter: dateTimeFormatter },\r\n { dataField: 'actionByUser.fullName', text: t('auditTrail.user') },\r\n { dataField: 'permissions', text: t('security.roles.permissions') },\r\n { dataField: 'start', text: t('protocols.auditUserRole.start'), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YYYY\") } },\r\n { dataField: 'end', text: t('protocols.auditUserRole.end'), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YYYY\") } }\r\n ];\r\n\r\n return (\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading} //only loading is true, react-bootstrap-table will render overlay\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n );\r\n}\r\n\r\nAuditRolePermissions.propTypes = {\r\n};","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n//Components\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { AuditRolePermissions } from '../../../components/AuditTrail/AuditRolePermissions';\r\nimport { CustomSelect } from '../../../components/CustomControls/CustomSelect';\r\nimport { useRoleMasterData } from '../Authorization/useRoles';\r\nimport { useAuditRolePermissions } from './hooks';\r\n\r\nexport const AuditRolePermissionsContainer = () => {\r\n const { t } = useTranslation();\r\n const [, roles] = useRoleMasterData();\r\n const [getAudits, audits, isLoading] = useAuditRolePermissions();\r\n\r\n const handleSearch = (_name, value) => {\r\n if (value)\r\n getAudits(value.id);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n x.name}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { useState } from \"react\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { getUsersByIdAPI } from \"../../../api/identity\";\r\nimport { getAuditRolePermissionsAPI, getAuditStudyRolePermissionsAPI } from \"../../../api/security\";\r\n\r\nexport const useAuditRolePermissions = () => {\r\n const [audits, setAudits] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const fetchData = async (roleId) => {\r\n setIsLoading(true);\r\n try {\r\n setIsLoading(true);\r\n var response = await getAuditRolePermissionsAPI(roleId);\r\n if (!response.data)\r\n return null;\r\n\r\n // Obtengo datos del usuario q realizó la acción\r\n var usersResponse = await getUsersByIdAPI(response.data.filter(x => x.actionBy).map(x => { return x.actionBy }))\r\n if (usersResponse.data) {\r\n response.data.forEach(item => {\r\n item.actionByUser = usersResponse.data.find(x => x.userId == item.actionBy)\r\n });\r\n }\r\n\r\n setAudits(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n return [fetchData, audits, isLoading];\r\n}\r\n\r\n\r\nexport const useAuditStudyRolePermissions = () => {\r\n const [audits, setAudits] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const fetchData = async (roleId) => {\r\n setIsLoading(true);\r\n try {\r\n setIsLoading(true);\r\n var response = await getAuditStudyRolePermissionsAPI(roleId);\r\n if (!response.data)\r\n return null;\r\n\r\n // Obtengo datos del usuario q realizó la acción\r\n var usersResponse = await getUsersByIdAPI(response.data.filter(x => x.actionBy).map(x => { return x.actionBy }))\r\n if (usersResponse.data) {\r\n response.data.forEach(item => {\r\n item.actionByUser = usersResponse.data.find(x => x.userId == item.actionBy)\r\n });\r\n }\r\n\r\n setAudits(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n return [fetchData, audits, isLoading];\r\n}","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink, useHistory } from \"react-router-dom\";\r\nimport { removeRole } from \"../../../api/security\";\r\nimport { AuditModal } from \"../../../components/AuditTrail/AuditModal\";\r\nimport { Roles } from \"../../../components/Authorization/Roles\";\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuth\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { Add, Audit } from \"../../../components/Icons/Icons\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from \"../../../components/Notifications/Notifications\";\r\nimport AdminContext from \"../../Settings/AdminContext/AdminContext\";\r\nimport { useRoles } from \"./useRoles\";\r\nimport { AuditRolePermissionsContainer } from \"../Audit/AuditRolePermissions\";\r\n\r\nexport const RolesContainer = () => {\r\n let history = useHistory();\r\n const { t } = useTranslation();\r\n const [modal, setModal] = useState(null);\r\n const [query, setQuery] = useState({\r\n filters: {}\r\n });\r\n\r\n const [roles, isLoading, reloadRoles] = useRoles(query);\r\n const context = useContext(AdminContext);\r\n\r\n useEffect(() => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.filters[\"TenantId\"] = context?.selectedTenant != null ? context.selectedTenant.tenantId : null;\r\n setQuery(newQuery);\r\n\r\n }, [context]);\r\n\r\n const handleEditRole = (roleId) => {\r\n history.push(`/admin/settings/roles/${roleId}`);\r\n }\r\n\r\n const handleRemoveRole = (roleId) => {\r\n if (roleId) {\r\n removeRole(roleId)\r\n .then(res => {\r\n reloadRoles(true);\r\n Success(\"security.roles.removed\");\r\n })\r\n .catch(error => { HandleApiError(error); })\r\n }\r\n }\r\n\r\n //#region Audit\r\n const handleAuditUserRole = () => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n \r\n \r\n {t(\"security.roles.add\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n content={\r\n \r\n }\r\n />\r\n \r\n );\r\n}","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n//Components\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { AuditRolePermissions } from '../../../components/AuditTrail/AuditRolePermissions';\r\nimport { CustomSelect } from '../../../components/CustomControls/CustomSelect';\r\nimport { useAuditStudyRolePermissions } from '../../Security/Audit/hooks';\r\nimport { useStudyRoles } from '../../Security/Authorization/useStudyRoles';\r\n\r\nexport const AuditRolePermissionsContainer = () => {\r\n const { t } = useTranslation();\r\n const [studyRoles] = useStudyRoles();\r\n const [getAudits, audits, isLoading] = useAuditStudyRolePermissions();\r\n\r\n const handleSearch = (_name, value) => {\r\n if (value)\r\n getAudits(value.id);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n x.name}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport { removeStudyRole } from \"../../../api/security\";\r\nimport { AuditModal } from \"../../../components/AuditTrail/AuditModal\";\r\nimport { StudyRoles } from \"../../../components/Authorization/StudyRoles\";\r\nimport { WithAuth } from \"../../../components/Authorization/WithAuth\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { Add, Audit } from \"../../../components/Icons/Icons\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { Success } from \"../../../components/Notifications/Notifications\";\r\nimport { AuditRolePermissionsContainer } from \"../../Protocols/Audit/AuditRolePermissions\";\r\nimport { useStudyRoles } from \"./useStudyRoles\";\r\n\r\nexport const StudyRolesContainer = (props) => {\r\n let history = useHistory();\r\n const { t } = useTranslation();\r\n const [modal, setModal] = useState(null);\r\n const [roles, isLoading, reloadRoles] = useStudyRoles();\r\n\r\n const handleEditRole = (roleId) => {\r\n history.push(`/admin/settings/studyRoles/${roleId}`);\r\n }\r\n\r\n const handleRemoveRole = (roleId) => {\r\n if (roleId) {\r\n removeStudyRole(roleId)\r\n .then(res => {\r\n reloadRoles(true);\r\n Success(\"security.studyRole.removed\");\r\n })\r\n .catch(error => { HandleApiError(error); })\r\n }\r\n }\r\n\r\n //#region Audit\r\n const handleAuditUserRole = () => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n \r\n \r\n {t(\"security.studyRoles.add\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n content={\r\n \r\n }\r\n />\r\n \r\n );\r\n}","import { ErrorMessage } from 'formik';\r\nimport React from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { WithAuth } from '../Authorization/WithAuth';\r\nimport { YesNo } from '../CustomControls/YesNoControls';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\n\r\nexport const TenantForm = props => {\r\n const {\r\n handleSubmit,\r\n isSubmitting,\r\n values,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n errors,\r\n touched,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Datos del Cliente

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {t('security.tenant.name')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('security.tenant.domain')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('security.tenant.servicePlan')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('security.tenant.isActive')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {t('buttons.cancel')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { withTranslation } from 'react-i18next';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { TenantForm } from '../../components/Tenants/Tenant';\r\nimport { getTenantSchema } from '../../components/Validations/FormValidationSchema';\r\nimport { useTenants } from \"./Hooks\";\r\n\r\nexport const CreateTenantContainer = () => {\r\n let history = useHistory();\r\n const [, isLoading, , , create] = useTenants();\r\n\r\n const handleCreate = async (tenant) => {\r\n try {\r\n await create(tenant);\r\n Success(\"tenantNotifications.tenant_Created\");\r\n history.push(`/admin/tenant`)\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n history.push(`/admin/tenant`)\r\n }\r\n }\r\n\r\n return (\r\n history.push(`/admin/tenant`)}\r\n />\r\n );\r\n}\r\n\r\nconst CreateTenantFormik = withTranslation()(withFormik({\r\n\r\n mapPropsToValues: () => ({ tenantName: '', tenantDomain: '', servicePlan: '', isActive: null }),\r\n enableReinitialize: true,\r\n validationSchema: getTenantSchema(),\r\n\r\n handleSubmit: (tenant, formikBag) => {\r\n formikBag.props.onSubmit(tenant);\r\n },\r\n\r\n displayName: 'TenantForm',\r\n\r\n})(TenantForm));\r\n\r\nCreateTenantFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { withTranslation } from 'react-i18next';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { TenantForm } from \"../../components/Tenants/Tenant\";\r\nimport { getTenantSchema } from \"../../components/Validations/FormValidationSchema\";\r\nimport { useTenants } from './Hooks';\r\n\r\nexport const EditTenantContainer = (props) => {\r\n const { match: { params: { tenantId } } } = props;\r\n let history = useHistory();\r\n\r\n const [data, setData] = useState({});\r\n const [, isLoading, , get, , update] = useTenants();\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n const resp = await get(tenantId, isSubscribed);\r\n if (isSubscribed)\r\n setData(resp);\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [tenantId]);\r\n\r\n if (isLoading)\r\n return null;\r\n\r\n const handleEdit = async (tenant) => {\r\n try {\r\n await update(tenant.tenantId, tenant);\r\n Success(\"tenantNotifications.tenant_Updated\");\r\n history.goBack()\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n HandleApiError(ex);\r\n }\r\n }\r\n\r\n return (\r\n history.goBack()}\r\n tenant={data}\r\n />\r\n );\r\n}\r\n\r\nconst EditTenantFormik = withTranslation()(withFormik({\r\n\r\n mapPropsToValues: (props) => (props.tenant),\r\n enableReinitialize: true,\r\n validationSchema: getTenantSchema(),\r\n\r\n handleSubmit: async (tenant, formikBag) => {\r\n formikBag.props.onSubmit(tenant);\r\n },\r\n\r\n displayName: 'TenantForm',\r\n\r\n})(TenantForm));\r\n\r\nEditTenantFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n tenant: PropTypes.object.isRequired,\r\n};","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { WithAuth } from '../Authorization/WithAuth';\r\nimport { Edit, Remove } from '../Icons/Icons';\r\nimport { statusFormatter } from '../Table/Formatters';\r\nimport { Tooltip } from \"../Utils/Tooltips\";\r\n\r\nexport const Tenants = props => {\r\n\r\n const { data, isLoading } = props;\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'tenantId', text: t('security.tenant.id') },\r\n { dataField: 'tenantName', text: t('security.tenant.name') },\r\n { dataField: 'tenantDomain', text: t('security.tenant.domain') },\r\n { dataField: 'servicePlan', text: t('security.tenant.servicePlan') },\r\n { dataField: 'isActive', text: t('security.tenant.isActive'), formatter: statusFormatter, headerStyle: { width: '100px' } },\r\n {\r\n dataField: 'view', text: t(\"commons.actions\"), isDummyField: true, headerStyle: { width: '150px' },\r\n formatter: function (_cell, row, rowIndex, _formatExtraData) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n );\r\n}\r\n\r\nTenants.propTypes = {\r\n data: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n};\r\n\r\n","import React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { WithAuth } from '../../components/Authorization/WithAuth';\r\n//Components\r\nimport Card from '../../components/Cards/Card';\r\nimport { Add } from '../../components/Icons/Icons';\r\nimport { Tenants } from '../../components/Tenants/Tenants';\r\nimport { useTenants } from './Hooks';\r\n\r\nexport const TenantsContainer = () => {\r\n const { t } = useTranslation();\r\n\r\n const [tenants, isLoading, getAll] = useTenants(); //, get, create, update, remove\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n await getAll();\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n \r\n {t('security.tenant.add')}\r\n \r\n \r\n
    \r\n
    \r\n \r\n }\r\n content={\r\n \r\n }\r\n />\r\n );\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { NavLink } from 'react-router-dom';\r\nimport { ErrorMessage } from 'formik';\r\nimport { useTranslation } from 'react-i18next'\r\nimport { FormGroup, ControlLabel, FormControl, Grid, Row, Col, InputGroup } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\n\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { Tooltip } from \"../Utils/Tooltips\"\r\nimport { CustomSelect } from '../CustomControls/CustomSelect';\r\nimport { statusFormatter } from \"../Table/Formatters\"\r\nimport { Edit, ViewPractitioner, Config } from '../Icons/Icons';\r\nimport { WithAuth } from '../Authorization/WithAuth';\r\n\r\nexport const Users = props => {\r\n\r\n const { data, query, totalSize, onTableChange, isLoading } = props;\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'tenant', text: t('security.users.tenant') },\r\n { dataField: 'fullName', text: t('security.users.fullName'), sort: true },\r\n { dataField: 'userName', text: t('security.users.userName'), sort: true },\r\n //{ dataField: 'contact', text: t('security.users.contact'), headerStyle: { width: '150px' } },\r\n { dataField: 'role', text: t('security.users.role'), headerStyle: { width: '150px' } },\r\n { dataField: 'speciality', text: t('person.speciality'), headerStyle: { width: '200px' } },\r\n { dataField: 'active', text: t('security.users.status'), formatter: statusFormatter, headerStyle: { width: '100px' } },\r\n {\r\n dataField: 'view', text: t(\"commons.actions\"), isDummyField: true, headerStyle: { width: '150px' },\r\n formatter: function (_cell, row, rowIndex, _formatExtraData) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n onTableChange(type, { page, sizePerPage, sortField, sortOrder });\r\n }\r\n\r\n return (\r\n <>{t(\"commons.noData\")}}\r\n pagination={paginationFactory({\r\n page: query.pagination.page,\r\n sizePerPage: query.pagination.sizePerPage,\r\n totalSize: totalSize,\r\n hideSizePerPage: true,\r\n })}\r\n onTableChange={handleTableChange}\r\n loading={isLoading} //only loading is true, react-bootstrap-table will render overlay\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n );\r\n}\r\n\r\nUsers.propTypes = {\r\n data: PropTypes.array.isRequired,\r\n query: PropTypes.object.isRequired,\r\n totalSize: PropTypes.number.isRequired,\r\n onTableChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const UserForm = props => {\r\n const {\r\n handleSubmit,\r\n isSubmitting,\r\n values,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n setFieldTouched,\r\n errors,\r\n touched,\r\n roles,\r\n tenants\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {t('security.users.tenant')}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n tenants && tenants.length > 0 &&\r\n \r\n \r\n {t('security.users.tenant')}\r\n x.tenantName}\r\n getOptionValue={x => x.tenantId}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n {t('security.users.given')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('security.users.familyName')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('security.users.email')}\r\n \r\n \r\n @{values.tenant.tenantDomain}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('security.users.workEmail')}\r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n {t('security.users.password')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('security.users.confirmPassword')}\r\n \r\n \r\n \r\n */}\r\n \r\n \r\n {t('security.users.role')}\r\n x.name}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {t('buttons.back')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect } from \"react\";\r\nimport { withTranslation } from 'react-i18next';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { createUser } from \"../../api/identity\";\r\nimport { useAuthorization } from '../../components/Authorization/useAuthorization';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { UserForm } from \"../../components/Users/Users\";\r\nimport { Spinner } from '../../components/Utils/Loaders';\r\nimport { getUserSchema } from \"../../components/Validations/FormValidationSchema\";\r\nimport { useRoleMasterData } from \"../Security/Authorization/useRoles\";\r\nimport { useTenants } from '../Tenants/Hooks';\r\n\r\nexport const CreateUserContainer = () => {\r\n let history = useHistory();\r\n const [isLoading, data] = useRoleMasterData();\r\n const [tenants, isLoadingTenants, getAll] = useTenants();\r\n\r\n const [,, isAuthorized] = useAuthorization();\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => { await getAll(); }\r\n\r\n if (isAuthorized([\"Tenant.List\"]))\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n if (isLoading || isLoadingTenants) return ;\r\n\r\n return (\r\n history.push(`/admin/users`)}\r\n onCancel={() => history.goBack()}//(`/admin/users`)}\r\n roles={data ? data.roles : []}\r\n tenants={tenants ? tenants : []}\r\n />\r\n );\r\n}\r\n\r\nconst CreateUserFormik = withTranslation()(withFormik({\r\n\r\n mapPropsToValues: () => ({\r\n given: '', familyName: '',\r\n userName: '', \r\n role: '', tenant: '', workEmail: ''\r\n }),\r\n enableReinitialize: true,\r\n validationSchema: getUserSchema(),\r\n\r\n handleSubmit: (user, formikBag) => {\r\n createUser(user)\r\n .then(res => {\r\n formikBag.setSubmitting(false);\r\n Success(\"userNotifications.user_Created\");\r\n formikBag.props.onSubmit();\r\n }).catch(error => {\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n //formikBag.props.onCancel();\r\n });\r\n },\r\n\r\n displayName: 'UserForm',\r\n\r\n})(UserForm));\r\n\r\nCreateUserFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n roles: PropTypes.array.isRequired,\r\n tenants: PropTypes.array.isRequired,\r\n};","import axios from './index';\r\n\r\nexport const uploadCerts = (data) => {\r\n return axios.post('api/v1/digitalSign/upload', data);\r\n};\r\n\r\nexport const signData = (data) => {\r\n return axios.post('api/v1/digitalSign/sign', data);\r\n};\r\n\r\nexport const verifySign = (data) => {\r\n return axios.post('api/v1/digitalSign/verify', data);\r\n};\r\n\r\nexport const getIsDigitalSignEnabled = () => {\r\n return axios.get('api/v1/digitalSign/enabled');\r\n}\r\n","import React from \"react\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from \"../Cards/Card\";\r\n\r\nexport const ProfessionalData = props => {\r\n const { t } = useTranslation();\r\n\r\n const data = props.data;\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    {t(\"person.registrationNumber\")}: {data.registrationNumber}
    \r\n
    \r\n \r\n \r\n
    \r\n
    {t(\"person.speciality\")}: {data.speciality}
    \r\n
    \r\n \r\n \r\n }\r\n />\r\n );\r\n}","import React from 'react';\r\nimport { Col, ControlLabel, FormControl, Grid, Row } from 'react-bootstrap';\r\nimport Card from '../Cards/Card';\r\nimport { SnomedPicker } from \"../CustomControls/SnomedPicker\";\r\nimport { ExpandableContent } from '../CustomControls/ExpandableContent';\r\n\r\nexport const ProfessionalDataForm = props => {\r\n\r\n const {\r\n values,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n setFieldTouched,\r\n t,\r\n } = props;\r\n\r\n var defaultSelected = [];\r\n if (values && values.speciality) {\r\n defaultSelected.push({ conceptId: \"\", description: values.speciality });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"person.registrationNumber\")}\r\n \r\n \r\n \r\n {t(\"person.speciality\")}\r\n \r\n \r\n \r\n {t(\"person.jurisdiction\")}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n />\r\n \r\n );\r\n}","import { PixelCrop } from 'react-image-crop'\r\n\r\nconst TO_RADIANS = Math.PI / 180\r\n\r\nexport async function canvasPreview(\r\n image: HTMLImageElement,\r\n canvas: HTMLCanvasElement,\r\n crop: PixelCrop,\r\n scale = 1,\r\n rotate = 0,\r\n) {\r\n const ctx = canvas.getContext('2d')\r\n\r\n if (!ctx) {\r\n throw new Error('No 2d context')\r\n }\r\n\r\n const scaleX = image.naturalWidth / image.width\r\n const scaleY = image.naturalHeight / image.height\r\n // devicePixelRatio slightly increases sharpness on retina devices\r\n // at the expense of slightly slower render times and needing to\r\n // size the image back down if you want to download/upload and be\r\n // true to the images natural size.\r\n const pixelRatio = window.devicePixelRatio\r\n // const pixelRatio = 1\r\n\r\n canvas.width = Math.floor(crop.width * scaleX * pixelRatio)\r\n canvas.height = Math.floor(crop.height * scaleY * pixelRatio)\r\n\r\n ctx.scale(pixelRatio, pixelRatio)\r\n ctx.imageSmoothingQuality = 'high'\r\n\r\n const cropX = crop.x * scaleX\r\n const cropY = crop.y * scaleY\r\n\r\n const rotateRads = rotate * TO_RADIANS\r\n const centerX = image.naturalWidth / 2\r\n const centerY = image.naturalHeight / 2\r\n\r\n ctx.save()\r\n\r\n // 5) Move the crop origin to the canvas origin (0,0)\r\n ctx.translate(-cropX, -cropY)\r\n // 4) Move the origin to the center of the original position\r\n ctx.translate(centerX, centerY)\r\n // 3) Rotate around the origin\r\n ctx.rotate(rotateRads)\r\n // 2) Scale the image\r\n ctx.scale(scale, scale)\r\n // 1) Move the center of the image to the origin (0,0)\r\n ctx.translate(-centerX, -centerY)\r\n ctx.drawImage(\r\n image,\r\n 0,\r\n 0,\r\n image.naturalWidth,\r\n image.naturalHeight,\r\n 0,\r\n 0,\r\n image.naturalWidth,\r\n image.naturalHeight,\r\n )\r\n\r\n ctx.restore()\r\n}\r\n","import React, { useState, useRef } from 'react'\r\nimport ReactCrop, { centerCrop, makeAspectCrop, Crop, PixelCrop, } from 'react-image-crop'\r\nimport { canvasPreview } from './canvasPreview'\r\nimport { useDebounceEffect } from './useDebounceEffect'\r\nimport RangeSlider from 'react-bootstrap-range-slider';\r\n\r\nimport 'react-image-crop/dist/ReactCrop.css'\r\n\r\n// This is to demonstate how to make and center a % aspect crop\r\n// which is a bit trickier so we use some helper functions.\r\nfunction centerAspectCrop(\r\n mediaWidth: number,\r\n mediaHeight: number,\r\n aspect: number,\r\n) {\r\n return centerCrop(\r\n makeAspectCrop(\r\n {\r\n unit: '%',\r\n width: 90,\r\n },\r\n aspect,\r\n mediaWidth,\r\n mediaHeight,\r\n ),\r\n mediaWidth,\r\n mediaHeight,\r\n )\r\n}\r\n\r\ninterface Props {\r\n name: string,\r\n toggleAspect: boolean,\r\n placeholder: string,\r\n onChange: Function,\r\n maxWidth?: number,\r\n maxHeight?: number,\r\n minWidth?: number,\r\n minHeight?: number,\r\n}\r\n\r\nexport default function CustomImageUpload(props: Props) {\r\n const [imgSrc, setImgSrc] = useState('')\r\n const previewCanvasRef = useRef(null)\r\n const imgRef = useRef(null)\r\n const blobUrlRef = useRef('')\r\n const [crop, setCrop] = useState()\r\n const [completedCrop, setCompletedCrop] = useState()\r\n const [scale, setScale] = useState(1)\r\n const [rotate, setRotate] = useState(0)\r\n const [aspect, setAspect] = useState(16 / 9)\r\n\r\n function onSelectFile(e: React.ChangeEvent) {\r\n if (e.target.files && e.target.files.length > 0) {\r\n setCrop(undefined) // Makes crop preview update between images.\r\n const reader = new FileReader()\r\n reader.addEventListener('load', () =>\r\n setImgSrc(reader.result?.toString() || ''),\r\n )\r\n reader.readAsDataURL(e.target.files[0])\r\n }\r\n else {\r\n setCrop(undefined);\r\n setImgSrc('');\r\n\r\n if (props.onChange)\r\n props.onChange(null);\r\n }\r\n }\r\n\r\n function onImageLoad(e: React.SyntheticEvent) {\r\n if (aspect) {\r\n const { width, height } = e.currentTarget\r\n setCrop(centerAspectCrop(width, height, aspect))\r\n }\r\n }\r\n\r\n function handleOnCompleteCrop() {\r\n if (!previewCanvasRef.current) {\r\n throw new Error('Crop canvas does not exist')\r\n }\r\n\r\n previewCanvasRef.current.toBlob((blob) => {\r\n if (!blob) {\r\n throw new Error('Failed to create blob')\r\n }\r\n if (blobUrlRef.current) {\r\n URL.revokeObjectURL(blobUrlRef.current)\r\n }\r\n\r\n if (props.onChange)\r\n props.onChange(props.name, {\r\n file: new File([blob], 'image.jpeg', {\r\n type: blob.type,\r\n }),\r\n fileName: \"croppedImage\",\r\n size: blob?.size\r\n });\r\n }, \"image/jpeg\")\r\n }\r\n\r\n useDebounceEffect(\r\n async () => {\r\n if (\r\n completedCrop?.width &&\r\n completedCrop?.height &&\r\n imgRef.current &&\r\n previewCanvasRef.current\r\n ) {\r\n // We use canvasPreview as it's much faster than imgPreview.\r\n canvasPreview(\r\n imgRef.current,\r\n previewCanvasRef.current,\r\n completedCrop,\r\n scale,\r\n rotate,\r\n )\r\n }\r\n },\r\n 100,\r\n [completedCrop, scale, rotate],\r\n )\r\n\r\n function handleToggleAspectClick() {\r\n if (aspect) {\r\n setAspect(undefined)\r\n } else if (imgRef.current) {\r\n const { width, height } = imgRef.current\r\n setAspect(16 / 9)\r\n setCrop(centerAspectCrop(width, height, 16 / 9))\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {/*
    \r\n \r\n \r\n setRotate(Math.min(180, Math.max(-180, Number(e.target.value))))\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n
    */}\r\n
    \r\n
    \r\n {\r\n imgSrc &&
    \r\n \r\n setScale(Number(e.target.value))}\r\n />\r\n
    \r\n }\r\n
    \r\n {!!imgSrc && (\r\n setCrop(percentCrop)}\r\n onComplete={(c) => setCompletedCrop(c)}\r\n aspect={aspect}\r\n maxWidth={props.maxWidth}\r\n maxHeight={props.maxHeight}\r\n minWidth={props.minWidth}\r\n minHeight={props.minHeight}\r\n >\r\n \r\n \r\n )}\r\n {!!completedCrop && (\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\n/*\r\nexport default function CustomImageUpload(props: Props) {\r\n\r\n const [imgSrc, setImgSrc] = useState('')\r\n const previewCanvasRef = useRef(null)\r\n const imgRef = useRef(null)\r\n const [crop, setCrop] = useState()\r\n const [completedCrop, setCompletedCrop] = useState()\r\n const [scale, setScale] = useState(1)\r\n const [aspect, setAspect] = useState(undefined)\r\n const [image, setImage] = useState();\r\n const [originY, setOriginY] = useState(0)\r\n const [originX, setOriginX] = useState(0)\r\n //\r\n //const prevSquareCordsX = React.useRef(0)\r\n //const prevSquareCordsY = React.useRef(0)\r\n\r\n React.useEffect(() => {\r\n if (props.minHeight && props.minWidth)\r\n setCrop({\r\n height: props.minHeight,\r\n width: props.minWidth,\r\n unit: 'px',\r\n x: 0,\r\n y: 0,\r\n })\r\n }, [imgSrc])\r\n\r\n function onSelectFile(controlName: string, uploadedFile: { file: File }) {\r\n if (uploadedFile) {\r\n setCrop(undefined) // Makes crop preview update between images.\r\n const reader = new FileReader()\r\n reader.addEventListener('load', () =>\r\n setImgSrc(reader.result?.toString() || ''),\r\n )\r\n reader.readAsDataURL(uploadedFile.file)\r\n }\r\n else {\r\n setCrop(undefined);\r\n setImgSrc('');\r\n\r\n if (props.onChange)\r\n props.onChange(controlName, null);\r\n }\r\n //setFile(uploadedFile);\r\n }\r\n\r\n function onImageLoad(e: React.SyntheticEvent) {\r\n\r\n setImage(e.currentTarget)\r\n if (aspect) {\r\n const { width, height } = e.currentTarget\r\n //setCrop(centerAspectCrop(width, height, aspect, props.maxWidth, props.maxHeight))\r\n setCrop(centerAspectCrop(width, height, aspect))\r\n }\r\n }\r\n\r\n useDebounceEffect(\r\n async () => {\r\n if (\r\n completedCrop?.width &&\r\n completedCrop?.height &&\r\n imgRef.current &&\r\n previewCanvasRef.current\r\n ) {\r\n // We use canvasPreview as it's much faster than imgPreview.\r\n canvasPreview(\r\n imgRef.current,\r\n previewCanvasRef.current,\r\n completedCrop,\r\n scale,\r\n originX,\r\n originY\r\n )\r\n }\r\n },\r\n 100,\r\n [completedCrop, scale, originX, originY],\r\n )\r\n\r\n function handleToggleAspectClick() {\r\n if (aspect) {\r\n setAspect(undefined)\r\n } else if (imgRef.current) {\r\n const { width, height } = imgRef.current\r\n setAspect(16 / 9)\r\n setCrop(centerAspectCrop(width, height, 16 / 9))\r\n //setCrop(centerAspectCrop(width, height, 16 / 9, props.maxWidth, props.maxHeight))\r\n }\r\n }\r\n\r\n function handleZoom(e: React.ChangeEvent) {\r\n setScale(Number(e.target.value));\r\n\r\n if (crop) {\r\n setOriginX(crop.x)\r\n setOriginY(crop.y)\r\n }\r\n }\r\n\r\n const makeClientCrop = async (crop: Crop) => {\r\n if (image && crop.width && crop.height) {\r\n const croppedImg = await getCroppedImg();\r\n if (croppedImg) {\r\n if (props.onChange)\r\n props.onChange(props.name, {\r\n file: new File([croppedImg], 'image.jpeg', {\r\n type: croppedImg.type,\r\n }),\r\n fileName: \"croppedImage\",\r\n size: croppedImg?.size\r\n });\r\n }\r\n }\r\n };\r\n\r\n function getCroppedImg(): Promise | null {\r\n try {\r\n return new Promise((resolve) => {\r\n previewCanvasRef.current?.toBlob((blob) => {\r\n if (blob)\r\n resolve(blob);\r\n }, \"image/jpeg\");\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n return null;\r\n }\r\n };\r\n\r\n function handleOnCompleteCrop() {\r\n image && crop ? makeClientCrop(crop) : console.log(\"wait\");\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {!!imgSrc && (\r\n { setCrop(percentCrop) }}\r\n onComplete={(c) => setCompletedCrop(c)}\r\n aspect={aspect}\r\n locked={false}\r\n maxWidth={props.maxWidth}\r\n maxHeight={props.maxHeight}\r\n minWidth={props.minWidth}\r\n minHeight={props.minHeight}\r\n >\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n {!!completedCrop && imgSrc !== '' && (\r\n <>\r\n
    \r\n
    \r\n \r\n setScale(Number(e.target.value))}\r\n style={{ marginLeft: '10px', width: '50px' }}\r\n onChange={handleZoom}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n props.toggleAspect &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n )}\r\n
    \r\n )\r\n}\r\n*/","import { useEffect, DependencyList } from 'react'\r\n\r\nexport function useDebounceEffect(\r\n fn: () => void,\r\n waitTime: number,\r\n deps?: DependencyList\r\n) {\r\n useEffect(() => {\r\n const t = setTimeout(() => {\r\n fn.apply(undefined, [])\r\n }, waitTime)\r\n\r\n return () => {\r\n clearTimeout(t)\r\n }\r\n }, deps)\r\n}\r\n","import React from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport Card from '../Cards/Card';\r\nimport CustomImageUpload from '../CustomControls/Images/CustomImage';\r\nimport { ExpandableContent } from '../CustomControls/ExpandableContent';\r\n\r\nexport const UserSignForm = props => {\r\n const {\r\n isSubmitting,\r\n isDisabled,\r\n onUploadSign,\r\n values,\r\n setFieldValue,\r\n t,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n};","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Card } from '../../components/Cards/Card';\r\nimport { IconSVG } from '../Icons/Icons';\r\nimport { WithAuth } from '../Authorization/WithAuth';\r\nimport { useAuthorization } from '../Authorization/useAuthorization';\r\n\r\nexport const Actions = (props) => {\r\n const { t } = useTranslation();\r\n const { userId, onConfig, onRedirectTo, onEdit, onExportToPDF } = props;\r\n const [, user, hasPermission] = useAuthorization();\r\n\r\n var redirectTo = null;\r\n if (onRedirectTo) {\r\n redirectTo = (\r\n \r\n );\r\n }\r\n\r\n var configure = null;\r\n if (onConfig) {\r\n configure = (\r\n \r\n \r\n \r\n );\r\n }\r\n var edit = null;\r\n if (onEdit) {\r\n if (user?.sub === userId || hasPermission([\"Users.Edit\"]))\r\n edit = (\r\n \r\n );\r\n }\r\n\r\n var exportToPDF = null;\r\n if (onExportToPDF) {\r\n exportToPDF = (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {edit}\r\n {configure}\r\n {exportToPDF}\r\n {redirectTo}\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nActions.propTypes = {\r\n onConfig: PropTypes.func,\r\n onRedirectTo: PropTypes.func,\r\n onEdit: PropTypes.func,\r\n onExportToPDF: PropTypes.func,\r\n};\r\n","import { ErrorMessage } from 'formik';\r\nimport React from 'react';\r\nimport { Col, ControlLabel, FormControl, Grid, HelpBlock, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from '../Cards/Card';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\n\r\nexport const DigitalSignDataForm = props => {\r\n\r\n const {\r\n values,\r\n handleChange,\r\n handleBlur,\r\n setFieldValue,\r\n currentUser,\r\n } = props;\r\n const { t } = useTranslation();\r\n\r\n if (!currentUser || currentUser !== props.user.userId)\r\n return null;\r\n\r\n let fileReader;\r\n const handleFileChosen = (file) => {\r\n fileReader = new FileReader();\r\n fileReader.onloadend = (evt) => {\r\n\r\n if (evt.target.readyState === FileReader.DONE) {\r\n\r\n const arrayBuffer = fileReader.result;\r\n setFieldValue(\"rsaPublicCert\", arrayBuffer, false);\r\n }\r\n };\r\n fileReader.readAsBinaryString(file);\r\n }\r\n\r\n let fileReaderPrivate;\r\n const handleFilePrivateChosen = (file) => {\r\n fileReaderPrivate = new FileReader();\r\n fileReaderPrivate.onloadend = (evt) => {\r\n\r\n if (evt.target.readyState === FileReader.DONE) {\r\n\r\n const arrayBuffer = fileReaderPrivate.result;\r\n setFieldValue(\"rsaPrivateCert\", arrayBuffer, false);\r\n }\r\n };\r\n fileReaderPrivate.readAsBinaryString(file);\r\n }\r\n\r\n return (\r\n
    \r\n {t(\"digitalSign.title\")}\r\n \r\n \r\n \r\n {t(\"digitalSign.publicCert\")}\r\n handleFileChosen(e.target.files[0])} />\r\n \r\n \r\n {t(\"digitalSign.privateCert\")}\r\n handleFilePrivateChosen(e.target.files[0])} />\r\n \r\n \r\n {t(\"digitalSign.certPin\")}\r\n \r\n \r\n {t(\"digitalSign.certHelp\")}\r\n \r\n \r\n \r\n }\r\n />\r\n
    \r\n );\r\n}","import React from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Card from '../Cards/Card';\r\nimport { Back, Save } from '../Icons/Icons';\r\nimport { AddressData } from '../Person/AddressData';\r\nimport { AddressDataForm } from '../Person/AddressDataForm';\r\nimport { ContactData } from '../Person/ContactData';\r\nimport { ContactDataForm } from '../Person/ContactDataForm';\r\nimport { PersonalData } from '../Person/PersonalData';\r\nimport { PersonalDataForm } from '../Person/PersonalDataForm';\r\nimport { ProfessionalData } from '../Person/ProfessionalData';\r\nimport { ProfessionalDataForm } from '../Person/ProfessionalDataForm';\r\nimport { UserSignForm } from '../Person/UserSign';\r\nimport { Actions } from './Actions';\r\nimport { DigitalSignDataForm } from '../Person/DigitalSignDataForm';\r\n\r\nexport const UserProfile = props => {\r\n const { user } = props;\r\n let history = useHistory();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n history.push(`/admin/users/${user?.userId}/edit`)}\r\n onConfig={() => history.push(`/admin/users/${user?.userId}/config`)}\r\n onRedirectTo={() => history.goBack()}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const UserProfileForm = props => {\r\n const {\r\n handleSubmit,\r\n isSubmitting,\r\n hideCancel,\r\n t,\r\n } = props;\r\n\r\n let navigation = useHistory();\r\n const settingsStore = useSelector(state => state.settings);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {settingsStore.settings.digitalSignEnabled && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { withTranslation } from 'react-i18next';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { updateUser, uploadSign } from \"../../api/identity\";\r\nimport { usePersonMasterData, useUser } from \"./Hooks\";\r\n\r\nimport { uploadCerts } from \"../../api/digitalSign\";\r\nimport { useAuthorization } from \"../../components/Authorization/useAuthorization\";\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { UserProfileForm } from \"../../components/Users/UserProfile\";\r\nimport { getUserProfileSchema } from \"../../components/Validations/FormValidationSchema\";\r\n\r\nexport const EditUserContainer = (props) => {\r\n const { match: { params } } = props;\r\n const userId = params.userId;\r\n let history = useHistory();\r\n\r\n const [isLoading, masterData] = usePersonMasterData();\r\n const [isUserLoading, user] = useUser(userId);\r\n const [, currentUser] = useAuthorization();\r\n \r\n const _isValidImageSize = (imageToCheck, width, height) => {\r\n var _URL = window.URL || window.webkitURL;\r\n var file, img, isValid = true;\r\n if ((file = imageToCheck)) {\r\n img = new Image();\r\n var objectUrl = _URL.createObjectURL(file);\r\n img.onload = function () {\r\n if (this.width != width || this.height != height) {\r\n alert(`El tamaño de la imagen debe ser de ${width}x${height}`);\r\n isValid = false;\r\n }\r\n _URL.revokeObjectURL(objectUrl);\r\n };\r\n img.src = objectUrl;\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n const handleUploadSign = async (sign) => {\r\n\r\n if (!sign || !sign.file)// || !_isValidImageSize(sign.file, 400, 200))\r\n return;\r\n\r\n // Initial FormData\r\n const formData = new FormData();\r\n formData.append(\"file\", sign.file);\r\n formData.append(\"title\", sign.fileName);\r\n\r\n // Make an AJAX upload request using Axios\r\n try {\r\n const res = await uploadSign(formData);\r\n Success(\"identityNotifications.sign_Uploaded\");\r\n }\r\n catch (error) {\r\n console.log(error.response);\r\n }\r\n }\r\n\r\n if (isLoading || isUserLoading || !user.userId) return null;\r\n\r\n user.password = \"\";\r\n\r\n return (\r\n history.push(`/admin/users/${user.userId}`)}\r\n onCancel={() => history.goBack()}\r\n onUploadSign={handleUploadSign}\r\n hideCancel={props.hideCancel}\r\n masterData={masterData}\r\n user={user}\r\n currentUser={currentUser?.sub}\r\n />\r\n );\r\n}\r\n\r\nconst EditUserFormik = withTranslation()(withFormik({\r\n\r\n mapPropsToValues: (props) => (props.user),\r\n enableReinitialize: true,\r\n validationSchema: getUserProfileSchema(),\r\n\r\n handleSubmit: async (userProfile, formikBag) => {\r\n\r\n userProfile.bloodGroup = userProfile.bloodGroup != null ? userProfile.bloodGroup.title : \"\";\r\n userProfile.bloodFactor = userProfile.bloodFactor != null ? userProfile.bloodFactor.title : \"\";\r\n userProfile.language = userProfile.language != null ? userProfile.language.code : \"\";\r\n if (userProfile.speciality) {\r\n //if (typeof userProfile.speciality === 'string')\r\n // userProfile.speciality = userProfile.speciality;\r\n if (typeof userProfile.speciality === 'object' && userProfile.speciality.constructor === Object)\r\n userProfile.speciality = userProfile.speciality.description;\r\n }\r\n\r\n try {\r\n await updateUser(formikBag.props.user.userId, userProfile);\r\n\r\n if (userProfile.rsaPublicCert && userProfile.password) {\r\n await uploadCerts({\r\n rsaPublicCert: userProfile.rsaPublicCert,\r\n rsaPrivateCert: userProfile.rsaPrivateCert,\r\n password: userProfile.password\r\n });\r\n }\r\n\r\n formikBag.setSubmitting(false);\r\n Success(\"userNotifications.user_Updated\");\r\n formikBag.props.onSubmit();\r\n\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(ex);\r\n //formikBag.props.onCancel();\r\n }\r\n },\r\n\r\n displayName: 'UserForm',\r\n\r\n})(UserProfileForm));\r\n\r\nEditUserFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onUploadSign: PropTypes.func.isRequired,\r\n masterData: PropTypes.object.isRequired,\r\n user: PropTypes.object.isRequired,\r\n};","import React from 'react'\r\n\r\nimport { useUser } from './Hooks';\r\nimport { UserProfile } from '../../components/Users/UserProfile';\r\n\r\nexport const UserContainer = (props) => {\r\n const { match: { params } } = props;\r\n const userId = params.userId;\r\n\r\n const [isLoading, user] = useUser(userId);\r\n\r\n if (isLoading)\r\n return null;\r\n\r\n return (\r\n \r\n );\r\n}","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { changePasswordUser, disableUser, enableUser, resendCreatedUserEmail, updateUserInRole } from \"../../api/identity\";\r\nimport { ModalConfirm } from '../../components/Modals/ModalConfirm';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { UserSettingsForm } from \"../../components/Users/UserSettingsForm\";\r\nimport { useRoleMasterData } from \"../Security/Authorization/useRoles\";\r\nimport { useUser } from \"./Hooks\";\r\n\r\nexport const UserSettingsContainer = (props) => {\r\n const { match: { params } } = props;\r\n const userId = params.userId;\r\n\r\n const [isUserLoading, user] = useUser(userId);\r\n const [isRoleLoading, masterData] = useRoleMasterData();\r\n const [modal, setModal] = useState(null);\r\n const { t } = useTranslation();\r\n\r\n const handleChangeRole = (roleId) => {\r\n if (!roleId)\r\n return;\r\n\r\n updateUserInRole(userId, roleId)\r\n .then(() => {\r\n Success(\"userNotifications.user_role_Updated\");\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n const handleResendEmail = () => {\r\n resendCreatedUserEmail(userId)\r\n .then(() => {\r\n Success(\"userNotifications.email_sent\");\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n const handleEnableUser = () => {\r\n enableUser(userId)\r\n .then(() => {\r\n Success(\"userNotifications.user_Enabled\");\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n const handleDisableUser = () => {\r\n disableUser(userId)\r\n .then(() => {\r\n Success(\"userNotifications.user_Disabled\");\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n const handleNewPassword = (password) => {\r\n if (!password)\r\n return;\r\n\r\n setModal( handleConfirmNewPassword(password)}\r\n onCancel={() => { setModal(null) }}\r\n />);\r\n }\r\n const handleConfirmNewPassword = (password) => {\r\n if (!password)\r\n return;\r\n\r\n changePasswordUser(userId, password)\r\n .then(() => {\r\n Success(\"userNotifications.user_PasswordChanged\");\r\n setModal(null);\r\n }).catch(error => {\r\n HandleApiError(error);\r\n console.log(error)\r\n });\r\n }\r\n\r\n if (isRoleLoading || isUserLoading) return null;\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n );\r\n}\r\n\r\nconst UserSettingsFormik = withTranslation()(withFormik({\r\n\r\n mapPropsToValues: (props) => (props.user),\r\n displayName: 'UserSettingsForm',\r\n\r\n})(UserSettingsForm));\r\n\r\nUserSettingsFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onResendEmail: PropTypes.func.isRequired,\r\n onEnableUser: PropTypes.func.isRequired,\r\n onDisableUser: PropTypes.func.isRequired,\r\n roles: PropTypes.array.isRequired,\r\n user: PropTypes.object.isRequired,\r\n};","import React from 'react';\r\nimport { Col, FormControl, FormGroup, Grid, Row } from 'react-bootstrap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Card from '../Cards/Card';\r\nimport { CustomSelect } from '../CustomControls/CustomSelect';\r\nimport { Actions } from './Actions';\r\nimport { PersonalData } from '../Person/PersonalData';\r\nimport { WithAuth } from '../Authorization/WithAuth';\r\n\r\nexport const UserSettingsForm = props => {\r\n const {\r\n isSubmitting,\r\n onChangeRole,\r\n onEnableUser,\r\n onDisableUser,\r\n onResendEmail,\r\n onNewPassword,\r\n roles,\r\n values,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleChange,\r\n t,\r\n } = props;\r\n\r\n let history = useHistory();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.active ?\r\n \r\n {t(\"buttons.disableUser\")}\r\n \r\n }\r\n />\r\n :\r\n \r\n {t(\"buttons.enableUser\")}\r\n \r\n }\r\n />\r\n }\r\n \r\n \r\n \r\n \r\n history.goBack()}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {t(\"security.users.changeRole\")}
    \r\n \r\n
    \r\n \r\n \r\n x && x.name === values.role)}\r\n name={`role`}\r\n placeholder={t(\"commons.select\")}\r\n onChange={setFieldValue}\r\n onBlur={setFieldTouched}\r\n options={roles}\r\n getOptionLabel={x => x.name}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    {t(\"security.users.resendEmail\")}
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    {t(\"security.users.changePassword\")}
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n }\r\n />\r\n \r\n
    \r\n
    \r\n );\r\n};","import { useState } from \"react\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\nimport { getAuditUserRoleAPI, getRolesById, getUsersByIdAPI } from \"../../../api/identity\";\r\n\r\nexport const useAuditsUserRole = () => {\r\n const [audits, setAudits] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const fetchData = async (userId) => {\r\n setIsLoading(true);\r\n try {\r\n setIsLoading(true);\r\n var response = await getAuditUserRoleAPI(userId);\r\n if (!response.data)\r\n return null;\r\n\r\n // Obtengo datos del usuario q realizó la acción\r\n var usersResponse = await getUsersByIdAPI(response.data.filter(x => x.actionBy).map(x => { return x.actionBy }))\r\n if (usersResponse.data) {\r\n response.data.forEach(item => {\r\n item.actionByUser = usersResponse.data.find(x => x.userId == item.actionBy)\r\n });\r\n }\r\n\r\n // Obtengo datos del Rol\r\n var rolesResponse = await getRolesById(response.data.map(x => { return x.roleId }))\r\n if (rolesResponse.data) {\r\n response.data.forEach(item => {\r\n let role = rolesResponse.data.find(x => x.id == item.roleId);\r\n if (role) {\r\n role.name = role.name.replace(`${role.tenantId}_`, \"\");\r\n item.role = role;\r\n }\r\n });\r\n }\r\n\r\n setAudits(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n return [fetchData, audits, isLoading];\r\n}","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n//Components\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { AuditProtocolUserRole } from '../../../components/AuditTrail/AuditUserRole';\r\nimport { PractitionerPicker } from '../../../components/CustomControls/PractitionerPicker';\r\nimport { useAuditsUserRole } from './hooks';\r\n\r\nexport const AuditUserRoleContainer = () => {\r\n const { t } = useTranslation();\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"FullName\",\r\n sortOrder: \"asc\"\r\n },\r\n filters: {}\r\n });\r\n\r\n const [getAudits, audits, isLoading] = useAuditsUserRole();\r\n\r\n const handleSearch = (_name, value) => {\r\n if (value)\r\n getAudits(value.userId);\r\n }\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = {};\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { useContext } from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { exportToExcel } from '../../api/identity';\r\nimport { WithAuth } from '../../components/Authorization/WithAuth';\r\n//Components\r\nimport Card from '../../components/Cards/Card';\r\nimport { CustomSearchBox } from '../../components/CustomControls/CustomSearchBox';\r\nimport ExportToExcel from \"../../components/Export/ExportToExcel\";\r\nimport { Add, Audit } from '../../components/Icons/Icons';\r\nimport { Users } from '../../components/Users/Users';\r\nimport AdminContext from '../Settings/AdminContext/AdminContext';\r\nimport { useUsers } from './Hooks';\r\nimport { AuditModal } from '../../components/AuditTrail/AuditModal';\r\nimport { AuditUserRoleContainer } from './Audit/AuditUserRole';\r\n\r\nexport const UsersContainer = () => {\r\n const { t } = useTranslation();\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"FullName\",\r\n sortOrder: \"asc\"\r\n },\r\n filters: {}\r\n });\r\n const [modal, setModal] = useState(null);\r\n const [users, isLoading, totalSize] = useUsers(query);\r\n //const { selectedTenant } = useContext(AdminContext);\r\n const context = useContext(AdminContext);\r\n\r\n useEffect(() => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.filters[\"TenantId\"] = context?.selectedTenant != null ? context.selectedTenant.tenantId : null;\r\n setQuery(newQuery);\r\n\r\n }, [context]);\r\n\r\n const handleSearch = (q) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.query = q;\r\n setQuery(newQuery);\r\n }\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = {};\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n //#region Audit\r\n const handleAuditUserRole = () => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n \r\n \r\n {t('security.users.add')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n content={\r\n \r\n }\r\n />\r\n \r\n );\r\n}","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport Card from '../Cards/Card';\r\nimport { IconSVG } from '../Icons/Icons';\r\n\r\nconst AppointmentWidget = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {t(\"dashboard.addAppointment\")}\r\n \r\n
    \r\n \r\n }\r\n />\r\n\r\n )\r\n}\r\n\r\n\r\nexport default AppointmentWidget;\r\n","import moment from 'moment';\r\n//import 'moment/locale/es';\r\n//import 'moment/locale/pt-br';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst DateTimeWidget = () => {\r\n\r\n const [today, setDate] = useState(new Date());\r\n const auth = useSelector(state => state.authentication);\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => { // Creates an interval which will update the current data every minute\r\n // This will trigger a rerender every component that uses the useDate hook.\r\n setDate(new Date());\r\n }, 60 * 1000);\r\n return () => {\r\n clearInterval(timer); // Return a funtion to clear the timer so that it will stop being called on unmount\r\n }\r\n }, []);\r\n\r\n function getLocaleDate() {\r\n if (auth && auth.user && auth.user.language)\r\n return moment(today).locale(auth.user.language).format(\"dddd, D MMMM, YYYY\");\r\n return moment(today).locale(\"es\").format(\"dddd, D MMMM, YYYY\");\r\n }\r\n\r\n return (\r\n
    \r\n
    {getLocaleDate()}
    \r\n
    {moment(today).format(\"HH:mm\")}
    \r\n
    \r\n );\r\n}\r\n\r\n\r\nexport default DateTimeWidget;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport Card from '../Cards/Card';\r\nimport { IconSVG } from '../Icons/Icons';\r\n\r\nconst PatientWidget = () => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {t(\"dashboard.addPatient\")}\r\n \r\n
    \r\n \r\n }\r\n />\r\n\r\n )\r\n}\r\n\r\n\r\nexport default PatientWidget;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { PatientPicker } from '../CustomControls/PatientPicker';\r\n\r\nconst SearchWidget = () => {\r\n const { t } = useTranslation();\r\n const navigation = useHistory();\r\n\r\n const handlePatientSearch = (_controlName, selectedPatient) => {\r\n\r\n if (selectedPatient)\r\n navigation.push(`/admin/medicalRecords/${selectedPatient.medicalRecordNumber}`)\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {t(\"dashboard.searchTitle\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default SearchWidget;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst WelcomeWidget = () => {\r\n const { t } = useTranslation();\r\n const auth = useSelector(state => state.authentication);\r\n\r\n return (\r\n
    \r\n
    \r\n {t(\"dashboard.welcome\")} {auth.isAuthenticated && auth.user?.given_name}!\r\n
    \r\n {/*
    \r\n {t(\"dashboard.noNotifications\")}\r\n
    */}\r\n
    \r\n )\r\n}\r\n\r\nexport default WelcomeWidget;\r\n","import axios from './index';\r\n\r\nexport const getAllNotifications = async () => {\r\n return axios.get(`api/v1/notifications/all`);\r\n}\r\nexport const getUnreadNotifications = async () => {\r\n return axios.get(`api/v1/notifications`);\r\n}\r\nexport const markAsReadedNotification = async (messageId) => {\r\n return axios.put(`api/v1/notifications/${messageId}`, null);\r\n};","import { getAllNotifications, getUnreadNotifications, markAsReadedNotification } from \"../api/notifications\";\r\n\r\nconst receiveNotification = 'NOTIFICATION_RECEIVED';\r\nconst requestAllNotificationsType = 'NOTIFICATIONS_ALL_REQUEST';\r\nconst receiveAllNotificationsType = 'NOTIFICATIONS_ALL_RECEIVE';\r\nconst requestUnreadNotificationsType = 'NOTIFICATIONS_UNREAD_REQUEST';\r\nconst receiveUnreadNotificationsType = 'NOTIFICATIONS_UNREAD_RECEIVE';\r\nconst requestMarkAsReadedNotificationType = 'NOTIFICATIONS_MARKASREADED_REQUEST';\r\nconst receiveMarkAsReadedNotificationType = 'NOTIFICATIONS_MARKASREADED_RECEIVE';\r\nconst initialState = { unreadNotifications: [], notifications: [], isLoading: false };\r\n\r\nexport const actionCreators = {\r\n requestAllNotifications: () => async (dispatch) => {\r\n\r\n dispatch({ type: requestAllNotificationsType });\r\n\r\n try {\r\n const response = await getAllNotifications();\r\n const notifications = response.data;\r\n\r\n dispatch({ type: receiveAllNotificationsType, notifications });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n },\r\n requestUnreadNotifications: () => async (dispatch) => {\r\n\r\n dispatch({ type: requestUnreadNotificationsType });\r\n\r\n try {\r\n const response = await getUnreadNotifications();\r\n const unreadNotifications = response.data;\r\n\r\n dispatch({ type: receiveUnreadNotificationsType, unreadNotifications });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n },\r\n requestMarkAsReadedNotification: (messageId) => async (dispatch) => {\r\n\r\n dispatch({ type: requestMarkAsReadedNotificationType });\r\n\r\n try {\r\n await markAsReadedNotification(messageId);\r\n dispatch({ type: receiveMarkAsReadedNotificationType, messageId });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n },\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === receiveNotification) {\r\n console.log(action.payload)\r\n if (action.payload && action.payload.content)\r\n return { ...state, notifications: state.notifications.concat(action.payload) };\r\n }\r\n\r\n if (action.type === requestAllNotificationsType || action.type === requestUnreadNotificationsType) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n if (action.type === receiveAllNotificationsType) {\r\n return {\r\n ...state,\r\n notifications: action.notifications,\r\n isLoading: false\r\n };\r\n }\r\n if (action.type === receiveUnreadNotificationsType) {\r\n return {\r\n ...state,\r\n notifications: action.unreadNotifications,\r\n isLoading: false\r\n };\r\n }\r\n\r\n if (action.type === requestMarkAsReadedNotificationType) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n if (action.type === receiveMarkAsReadedNotificationType) {\r\n const indexToRemove = state.notifications.findIndex((item) => item.id === action.messageId);\r\n return {\r\n ...state,\r\n notifications: [...state.notifications.slice(0, indexToRemove), ...state.notifications.slice(indexToRemove + 1)], //state.notifications.filter((item) => item.id !== action.messageId),\r\n isLoading: false\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { Readed, Unread, View } from '../Icons/Icons';\r\nimport { actionCreators } from '../../store/Notifications';\r\nimport { generateLink } from '../Utils/Commons';\r\nimport Card from '../Cards/Card';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst UserNotificationsCode = ({ notifications, requestUnreadNotifications, requestMarkAsReadedNotification }) => {\r\n const { t } = useTranslation();\r\n useEffect(() => {\r\n requestUnreadNotifications();\r\n }, []);\r\n\r\n const montotos = notifications.map((notification, index) => {\r\n //var params = \"&from=VisitTracking&protocolId=1&visitId=1&patientId=28294&formId=21\";\r\n return (\r\n \r\n {notification.content}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n notification.status === 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n \r\n \r\n )\r\n });\r\n\r\n return (\r\n \r\n \r\n {montotos}\r\n \r\n \r\n }\r\n />\r\n )\r\n}\r\n\r\nconst UsersNotifications = connect(\r\n state => state.notifications,\r\n dispatch => bindActionCreators(actionCreators, dispatch)\r\n)(UserNotificationsCode);\r\n\r\nexport default UsersNotifications;\r\n","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport avatarDefault from \"../../assets/img/faces/face-0.jpg\";\r\nimport { usePatientAvatar } from '../../containers/MedicalRecords/Hooks/usePatient';\r\n\r\nexport const PatientAvatarAsync = ({ medicalRecordNumber }) => {\r\n\r\n const [avatar, isLoading] = usePatientAvatar(medicalRecordNumber);\r\n\r\n return ( { e.target.onerror = null; e.target.src = avatarDefault }}\r\n className=\"avatar\" />);\r\n}\r\n\r\nPatientAvatarAsync.propTypes = {\r\n medicalRecordNumber: PropTypes.string.isRequired\r\n};","import moment from 'moment';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { visitTypeColorGetter } from '../Agenda/Utils';\r\nimport Card from '../Cards/Card';\r\nimport { PatientAvatarAsync } from '../CustomControls/PatientAvatarAsync';\r\nimport { AddAppointment, PersonCheckLine, VideoCall, ViewMR, WaitingRoom } from '../Icons/Icons';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\n\r\nconst DailyAgendaWidget = (props) => {\r\n const { events, isLoading, onAttendance } = props;\r\n const { t } = useTranslation();\r\n const settingsStore = useSelector(state => state.settings);\r\n\r\n let components = null;\r\n if (!isLoading) {\r\n components = events.map((event, index) => {\r\n\r\n let eventIdParam = event.present ? `?appointmentId=${event.id}` : '';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {moment(event.start).format('H:mm')} - {moment(event.end).format('H:mm')} [{event.visitType?.title}]\r\n
    {event.patient.fullName} - {event.practitioner.fullName}
    \r\n \r\n \r\n
    \r\n {\r\n event.present &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n {\r\n event.present ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n event.visitType.code === \"EXTERNAL_PHONE\" &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n \r\n \r\n )\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {components}\r\n \r\n
    \r\n \r\n }\r\n />\r\n )\r\n}\r\n\r\nexport default DailyAgendaWidget;\r\n","import moment from \"moment\";\r\nimport { getWaitingList, updateEventAttendance } from \"../api/agenda\";\r\n\r\nconst requestWaitingListAllType = 'WAITINGLIST_ALL_REQUEST';\r\nconst receiveWaitingListAllType = 'WAITINGLIST_ALL_RECEIVE';\r\nconst requestMarkAsAttendedType = 'MARKASATTENDED_REQUEST';\r\nconst receiveMarkAsAttendedType = 'MARKASATTENDED_RECEIVE';\r\nconst receiveErrorType = 'RECEIVE_ERROR';\r\nconst clearErrors = 'CLEAR_ERROR';\r\n\r\nconst initialState = { events: [], isLoading: false, error: null };\r\n\r\nexport const agendaActionCreators = {\r\n requestWaitingList: () => async (dispatch) => {\r\n\r\n dispatch({ type: requestWaitingListAllType });\r\n\r\n try {\r\n const response = await getWaitingList();\r\n\r\n var events = response.data.map(event => {\r\n event.start = moment.utc(moment.utc(event.start)).local().toDate();\r\n event.end = moment.utc(moment.utc(event.end)).local().toDate();\r\n return event;\r\n });\r\n\r\n dispatch({ type: receiveWaitingListAllType, events });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n },\r\n\r\n requestMarkAsAttended: (eventId) => async (dispatch) => {\r\n\r\n dispatch({ type: requestMarkAsAttendedType });\r\n\r\n try {\r\n await updateEventAttendance(eventId);\r\n dispatch({ type: receiveMarkAsAttendedType, eventId });\r\n }\r\n catch (error) {\r\n console.log(error);\r\n dispatch({ type: receiveErrorType, error });\r\n }\r\n },\r\n\r\n clearErrors: () => async (dispatch) => {\r\n\r\n dispatch({ type: clearErrors });\r\n },\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === requestWaitingListAllType) {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n error: null\r\n };\r\n }\r\n if (action.type === receiveWaitingListAllType) {\r\n return {\r\n ...state,\r\n events: action.events,\r\n isLoading: false,\r\n error: null\r\n };\r\n }\r\n\r\n if (action.type === requestMarkAsAttendedType) {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n error: null\r\n };\r\n }\r\n if (action.type === receiveMarkAsAttendedType) {\r\n return {\r\n ...state,\r\n events: state.events.filter((item) => item.id !== action.eventId),\r\n isLoading: false,\r\n error: null\r\n };\r\n }\r\n\r\n if (action.type === clearErrors) {\r\n return {\r\n ...state,\r\n error: null\r\n };\r\n }\r\n if (action.type === receiveErrorType) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","import { HubConnectionState } from '@microsoft/signalr';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport DailyAgendaWidget from '../../components/Dashboard/DailyAgendaWidget';\r\nimport { ModalConfirm } from '../../components/Modals/ModalConfirm';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { useSignalR } from '../../services/signalRService';\r\nimport { agendaActionCreators } from '../../store/Agenda';\r\n\r\nconst WaitingListWidgetContainer = () => {\r\n const [modal, setModal] = useState(null);\r\n const { t } = useTranslation();\r\n const agendaStore = useSelector(state => state.agenda);\r\n const dispatch = useDispatch();\r\n const { connection } = useSignalR();\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection.on('Agenda', res => {\r\n dispatch({\r\n type: 'NOTIFICATION_RECEIVED',\r\n payload: {\r\n ...res\r\n }\r\n });\r\n dispatch(agendaActionCreators.requestWaitingList());\r\n });\r\n\r\n return () => {\r\n // Leave group when component unmounts\r\n if (connection.connection._connectionState === HubConnectionState.Connected)\r\n connection.invoke('LeaveGroup', \"SystemNotifications\");\r\n };\r\n }\r\n }, [connection]);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const initComponent = async () => {\r\n if (isSubscribed)\r\n await dispatch(agendaActionCreators.requestWaitingList());\r\n }\r\n\r\n initComponent();\r\n\r\n return () => isSubscribed = false;\r\n }, []); //Uso el cambio de notifications, para hacer reload de eventos. TODO: ¿Pasar sala de espera a redux?\r\n\r\n const handleAttendance = async (eventId) => {\r\n if (!eventId)\r\n return;\r\n\r\n setModal( { dispatch(agendaActionCreators.requestMarkAsAttended(eventId)); setModal(null) }}\r\n onCancel={() => { setModal(null) }}\r\n />);\r\n }\r\n\r\n if (!agendaStore.isLoading && agendaStore.error) {\r\n HandleApiError(agendaStore.error);\r\n dispatch(agendaActionCreators.clearErrors());\r\n }\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n );\r\n\r\n}\r\n\r\nexport default WaitingListWidgetContainer;\r\n","import React from \"react\";\r\nimport { Col, Grid, Row } from \"react-bootstrap\";\r\nimport \"../assets/sass/lbd/_dashboard.scss\";\r\nimport { WithAuth } from \"../components/Authorization/WithAuth\";\r\nimport AppointmentWidget from \"../components/Dashboard/AppointmentWidget.jsx\";\r\nimport DateTimeWidget from \"../components/Dashboard/DateTimeWidget.jsx\";\r\nimport PatientWidget from \"../components/Dashboard/PatientWidget.jsx\";\r\nimport SearchWidget from \"../components/Dashboard/SearchWidget.jsx\";\r\nimport WelcomeWidget from \"../components/Dashboard/WelcomeWidget.jsx\";\r\nimport UsersNotifications from \"../components/Notifications/UserNotifications.jsx\";\r\nimport WaitingListWidgetContainer from \"../containers/Agenda/WaitingListWidgetContainer.jsx\";\r\nimport SignalRProvider from \"../services/signalRService\";\r\nimport { useSelector } from 'react-redux';\r\n\r\nexport const Dashboard = () => {\r\n\r\n const user = useSelector(state => state.authentication.user);\r\n const settingsState = useSelector(state => state.settings);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default Dashboard;\r\n","import React from \"react\";\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Doctor, Identification, Date, Address } from \"../Icons/Icons\";\r\nimport { dateFormatter } from \"../Utils/Formatter\";\r\n\r\nexport const ExpandedContent = props => {\r\n\r\n const { t } = useTranslation();\r\n const patient = props.data;\r\n\r\n if (!patient)\r\n return (<>);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.address.address\")}
    \r\n
    {patient.address}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.birthDate\")}
    \r\n
    {dateFormatter(patient.birthDate)} ({patient.age} años)
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.identificationNumber\")}
    \r\n
    {`${patient.identificationType} ${patient.identificationNumber}`}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.familyDoctor\")}
    \r\n
    {patient.familyDoctor}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t(\"person.internalPractitioner\")}
    \r\n
    {patient.internalPractitioner}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { exportToExcel } from '../../api/database';\r\nimport { WithAuth } from '../../components/Authorization/WithAuth';\r\nimport { Card } from '../../components/Cards/Card';\r\nimport { CustomSearchBox } from '../../components/CustomControls/CustomSearchBox';\r\nimport { CustomSelect } from '../../components/CustomControls/CustomSelect';\r\nimport { PractitionerSelect } from '../../components/CustomControls/PractitionerSelect';\r\nimport { ExpandedContent } from '../../components/Database/ExpandedContent';\r\nimport ExportToExcel from \"../../components/Export/ExportToExcel\";\r\nimport { Add, AddAppointment, View, ViewMR } from '../../components/Icons/Icons';\r\nimport { Tooltip } from '../../components/Utils/Tooltips';\r\nimport { useProtocols } from '../Protocols/Hooks';\r\nimport { usePatients } from './Hooks';\r\n\r\nexport const Patients = () => {\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'medicalRecordNumber', text: t(\"person.mrn\"), sort: true, headerStyle: { width: '100px' } },\r\n { dataField: 'fullName', text: t(\"person.fullName\"), sort: true, classes: 'w900' },\r\n { dataField: 'cellPhone', text: t(\"person.contact.cellPhone\") },\r\n { dataField: 'medicalInsurance', text: t(\"person.medicalInsuranceInfo.medicalInsurance\"), sort: true },\r\n { dataField: 'medicalInsuranceNumber', text: t(\"person.medicalInsuranceInfo.medicalInsuranceNumber\"), sort: false },\r\n {\r\n dataField: 'view', text: t(\"commons.actions\"), isDummyField: true,\r\n headerClasses: 'header-view-btn', classes: 'row-view-btn',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const expandedContent = (row) => ()\r\n\r\n const [type, setType] = useState(\"PROTOCOL\");\r\n const [query, setQuery] = useState({\r\n q: \"\",\r\n projects: [],\r\n protocols: [],\r\n professionals: [],\r\n type: {},\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"FamilyName\",\r\n sortOrder: \"asc\"\r\n }\r\n });\r\n\r\n const [patients, isLoadingPatients, totalSize] = usePatients(query);\r\n const [protocols, , , isLoadingProtocols] = useProtocols();\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n\r\n var newQuery = {};\r\n if (type === 'pagination') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n\r\n setQuery(newQuery);\r\n }\r\n\r\n if (type === 'sort') {\r\n newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n const handleSearch = (q) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.q = q;\r\n setQuery(newQuery);\r\n }\r\n\r\n const handleProjectChange = (name, selectedValues) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.protocols = [];\r\n newQuery.projects = selectedValues;\r\n setQuery(newQuery);\r\n }\r\n\r\n const handleProtocolChange = (name, selectedValues) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.protocols = selectedValues;\r\n newQuery.projects = [];\r\n setQuery(newQuery);\r\n }\r\n\r\n const handleProfessionalChange = (name, selectedValues) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n newQuery.professionals = selectedValues;\r\n setQuery(newQuery);\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('database.addPatient')}\r\n \r\n \r\n \r\n {\r\n type === \"PROTOCOL\" ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n content={\r\n <>{t(\"commons.noData\")}}\r\n onTableChange={handleTableChange}\r\n />\r\n }\r\n />\r\n );\r\n}","import React from 'react';\r\n\r\nimport { Patients } from '../containers/Database/Patients';\r\n\r\nconst DatabasePage = () => (\r\n \r\n);\r\n\r\nexport default DatabasePage;","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport '../../assets/sass/lbd/_error-pages.scss';\r\nimport image from \"../../assets/img/forbidden.png\";\r\n\r\nconst ForbiddenPage = () => {\r\n\r\n return (\r\n
    \r\n \"Acceso\r\n\r\n

    403

    \r\n

    Acceso Denegado

    \r\n

    No tiene los permisos suficientes para acceder al recurso. En caso de que lo necesite, contactese con el administrador del sistema.

    \r\n ← Volver\r\n
    \r\n );\r\n}\r\n\r\nexport default ForbiddenPage;\r\n","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport '../../assets/sass/lbd/_error-pages.scss';\r\n\r\nconst NotFoundPage = () => (\r\n
    \r\n

    404

    \r\n

    Recurso no encontrado

    \r\n

    El recurso al que quiere acceder no ha sido encontrado.

    \r\n ← Volver\r\n
    \r\n);\r\n\r\nexport default NotFoundPage;\r\n","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport image from \"../../assets/img/forbidden.png\";\r\nimport '../../assets/sass/lbd/_error-pages.scss';\r\n\r\nconst UnauthorizedPage = () => {\r\n //const [isAuthenticated] = useAuthorization();\r\n //let history = useHistory();\r\n //\r\n //if (isAuthenticated) {\r\n // history.push(`/`);\r\n //}\r\n return (\r\n
    \r\n \"Acceso\r\n \r\n

    401

    \r\n

    Acceso Denegado

    \r\n

    No tiene los permisos suficientes para acceder al recurso. En caso de que lo necesite, contactese con el administrador del sistema.

    \r\n ← Volver\r\n
    \r\n );\r\n}\r\n\r\nexport default UnauthorizedPage;\r\n","import moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\n\r\nexport const NullableDatePicker = (props) => {\r\n const {\r\n dayLabel,\r\n monthLabel,\r\n yearLabel,\r\n value,\r\n onChange,\r\n onBlur,\r\n futureDates\r\n } = props;\r\n\r\n const [day, setDay] = useState(null);\r\n const [month, setMonth] = useState(null);\r\n const [year, setYear] = useState(null);\r\n\r\n const [selectDay, setSelectDay] = useState(\"UNK\");\r\n const [selectMonth, setSelectMonth] = useState(\"UNK\");\r\n const [selectYear, setSelectYear] = useState(\"UNK\");\r\n\r\n useEffect(() => {\r\n let day = [], month = [], year = [];\r\n let maxDays = 31;\r\n let maxMonths = 11;\r\n\r\n if (selectYear && selectYear !== \"UNK\" && selectMonth && selectMonth !== \"UNK\") {\r\n maxDays = moment(`${selectYear}-${parseInt(selectMonth) + 1}`, \"YYYY-MM\").daysInMonth();\r\n }\r\n\r\n if (!futureDates && selectYear && selectYear === moment().year().toString()) {\r\n maxMonths = moment().month();\r\n\r\n if (selectMonth && selectMonth === moment().month().toString())\r\n maxDays = moment().date();\r\n }\r\n\r\n for (let i = 1; i <= maxDays; i++) {\r\n day.push(i);\r\n }\r\n\r\n for (let i = 0; i <= maxMonths; i++) {\r\n month.push({\r\n text: props.useMonthNames ? moment.monthsShort('-MMM-', i) : (i + 1),\r\n value: i\r\n });\r\n }\r\n\r\n const maxYear = futureDates ? moment().year() + 10 : moment().year();\r\n for (let i = maxYear; i >= props.minYear; i--) {\r\n year.push(i);\r\n }\r\n\r\n setDay(day); setMonth(month); setYear(year);\r\n if (value && value.split(\"/\").length > 2) {\r\n\r\n let selectedDay = value.split(\"/\")[0];\r\n let selectedMonth = value.split(\"/\")[1];\r\n let selectedYear = value.split(\"/\")[2];\r\n\r\n setSelectDay(selectedDay ? selectedDay : \"UNK\");\r\n setSelectMonth(selectedMonth ? selectedMonth : \"UNK\");\r\n setSelectYear(selectedYear ? selectedYear : \"UNK\");\r\n }\r\n }, [value]);\r\n\r\n const handleBlur = () => {\r\n if (props.onBlur)\r\n onBlur(props.name, true);\r\n };\r\n\r\n const handleChange = (e, type) => {\r\n const selectedValue = e.target.value ? e.target.value : \"UNK\";\r\n switch (type) {\r\n case \"selectDay\":\r\n setSelectDay(selectedValue);\r\n onChange(props.name, `${selectedValue}/${selectMonth}/${selectYear}`);\r\n break;\r\n case \"selectMonth\":\r\n setSelectMonth(selectedValue);\r\n onChange(props.name, `${selectDay}/${selectedValue}/${selectYear}`);\r\n break;\r\n case \"selectYear\":\r\n setSelectYear(selectedValue);\r\n onChange(props.name, `${selectDay}/${selectMonth}/${selectedValue}`);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n if (!day || !month || !year)\r\n return null;\r\n\r\n const dayElement = day.map((day, id) => {\r\n return ;\r\n });\r\n const monthElement = month.map((month, id) => {\r\n return ;\r\n });\r\n const yearElement = year.map((year, id) => {\r\n return ;\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nNullableDatePicker.propTypes = {\r\n disabled: PropTypes.bool,\r\n name: PropTypes.string,\r\n onChange: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n dayLabel: PropTypes.string,\r\n monthLabel: PropTypes.string,\r\n yearLabel: PropTypes.string,\r\n minYear: PropTypes.number,\r\n value: PropTypes.string,\r\n useMonthNames: PropTypes.bool,\r\n futureDates: PropTypes.bool,\r\n};\r\n\r\nNullableDatePicker.defaultProps = {\r\n dayLabel: 'dia',\r\n monthLabel: 'mes',\r\n yearLabel: 'año',\r\n minYear: 1916,\r\n value: \"UNK/UNK/UNK\",\r\n useMonthNames: true,\r\n futureDates: false,\r\n};","import { ErrorMessage, FieldArray } from 'formik'\r\nimport i18n from 'i18next'\r\nimport React from 'react'\r\nimport { Col, ControlLabel, FormControl, FormGroup, HelpBlock, InputGroup, Panel, PanelGroup, Row } from 'react-bootstrap'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { conceptType } from '../../variables/Enums'\r\nimport Card from '../Cards/Card'\r\nimport { AdherenceControl } from '../CustomControls/Adherence'\r\nimport { AuditTooltip } from '../CustomControls/AuditTooltip'\r\nimport { CustomCheckbox } from '../CustomControls/CustomCheckbox'\r\nimport { NullableDatePicker } from '../CustomControls/CustomDate'\r\nimport { CustomDateTime, CustomTime } from \"../CustomControls/CustomDateTime\"\r\nimport { CustomFormControl } from '../CustomControls/CustomFormControl'\r\nimport { CustomRadio } from '../CustomControls/CustomRadio'\r\nimport { AdverseEventsAsync, CustomSelect, CustomSelectAsync } from \"../CustomControls/CustomSelect\"\r\nimport { FilesForm } from '../CustomControls/Files/Files'\r\nimport { SnomedPicker } from '../CustomControls/SnomedPicker'\r\nimport { YesNo, YesNoNotApply } from '../CustomControls/YesNoControls'\r\nimport { Remove } from '../Icons/Icons'\r\nimport { AdverseEventsOpenItems } from '../MedicalRecords/AdverseEvents'\r\nimport { DrugsOpenItems } from '../MedicalRecords/Drugs'\r\nimport { ProceduresOpenItems } from '../MedicalRecords/Procedures'\r\nimport { toLocaleDateFormatter } from '../Utils/Formatter'\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors'\r\n\r\nfunction handleYesNoConditionalChange(name, value, field, props) {\r\n props.setFieldValue(name, value);\r\n\r\n if (field.conditional) {\r\n field.conditional.forEach(hideFieldId => {\r\n props.values.fields.forEach((x, index) => {\r\n if (x.id === hideFieldId) {\r\n let name = `fields[${index}]`;\r\n switch (value) {\r\n case false:\r\n props.setFieldValue(`${name}.hide`, true); break;\r\n case true:\r\n props.setFieldValue(`${name}.hide`, false); break;\r\n default:\r\n break;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getDynamicField = (field, indexComp, indexChild, index, props, t) => {\r\n const {\r\n setFieldValue,\r\n setFieldTouched,\r\n handleChange,\r\n handleBlur,\r\n isDisabled,\r\n isUploadEnabled\r\n } = props;\r\n\r\n let name = `fields[${index}]`;\r\n if (indexChild !== null && indexChild !== undefined) {\r\n name = `fields[${index}].components[${indexComp}].fields[${indexChild}]`;\r\n }\r\n let auditName = `${name}.value`;\r\n\r\n let dynamicField = null;\r\n switch (field._t) {\r\n case 'DividerField':\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n case 'TextField':\r\n return (\r\n \r\n \r\n {field.label}\r\n \r\n \r\n );\r\n case 'SingleLineField':\r\n dynamicField = ();\r\n break;\r\n case 'MultiLineField':\r\n dynamicField = ();\r\n break;\r\n case 'IntegerField':\r\n case 'DecimalField':\r\n if (field.value && field._t === \"DecimalField\" && typeof field.value === \"number\")\r\n field.value = field.value.toFixed(2);\r\n\r\n if (field.text && field.text !== \"\") {\r\n dynamicField = (\r\n \r\n {field.textPosition == 0 ? {field.text} : \"\"}\r\n \r\n {field.textPosition == 1 ? {field.text} : \"\"}\r\n );\r\n }\r\n else {\r\n dynamicField = ();\r\n }\r\n break;\r\n case 'DateField':\r\n dynamicField = ();\r\n break;\r\n case 'TimeField':\r\n dynamicField = ();\r\n break;\r\n case 'DateTimeField':\r\n dynamicField = ();\r\n break;\r\n case 'PayableField':\r\n case 'BooleanField':\r\n dynamicField = ( handleYesNoConditionalChange(name, value, field, props)}\r\n name={`${name}.value`}\r\n isClearable={!field.required} />);\r\n break;\r\n case 'YesNoField':\r\n dynamicField = ();\r\n break;\r\n case 'SnomedField':\r\n let type = null;\r\n switch (field.syncTo) {\r\n case \"AdverseEvent\": type = conceptType.events; break;\r\n case \"Drug\": type = conceptType.drugs; break;\r\n case \"Procedure\": type = conceptType.procedures; break;\r\n default:\r\n type = conceptType.events; break;\r\n }\r\n auditName += \".description\";\r\n dynamicField = ();\r\n break;\r\n case 'ProcedureSnomedField':\r\n auditName += \".description\";\r\n dynamicField = ();\r\n break;\r\n case 'SelectField':\r\n auditName += \".title\";\r\n let options = field.options.split(\"\\n\").map((option, idx) => { return { id: idx, title: option } });\r\n dynamicField = ();\r\n break;\r\n case 'SelectAsyncField':\r\n auditName += \".title\";\r\n dynamicField = ();\r\n break;\r\n case 'AdverseEventsAsyncField':\r\n dynamicField = ();\r\n break;\r\n case 'CheckboxField':\r\n dynamicField = ();\r\n break;\r\n case 'MultiCheckBoxField':\r\n let multicheckOptions = field.options?.split(\"\\n\").map((option, idx) => { return { id: `${idx}_${field.order}`, idx, title: option } });\r\n dynamicField = multicheckOptions.map(option => {\r\n return ( {\r\n if (!idx) return;\r\n let checkboxArray = !field.value ? multicheckOptions.map(() => false) : field.value;\r\n checkboxArray[idx.split('.')?.pop()] = checked;\r\n setFieldValue(name, checkboxArray);\r\n }}\r\n />);\r\n });\r\n break;\r\n case 'RadioField':\r\n let radioOptions = field.options.split(\"\\n\").map((option, idx) => { return { id: `${idx}_${field.order}`, idx, title: option } });\r\n dynamicField = radioOptions.map(option => {\r\n return ();\r\n });\r\n break;\r\n case 'FileUploadField':\r\n auditName += \".fileName\";\r\n dynamicField = (<>\r\n \r\n {\r\n field.value && field.value.uploadedBy && field.value.uploadedBy !== \"00000000-0000-0000-0000-000000000000\" && props.currentUser !== field.value.uploadedBy &&\r\n { if (value) setFieldValue(controlName, props.currentUser); else setFieldValue(controlName, null) }} />\r\n }\r\n );\r\n break;\r\n case 'AdherenceField':\r\n dynamicField = (\r\n );\r\n break;\r\n case 'BMIField':\r\n let montotoFields = props.values.fields;\r\n if (indexChild !== null && indexChild !== undefined) {\r\n montotoFields = props.values.fields[index].components[indexComp].fields;\r\n }\r\n const height = montotoFields.find(x => x.syncTo === \"Height\");\r\n const weight = montotoFields.find(x => x.syncTo === \"Weight\");\r\n\r\n if (!height || !weight) {\r\n dynamicField = i18n.t(\"protocols.visit.formTemplate.label_bmiField\"); break;\r\n }\r\n const heightFloat = parseFloat(height.value);\r\n const weightFloat = parseFloat(weight.value);\r\n if (!isNaN(heightFloat) && !isNaN(weightFloat) && heightFloat > 0) {\r\n const bmi = weightFloat / (heightFloat / 100 * heightFloat / 100);\r\n dynamicField = \r\n \r\n {Math.round(bmi * 10) / 10}\r\n \r\n \r\n }\r\n break;\r\n case 'AdverseEventsOpenItemsField':\r\n dynamicField = (\r\n );\r\n break;\r\n case 'DrugsOpenItemsField':\r\n dynamicField = (\r\n );\r\n break;\r\n case 'ProceduresOpenItemsField':\r\n dynamicField = (\r\n );\r\n break;\r\n default:\r\n dynamicField = ();\r\n break;\r\n }\r\n\r\n if (props.getLastChange && field._t !== \"AdverseEventsOpenItemsField\" && field._t !== \"DrugsOpenItemsField\" && field._t !== \"ProceduresOpenItemsField\") {\r\n const audit = props.getLastChange(auditName);\r\n if (audit !== null) {\r\n return (\r\n \r\n \r\n {dynamicField}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n return dynamicField;\r\n}\r\n\r\nconst getArrayFieldComponent = (field, index, props, t) => {\r\n const { isDisabled } = props;\r\n\r\n return (\r\n \r\n
    \r\n (\r\n
    \r\n {field.components && field.components.length > 0 ? (\r\n field.components.map((component, indexComp) => {\r\n const sortedFields = component.fields.sort((function (a, b) { return a.order - b.order; }));\r\n\r\n if (!sortedFields || sortedFields.length === 0)\r\n return '';\r\n\r\n return (\r\n \r\n \r\n {sortedFields[0].value?.description ?? sortedFields[0].label}\r\n \r\n \r\n \r\n arrayHelper.remove(indexComp)}\r\n disabled={isDisabled}\r\n >\r\n \r\n \r\n {\r\n sortedFields.map(function (fieldRec, indexRec) {\r\n return (\r\n
    \r\n \r\n \r\n {fieldRec.label} {fieldRec.required && *}\r\n \r\n \r\n {getDynamicField(fieldRec, indexComp, indexRec, index, props)}\r\n \r\n {fieldRec.note}\r\n \r\n \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n \r\n }\r\n />\r\n
    \r\n
    \r\n );\r\n })\r\n ) : \"\"}\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n );\r\n}\r\n\r\nconst getTableArrayFieldComponent = (field, index, props, t) => {\r\n const { isDisabled } = props;\r\n\r\n if (!field.components && field.components.length === 0)\r\n return null;\r\n\r\n return (\r\n (\r\n
    \r\n {\r\n field && field.components[0] && field.components[0].fields &&\r\n \r\n \r\n \r\n {\r\n field.components[0].fields?.sort((function (a, b) { return a.order - b.order; }))\r\n .map(function (fieldRec, indexRec) {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n field.components.map((component, indexComp) => {\r\n const sortedFields = component.fields?.sort((function (a, b) { return a.order - b.order; }));\r\n\r\n if (!sortedFields || sortedFields.length === 0)\r\n return '';\r\n\r\n return (\r\n {\r\n sortedFields.map(function (fieldRec, indexRec) {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n arrayHelper.remove(indexComp)} >\r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
    \r\n {fieldRec.label}\r\n
    \r\n {getDynamicField(fieldRec, indexComp, indexRec, index, props)}\r\n \r\n {fieldRec.note}\r\n
    \r\n }\r\n\r\n \r\n
    \r\n )}\r\n />\r\n );\r\n}\r\n\r\nexport const DynamicForm = props => {\r\n const { values } = props;\r\n const { t } = useTranslation();\r\n\r\n //values es el Form con sus propiedades. \r\n if (!values || !values.fields)\r\n return null;\r\n\r\n const fields = values.fields.sort((function (a, b) { return a.order - b.order; }))\r\n .map(function (field, index) {\r\n if (field.hide === true) return null;\r\n field.value = field.value ?? '';\r\n\r\n switch (field._t) {\r\n case 'ArrayField':\r\n if (values.type === \"LaboratoryResults\")\r\n return getTableArrayFieldComponent(field, index, props, t);\r\n\r\n return getArrayFieldComponent(field, index, props, t);\r\n case 'DividerField':\r\n case 'TextField':\r\n return getDynamicField(field, null, null, index, props, t);\r\n default:\r\n return (\r\n \r\n \r\n {field.label} {field.required && *}\r\n \r\n \r\n {getDynamicField(field, null, null, index, props, t)}\r\n \r\n {field.note}\r\n \r\n \r\n );\r\n }\r\n });\r\n\r\n return (\r\n \r\n
    {t(\"protocols.visitTracking.firstSave\")}: {toLocaleDateFormatter(values.created, \"DD/MMM/YYYY HH:mm\")}
    \r\n
    {t(\"protocols.visitTracking.lastSave\")}: {toLocaleDateFormatter(values.modified, \"DD/MMM/YYYY HH:mm\")}
    \r\n \r\n : null}\r\n content={\r\n <>\r\n {fields}\r\n
    \r\n \r\n }\r\n />\r\n );\r\n};","import PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { patientInProtocolStatus, visitStage, visitStatus, visitTypes } from \"../../../variables/Enums\";\r\nimport { WithAuth } from \"../../Authorization/WithAuthProtocol\";\r\nimport Card from \"../../Cards/Card\";\r\nimport { Audit, Back, Drug, Export, Publish, Remove, Save, Warning } from \"../../Icons/Icons\";\r\n\r\n\r\nexport const FormActions = (props) => {\r\n const {\r\n onBack,\r\n onSave,\r\n onAuditTrail,\r\n onScreenFailure,\r\n onWithoutDrugs,\r\n onDiscontinuation,\r\n onRemove,\r\n onExport,\r\n visit,\r\n onEndPatientInProtocol,\r\n onRollbackVisitStatus,\r\n protocolId,\r\n isSubmitting\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n if (!visit)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n onSave()}\r\n >\r\n {t('protocols.visitTracking.saveChanges')}\r\n \r\n \r\n \r\n \r\n {t('protocols.visitTracking.export')}\r\n \r\n \r\n \r\n { // Publicación de Visita.\r\n (visit.type !== visitTypes.EarlyCompletion &&\r\n visit.status !== visitStatus.Failed && visit.status !== visitStatus.Skipped && visit.status !== visitStatus.Completed) &&\r\n \r\n \r\n {visit.status === 1 ? t('protocols.visitTracking.publishChanges') : t('protocols.visitTracking.publish')}\r\n \r\n }\r\n { // Eliminar visita. \r\n visit.status === visitStatus.Started &&\r\n onRemove()}\r\n disabled={isSubmitting}\r\n >\r\n {t('protocols.visitTracking.remove')}\r\n \r\n }\r\n {\r\n // Terminar participación del paciente en el protocolo\r\n visit.stage === visitStage.FollowUp &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.endPatientInProtocol')}\r\n \r\n\r\n }\r\n { // Sin Medicacion\r\n (visit.type === visitTypes.EarlyCompletion) &&\r\n (visit.status === undefined || visit.status === 0) &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.withoutDrugs')}\r\n \r\n }\r\n { // Rollback Visit Status\r\n (visit.status === visitStatus.Failed || (visit.status === visitStatus.Completed && props.patientInProtocolStatus === patientInProtocolStatus.EndParticipationInProtocol)) &&\r\n (\r\n props.patientInProtocolStatus === patientInProtocolStatus.Failed ||\r\n props.patientInProtocolStatus === patientInProtocolStatus.LostToFollowUp ||\r\n props.patientInProtocolStatus === patientInProtocolStatus.Discontinuation ||\r\n props.patientInProtocolStatus === patientInProtocolStatus.EndParticipationInProtocol\r\n ) &&\r\n \r\n {t('protocols.visitTracking.rollbackStatus')}\r\n \r\n }\r\n { // Discontinuacion\r\n (visit.type === visitTypes.EarlyCompletion) &&\r\n (visit.status === undefined || visit.status === 0) &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.discontinuation')}\r\n \r\n }\r\n { // Falla de Screening.\r\n (props.patientInProtocolStatus <= patientInProtocolStatus.Random) &&\r\n visit.type !== visitTypes.EarlyCompletion && (visit.status === undefined || visit.status === 0) &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.screenFailure')}\r\n \r\n }\r\n \r\n \r\n \r\n onAuditTrail()}\r\n >\r\n {t('protocols.visitTracking.auditTrail')}\r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nFormActions.propTypes = {\r\n onBack: PropTypes.func.isRequired,\r\n onSave: PropTypes.func.isRequired,\r\n onAuditTrail: PropTypes.func.isRequired,\r\n onScreenFailure: PropTypes.func.isRequired,\r\n visit: PropTypes.object,\r\n protocolId: PropTypes.string.isRequired,\r\n isSubmitting: PropTypes.bool.isRequired,\r\n};","import PropTypes from 'prop-types';\r\nimport React, { Fragment, useContext, useState } from \"react\";\r\nimport { Alert } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport ScrollMenu from 'react-horizontal-scrolling-menu';\r\nimport ProtocolContext from \"../../../containers/Protocols/ProtocolContext/ProtocolContext\";\r\nimport { formStatus, patientInProtocolStatus, visitStage, visitStatus } from \"../../../variables/Enums\";\r\nimport { WithAuth } from \"../../Authorization/WithAuthProtocol\";\r\nimport Card from \"../../Cards/Card\";\r\nimport { Italic } from \"../../CustomControls/CustomTextStyle\";\r\nimport { Audit, Back, Cancel, Change, Contract, Drug, Expand, Export, Next, Publish, Remove, Save, Swap, Sync, Warning } from \"../../Icons/Icons\";\r\nimport { toLocaleDateTimeFormatter } from \"../../Utils/Formatter\";\r\n\r\nexport const FormMenu = (props) => {\r\n const [showAdditionals, setShowAdditionals] = useState(false);\r\n const { t } = useTranslation();\r\n const handleOthersClick = () => { setShowAdditionals(!showAdditionals); }\r\n\r\n const additionals = props.forms.filter(x => x.extraFormType === 0).map(function (form, index) {\r\n return ( props.onClick(form.id)}\r\n style={{ marginBottom: '5px', textAlign: 'left' }}>\r\n\r\n {form.status === 1 ? : ''}\r\n {props.formsWithErrors?.find(x => x.id === form.id) ? : ''}\r\n {form.title}\r\n );\r\n });\r\n\r\n const content = props.forms.filter(x => x.extraFormType !== 0).map(function (form, index) {\r\n return ( props.onClick(form.id)}\r\n style={{ marginBottom: '5px', textAlign: 'left' }}>\r\n\r\n {form.status === 1 ? : ''}\r\n {props.formsWithErrors?.find(x => x.id === form.id) ? : ''}\r\n {form.title}\r\n );\r\n });\r\n\r\n if (additionals.length > 0)\r\n content.push(\r\n \r\n {showAdditionals ? : } {t(\"protocols.extraForms.additionals\")}\r\n \r\n );\r\n\r\n return (\r\n \r\n {!props.isDisabled && content}\r\n {showAdditionals && additionals}\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nFormMenu.propTypes = {\r\n onClick: PropTypes.func.isRequired,\r\n forms: PropTypes.array.isRequired,\r\n formsWithErrors: PropTypes.array.isRequired,\r\n selectedFormId: PropTypes.number,\r\n};\r\n\r\nexport const FormActions = (props) => {\r\n const {\r\n onBack,\r\n onSave,\r\n onSaveUpload,\r\n onSkip,\r\n onScreenFailure,\r\n onLostToFollowUp,\r\n onAuditTrail,\r\n onWithoutDrugs,\r\n onReturnDrugs,\r\n onDiscontinuation,\r\n onReSync,\r\n onChangeType,\r\n onChangeVisitTrackingType,\r\n onRollbackVisitStatus,\r\n onRemove,\r\n onExport,\r\n onEndPatientInProtocol,\r\n visit,\r\n hasVisitTracking,\r\n forms,\r\n isSubmitting\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n const context = useContext(ProtocolContext);\r\n const protocolId = context.protocolId;\r\n\r\n if (!visit)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n { // Subir Adjunto. \r\n hasVisitTracking && //(visit.status !== visitStatus.Failed && visit.status !== visitStatus.Skipped) &&\r\n \r\n {t('protocols.visitTracking.saveUploadChanges')}\r\n \r\n }\r\n \r\n \r\n { // Guardar Visita. \r\n hasVisitTracking && //(visit.status !== visitStatus.Failed && visit.status !== visitStatus.Skipped) &&\r\n onSave()}\r\n disabled={isSubmitting || context.isDisabled}\r\n >\r\n {t('protocols.visitTracking.saveChanges')}\r\n \r\n }\r\n \r\n {\r\n hasVisitTracking &&\r\n \r\n { // Publicar visita. \r\n (visit.status !== visitStatus.Failed && visit.status !== visitStatus.Skipped && visit.status !== visitStatus.Completed) &&\r\n \r\n \r\n {visit.status === visitStatus.Changed && t('protocols.visitTracking.publishChanges')}\r\n {visit.status !== visitStatus.Changed && t('protocols.visitTracking.publish')}\r\n \r\n }\r\n { // Eliminar visita. \r\n visit.status === visitStatus.Started && forms.filter(x => x.status > formStatus.Initial).length === 0 &&\r\n onRemove()}\r\n disabled={isSubmitting || context.isDisabled ? true : false}\r\n >\r\n {t('protocols.visitTracking.remove')}\r\n \r\n }\r\n { // Sincronizar. \r\n visit.status === visitStatus.Completed &&\r\n \r\n \r\n {t('protocols.visitTracking.resync')}\r\n \r\n }\r\n \r\n }\r\n {\r\n hasVisitTracking &&\r\n \r\n <>\r\n {\r\n // Terminar participación del paciente en el protocolo\r\n visit.stage === visitStage.FollowUp &&\r\n = visitStatus.Completed ? true : false}\r\n >\r\n {t('protocols.visitTracking.endPatientInProtocol')}\r\n \r\n\r\n }\r\n { // Cambiar tipo\r\n visit.status === undefined || visit.status === 0 &&\r\n = visitStatus.Completed ? true : false}\r\n >\r\n {t('protocols.visitTracking.changeVisitTrackingType')}\r\n \r\n }\r\n { // Saltear\r\n visit.stage !== visitStage.Random && (visit.status === undefined || visit.status === visitStatus.Started) &&\r\n = visitStatus.Completed ? true : false}\r\n >\r\n {t('protocols.visitTracking.skipVisitTracking')}\r\n \r\n }\r\n { // Falla Screening. \r\n (visit.stage === visitStage.Screening || visit.stage === visitStage.Random) &&\r\n (visit.status === undefined || visit.status === 0 || visit.status === visitStatus.AutoCompleted) &&\r\n = 1 && visit.status < visitStatus.AutoCompleted) ? true : false}\r\n >\r\n {t('protocols.visitTracking.screenFailure')}\r\n \r\n }\r\n { // Falla Seguimiento\r\n (visit.stage === visitStage.Treatment || visit.stage === visitStage.FollowUp) && (visit.status === undefined || visit.status === 0) &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.lostToFollowUp')}\r\n \r\n }\r\n { // Discontinuacion\r\n (visit.stage > visitStage.Random) &&\r\n (visit.status === undefined || visit.status === 0) &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.discontinuation')}\r\n \r\n }\r\n { // Sin Medicacion\r\n (visit.stage > visitStage.Random) && (visit.status === undefined || visit.status === 0) && (props.patientInProtocolStatus !== patientInProtocolStatus.WithoutDrugs) &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.withoutDrugs')}\r\n \r\n }\r\n { // Rollback Visit Status\r\n (visit.status === visitStatus.Failed || (visit.status === visitStatus.Completed && props.patientInProtocolStatus === patientInProtocolStatus.EndParticipationInProtocol)) &&\r\n (\r\n props.patientInProtocolStatus === patientInProtocolStatus.Failed || \r\n props.patientInProtocolStatus === patientInProtocolStatus.LostToFollowUp || \r\n props.patientInProtocolStatus === patientInProtocolStatus.Discontinuation ||\r\n props.patientInProtocolStatus === patientInProtocolStatus.EndParticipationInProtocol\r\n ) &&\r\n \r\n {t('protocols.visitTracking.rollbackStatus')}\r\n \r\n }\r\n { // Retornar Medicacion\r\n (visit.stage > visitStage.Random) && (visit.status === undefined || visit.status === 0) && (props.patientInProtocolStatus === patientInProtocolStatus.WithoutDrugs) &&\r\n = 1 ? true : false}\r\n >\r\n {t('protocols.visitTracking.returnDrugs')}\r\n \r\n }\r\n \r\n {t('buttons.changeType')}\r\n \r\n \r\n \r\n }\r\n\r\n \r\n {\r\n hasVisitTracking &&\r\n \r\n {t('protocols.visitTracking.export')}\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n hasVisitTracking && onAuditTrail()}\r\n >\r\n {t('protocols.visitTracking.auditTrail')}\r\n \r\n }\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nFormActions.propTypes = {\r\n onSave: PropTypes.func.isRequired,\r\n onSkip: PropTypes.func.isRequired,\r\n onScreenFailure: PropTypes.func.isRequired,\r\n onLostToFollowUp: PropTypes.func.isRequired,\r\n onWithoutDrugs: PropTypes.func.isRequired,\r\n onAuditTrail: PropTypes.func.isRequired,\r\n visit: PropTypes.object.isRequired,\r\n hasVisitTracking: PropTypes.bool.isRequired,\r\n forms: PropTypes.array.isRequired\r\n};\r\n\r\nexport const FormHeader = (props) => {\r\n const {\r\n protocolId,\r\n patientId,\r\n visits\r\n } = props;\r\n\r\n\r\n if (!visits)\r\n return }\r\n />;\r\n\r\n const Menu = () =>\r\n visits.map((visit, index) => {\r\n return (\r\n
    \r\n \r\n {visit.title}\r\n \r\n
    \r\n );\r\n });\r\n\r\n const ArrowLeft = ;\r\n const ArrowRight = ;\r\n\r\n const getNavLinkClass = (path) => {\r\n return window.location.pathname === path ? 'active' : '';\r\n }\r\n\r\n return (\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nFormHeader.propTypes = {\r\n protocolId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n patientId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n visits: PropTypes.array,\r\n};\r\n\r\nexport const VisitStatus = ({ status, date }) => {\r\n const { t } = useTranslation();\r\n switch (status) {\r\n case visitStatus.Started:\r\n return ([{toLocaleDateTimeFormatter(date)}] {t(\"protocols.visit.status.started\")});\r\n case visitStatus.Completed:\r\n return ({t(\"protocols.visit.status.completed\")});\r\n case visitStatus.Skipped:\r\n return ({t(\"protocols.visit.status.skipped\")});\r\n case visitStatus.Failed:\r\n return ({t(\"protocols.visit.status.failed\")});\r\n case visitStatus.Changed:\r\n return ({t(\"protocols.visit.status.changed\")});\r\n case visitStatus.AutoCompleted:\r\n return ({t(\"protocols.visit.status.autoCompleted\")});\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nVisitStatus.propTypes = {\r\n status: PropTypes.string,\r\n};","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Button, Col, ControlLabel, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useAuthorization } from '../Authorization/useAuthorization';\r\nimport { TextBoxUsersMentions } from '../CustomControls/TextBoxUsersMentions';\r\nimport { Add, Edit, Save } from '../Icons/Icons';\r\nimport { getFullNameFromUserMention } from '../Utils/Commons';\r\nimport { dateTimeFormatter } from '../Utils/Formatter';\r\n\r\nexport const DocumentNotes = (props) => {\r\n const [, user] = useAuthorization();\r\n\r\n if (!props.notes)\r\n return null;\r\n\r\n const handleEdit = (noteId) => {\r\n if (props.onEdit)\r\n props.onEdit(noteId);\r\n }\r\n\r\n return (\r\n \r\n {\r\n props.notes.sort(function (a, b) {\r\n return new Date(b.created) - new Date(a.created);\r\n }).map((note, index) => (\r\n \r\n \r\n
    {dateTimeFormatter(note.created)}
    \r\n
    {note.createdBy}
    \r\n \r\n \r\n
    {getFullNameFromUserMention(note.note)}
    \r\n \r\n {\r\n user?.sub === note.createdById &&\r\n \r\n \r\n \r\n }\r\n
    \r\n ))\r\n }\r\n
    \r\n );\r\n}\r\n\r\nDocumentNotes.propTypes = {\r\n notes: PropTypes.array.isRequired,\r\n documentId: PropTypes.number.isRequired,\r\n onEdit: PropTypes.func.isRequired\r\n};\r\n\r\nexport const DocumentNoteForm = ({ onCreate, onEdit, note, protocolId }) => {\r\n const { t } = useTranslation();\r\n const [text, setText] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (note)\r\n setText(note.note);\r\n }, [note]);\r\n\r\n const handleChange = (_name, value) => {\r\n setText(value);\r\n }\r\n\r\n const handleCreate = () => {\r\n if (onCreate)\r\n onCreate(text);\r\n setText(\"\");\r\n }\r\n\r\n const handleEdit = () => {\r\n if (onEdit) {\r\n onEdit(note.id, text);\r\n }\r\n setText(\"\");\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"protocols.visitTracking.documentNotes\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n note\r\n ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nDocumentNoteForm.propTypes = {\r\n note: PropTypes.object,\r\n onCreate: PropTypes.func.isRequired,\r\n onEdit: PropTypes.func.isRequired,\r\n protocolId: PropTypes.number.isRequired\r\n};","import React, { Fragment, useContext, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol.jsx';\r\nimport Card from '../../../components/Cards/Card.jsx';\r\nimport { Add, RemoveCircle } from '../../../components/Icons/Icons.jsx';\r\nimport { DocumentNoteForm, DocumentNotes } from '../../../components/Protocols/DocumentNotes';\r\nimport { useDocumentNotes } from '../Hooks.js';\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext.js';\r\n\r\nconst DocumentNotesContainer = (props) => {\r\n const { t } = useTranslation();\r\n const { protocolId, documentId, visitId, patientId, type } = props;\r\n const context = useContext(ProtocolContext);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [, getNotes, , createNote, updateNote] = useDocumentNotes();\r\n const [notes, setNotes] = useState([]);\r\n const [note, setNote] = useState(null);\r\n const [collapse, setCollapse] = useState(true);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const resp = await getNotes(protocolId, documentId);\r\n if (isSubscribed) {\r\n setNotes(resp.data);\r\n if (resp.data.length > 0)\r\n setCollapse(false);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n if (isSubscribed) {\r\n setNotes([]);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n if (documentId && protocolId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId, documentId]);\r\n\r\n const handleCreateNote = async (note) => {\r\n var createdNote = await createNote(type, documentId, protocolId, visitId, patientId, note);\r\n if (createdNote)\r\n setNotes(notes.concat(createdNote.data));\r\n }\r\n\r\n const handleEditNote = (noteId) => {\r\n var note = notes.filter(x => (x.id === noteId));\r\n if (note.length > 0)\r\n setNote(note[0]);\r\n }\r\n const handleNoteEdited = async (noteId, text) => {\r\n var updatedNote = await updateNote(protocolId, noteId, text);\r\n if (updatedNote) {\r\n let notesCopy = JSON.parse(JSON.stringify(notes));\r\n var index = notes.findIndex(x => x.id === noteId);\r\n notesCopy.splice(index, 1, updatedNote.data); //Reemplazo. \r\n\r\n setNotes(notesCopy);\r\n setNote(null);\r\n }\r\n }\r\n\r\n if (isLoading || !documentId)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n {t(\"protocols.visitTracking.documentNotes_Title\")}\r\n \r\n }\r\n content={\r\n <>\r\n {\r\n !collapse &&\r\n \r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n }\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nexport default DocumentNotesContainer;","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { RichTextControl } from '../../CustomControls/RichTextControl';\r\nimport { SignWithOutInfo } from '../../DigitalSign/Sign';\r\nimport { Add, Edit, RemoveCircle, Save, Signature } from '../../Icons/Icons';\r\nimport { toLocaleDateFormatter } from '../../Utils/Formatter';\r\nimport { Spinner } from '../../Utils/Loaders';\r\nimport { Popover } from '../../Utils/Popover';\r\nimport { WithAuth } from '../../Authorization/WithAuthProtocol';\r\n\r\nexport const EvolutionForm = (props) => {\r\n const {\r\n evolution,\r\n visitStatus,\r\n onSave,\r\n onUpdate,\r\n onCancel,\r\n isDisabled,\r\n isLoading\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n const [collapse, setCollapse] = useState(visitStatus === 1 ? true : false);\r\n const [data, setData] = useState(null);\r\n\r\n useEffect(() => {\r\n if (evolution) {\r\n setData(evolution.text)\r\n setCollapse(false)\r\n }\r\n else {\r\n setData(null)\r\n }\r\n\r\n }, [evolution])\r\n\r\n\r\n const handleSave = () => { if (onSave && data) { onSave(data); setData(null); } }\r\n const handleEdit = () => { if (onUpdate && evolution && data) onUpdate(evolution?.id, data); }\r\n const handleCancel = () => { setData(null); setCollapse(true); if (onCancel) onCancel(); }\r\n\r\n if (isLoading)\r\n return \r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n !collapse &&\r\n
    \r\n setData(value)}\r\n onBlur={() => { }}\r\n toolbar={\r\n [\r\n ['clean']\r\n ]\r\n }\r\n />\r\n\r\n \r\n \r\n \r\n {\r\n evolution && evolution.id ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\nEvolutionForm.defaultProps = {\r\n height: 300\r\n}\r\nEvolutionForm.propTypes = {\r\n height: PropTypes.number,\r\n visitStatus: PropTypes.number,\r\n evolution: PropTypes.object,\r\n isDisabled: PropTypes.bool,\r\n isLoading: PropTypes.bool,\r\n onSave: PropTypes.func.isRequired,\r\n onUpdate: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired\r\n};\r\n\r\nexport const Evolutions = (props) => {\r\n const { protocolId, data, onEdit } = props;\r\n const { t } = useTranslation();\r\n\r\n return (\r\n {\r\n data && data.length > 0 ?\r\n data.map((item, idx) => (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {toLocaleDateFormatter(item.created, \"DD/MM/YYYY HH:mm\")} [{item.createdBy?.fullName} - {item.createdBy?.speciality}]:\r\n \r\n {\r\n item.modified !== item.created &&\r\n [Modificado el {toLocaleDateFormatter(item.modified, \"DD/MM/YYYY HH:mm\")} por {item.modifiedBy?.fullName} - {item.createdBy?.speciality}]\r\n }\r\n
    \r\n \r\n
    \r\n\r\n ))\r\n :\r\n

    \r\n {t(\"medicalRecords.entries.noentries\")}\r\n

    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nEvolutions.propTypes = {\r\n data: PropTypes.array.isRequired,\r\n onEdit: PropTypes.func.isRequired\r\n};","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { CreateAuditModal } from '../../../components/AuditTrail/AuditModal';\r\nimport Card from '../../../components/Cards/Card';\r\nimport { AuditTooltip } from '../../../components/CustomControls/AuditTooltip';\r\nimport { HandleApiError, HandleMessageError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { EvolutionForm, Evolutions } from '../../../components/Protocols/Tracking/Entry';\r\nimport { visitStatus } from '../../../variables/Enums';\r\nimport { useEvolutions } from './useEvolutions';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol';\r\n\r\nexport const EvolutionsContainer = (props) => {\r\n const { data, audit, title, subtitle, isDisabled, visitTrackingStatus, protocolId, medicalRecordNumber, visitType } = props;\r\n const [isLoading, saveEvolution, updateEvolution] = useEvolutions(visitType);\r\n const [evolution, setEvolution] = useState(null);\r\n const [evolutions, setEvolutions] = useState(data);\r\n const [modal, setModal] = useState(null);\r\n\r\n useEffect(\r\n () => setEvolutions(data),\r\n [data]\r\n );\r\n\r\n const handleEditEvolution = (evolutionId) => {\r\n var evolutionEdit = evolutions.filter(x => (x.id === evolutionId));\r\n if (evolutionEdit.length > 0)\r\n setEvolution(evolutionEdit[0]);\r\n else\r\n HandleMessageError(\"protocolNotifications.visitTracking_evolutionNotFound\");\r\n }\r\n\r\n const handleEvolutionEdited = async (evolutionId, text) => {\r\n if (visitTrackingStatus !== visitStatus.Started) {\r\n setModal( setModal(null)}\r\n onSave={(reason, comments) => _updateEvolution(evolutionId, text, { reason: reason, comments: comments })}\r\n />)\r\n }\r\n else {\r\n _updateEvolution(evolutionId, text);\r\n }\r\n }\r\n\r\n const handleSaveEvolution = (data) => {\r\n if (visitTrackingStatus !== visitStatus.Started) {\r\n setModal( setModal(null)}\r\n onSave={(reason, comments) => _saveEvolution(data, { reason: reason, comments: comments })}\r\n />)\r\n }\r\n else {\r\n _saveEvolution(data);\r\n }\r\n }\r\n\r\n function handleCancel() {\r\n setEvolution(null);\r\n }\r\n\r\n const _saveEvolution = async (evolutionText, audit) => {\r\n try {\r\n var savedEvolutionRes = await saveEvolution(props.protocolId, props.visitId, props.patientId, medicalRecordNumber, evolutionText, audit);\r\n if (savedEvolutionRes && savedEvolutionRes.data) {\r\n let savedEvolution = savedEvolutionRes.data;\r\n setEvolutions([...evolutions, savedEvolution]);\r\n setEvolution(null);\r\n Success(\"protocolNotifications.visitTracking_evolutionSaved\");\r\n }\r\n }\r\n catch (error) {\r\n setEvolution({ text: evolutionText }); // Por Si no pudo guardar por algún error, populo de vuelta el editor con el contenido sin guardar. \r\n HandleApiError(error);\r\n console.log(error);\r\n }\r\n finally {\r\n setModal(null);\r\n }\r\n }\r\n const _updateEvolution = async (evolutionId, text, audit) => {\r\n try {\r\n var updatedEvolution = await updateEvolution(props.protocolId, props.visitId, props.patientId, evolutionId, text, audit);\r\n if (updatedEvolution) {\r\n let evolutionsCopy = JSON.parse(JSON.stringify(evolutions));\r\n var index = evolutions.findIndex(x => x.id === evolutionId);\r\n evolutionsCopy.splice(index, 1, updatedEvolution.data); //Reemplazo. \r\n setEvolutions(evolutionsCopy);\r\n setEvolution(null);\r\n Success(\"protocolNotifications.visitTracking_evolutionUpdated\");\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n HandleApiError(error);\r\n }\r\n finally {\r\n setModal(null);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {audit && }\r\n {modal}\r\n \r\n \r\n \r\n\r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nEvolutionsContainer.defaultProps = {\r\n //title: \"Evolución\"\r\n}\r\nEvolutionsContainer.propTypes = {\r\n title: PropTypes.object,\r\n subtitle: PropTypes.object,\r\n placeholder: PropTypes.string,\r\n isDisabled: PropTypes.bool,\r\n values: PropTypes.object.isRequired,\r\n setFieldValue: PropTypes.func.isRequired,\r\n setFieldTouched: PropTypes.func.isRequired,\r\n};","import { useState } from \"react\";\r\nimport { saveEvolutionAPI, saveEvolutionExtraAPI, updateEvolutionAPI, updateEvolutionExtraAPI } from \"../../../api/protocol\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const useEvolutions = (visitType) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const updateEvolution = async (protocolId, visitId, patientId, evolutionId, evolution, audit) => {\r\n try {\r\n var pepepe = {\r\n evolution: evolution,\r\n audit: audit\r\n }\r\n setIsLoading(true);\r\n let evolutionRes = null;\r\n if (visitType === \"VisitTrackingExtra\")\r\n evolutionRes = await updateEvolutionExtraAPI(protocolId, visitId, patientId, evolutionId, pepepe);\r\n else\r\n evolutionRes = await updateEvolutionAPI(protocolId, visitId, patientId, evolutionId, pepepe);\r\n setIsLoading(false);\r\n\r\n return evolutionRes;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const saveEvolution = async (protocolId, visitId, patientId, medicalRecordNumber, evolution, audit) => {\r\n\r\n try {\r\n var pepepe = {\r\n evolution: evolution,\r\n audit: audit\r\n }\r\n setIsLoading(true);\r\n let evolutionRes = null;\r\n if (visitType === \"VisitTrackingExtra\")\r\n evolutionRes = await saveEvolutionExtraAPI(protocolId, visitId, patientId, medicalRecordNumber, pepepe);\r\n else\r\n evolutionRes = await saveEvolutionAPI(protocolId, visitId, patientId, medicalRecordNumber, pepepe);\r\n setIsLoading(false);\r\n\r\n return evolutionRes;\r\n\r\n } catch (error) {\r\n console.log(error)\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n throw error;\r\n }\r\n }\r\n\r\n return [isLoading, saveEvolution, updateEvolution];\r\n}","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, ControlLabel, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useAuthorization } from '../Authorization/useAuthorization';\r\nimport { TextBoxUsersMentions } from '../CustomControls/TextBoxUsersMentions';\r\nimport { Add, Edit, Remove, Save, Enabled } from '../Icons/Icons';\r\nimport { getFullNameFromUserMention } from '../Utils/Commons';\r\nimport { dateTimeFormatter } from '../Utils/Formatter';\r\nimport { ConfirmRemove, RejectExternalNote } from './Admin/Modals';\r\nimport { noteEnum } from '../../variables/Enums';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\n\r\nexport const MonitorNotes = (props) => {\r\n const [, user] = useAuthorization();\r\n const [modal, setModal] = useState(null);\r\n const { t } = useTranslation();\r\n\r\n if (!props.notes)\r\n return null;\r\n\r\n const handleEdit = (noteId) => {\r\n if (props.onEdit)\r\n props.onEdit(noteId);\r\n }\r\n\r\n const handleChangeState = (noteId, status) => {\r\n if (!props.onStatusChange)\r\n return;\r\n\r\n if (status === noteEnum.Invalid)\r\n setModal(\r\n setModal(null)}\r\n onConfirm={(confirmChangeState)}\r\n id={noteId}\r\n status={status}\r\n />\r\n );\r\n else\r\n props.onStatusChange(noteId, status);\r\n }\r\n const confirmChangeState = (id, status, response) => {\r\n setModal(null);\r\n props.onStatusChange(id, status, response);\r\n }\r\n\r\n const handleRemove = (noteId) => {\r\n if (props.onRemove)\r\n setModal(\r\n setModal(null)}\r\n onConfirm={(confirmRemove)}\r\n id={noteId}\r\n />\r\n );\r\n }\r\n const confirmRemove = (id) => {\r\n setModal(null);\r\n props.onRemove(id);\r\n }\r\n\r\n return (\r\n \r\n {modal}\r\n {\r\n props.notes.sort(function (a, b) {\r\n return new Date(b.created) - new Date(a.created);\r\n }).map((note, index) => (\r\n \r\n \r\n
    {dateTimeFormatter(note.created)}
    \r\n
    {note.createdBy}
    \r\n \r\n \r\n
    {getFullNameFromUserMention(note.note)}
    \r\n \r\n {\r\n user?.sub === note.createdById ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n ))\r\n }\r\n
    \r\n );\r\n}\r\n\r\nMonitorNotes.propTypes = {\r\n notes: PropTypes.array.isRequired,\r\n documentId: PropTypes.number.isRequired,\r\n onEdit: PropTypes.func.isRequired\r\n};\r\n\r\nexport const MonitorNoteForm = ({ onCreate, onEdit, note, protocolId }) => {\r\n const { t } = useTranslation();\r\n const [text, setText] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (note)\r\n setText(note.note);\r\n }, [note]);\r\n\r\n const handleChange = (_name, value) => {\r\n setText(value);\r\n }\r\n\r\n const handleCreate = () => {\r\n if (onCreate)\r\n onCreate(text);\r\n setText(\"\");\r\n }\r\n\r\n const handleEdit = () => {\r\n if (onEdit) {\r\n onEdit(note.id, text);\r\n }\r\n setText(\"\");\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"protocols.visitTracking.documentNotes\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n note\r\n ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMonitorNoteForm.propTypes = {\r\n note: PropTypes.object,\r\n onCreate: PropTypes.func.isRequired,\r\n onEdit: PropTypes.func.isRequired,\r\n protocolId: PropTypes.number.isRequired\r\n};","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol.jsx';\r\nimport Card from '../../../components/Cards/Card.jsx';\r\nimport { Add, RemoveCircle } from '../../../components/Icons/Icons.jsx';\r\nimport { MonitorNoteForm, MonitorNotes } from '../../../components/Protocols/MonitorNotes';\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext.js';\r\nimport { useMonitorNotes } from './useMonitorNotes.js';\r\n\r\nconst MonitorNotesContainer = (props) => {\r\n const { t } = useTranslation();\r\n const { protocolId, documentId, visitId, patientId, type } = props;\r\n const context = useContext(ProtocolContext);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [, getNotes, , createNote, updateNote, deleteNote, changeStatusNote] = useMonitorNotes();\r\n const [notes, setNotes] = useState([]);\r\n const [note, setNote] = useState(null);\r\n const [collapse, setCollapse] = useState(true);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const resp = await getNotes(protocolId, documentId);\r\n if (isSubscribed) {\r\n setNotes(resp.data);\r\n if (resp.data.length > 0)\r\n setCollapse(false);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n if (isSubscribed) {\r\n setNotes([]);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n if (documentId && protocolId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId, documentId]);\r\n\r\n const handleCreateNote = async (note) => {\r\n var createdNote = await createNote(type, documentId, protocolId, visitId, patientId, note);\r\n if (createdNote)\r\n setNotes(notes.concat(createdNote.data));\r\n }\r\n const handleEditNote = (noteId) => {\r\n var note = notes.filter(x => (x.id === noteId));\r\n if (note.length > 0)\r\n setNote(note[0]);\r\n }\r\n const handleNoteEdited = async (noteId, text) => {\r\n var updatedNote = await updateNote(protocolId, noteId, text);\r\n if (updatedNote) {\r\n let notesCopy = JSON.parse(JSON.stringify(notes));\r\n var index = notes.findIndex(x => x.id === noteId);\r\n notesCopy.splice(index, 1, updatedNote.data); //Reemplazo. \r\n\r\n setNotes(notesCopy);\r\n setNote(null);\r\n }\r\n }\r\n const handleRemoveNote = async (noteId) => {\r\n try {\r\n await deleteNote(protocolId, noteId);\r\n setNotes(notes.filter(x => (x.id !== noteId)));\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n const handleStatusChange = async (noteId, status, response) => {\r\n try {\r\n var updatedNote = await changeStatusNote(protocolId, noteId, status, response);\r\n if (updatedNote) {\r\n setNotes(notes.filter(x => (x.id !== noteId))); // Elimino\r\n }\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n\r\n if (isLoading)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n {t(\"protocols.visitTracking.monitorNotes_Title\")}\r\n \r\n }\r\n content={\r\n <>\r\n {\r\n !collapse &&\r\n <>\r\n {\r\n !context.isDisabled &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nexport default MonitorNotesContainer;","import { useState } from \"react\";\r\nimport { getMonitorNotes, getMonitorNote, createMonitorNote, updateMonitorNote, removeMonitorNote, changeStatusMonitorNote } from \"../../../api/protocol\";\r\nimport { HandleApiError } from \"../../../components/Notifications/APIErrorHandler\";\r\n\r\nexport const useMonitorNotes = (type) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n const getNotes = async (protocolId, documentId) => {\r\n try {\r\n return getMonitorNotes(protocolId, documentId);\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const getNote = async (protocolId, noteId) => {\r\n try {\r\n setIsLoading(true);\r\n const note = await getMonitorNote(protocolId, noteId);\r\n setIsLoading(false);\r\n\r\n return note;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const createNote = async (type, documentId, protocolId, visitId, patientId, note) => {\r\n try {\r\n setIsLoading(true);\r\n const documentNote = await createMonitorNote(documentId, protocolId, visitId, patientId, { note: note, type: type });\r\n setIsLoading(false);\r\n\r\n return documentNote;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const updateNote = async (protocolId, noteId, note) => {\r\n try {\r\n setIsLoading(true);\r\n const documentNote = await updateMonitorNote(protocolId, noteId, { note: note });\r\n setIsLoading(false);\r\n\r\n return documentNote;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const changeStatusNote = async (protocolId, noteId, status, response) => {\r\n try {\r\n setIsLoading(true);\r\n const documentNote = await changeStatusMonitorNote(protocolId, noteId, { status: status, response: response });\r\n setIsLoading(false);\r\n\r\n return documentNote;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n const deleteNote = async (protocolId, noteId) => {\r\n try {\r\n setIsLoading(true);\r\n var res = await removeMonitorNote(protocolId, noteId);\r\n setIsLoading(false);\r\n\r\n return res;\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n return [isLoading, getNotes, getNote, createNote, updateNote, deleteNote, changeStatusNote];\r\n}","import { Formik } from 'formik';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { endPatientInProtocolVisitTrackingExtraAPI, exportVisitTrackingAPI, getVisitTrackingAttachmentFormEndpoint, getVisitTrackingExtraForms, getVisitTrackingForm, publishVisitTrackingExtraForm, removeVisitTrackingExtraAPI, rollbackVisitStatusExtraAPI, saveVisitTrackingExtraForm, screenFailureVisitTrackingExtra, uploadVisitTrackingExtraAttachmentFormEndpoint } from '../../../api/protocol';\r\nimport { AuditModal, CreateAuditModal } from '../../../components/AuditTrail/AuditModal';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol';\r\nimport { useAuthProtocol } from '../../../components/Authorization/useAuthorization';\r\nimport { DocumentViewer } from '../../../components/CustomControls/DocViewer/DocumentViewer';\r\nimport { useFiles } from '../../../components/CustomControls/Files/Hooks';\r\nimport { DigitalSign } from '../../../components/DigitalSign/DigitalSign';\r\nimport { SignWithOutInfo } from '../../../components/DigitalSign/Sign';\r\nimport { DynamicForm } from '../../../components/DynamicForm/DynamicForm';\r\nimport { MedicalRecord } from '../../../components/Icons/Icons';\r\nimport { ModalConfirm } from '../../../components/Modals/ModalConfirm';\r\nimport { ModalSpinner } from '../../../components/Modals/ModalSpinner';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { FormActions } from '../../../components/Protocols/ExtraVisits/Forms';\r\nimport { FormMenu, VisitStatus } from '../../../components/Protocols/Tracking/Forms';\r\nimport { ScreenFailure } from '../../../components/Protocols/Tracking/Modals';\r\nimport { Slider } from '../../../components/Slider/Slider';\r\nimport { Spinner } from '../../../components/Utils/Loaders';\r\nimport { getValidationSchema } from '../../../components/Validations/FormValidationSchema';\r\nimport { formStatus, visitStatus as visitStatusEnum } from \"../../../variables/Enums\";\r\nimport { AuditTrail } from \"../../Admin/AuditTrail\";\r\nimport { ModalDigitalSign } from '../../DigitalSign/ModalDigitalSign';\r\nimport { EntryItemsListTabs } from '../../MedicalRecords/MedicalRecordItems/EntryItemsList';\r\nimport DocumentNotesContainer from '../DocumentNotes/DocumentNotes';\r\nimport { EvolutionsContainer } from '../Evolutions/Evolutions';\r\nimport { useAudits } from '../Hooks';\r\nimport MonitorNotesContainer from '../MonitorNotes/MonitorNotes';\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext';\r\nimport { getVisitTypeTitle } from '../Tracking/Services';\r\n\r\nexport const ExtraVisitTracking = ({ protocolId, patientId, visitId }) => {\r\n let history = useHistory();\r\n const [showHistory, setShowHistory] = useState(false);\r\n const [isAuthorized] = useAuthProtocol(protocolId);\r\n const settingsStore = useSelector(state => state.settings);\r\n const context = useContext(ProtocolContext);\r\n const [isAuditLoading, , getLastVisitTrackingChange] = useAudits(\"VisitTrackingExtra\", visitId);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [fileData, getBlobAPI, postAPI] = useFiles();\r\n\r\n const [forms, setForms] = useState([]);\r\n const [signStatus, setSignStatus] = useState(null);\r\n const [visitTracking, setVisitTracking] = useState(null);\r\n const [selectedForm, setSelectedForm] = useState(null);\r\n const [modal, setModal] = useState(null);\r\n const [patientInfo, setPatientInfo] = useState(null);\r\n const { t } = useTranslation();\r\n const [evolutions, setEvolutions] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n\r\n getVisitTrackingExtraForms(protocolId, visitId, patientId)\r\n .then(response => {\r\n var visitTracking = response.data;\r\n\r\n if (visitTracking.forms && visitTracking.forms.length > 0) {\r\n let formAux = visitTracking.forms[0];\r\n var urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.has('formId') && visitTracking.forms.find(x => x.id == urlParams.get('formId'))) {\r\n formAux = visitTracking.forms.find(x => x.id == urlParams.get('formId'));\r\n }\r\n formAux.text = visitTracking.visit.text;\r\n setSelectedForm(formAux);\r\n }\r\n setEvolutions(visitTracking.visit.evolutions);\r\n setSignStatus(visitTracking.signStatus);\r\n setForms(visitTracking.forms);\r\n setVisitTracking(visitTracking.visit);\r\n setPatientInfo({\r\n patientNumber: visitTracking.patientNumber,\r\n patientInProtocolStatus: visitTracking.patientInProtocolStatus,\r\n medicalRecordNumber: visitTracking.medicalRecordNumber\r\n });\r\n setIsLoading(false);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n })\r\n }\r\n\r\n fetchData();\r\n }, [protocolId, visitId, patientId]);\r\n\r\n const _closeModal = () => { setModal(null); }\r\n\r\n const _updateData = (visit, updatedForm) => {\r\n if (!updatedForm || !updatedForm.id) {\r\n window.location.reload(false)\r\n return;\r\n }\r\n\r\n updatedForm.text = visit.text;\r\n let formsCopy = JSON.parse(JSON.stringify(forms));\r\n var index = formsCopy.findIndex(x => x.id === updatedForm.id);\r\n formsCopy.splice(index, 1, updatedForm); //Reemplazo form.\r\n setVisitTracking(visit);\r\n setEvolutions(visit.evolutions);\r\n setForms(formsCopy);\r\n setSelectedForm(updatedForm);\r\n\r\n _closeModal();\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n }\r\n\r\n const _saveVisit = async (formVisitTracking, formikProps) => {\r\n try {\r\n if (formikProps.isSubmitting)\r\n return;\r\n\r\n formikProps.setSubmitting(true);\r\n setModal();\r\n\r\n let res = await saveVisitTrackingExtraForm(protocolId, visitId, patientId, formVisitTracking);\r\n let form = res.data.form;\r\n const visit = res.data.visit;\r\n\r\n // Upload attachments if any. \r\n const fieldsWithFiles = formVisitTracking.patientForm.fields.filter(x => x._t === \"FileUploadField\" && x.value.file);\r\n const componentsWithFiles = formVisitTracking.patientForm.fields.filter(x => x._t === \"ArrayField\")\r\n .map(array => {\r\n return array.components.map(component => {\r\n return component.fields.map(field => field._t === \"FileUploadField\" && field !== null && field).flat();\r\n }).flat();\r\n }).flat().filter(x => x.value?.file); // filtro por los nuevos solamente. \r\n const files = fieldsWithFiles.concat(componentsWithFiles);\r\n\r\n if (files && files.length > 0) {\r\n try {\r\n const attachs = files.map(x => x.value);\r\n postAPI(attachs, uploadVisitTrackingExtraAttachmentFormEndpoint(protocolId, visitId, form.id, patientId))\r\n .then(() => {\r\n getVisitTrackingForm(protocolId, visitId, form.id)\r\n .then(resForm => {\r\n // Actualizo el form en FrontEnd.\r\n _updateData(visit, resForm?.data);\r\n }).catch((error) => {\r\n console.log(error)\r\n window.location.reload(false)\r\n })\r\n }).catch((error) => { console.log(error) });\r\n }\r\n catch (error) {\r\n console.log(error.response);\r\n }\r\n }\r\n else {\r\n _updateData(visit, form);\r\n }\r\n }\r\n catch (error) {\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n finally {\r\n formikProps.setSubmitting(false);\r\n }\r\n }\r\n\r\n const _publishVisit = async (digitalSign, formikProps, type) => {\r\n\r\n try {\r\n setModal();\r\n const res = await publishVisitTrackingExtraForm(protocolId, visitId, patientId, type, digitalSign);\r\n setModal(null);\r\n setSelectedForm({ text: res.data.text });\r\n setVisitTracking(res.data);\r\n formikProps.setSubmitting(false);\r\n Success(\"protocolNotifications.visitTracking_VisitPublished\");\r\n }\r\n catch (error) {\r\n setModal(null);\r\n formikProps.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleSaveVisit = (formVisitTracking, formikProps) => {\r\n\r\n if (visitTracking.status !== visitStatusEnum.Started || formVisitTracking.status !== formStatus.Initial) {\r\n setModal( setModal(null)}\r\n onSave={(reason, comments) => _saveVisit({ patientForm: formVisitTracking, audit: { reason: reason, comments: comments } }, formikProps)}\r\n />)\r\n }\r\n else {\r\n _saveVisit({ patientForm: formVisitTracking }, formikProps);\r\n }\r\n }\r\n\r\n const handleSubmitFormik = (_formVisitTracking, actions) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); actions.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishVisit(pin, actions, \"ExtraProtocol\")}\r\n />);\r\n else\r\n _publishVisit({ password: \"\" }, actions, \"ExtraProtocol\")\r\n }\r\n\r\n const handleSubmitForm = (evt, formikBag) => {\r\n evt.preventDefault();\r\n\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n formikBag.submitForm();\r\n }\r\n }\r\n\r\n const handleAuditTrail = () => {\r\n setModal(\r\n { setModal(null); }}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n {t(\"auditTrail.field\")}:\r\n \r\n\r\n {t(\"auditTrail.evolution\")}:\r\n \r\n \r\n )\r\n }\r\n\r\n const handleViewFile = async (attachName) => {\r\n try {\r\n await getBlobAPI(attachName, getVisitTrackingAttachmentFormEndpoint(protocolId, visitId, selectedForm.id, attachName));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleSelectForm = (formId, isDirty) => {\r\n if (!isDirty || (isDirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n let selectedForms = forms.filter(x => { return x.id === formId });\r\n let formAux = selectedForms.length > 0 ? selectedForms[0] : {};\r\n formAux.text = selectedForm.text;\r\n\r\n setSelectedForm(formAux);\r\n }\r\n }\r\n\r\n const handleScreenFailure = (formikBag) => {\r\n\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => confirmScreenFailure(formikBag)}\r\n />)\r\n }\r\n }\r\n\r\n const confirmScreenFailure = (formikBag) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishScreenFailure(pin, formikBag)}\r\n />);\r\n else\r\n _publishScreenFailure({ password: \"\" }, formikBag)\r\n }\r\n\r\n const _publishScreenFailure = async (digitalSign, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await screenFailureVisitTrackingExtra(protocolId, visitId, patientId, digitalSign);\r\n setModal(null);\r\n setSelectedForm({ text: res.data.text });\r\n setVisitTracking(res.data);\r\n formikBag.setSubmitting(false);\r\n setIsLoading(false);\r\n Success(\"protocolNotifications.visitTracking_VisitPublished\");\r\n }\r\n catch (error) {\r\n setModal(null);\r\n setIsLoading(false);\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleEarlyTermination = (type, formikBag) => {\r\n\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => confirmEarlyTermination(type, formikBag)}\r\n title={t(`protocolNotifications.visitTracking_confirm${type}_title`)}\r\n description={t(`protocolNotifications.visitTracking_confirm${type}_description`)}\r\n />)\r\n }\r\n }\r\n\r\n const confirmEarlyTermination = (type, formikBag) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishVisit(pin, formikBag, type)}\r\n />);\r\n else\r\n _publishVisit({ password: \"\" }, formikBag, type)\r\n }\r\n\r\n const handleRemoveVisit = (formikBag) => {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => _confirmRemoveVisit()}\r\n />)\r\n }\r\n\r\n const _confirmRemoveVisit = async () => {\r\n try {\r\n setIsLoading(true);\r\n await removeVisitTrackingExtraAPI(protocolId, visitId, patientId);\r\n Success(\"protocolNotifications.visitTracking_removeVisitOk\");\r\n history.push(`/admin/protocols/${protocolId}`);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleEndPatientInProtocol = (formikBag) => {\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal(\r\n confirmEndPatientInProtocol(formikBag)}\r\n onCancel={() => { setModal(null); formikBag.setSubmitting(false); }}\r\n title={t(\"protocolNotifications.visitTracking_endPatientInProtocol_title\")}\r\n description={t(\"protocolNotifications.visitTracking_endPatientInProtocol_description\")}\r\n />);\r\n }\r\n }\r\n const confirmEndPatientInProtocol = (formikBag) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishEndPatientInProtocol(pin, formikBag)}\r\n />);\r\n else\r\n _publishEndPatientInProtocol({ password: \"\" }, formikBag)\r\n }\r\n const _publishEndPatientInProtocol = async (digitalSign, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await endPatientInProtocolVisitTrackingExtraAPI(protocolId, visitId, patientId, digitalSign);\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleRollbackVisitStatus = (formikBag) => {\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal(\r\n confirmRollbackVisitStatus(formikBag)}\r\n onCancel={() => { setModal(null); formikBag.setSubmitting(false); }}\r\n title={t(\"protocolNotifications.visitTracking_rollbackVisitStatus_title\")}\r\n description={t(\"protocolNotifications.visitTracking_rollbackVisitStatus_description\")}\r\n />);\r\n }\r\n }\r\n const confirmRollbackVisitStatus = (formikBag) => {\r\n setModal( _publishRollbackVisitStatus({ audit: { reason: reason, comments: comments } }, formikBag)}\r\n />)\r\n }\r\n const _publishRollbackVisitStatus = async (audit, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await rollbackVisitStatusExtraAPI(protocolId, visitId, patientId, audit);\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_rollbackDone\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n\r\n const _export = async (pin) => {\r\n try {\r\n setModal();\r\n\r\n const response = await exportVisitTrackingAPI(protocolId, visitTracking?.id, patientId, pin?.password);\r\n //const blob = new Blob([response.data], { type: \"text/html\" });\r\n const blob = new Blob([response.data]);\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.target = '_blank';\r\n\r\n var fileName = \"PatientVisit.zip\";\r\n var disposition = response.headers['content-disposition'];\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches[1]) fileName = matches[1].replace(/['\"]/g, '');\r\n }\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n _closeModal();\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n\r\n }\r\n const handleExport = async () => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); }}\r\n onSubmit={(pin) => _export(pin)}\r\n />);\r\n\r\n else\r\n _export(\"\")\r\n }\r\n\r\n if (!visitTracking || isLoading || isAuditLoading)\r\n return ;\r\n\r\n const isDisabled = !isAuthorized([\"VisitTracking.Add\"]) || context.isDisabled;\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n {props => (\r\n
    handleSubmitForm(evt, props)}>\r\n \r\n \r\n \r\n \r\n handleSelectForm(formId, props.dirty)}\r\n selectedFormId={selectedForm?.id}\r\n formsWithErrors={[]}\r\n />\r\n \r\n \r\n \r\n \r\n { evt.preventDefault(); history.goBack(); }}\r\n onSave={() => handleSaveVisit(props.values, props)}\r\n onAuditTrail={handleAuditTrail}\r\n onScreenFailure={() => handleScreenFailure(props)}\r\n onWithoutDrugs={() => handleEarlyTermination(\"WithoutDrugs\", props)}\r\n onDiscontinuation={() => handleEarlyTermination(\"Discontinuation\", props)}\r\n onEndPatientInProtocol={() => handleEndPatientInProtocol(props)}\r\n onRollbackVisitStatus={() => handleRollbackVisitStatus(props)}\r\n onBackToMR={() => history.push(`/admin/medicalRecords/${visitTracking.patientId}`)}\r\n onRemove={() => handleRemoveVisit(props)}\r\n onExport={handleExport}\r\n isSubmitting={props.isSubmitting}\r\n />\r\n \r\n \r\n \r\n \r\n {visitTracking && }\r\n \r\n \r\n {\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n !settingsStore.settings.digitalSignEnabled && (visitTracking?.status === visitStatusEnum.Completed || visitTracking?.status === visitStatusEnum.Skipped || visitTracking?.status === visitStatusEnum.Failed) &&\r\n \r\n }\r\n {\r\n settingsStore.settings.digitalSignEnabled &&\r\n \r\n }\r\n \r\n {\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { getApprovedVisits } from '../../api/protocol.js';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler.js';\r\nimport { FormHeader } from '../../components/Protocols/Tracking/Forms.jsx';\r\n\r\nconst VisitHeaderContainer = ({ protocolId, patientId }) => {\r\n\r\n const [visits, setVisits] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const resp = await getApprovedVisits(protocolId);\r\n if (isSubscribed) {\r\n setVisits(resp.data);\r\n setIsLoading(false);\r\n }\r\n }\r\n catch (error) {\r\n if (isSubscribed) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n fetchData();\r\n }, [protocolId]);\r\n\r\n if (isLoading || !visits)\r\n return null;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default VisitHeaderContainer;","import PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nexport const ProtocolHeader = ({ protocolId }) => {\r\n const { t } = useTranslation();\r\n const getNavLinkClass = (path) => {\r\n return window.location.pathname === path ? 'active' : '';\r\n }\r\n\r\n return (\r\n
    \r\n
      \r\n
    • \r\n \r\n {t('protocols.header.description')}\r\n \r\n
    • \r\n
    • \r\n \r\n {t('protocols.header.practitioners')}\r\n \r\n
    • \r\n
    • \r\n \r\n {t('protocols.header.visits')}\r\n \r\n
    • \r\n
    • \r\n \r\n {t('protocols.header.visitTracking')}\r\n \r\n
    • \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nProtocolHeader.propTypes = {\r\n protocolId: PropTypes.string.isRequired,\r\n};","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n//import PropTypes from 'prop-types'\r\nimport { Formik } from 'formik';\r\n\r\nimport { useEffect, useRef } from \"react\";\r\nimport { createProtocol, uploadAttachmentEndpoint } from '../../../api/protocol';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { BriefForm } from \"../../../components/Protocols/Brief\";\r\nimport { getProtocolBriefSchema } from \"../../../components/Validations/FormValidationSchema\";\r\nimport { useStudyRoles } from \"../../Security/Authorization/useStudyRoles\";\r\nimport { useBriefMasterData } from \"../Hooks\";\r\nimport { useFiles } from \"../../../components/CustomControls/Files/Hooks\";\r\nimport { uploadStatusEnum } from \"../../../components/CustomControls/Files/Utils\";\r\n\r\nexport const ProtocolCreateBriefContainer = () => {\r\n let history = useHistory();\r\n\r\n const [data, , postAPI] = useFiles();\r\n const masterData = useBriefMasterData();\r\n const [studyRoles] = useStudyRoles();\r\n const protocolId = useRef(null);\r\n\r\n useEffect(() => {\r\n if (data.status === uploadStatusEnum.Uploaded && protocolId.current) {\r\n Success(\"protocolNotifications.protocol_Created\");\r\n history.push(`/admin/protocols/${protocolId.current}`);\r\n }\r\n\r\n }, [data.status])\r\n\r\n const handleSubmit = async (values, formikBag) => {\r\n values.brief.studyRole.permissions = null;\r\n values.brief.currentUserStudyRole.permissions = null;\r\n\r\n try {\r\n const res = await createProtocol(values.brief);\r\n var brief = res.data;\r\n protocolId.current = brief.id;\r\n\r\n // Upload attachments if any. \r\n if (values.brief.attachments && values.brief.attachments.length > 0) {\r\n try {\r\n await postAPI(values.brief.attachments, uploadAttachmentEndpoint(brief.id));\r\n }\r\n catch (error) {\r\n console.log(\"handleSubmit\", error);\r\n }\r\n }\r\n else {\r\n formikBag.setSubmitting(false);\r\n Success(\"protocolNotifications.protocol_Created\");\r\n history.push(`/admin/protocols/${brief.id}`);\r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n formikBag.setSubmitting(false);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleCancel = () => {\r\n history.push(`/admin/protocols`);\r\n }\r\n\r\n return (\r\n \r\n {props => (\r\n \r\n )}\r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport PropTypes from 'prop-types'\r\nimport { Formik, withFormik } from 'formik';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport { editProtocol, removeAttachment, uploadAttachmentEndpoint } from '../../../api/protocol';\r\nimport { useBriefMasterData, useProtocol } from \"../Hooks\";\r\nimport { getProtocolBriefEditSchema } from \"../../../components/Validations/FormValidationSchema\"\r\nimport { BriefForm } from \"../../../components/Protocols/Brief\"\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { CreateAuditModal } from \"../../../components/AuditTrail/AuditModal\";\r\nimport { Spinner } from \"../../../components/Utils/Loaders\";\r\nimport { useEffect } from \"react\";\r\nimport { useFiles } from \"../../../components/CustomControls/Files/Hooks\";\r\nimport { uploadStatusEnum } from \"../../../components/CustomControls/Files/Utils\";\r\n\r\nexport const ProtocolEditBriefContainer = ({ protocolId }) => {\r\n let history = useHistory();\r\n const [data, , postAPI] = useFiles(uploadAttachmentEndpoint(protocolId));\r\n\r\n const masterData = useBriefMasterData();\r\n const [isLoading, brief] = useProtocol(protocolId);\r\n const [modal, setModal] = useState(null);\r\n\r\n useEffect(() => {\r\n if (data.status === uploadStatusEnum.Uploaded)\r\n history.push(`/admin/protocols/${protocolId}`);\r\n }, [data.status])\r\n\r\n\r\n const handleSubmit = (values) => {\r\n\r\n setModal( setModal(null)}\r\n onSave={(reason, comments) => confirmSubmit(values.brief, reason, comments)}\r\n />)\r\n }\r\n\r\n const confirmSubmit = async (brief, reason, comments) => {\r\n\r\n brief.audit = {\r\n reason: reason,\r\n comments: comments\r\n }\r\n\r\n try {\r\n const res = await editProtocol(protocolId, brief);\r\n\r\n // Upload attachments if any.\r\n if (brief.attachments) {\r\n try {\r\n await postAPI(brief.attachments);\r\n }\r\n catch (error) {\r\n console.log(\"handleSubmit\", error);\r\n }\r\n }\r\n else {\r\n Success(\"protocolNotifications.protocol_Edited\");\r\n history.push(`/admin/protocols/${protocolId}`);\r\n }\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleCancel = () => {\r\n history.push(`/admin/protocols/${protocolId}`);\r\n }\r\n\r\n const handleRemoveAttach = (attachmentId) => {\r\n removeAttachment(protocolId, attachmentId)\r\n .then(() => {\r\n brief.attachments = brief.attachments.filter(x => { return x.id !== attachmentId });\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n if (isLoading)\r\n return ;\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n {props => (\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\nProtocolEditBriefContainer.propTypes = {\r\n protocolId: PropTypes.string.isRequired,\r\n};\r\n\r\nconst ProtocolEditBriefContainerFormik = withTranslation()(withFormik({\r\n mapPropsToValues: (props) => ({ brief: props.brief }),\r\n\r\n validationSchema: getProtocolBriefEditSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values.brief);\r\n },\r\n\r\n displayName: 'BriefForm',\r\n\r\n})(BriefForm));\r\n\r\nProtocolEditBriefContainerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onRemoveAttach: PropTypes.func.isRequired,\r\n brief: PropTypes.object.isRequired,\r\n protocolId: PropTypes.string.isRequired,\r\n masterData: PropTypes.object.isRequired,\r\n};","import React from \"react\";\r\n\r\nimport { ProtocolEditBriefContainer } from \"../../containers/Protocols/Brief/EditBrief\";\r\n\r\nexport const ProtocolEditView = props => {\r\n const { match: { params } } = props;\r\n\r\n return ();\r\n}","import PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { CustomSelect } from \"../CustomControls/CustomSelect\";\r\n\r\nexport const ProtocolsFilters = (props) => {\r\n const { t } = useTranslation();\r\n const {\r\n selectedLaboratory,\r\n selectedPhase,\r\n selectedStatus,\r\n masterData,\r\n isLoading,\r\n onChangeFilter,\r\n } = props;\r\n\r\n if (masterData && masterData.Laboratories && masterData.Phases && masterData.Status) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n}\r\n\r\nProtocolsFilters.propTypes = {\r\n selectedLaboratory: PropTypes.object,\r\n selectedPhase: PropTypes.object,\r\n selectedStatus: PropTypes.object,\r\n masterData: PropTypes.object.isRequired,\r\n onChangeFilter: PropTypes.func.isRequired,\r\n};","import React from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { WithAuth } from '../../components/Authorization/WithAuth';\r\nimport Card from '../../components/Cards/Card';\r\nimport { Add, ViewProtocol, VisitTracking } from '../../components/Icons/Icons';\r\nimport { ProtocolsFilters } from '../../components/Protocols/Protocols';\r\nimport { Tooltip } from \"../../components/Utils/Tooltips\";\r\nimport { useMasterData, useProtocols } from './Hooks';\r\n\r\nexport const Protocols = () => {\r\n const { t } = useTranslation();\r\n const [masterData, isLoadingMasterData] = useMasterData();\r\n const [data, query, totalSize, isLoading, handleTableChange, handleFilterChange] = useProtocols();\r\n\r\n const columns = [\r\n { dataField: 'laboratory.title', text: t(\"protocols.brief.laboratory\"), headerStyle: { width: '200px' } },\r\n { dataField: 'title', text: t(\"protocols.brief.protocol\"), sort: true, headerStyle: { width: '200px' } },\r\n { dataField: 'status.title', text: t(\"protocols.brief.status\"), headerStyle: { width: '100px' } },\r\n { dataField: 'phase.title', text: t(\"protocols.brief.phase\"), headerStyle: { width: '100px' } },\r\n {\r\n dataField: 'view',\r\n text: 'Opciones',\r\n isDummyField: true,\r\n headerClasses: 'header-protocol-actions',\r\n classes: 'row-protocol-actions',\r\n headerStyle: { width: '100px' }, headerAlign: 'center', align: 'center',\r\n formatter: function (_cell, row, rowIndex, _formatExtraData) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n },\r\n { dataField: 'patientsObjective', text: t(\"protocols.visitTracking.patientsObjective\"), headerClasses: 'header-protocol-number' },\r\n { dataField: 'patientsGoalPercent', text: t(\"protocols.visitTracking.patientsGoalPercent\"), headerClasses: 'header-protocol-number' },\r\n { dataField: 'patientsScreening', text: t(\"protocols.visitTracking.patientsScreening\"), headerClasses: 'header-protocol-number' },\r\n { dataField: 'patientsSelection', text: t(\"protocols.visitTracking.patientsSelection\"), headerClasses: 'header-protocol-number' },\r\n { dataField: 'patientsFailed', text: t(\"protocols.visitTracking.patientsFailed\"), headerClasses: 'header-protocol-number' },\r\n { dataField: 'patientsRandom', text: t(\"protocols.visitTracking.patientsRandom\"), headerClasses: 'header-protocol-number' },\r\n { dataField: 'patientsCompleted', text: t(\"protocols.visitTracking.patientsCompleted\"), headerClasses: 'header-protocol-number' },\r\n ];\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {t(\"protocols.brief.addProtocol\")}\r\n \r\n \r\n
    \r\n \r\n \r\n\r\n }\r\n content={\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n }\r\n />\r\n );\r\n}","import { Formik } from 'formik';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport {\r\n changeTypeVisitTrackingAPI, changeVisitTrackingTypeAPI,\r\n discontinuationVisitTracking,\r\n endPatientInProtocolVisitTrackingAPI,\r\n exportVisitTrackingAPI,\r\n getVisitTrackingAttachmentFormEndpoint,\r\n getVisitTrackingForm, getVisitTrackingForms, lostToFollowUpVisitTracking, publishVisitTracking, reSyncVisitTrackingAPI,\r\n removeVisitTrackingAPI,\r\n returnDrugsVisitTracking,\r\n rollbackVisitStatusAPI,\r\n saveUploadVisitTrackingAPI,\r\n saveVisitTracking, screenFailureVisitTracking, skipVisitTracking,\r\n uploadVisitTrackingAttachmentFormEndpoint,\r\n withoutDrugsVisitTracking\r\n} from '../../../api/protocol';\r\nimport { AuditModal, CreateAuditModal } from '../../../components/AuditTrail/AuditModal';\r\nimport { WithAuth } from '../../../components/Authorization/WithAuthProtocol';\r\nimport { useAuthProtocol } from '../../../components/Authorization/useAuthorization';\r\nimport { DocumentViewer } from '../../../components/CustomControls/DocViewer/DocumentViewer';\r\nimport { useFiles } from '../../../components/CustomControls/Files/Hooks';\r\nimport { DigitalSign } from '../../../components/DigitalSign/DigitalSign';\r\nimport { SignWithOutInfo } from '../../../components/DigitalSign/Sign';\r\nimport { DynamicForm } from '../../../components/DynamicForm/DynamicForm';\r\nimport { MedicalRecord, OnSite, Phone } from '../../../components/Icons/Icons';\r\nimport { ModalConfirm } from '../../../components/Modals/ModalConfirm';\r\nimport { ModalSpinner } from '../../../components/Modals/ModalSpinner';\r\nimport { HandleApiError, HandleMessageError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { PatientStatusInProtocol } from '../../../components/Protocols/Patients';\r\nimport { FormActions, FormMenu, VisitStatus } from '../../../components/Protocols/Tracking/Forms';\r\nimport { ChangeVisitType, ConfirmModal, LostToFollowUp, ScreenFailure, SkipVisitTracking } from '../../../components/Protocols/Tracking/Modals';\r\nimport { Slider } from '../../../components/Slider/Slider';\r\nimport { Spinner } from '../../../components/Utils/Loaders';\r\nimport { getValidationSchema } from '../../../components/Validations/FormValidationSchema';\r\nimport { formStatus, visitStatus, visitTypeEnum } from \"../../../variables/Enums\";\r\nimport { AuditTrail } from \"../../Admin/AuditTrail\";\r\nimport { ModalDigitalSign } from '../../DigitalSign/ModalDigitalSign';\r\nimport { EntryItemsListTabs } from '../../MedicalRecords/MedicalRecordItems/EntryItemsList';\r\nimport DocumentNotesContainer from '../DocumentNotes/DocumentNotes';\r\nimport { EvolutionsContainer } from '../Evolutions/Evolutions';\r\nimport { useAudits } from '../Hooks';\r\nimport MonitorNotesContainer from '../MonitorNotes/MonitorNotes';\r\nimport ProtocolContext from '../ProtocolContext/ProtocolContext';\r\n\r\nfunction search(array, condition) {\r\n if (array.length === 0) {\r\n return [];\r\n }\r\n const [head, ...tail] = array;\r\n if (condition(head)) {\r\n return [head, ...search(tail, condition)];\r\n }\r\n return search(tail, condition);\r\n}\r\n\r\nconst getVisitType = (visitType) => {\r\n switch (visitType) {\r\n case visitTypeEnum.OnSite:\r\n return \r\n case visitTypeEnum.Remote:\r\n return \r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nexport const VisitTracking = ({ protocolId, patientId, visitId }) => {\r\n let history = useHistory();\r\n const { t } = useTranslation();\r\n const [isAuthorized, isAuthLoading, currentUser] = useAuthProtocol(protocolId);\r\n const settingsStore = useSelector(state => state.settings);\r\n const context = useContext(ProtocolContext);\r\n const [fileData, getBlobAPI, postAPI] = useFiles();\r\n\r\n const [modal, setModal] = useState(null);\r\n const [showHistory, setShowHistory] = useState(false);\r\n const [hasVisitTracking, setHasVisitTracking] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [forms, setForms] = useState([]);\r\n const [visitTracking, setVisitTracking] = useState(null);\r\n const [signStatus, setSignStatus] = useState(null);\r\n const [selectedForm, setSelectedForm] = useState(null);\r\n const [formsWithErrors, setFormsWithErrors] = useState([]);\r\n const [patientInfo, setPatientInfo] = useState(null);\r\n const [, , getLastChange] = useAudits(\"VisitTrackingForm\", selectedForm?.id, hasVisitTracking);\r\n const [, , getLastVisitTrackingChange] = useAudits(\"VisitTracking\", visitTracking?.id, hasVisitTracking);\r\n const [reload, setReload] = useState(false);\r\n const [evolutions, setEvolutions] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n setReload(false);\r\n try {\r\n const response = await getVisitTrackingForms(protocolId, visitId, patientId);\r\n\r\n var visitTracking = response.data;\r\n var urlParams = new URLSearchParams(window.location.search);\r\n let formAux = visitTracking.forms[0];\r\n if (urlParams.has('formId') && visitTracking.forms.find(x => x.id == urlParams.get('formId'))) {\r\n formAux = visitTracking.forms.find(x => x.id == urlParams.get('formId'));\r\n }\r\n\r\n setEvolutions(visitTracking.visit.evolutions);\r\n //setSelectedForm(formAux);\r\n addHidePropertyToFields(formAux);\r\n setForms(visitTracking.forms);\r\n setVisitTracking(visitTracking.visit);\r\n setHasVisitTracking(visitTracking.hasVisitTracking);\r\n setSignStatus(visitTracking.signStatus);\r\n setPatientInfo({\r\n patientNumber: visitTracking.patientNumber,\r\n patientInProtocolStatus: visitTracking.patientInProtocolStatus,\r\n medicalRecordNumber: visitTracking.medicalRecordNumber// visitTracking.visit.patientId\r\n });\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchData();\r\n }, [visitId, reload]);\r\n\r\n //#region private Functions\r\n\r\n /**\r\n * Setea visibilidad de campos del formulario, teniendo en cuenta los Si/No Condicionales (booleanFields)\r\n * @param {PatientForm} form \r\n */\r\n function manageConditionalFieldsInForm(form) {\r\n let formAux = JSON.parse(JSON.stringify(form));\r\n let fields = formAux.fields.map(x => {\r\n if (typeof x.hide === \"undefined\")\r\n return Object.assign({}, x, { hide: false });\r\n return x;\r\n });\r\n\r\n // Resuelvo conditionals.\r\n var conditionalFields = fields.filter(x => (x._t === \"BooleanField\" || x._t === \"PayableField\") && x.conditional);\r\n conditionalFields.forEach(conditionalField => {\r\n fields.filter(field => conditionalField.conditional.includes(field.id))\r\n .forEach((fieldWithCondition) => {\r\n if (conditionalField.value === false)\r\n fieldWithCondition.hide = true;\r\n if (conditionalField.value === true)\r\n fieldWithCondition.hide = false;\r\n });\r\n });\r\n\r\n formAux.fields = fields;\r\n\r\n return formAux;\r\n }\r\n\r\n function addHidePropertyToFields(form) {\r\n setSelectedForm(manageConditionalFieldsInForm(form));\r\n }\r\n\r\n const handleSelectForm = (formId, isDirty) => {\r\n if (!isDirty || (isDirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setIsLoading(true);\r\n let selectedForms = forms.filter(x => { return x.id === formId });\r\n let formAux = JSON.parse(JSON.stringify(selectedForms.length > 0 ? selectedForms[0] : {}));\r\n formAux.text = selectedForm.text;\r\n addHidePropertyToFields(formAux)\r\n //setSelectedForm(JSON.parse(JSON.stringify(formAux)));\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n const _closeModal = () => { setModal(null); }\r\n\r\n const _updateData = (visit, updatedForm) => {\r\n if (!updatedForm || !updatedForm.id) {\r\n window.location.reload(false)\r\n return;\r\n }\r\n\r\n updatedForm.text = \"\";\r\n let formsCopy = JSON.parse(JSON.stringify(forms));\r\n var index = formsCopy.findIndex(x => x.id === updatedForm.id);\r\n formsCopy.splice(index, 1, updatedForm); //Reemplazo form.\r\n setVisitTracking(visit);\r\n setEvolutions(visit.evolutions);\r\n setForms(formsCopy);\r\n //setSelectedForm(updatedForm);\r\n addHidePropertyToFields(updatedForm)\r\n\r\n _closeModal();\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n }\r\n\r\n const _saveVisit = async (formVisitTracking, formikProps) => {\r\n try {\r\n if (formikProps.isSubmitting)\r\n return;\r\n\r\n formikProps.setSubmitting(true);\r\n setModal();\r\n\r\n const res = await saveVisitTracking(protocolId, visitId, patientId, patientInfo.medicalRecordNumber, formVisitTracking);\r\n const form = res.data.form;\r\n const visit = res.data.visit;\r\n\r\n // Upload attachments if any.\r\n const fieldsWithFiles = formVisitTracking.patientForm.fields.filter(x => x._t === \"FileUploadField\" && x.value?.file);\r\n const componentsWithFiles = formVisitTracking.patientForm.fields.filter(x => x._t === \"ArrayField\")\r\n .map(array => {\r\n return array.components.map(component => {\r\n return component.fields.map(field => field._t === \"FileUploadField\" && field !== null && field).flat();\r\n }).flat();\r\n }).flat().filter(x => x.value?.file); // filtro por los nuevos solamente. \r\n const files = fieldsWithFiles.concat(componentsWithFiles);\r\n\r\n if (files && files.length > 0) {\r\n try {\r\n const attachs = files.map(x => x.value);\r\n postAPI(attachs, uploadVisitTrackingAttachmentFormEndpoint(protocolId, visitId, form.id, patientId, patientInfo.medicalRecordNumber))\r\n .then(() => {\r\n if (visit.numberInProtocol !== patientId) {\r\n history.push(`/admin/protocols/${protocolId}/visitTracking/${visitId}/patient/${visit?.numberInProtocol}`);\r\n }\r\n getVisitTrackingForm(protocolId, visitId, form.id)\r\n .then(resForm => {\r\n // Actualizo el form en FrontEnd.\r\n _updateData(visit, resForm?.data);\r\n }).catch((error) => {\r\n console.log(error)\r\n window.location.reload(false)\r\n })\r\n }).catch((error) => { console.log(error) });\r\n }\r\n catch (error) {\r\n console.log(error.response);\r\n }\r\n }\r\n else {\r\n if (visit.numberInProtocol !== patientId) {\r\n history.push(`/admin/protocols/${protocolId}/visitTracking/${visitId}/patient/${visit?.numberInProtocol}`);\r\n }\r\n _updateData(visit, form);\r\n }\r\n }\r\n catch (error) {\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n finally {\r\n formikProps.setSubmitting(false);\r\n }\r\n }\r\n\r\n const _publishVisit = async (digitalSign, actions) => {\r\n try {\r\n setModal();\r\n const res = await publishVisitTracking(protocolId, visitId, patientId, digitalSign);\r\n _closeModal();\r\n setVisitTracking(res.data);\r\n actions.setSubmitting(false);\r\n Success(\"protocolNotifications.visitTracking_VisitPublished\");\r\n }\r\n catch (error) {\r\n _closeModal();\r\n actions.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleSaveVisit = (formVisitTracking, formikProps) => {\r\n if (visitTracking.status !== visitStatus.Started || formVisitTracking.status !== formStatus.Initial) {\r\n setModal( _saveVisit({ patientForm: formVisitTracking, audit: { reason: reason, comments: comments } }, formikProps)}\r\n />)\r\n }\r\n else {\r\n _saveVisit({ patientForm: formVisitTracking }, formikProps);\r\n }\r\n }\r\n\r\n const _saveUploadVisit = async (formVisitTracking, formikProps) => {\r\n try {\r\n if (formikProps.isSubmitting)\r\n return;\r\n\r\n formikProps.setSubmitting(true);\r\n setModal();\r\n\r\n const res = await saveUploadVisitTrackingAPI(protocolId, visitId, patientId, patientInfo.medicalRecordNumber, formVisitTracking);\r\n const form = res.data.form;\r\n const visit = res.data.visit;\r\n\r\n // Upload attachments. \r\n const fieldsWithFiles = formVisitTracking.patientForm.fields.filter(x => x._t === \"FileUploadField\" && x.value.file);\r\n const componentsWithFiles = formVisitTracking.patientForm.fields.filter(x => x._t === \"ArrayField\")\r\n .map(array => {\r\n return array.components.map(component => {\r\n return component.fields.map(field => field._t === \"FileUploadField\" && field !== null && field).flat();\r\n }).flat();\r\n }).flat().filter(x => x.value?.file); // filtro por los nuevos solamente. \r\n const files = fieldsWithFiles.concat(componentsWithFiles);\r\n\r\n if (files && files.length > 0) {\r\n try {\r\n const attachs = files.map(x => x.value);\r\n postAPI(attachs, uploadVisitTrackingAttachmentFormEndpoint(protocolId, visitId, form.id, patientId, patientInfo.medicalRecordNumber))\r\n .then(() => {\r\n getVisitTrackingForm(protocolId, visitId, form.id)\r\n .then(resForm => {\r\n // Actualizo el form en FrontEnd.\r\n _updateData(visit, resForm?.data);\r\n }).catch((error) => {\r\n console.log(error)\r\n window.location.reload(false)\r\n })\r\n }).catch((error) => { console.log(error) });\r\n }\r\n catch (error) {\r\n console.log(error.response);\r\n }\r\n }\r\n else {\r\n _updateData(visit, form);\r\n }\r\n }\r\n catch (error) {\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n finally {\r\n formikProps.setSubmitting(false);\r\n }\r\n }\r\n const handleSaveUploadVisit = (formVisitTracking, formikProps) => {\r\n if (visitTracking.status !== visitStatus.Started || formVisitTracking.status !== formStatus.Initial) {\r\n setModal( _saveUploadVisit({ patientForm: formVisitTracking, audit: { reason: reason, comments: comments } }, formikProps)}\r\n />)\r\n }\r\n else {\r\n _saveUploadVisit({ patientForm: formVisitTracking }, formikProps);\r\n }\r\n }\r\n\r\n const handleSubmitFormik = (_formVisitTracking, actions) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); actions.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishVisit(pin, actions)}\r\n />);\r\n\r\n else\r\n _publishVisit({ password: \"\" }, actions)\r\n }\r\n\r\n const handleSubmitForm = (evt, formikBag) => {\r\n evt.preventDefault();\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n // Valido errores en todos los formularios. \r\n let withErrors = [];\r\n let showErrorValidations = false;\r\n forms.forEach(form => {\r\n if (form.extraFormType !== 0 && !getValidationSchema().isValidSync(manageConditionalFieldsInForm(form))) {\r\n withErrors.push({ id: form.id, title: form.title });\r\n if (form.id === formikBag.values.id)\r\n showErrorValidations = true;\r\n }\r\n });\r\n\r\n if (withErrors.length > 0) {\r\n setFormsWithErrors(withErrors);\r\n HandleMessageError(t(\"protocolErrors.visitTracking_requiredFieldsError\", { requiredFields: withErrors.map(e => e.title).join(' - ') }));\r\n if (showErrorValidations)\r\n formikBag.submitForm();\r\n } else {\r\n formikBag.submitForm();\r\n }\r\n }\r\n }\r\n\r\n const handleSkipVisit = (formikBag) => {\r\n\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal( confirmSkipVisit(formikBag)}\r\n />)\r\n }\r\n }\r\n\r\n const confirmSkipVisit = (formikBag) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishSkipVisit(pin, formikBag)}\r\n />);\r\n\r\n else\r\n _publishSkipVisit({ password: \"\" }, formikBag)\r\n }\r\n\r\n const _publishSkipVisit = async (digitalSign, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await skipVisitTracking(protocolId, visitId, patientId, digitalSign);\r\n setIsLoading(false);\r\n _closeModal();\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n const handleScreenFailure = (formikBag) => {\r\n\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => confirmScreenFailure(formikBag)}\r\n />)\r\n }\r\n }\r\n\r\n const confirmScreenFailure = (formikBag) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishScreenFailure(pin, formikBag)}\r\n />);\r\n else\r\n _publishScreenFailure({ password: \"\" }, formikBag)\r\n }\r\n\r\n const _publishScreenFailure = async (digitalSign, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await screenFailureVisitTracking(protocolId, visitId, patientId, digitalSign);\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleLostToFollowUp = (formikBag) => {\r\n\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => confirmLostToFollowUp(formikBag)}\r\n />)\r\n }\r\n }\r\n\r\n const confirmLostToFollowUp = (formikBag) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishLostToFollowUp(pin, formikBag)}\r\n />);\r\n else\r\n _publishLostToFollowUp({ password: \"\" }, formikBag)\r\n }\r\n\r\n const _publishLostToFollowUp = async (digitalSign, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await lostToFollowUpVisitTracking(protocolId, visitId, patientId, digitalSign);\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleDiscontinuation = async (formikBag) => {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => _setDiscontinuation(formikBag)}\r\n />)\r\n }\r\n\r\n const _setDiscontinuation = async (formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n // Marco visita como Discontinuación y sincronizo. \r\n const res = await discontinuationVisitTracking(protocolId, visitId, patientId, { password: \"\" });\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n\r\n //// Creo visita de Terminación Temprana.\r\n //const res = await createVisitTrackingExtra(protocolId, patientInfo.medicalRecordNumber, { type: \"EarlyCompletion\" });\r\n //history.push(`/admin/protocols/${protocolId}/visitTrackingExtra/${res.data.id}/patient/${res?.data?.numberInProtocol}`);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleWithoutDrugs = async (formikBag) => {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => _setWithoutDrugs(formikBag)}\r\n />)\r\n }\r\n\r\n const _setWithoutDrugs = async (formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await withoutDrugsVisitTracking(protocolId, visitId, patientId);\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleReturnDrugs = async (formikBag) => {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => _setReturnDrugs(formikBag)}\r\n />)\r\n }\r\n\r\n const _setReturnDrugs = async (formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await returnDrugsVisitTracking(protocolId, visitId, patientId);\r\n _closeModal();\r\n setReload(true);\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n\r\n const handleEndPatientInProtocol = (formikBag) => {\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal(\r\n confirmEndPatientInProtocol(formikBag)}\r\n onCancel={() => { setModal(null); formikBag.setSubmitting(false); }}\r\n title={t(\"protocolNotifications.visitTracking_endPatientInProtocol_title\")}\r\n description={t(\"protocolNotifications.visitTracking_endPatientInProtocol_description\")}\r\n />);\r\n }\r\n }\r\n const confirmEndPatientInProtocol = (formikBag) => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onSubmit={(pin) => _publishEndPatientInProtocol(pin, formikBag)}\r\n />);\r\n else\r\n _publishEndPatientInProtocol({ password: \"\" }, formikBag)\r\n }\r\n const _publishEndPatientInProtocol = async (digitalSign, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await endPatientInProtocolVisitTrackingAPI(protocolId, visitId, patientId, digitalSign);\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleRollbackVisitStatus = (formikBag) => {\r\n if (!formikBag.dirty || (formikBag.dirty && window.confirm(t(\"protocolNotifications.visitTracking_unsavedChanges\")))) {\r\n setModal(\r\n confirmRollbackVisitStatus(formikBag)}\r\n onCancel={() => { setModal(null); formikBag.setSubmitting(false); }}\r\n title={t(\"protocolNotifications.visitTracking_rollbackVisitStatus_title\")}\r\n description={t(\"protocolNotifications.visitTracking_rollbackVisitStatus_description\")}\r\n />);\r\n }\r\n }\r\n const confirmRollbackVisitStatus = (formikBag) => {\r\n setModal( _publishRollbackVisitStatus({ audit: { reason: reason, comments: comments } }, formikBag)}\r\n />)\r\n }\r\n const _publishRollbackVisitStatus = async (audit, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await rollbackVisitStatusAPI(protocolId, visitId, patientId, audit);\r\n _closeModal();\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_rollbackDone\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n\r\n const handleAuditTrail = () => {\r\n setModal(\r\n \r\n {t(\"auditTrail.field\")}:\r\n \r\n\r\n {t(\"auditTrail.evolution\")}:\r\n \r\n \r\n )\r\n }\r\n\r\n const handleViewFile = async (attachName) => {\r\n try {\r\n await getBlobAPI(attachName, getVisitTrackingAttachmentFormEndpoint(protocolId, visitId, selectedForm.id, attachName));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleReSync = () => {\r\n setModal();\r\n }\r\n\r\n const _digitalSign = () => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( confirmReSync(pin)}\r\n />);\r\n\r\n else\r\n confirmReSync({ password: \"\" })\r\n }\r\n\r\n const confirmReSync = async (digitalSign) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await reSyncVisitTrackingAPI(protocolId, visitId, patientId, digitalSign);\r\n _closeModal();\r\n setIsLoading(false);\r\n Success(\"protocolNotifications.visitTracking_reSyncOk\");\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleChangeVisitTrackingType = (formikBag) => {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => _setChangeVisitTrackingType(formikBag)}\r\n />);\r\n }\r\n\r\n const _setChangeVisitTrackingType = async (formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n await changeVisitTrackingTypeAPI(protocolId, visitId, patientId, visitTracking.entryId, visitTracking.id);\r\n Success(\"protocolNotifications.visitTracking_changeTypeOk\");\r\n history.push(`/admin/protocols/${protocolId}/visitTrackingExtra/${visitTracking.id}/patient/${patientId}`);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleChangeType = (formikBag) => {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onChange={(type) => _changeType(type, formikBag)}\r\n />)\r\n }\r\n\r\n const _changeType = async (type, formikBag) => {\r\n try {\r\n setIsLoading(true);\r\n const res = await changeTypeVisitTrackingAPI(protocolId, visitId, patientId, type);\r\n _closeModal();\r\n //setReload(true);\r\n setIsLoading(false);\r\n setVisitTracking(res.data);\r\n Success(\"protocolNotifications.visitTracking_FormSaved\");\r\n formikBag.setSubmitting(false);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n formikBag.setSubmitting(false);\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const handleRemoveVisit = (formikBag) => {\r\n setModal( { setModal(null); formikBag.setSubmitting(false); }}\r\n onConfirm={() => _confirmRemoveVisit()}\r\n />)\r\n }\r\n\r\n const _confirmRemoveVisit = async () => {\r\n try {\r\n setIsLoading(true);\r\n await removeVisitTrackingAPI(protocolId, visitId, patientId);\r\n Success(\"protocolNotifications.visitTracking_removeVisitOk\");\r\n history.push(`/admin/protocols/${protocolId}`);\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n const _export = async (pin) => {\r\n try {\r\n setModal();\r\n\r\n const response = await exportVisitTrackingAPI(protocolId, visitTracking?.id, patientId, pin?.password);\r\n //const blob = new Blob([response.data], { type: \"text/html\" });\r\n const blob = new Blob([response.data]);\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.target = '_blank';\r\n\r\n var fileName = \"PatientVisit.zip\";\r\n var disposition = response.headers['content-disposition'];\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches[1]) fileName = matches[1].replace(/['\"]/g, '');\r\n }\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n _closeModal();\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n _closeModal();\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n const handleExport = async () => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n setModal( { setModal(null); }}\r\n onSubmit={(pin) => _export(pin)}\r\n />);\r\n\r\n else\r\n _export(\"\")\r\n }\r\n\r\n //#endregion\r\n\r\n if (!visitTracking || !selectedForm || !forms || isLoading || settingsStore.isLoading || isAuthLoading)\r\n return ;\r\n\r\n const isDisabled = !isAuthorized([\"VisitTracking.Add\"]) || context.isDisabled || !hasVisitTracking;\r\n const isUploadEnabled = isAuthorized([\"VisitTracking.UploadFile\"]) && !context.isDisabled && hasVisitTracking;\r\n const showStatus = ((!isAuthorized([\"VisitTracking.Add\"]) && visitTracking?.status !== visitStatus.Started) || isAuthorized([\"VisitTracking.Add\"]));\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n \r\n {props => (\r\n
    handleSubmitForm(evt, props)}>\r\n \r\n \r\n \r\n \r\n handleSelectForm(formId, props.dirty)}\r\n selectedFormId={selectedForm?.id}\r\n formsWithErrors={formsWithErrors}\r\n />\r\n \r\n \r\n \r\n \r\n { evt.preventDefault(); history.push(`/admin/protocols/${protocolId}/section/visittracking`) }} // history.goBack();\r\n onSave={() => handleSaveVisit(props.values, props)}\r\n onSaveUpload={() => handleSaveUploadVisit(props.values, props)}\r\n onSkip={() => handleSkipVisit(props)}\r\n onExport={handleExport}\r\n onLostToFollowUp={() => handleLostToFollowUp(props)}\r\n onScreenFailure={() => handleScreenFailure(props)}\r\n onDiscontinuation={() => handleDiscontinuation(props)}\r\n onWithoutDrugs={() => handleWithoutDrugs(props)}\r\n onReturnDrugs={() => handleReturnDrugs(props)}\r\n onChangeType={() => handleChangeType(props)}\r\n onEndPatientInProtocol={() => handleEndPatientInProtocol(props)}\r\n onRollbackVisitStatus={() => handleRollbackVisitStatus(props)}\r\n onChangeVisitTrackingType={() => handleChangeVisitTrackingType(props)}\r\n onReSync={handleReSync}\r\n onAuditTrail={handleAuditTrail}\r\n onBackToMR={() => history.push(`/admin/medicalRecords/${patientInfo?.medicalRecordNumber}`)}\r\n onRemove={() => handleRemoveVisit(props)}\r\n isSubmitting={props.isSubmitting}\r\n />\r\n \r\n \r\n \r\n \r\n {showStatus && visitTracking && }\r\n \r\n {\r\n !settingsStore.settings.digitalSignEnabled && (visitTracking?.status === visitStatus.Completed || visitTracking?.status === visitStatus.Skipped || visitTracking?.status === visitStatus.Failed) &&\r\n \r\n }\r\n \r\n {\r\n hasVisitTracking &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n {getVisitType(visitTracking.visitType)} {t(\"protocols.visitTracking.patientEvolution\")}}\r\n subtitle={<> {patientInfo.patientNumber}}\r\n />\r\n {\r\n !settingsStore.settings.digitalSignEnabled && (visitTracking?.status === visitStatus.Completed || visitTracking?.status === visitStatus.Skipped || visitTracking?.status === visitStatus.Failed) &&\r\n \r\n }\r\n {\r\n settingsStore.settings.digitalSignEnabled &&\r\n \r\n }\r\n \r\n {\r\n hasVisitTracking &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport AdminContext from './AdminContext';\r\n\r\nexport const AdminProvider = (props) => {\r\n\r\n const [selectedTenant, setSelectedTenant] = useState(null);\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}","import { ErrorMessage, FieldArray } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Col, ControlLabel, FormControl, Row } from 'react-bootstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { getLaboratoryData } from '../../api/admin';\r\nimport { conceptType, snomedExpressions } from '../../variables/Enums';\r\nimport { CustomSelect } from '../CustomControls/CustomSelect';\r\nimport { SnomedPicker } from '../CustomControls/SnomedPicker';\r\nimport { Edit, Remove } from '../Icons/Icons';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\n\r\nexport const ResultsTemplates = props => {\r\n\r\n const { data, query, totalSize, onTableChange, isLoading } = props;\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'name', text: t('settings.resultsTemplates.name'), sort: true },\r\n { dataField: 'speciality', text: t('settings.resultsTemplates.speciality'), sort: true },\r\n { dataField: 'type', text: t('settings.resultsTemplates.type'), sort: true },\r\n {\r\n dataField: 'view', text: t(\"commons.actions\"), isDummyField: true, headerStyle: { width: '150px' },\r\n formatter: function (_cell, row) {\r\n if (props.onEdit && props.onRemove)\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n return null;\r\n },\r\n }\r\n ];\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n onTableChange(type, { page, sizePerPage, sortField, sortOrder });\r\n }\r\n\r\n return (\r\n <>{t(\"commons.noData\")}}\r\n pagination={paginationFactory({\r\n page: query.pagination.page,\r\n sizePerPage: query.pagination.sizePerPage,\r\n totalSize: totalSize,\r\n hideSizePerPage: true,\r\n })}\r\n onTableChange={handleTableChange}\r\n loading={isLoading} //only loading is true, react-bootstrap-table will render overlay\r\n overlay={overlayFactory({ spinner: true })}\r\n />\r\n );\r\n}\r\n\r\nResultsTemplates.propTypes = {\r\n data: PropTypes.array.isRequired,\r\n query: PropTypes.object.isRequired,\r\n totalSize: PropTypes.number.isRequired,\r\n onTableChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const ResultsTemplateForm = props => {\r\n\r\n const {\r\n values,\r\n setFieldValue,\r\n setFieldTouched,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n isSubmitting\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n const [data, setData] = useState({\r\n units: [],\r\n significances: []\r\n });\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n getLaboratoryData()\r\n .then(response => {\r\n setData(response.data);\r\n\r\n }).catch(error => {\r\n setData({});\r\n });\r\n }\r\n fetchData();\r\n }, []);\r\n\r\n const emptyResult = {\r\n name: null,\r\n refMin: null,\r\n refMax: null,\r\n reference: '',\r\n unit: null\r\n }\r\n\r\n if (!values.resultItems) {\r\n values.resultItems = [];\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n {t(\"settings.resultsTemplates.name\")}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n (
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.resultItems && values.resultItems.length > 0 ? (\r\n values.resultItems.map((result, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : \"\"}\r\n \r\n
    \r\n {t(\"settings.resultsTemplates.order\")}\r\n \r\n {t('medicalRecords.laboratory.laboratory')}\r\n \r\n {t('medicalRecords.laboratory.unit')}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n !props.edit &&\r\n arrayHelper.remove(index)}>\r\n \r\n \r\n }\r\n
    \r\n\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n \r\n {\r\n values.resultItems && values.resultItems.length > 0 &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import axios from './index';\r\n\r\nexport const getPagingAndOrderParams = (newActiveFilters, searchParams) => {\r\n\r\n if (!newActiveFilters)\r\n return;\r\n\r\n searchParams.delete('pageIndex'); // se resetea el paginado\r\n if (newActiveFilters.pagination?.page) {\r\n searchParams.append('pageIndex', newActiveFilters.pagination.page);\r\n }\r\n searchParams.delete('pageSize');\r\n if (newActiveFilters.pagination?.sizePerPage) {\r\n searchParams.append('pageSize', newActiveFilters.pagination.sizePerPage);\r\n }\r\n searchParams.delete('sortField');\r\n if (newActiveFilters.sort?.sortField) {\r\n searchParams.append('sortField', newActiveFilters.sort.sortField);\r\n }\r\n searchParams.delete('sortOrder');\r\n if (newActiveFilters.sort?.sortOrder) {\r\n searchParams.append('sortOrder', newActiveFilters.sort.sortOrder);\r\n }\r\n\r\n return searchParams;\r\n}\r\n\r\nexport const getQueryString = (query, search) => {\r\n\r\n var searchParams = new URLSearchParams(search || '');\r\n\r\n if (!query)\r\n return searchParams.toString();\r\n\r\n searchParams = getPagingAndOrderParams(query, searchParams);\r\n\r\n if (query.filters) {\r\n for (const property in query.filters) {\r\n\r\n searchParams.delete(property);\r\n if (query.filters[property] !== null && query.filters[property] !== undefined) {\r\n searchParams.append(property, query.filters[property]);\r\n }\r\n }\r\n }\r\n\r\n return searchParams.toString();\r\n}\r\n\r\nexport const getTemplates = async (filters) => {\r\n const queryString = getQueryString(filters, window.location.search);\r\n return axios.get(queryString ? `api/v1/resultsTemplates/?${queryString}` : `api/v1/resultsTemplates`);\r\n};\r\nexport const getTemplate = async (templateId) => {\r\n return axios.get(`api/v1/resultsTemplates/${templateId}`);\r\n};\r\nexport const createTemplate = async (template) => {\r\n return axios.post(`api/v1/resultsTemplates/`, template);\r\n};\r\nexport const editTemplate = async (templateId, template) => {\r\n return axios.put(`api/v1/resultsTemplates/${templateId}`, template);\r\n};\r\nexport const removeTemplate = async (templateId) => {\r\n return axios.delete(`api/v1/resultsTemplates/${templateId}`);\r\n};","import { useEffect, useState } from 'react';\r\nimport { createTemplate, editTemplate, getTemplate, getTemplates, removeTemplate } from '../../../api/resultsTemplates';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\n\r\nexport const useResultsTemplates = () => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n }\r\n });\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setReload(false);\r\n setIsLoading(true);\r\n const res = await getTemplates();\r\n\r\n if (isSubscribed) {\r\n //setTotalSize(res.data);\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [query, reload]);\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, setReload];\r\n}\r\n\r\nexport const useResultsTemplate = (id) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState(null);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setIsLoading(true);\r\n const res = await getTemplate(id);\r\n\r\n if (isSubscribed) {\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData(null);\r\n }\r\n }\r\n if (id)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [id]);\r\n\r\n const create = (data) => {\r\n return createTemplate(data);\r\n }\r\n\r\n const update = (id, data) => {\r\n return editTemplate(id, data);\r\n }\r\n\r\n const remove = (id) => {\r\n return removeTemplate(id);\r\n }\r\n\r\n return [data, isLoading, create, update, remove];\r\n}","import React from \"react\";\r\nimport { Modal as BootstrapModal } from 'react-bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const ModalTemplate = (props) => {\r\n const { isShowing, hide } = props;\r\n const { t } = useTranslation();\r\n\r\n return isShowing ? ReactDOM.createPortal(\r\n \r\n \r\n \r\n {t(\"settings.resultsTemplates.title\")}\r\n \r\n \r\n {props.children}\r\n \r\n \r\n , document.body\r\n ) : null;\r\n};","import PropTypes from 'prop-types'\r\nimport React from \"react\"\r\nimport SweetAlert from \"react-bootstrap-sweetalert\"\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nexport const ConfirmRemove = (props) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n props.onConfirm(props.id)}\r\n onCancel={() => { props.onClose() }}\r\n confirmBtnBsStyle=\"success\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.yes\")}\r\n cancelBtnText={t(\"buttons.no\")}\r\n showCancel\r\n >\r\n \r\n \r\n );\r\n}\r\n\r\nConfirmRemove.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n id: PropTypes.string.isRequired\r\n};","import { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { ConfirmRemove } from '../../components/Modals/RemoveModal';\r\nimport { HandleApiError } from \"../../components/Notifications/APIErrorHandler\";\r\nimport { ResultsTemplateForm } from \"../../components/Settings/ResultsTemplates\";\r\nimport { getSettingsSchema } from '../../components/Validations/FormValidationSchema';\r\nimport { useResultsTemplate } from './Hooks/useResultsTemplates';\r\n\r\nexport const ResultsTemplateCreateContainer = (props) => {\r\n const { onSubmit } = props;\r\n const [, , create,] = useResultsTemplate();\r\n\r\n const handleSubmit = async (data) => {\r\n try {\r\n const res = await create(data);\r\n onSubmit(res);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport const ResultsTemplateEditContainer = (props) => {\r\n const { id, onSubmit } = props;\r\n const [data, isLoading, , update] = useResultsTemplate(id);\r\n\r\n const handleSubmit = async (data) => {\r\n try {\r\n const res = await update(id, data);\r\n onSubmit(res);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n if (!data || isLoading)\r\n return null;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport const ResultsTemplateRemoveContainer = (props) => {\r\n const { id, onSubmit, onCancel } = props;\r\n const [data, isLoading, , , remove] = useResultsTemplate(id);\r\n\r\n const handleSubmit = async () => {\r\n try {\r\n const res = await remove(id);\r\n onSubmit(res);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n }\r\n\r\n if (!data || isLoading)\r\n return null;\r\n\r\n return ();\r\n}\r\n\r\nconst ResultsTemplateContainerFormik = withFormik({\r\n mapPropsToValues: (props) => (props.template),\r\n\r\n validationSchema: getSettingsSchema(),\r\n\r\n handleSubmit: (values, formikBag) => {\r\n formikBag.props.onSubmit(values);\r\n },\r\n\r\n displayName: 'ResultsTemplateForm',\r\n\r\n})(ResultsTemplateForm);\r\n\r\nResultsTemplateContainerFormik.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n template: PropTypes.object.isRequired,\r\n};","import React, { useState } from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from '../../components/Cards/Card';\r\nimport { Add } from '../../components/Icons/Icons';\r\nimport { ResultsTemplates } from '../../components/Settings/ResultsTemplates';\r\nimport { useResultsTemplates } from './Hooks/useResultsTemplates';\r\nimport { ModalTemplate } from './ModalTemplate';\r\nimport { ResultsTemplateCreateContainer, ResultsTemplateEditContainer, ResultsTemplateRemoveContainer } from './ResultsTemplate';\r\n\r\nexport const ResultsTemplatesContainer = (props) => {\r\n const { t } = useTranslation();\r\n const [templates, query, totalSize, isLoading, handleTableChange, setReload] = useResultsTemplates();\r\n const [modal, setModal] = useState(null);\r\n\r\n const onModalSubmit = () => {\r\n setModal(null);\r\n setReload(true);\r\n }\r\n const handleClose = () => { setModal(null) }\r\n\r\n const handleCreate = () => {\r\n setModal(\r\n \r\n \r\n \r\n );\r\n }\r\n const handleEdit = (id) => {\r\n setModal(\r\n \r\n \r\n \r\n )\r\n }\r\n const handleRemove = (id) => {\r\n setModal(\r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n {t(\"settings.resultsTemplates.add\")}\r\n \r\n }\r\n content={\r\n \r\n }\r\n />\r\n \r\n );\r\n}","import { useEffect, useState } from 'react';\r\nimport { getSettings, setSettings } from '../../../api/settings';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\n\r\nexport const useSettings = () => {\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState(null);\r\n const [reload, setReload] = useState(false);\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n const fetchData = async () => {\r\n try {\r\n setReload(false);\r\n setIsLoading(true);\r\n const res = await getSettings();\r\n\r\n if (isSubscribed && res.data) {\r\n setData(res.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setData(null);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [reload]);\r\n\r\n const update = (key, value) => {\r\n return setSettings(key, value);\r\n }\r\n\r\n return [data, isLoading, update, setReload];\r\n}","import React, { useState } from 'react';\r\nimport { withFormik } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\n//Components\r\nimport { SettingsForm } from '../../components/Settings/Settings';\r\nimport { uploadHeader } from '../../api/settings';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport Card from '../../components/Cards/Card';\r\nimport { useSettings } from './Hooks/useSettings';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\n\r\nexport const SettingsContainer = () => {\r\n const [modal, setModal] = useState(null);\r\n const [data, isLoading, update] = useSettings();\r\n\r\n const _isValidImageSize = (imageToCheck, width, height) => {\r\n var _URL = window.URL || window.webkitURL;\r\n var file, img, isValid = true;\r\n if ((file = imageToCheck)) {\r\n img = new Image();\r\n var objectUrl = _URL.createObjectURL(file);\r\n img.onload = function () {\r\n if (this.width != width || this.height != height) {\r\n alert(`El tamaño de la imagen debe ser de ${width}x${height}`);\r\n isValid = false;\r\n }\r\n _URL.revokeObjectURL(objectUrl);\r\n };\r\n img.src = objectUrl;\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n const handleFirstMRN = (value) => {\r\n if (!value)\r\n return;\r\n\r\n update(\"FirstMRN\", value)\r\n .then(res => {\r\n Success(\"settingsNotifications.settings_Updated\");\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n const handleAutoClose = (value) => {\r\n if (!value)\r\n return;\r\n\r\n update(\"AutoClose\", value)\r\n .then(res => {\r\n Success(\"settingsNotifications.settings_Updated\");\r\n }).catch(error => {\r\n HandleApiError(error);\r\n });\r\n }\r\n const handleHeader = async (header) => {\r\n //if (!_isValidImageSize(header.file, 1654, 245))\r\n // return;\r\n\r\n // Initial FormData\r\n const formData = new FormData();\r\n formData.append(\"file\", header.file);\r\n formData.append(\"title\", header.fileName);\r\n\r\n // Make an AJAX upload request using Axios\r\n try {\r\n const res = await uploadHeader(formData, \"header\");\r\n Success(\"settingsNotifications.settings_Uploaded\");\r\n }\r\n catch (error) {\r\n console.log(error.response);\r\n }\r\n }\r\n const handleFooter = async (footer) => {\r\n //if (!_isValidImageSize(footer.file, 1654, 90))\r\n // return;\r\n\r\n // Initial FormData\r\n const formData = new FormData();\r\n formData.append(\"file\", footer.file);\r\n formData.append(\"title\", footer.fileName);\r\n\r\n // Make an AJAX upload request using Axios\r\n try {\r\n const res = await uploadHeader(formData, \"footer\");\r\n Success(\"settingsNotifications.settings_Uploaded\");\r\n }\r\n catch (error) {\r\n console.log(error.response);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n }\r\n />\r\n\r\n \r\n );\r\n}\r\n\r\nconst SettingsFormik = withTranslation()(withFormik({\r\n\r\n mapPropsToValues: (props) => (props),\r\n displayName: 'SettingsForm',\r\n\r\n})(SettingsForm));\r\n\r\nSettingsFormik.propTypes = {\r\n onAutoClose: PropTypes.func.isRequired,\r\n onFirstMRN: PropTypes.func.isRequired,\r\n onHeader: PropTypes.func.isRequired,\r\n onFooter: PropTypes.func.isRequired\r\n};","import React from 'react';\r\nimport { Col, FormControl, FormGroup, Grid, Row } from 'react-bootstrap';\r\nimport Card from '../Cards/Card';\r\nimport CustomImageUpload from '../CustomControls/Images/CustomImage';\r\n\r\nexport const SettingsForm = props => {\r\n const {\r\n isSubmitting,\r\n isDisabled,\r\n onAutoClose,\r\n onFirstMRN,\r\n onHeader,\r\n onFooter,\r\n values,\r\n setFieldValue,\r\n handleChange,\r\n settings,\r\n isLoading,\r\n t,\r\n } = props;\r\n\r\n var data = {\r\n mrsettings: settings && JSON.parse(settings.mrdata),\r\n dbsettings: settings && JSON.parse(settings.dbdata),\r\n prsettings: settings && JSON.parse(settings.prdata)\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n !isLoading &&\r\n \r\n \r\n \r\n
    {t(\"settings.settings.firstMRN\")}
    \r\n \r\n \r\n x.key === \"FirstMRN\")?.value} onChange={handleChange} autoComplete=\"off\" />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n }\r\n />\r\n }\r\n \r\n\r\n \r\n {\r\n !isLoading &&\r\n \r\n \r\n \r\n
    {t(\"settings.settings.autoClose\")}
    \r\n \r\n \r\n x.key === \"AutoClose\")?.value} onChange={handleChange} autoComplete=\"off\" />\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n }\r\n />\r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    {t(\"settings.settings.header\")}
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    {t(\"settings.settings.footer\")}
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n );\r\n};","import React, { useContext, useState } from 'react';\r\nimport { Button, Col, Row } from 'react-bootstrap';\r\nimport SweetAlert from 'react-bootstrap-sweetalert';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { syncPatients } from '../../api/database';\r\nimport { syncUsers } from '../../api/identity';\r\nimport { syncPatientsInProtocol, syncProtocols, syncUsersInProtocol } from '../../api/protocolAdmin';\r\nimport { WithAuth } from '../../components/Authorization/WithAuth';\r\n//Components\r\nimport Card from '../../components/Cards/Card';\r\nimport { Sync } from '../../components/Icons/Icons';\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport AdminContext from './AdminContext/AdminContext';\r\n\r\nconst ConfirmSync = (props) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n props.onConfirm()}\r\n onCancel={() => { props.onClose() }}\r\n confirmBtnBsStyle=\"success\"\r\n cancelBtnBsStyle=\"info\"\r\n confirmBtnText={t(\"buttons.yes\")}\r\n cancelBtnText={t(\"buttons.no\")}\r\n showCancel\r\n >\r\n {props.subtitle}\r\n \r\n \r\n );\r\n}\r\n\r\nexport const SyncContainer = () => {\r\n const { t } = useTranslation();\r\n\r\n //const [, , isAuthorized] = useAuthorization();\r\n const { selectedTenant } = useContext(AdminContext);\r\n const [modal, setModal] = useState(null);\r\n\r\n const syncUsersClick = () => {\r\n setModal( setModal(null)}\r\n />);\r\n }\r\n\r\n const syncUsersConfirm = async () => {\r\n setModal(null);\r\n if (!selectedTenant) return;\r\n\r\n try {\r\n await syncUsers(selectedTenant.tenantId);\r\n Success(\"settings.sync.users_sync_started\");\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n HandleApiError(ex);\r\n }\r\n }\r\n\r\n const syncPatientsClick = () => {\r\n setModal( setModal(null)}\r\n />);\r\n }\r\n\r\n const syncPatientsConfirm = async () => {\r\n setModal(null);\r\n if (!selectedTenant) return;\r\n\r\n try {\r\n await syncPatients(selectedTenant.tenantId);\r\n Success(\"settings.sync.database_sync_started\");\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n HandleApiError(ex);\r\n }\r\n }\r\n\r\n const syncProtocolsClick = () => {\r\n setModal( setModal(null)}\r\n />);\r\n }\r\n\r\n const syncProtocolsConfirm = async () => {\r\n setModal(null);\r\n if (!selectedTenant) return;\r\n\r\n try {\r\n await syncProtocols(selectedTenant.tenantId);\r\n Success(\"settings.sync.database_sync_started\");\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n HandleApiError(ex);\r\n }\r\n }\r\n\r\n const syncUsersInProtocolsClick = () => {\r\n setModal( setModal(null)}\r\n />);\r\n }\r\n\r\n const syncUsersInProtocolsConfirm = async () => {\r\n setModal(null);\r\n if (!selectedTenant) return;\r\n\r\n try {\r\n await syncUsersInProtocol(selectedTenant.tenantId);\r\n Success(\"settings.sync.database_sync_started\");\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n HandleApiError(ex);\r\n }\r\n }\r\n\r\n const syncPatientsInProtocolsClick = async () => {\r\n setModal(null);\r\n if (!selectedTenant) return;\r\n\r\n try {\r\n await syncPatientsInProtocol(selectedTenant.tenantId);\r\n Success(\"settings.sync.database_sync_started\");\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n HandleApiError(ex);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n selectedTenant ?\r\n
    \r\n {modal}\r\n \r\n \r\n Sincronizar\r\n }\r\n />\r\n \r\n \r\n Sincronizar\r\n }\r\n />\r\n \r\n \r\n Sincronizar\r\n }\r\n />\r\n \r\n \r\n Sincronizar\r\n }\r\n />\r\n \r\n \r\n Sincronizar\r\n }\r\n />\r\n \r\n \r\n
    :\r\n
    Seleccione Tenant
    \r\n }\r\n \r\n }\r\n />\r\n );\r\n}","import PropTypes from 'prop-types';\r\nimport React from \"react\";\r\nimport { Button as BootstrapButton } from \"react-bootstrap\";\r\n\r\nexport const Button = (props) => {\r\n\r\n return (\r\n <>\r\n \r\n {props.children}\r\n \r\n \r\n );\r\n}\r\nButton.propTypes = {\r\n children: PropTypes.object.isRequired,\r\n};\r\nButton.defaultProps = {\r\n};","import { Formik, ErrorMessage } from 'formik';\r\nimport React from 'react';\r\nimport { FormGroup, ControlLabel, FormControl, Col, Grid, Row } from 'react-bootstrap';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Save } from '../Icons/Icons';\r\nimport { FormErrorMessage } from '../Validations/FormValidationErrors';\r\nimport { CustomDateTime } from '../CustomControls/CustomDateTime';\r\nimport { CustomSwitch } from '../CustomControls/CustomSwitch';\r\nimport { Button } from '../CustomControls/Button';\r\n\r\nexport const AdminNotification = props => {\r\n\r\n const {\r\n values,\r\n onCancel\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n {\r\n if (props.onSubmit)\r\n props.onSubmit(values);\r\n }}\r\n >\r\n {props => (\r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"settings.adminNotifications.message\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"settings.adminNotifications.from\")}\r\n \r\n \r\n \r\n \r\n {t(\"settings.adminNotifications.to\")}\r\n \r\n \r\n \r\n \r\n {t(\"settings.adminNotifications.active\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Card from '../Cards/Card';\r\nimport { Edit, Remove } from '../Icons/Icons';\r\nimport { ModalData } from '../Modals/ModalData';\r\nimport { dateTimeFormatter, dateTimeUTCFormatter } from '../Utils/Formatter';\r\nimport { Tooltip } from '../Utils/Tooltips';\r\nimport { AdminNotification } from './AdminNotification';\r\nimport { Button } from '../CustomControls/Button';\r\n\r\nexport const AdminNotifications = (props) => {\r\n const { data, query, totalSize, isLoading, handleTableChange, handleEdit, handleRemove, handleCreate, handleSetReadOnly } = props;\r\n const [modal, setModal] = useState(null);\r\n const { t } = useTranslation();\r\n\r\n const columns = [\r\n { dataField: 'created', sort: true, text: t(\"settings.adminNotifications.created\"), formatter: function (cell) { return dateTimeFormatter(cell) }, headerClasses: 'header-date' },\r\n { dataField: 'message', sort: true, text: t(\"settings.adminNotifications.message\") },\r\n { dataField: 'from', sort: true, text: t(\"settings.adminNotifications.from\"), formatter: function (cell) { return dateTimeFormatter(cell) }, headerClasses: 'header-date' },\r\n { dataField: 'to', sort: true, text: t(\"settings.adminNotifications.to\"), formatter: function (cell) { return dateTimeFormatter(cell) }, headerClasses: 'header-date' },\r\n { dataField: 'active', sort: true, text: t(\"settings.adminNotifications.active\") },\r\n {\r\n dataField: 'view',\r\n text: t(\"settings.adminNotifications.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-actions',\r\n classes: 'row-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n function handlePreCreate(notification) {\r\n setModal(null);\r\n handleCreate(notification);\r\n }\r\n function onCreate() {\r\n setModal( setModal(null)}\r\n >\r\n setModal(null)}\r\n />\r\n );\r\n }\r\n function handlePreEdit(notification) {\r\n setModal(null);\r\n handleEdit(notification);\r\n }\r\n function onEdit(item) {\r\n setModal( setModal(null)}\r\n >\r\n setModal(null)}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {modal}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n }\r\n content={\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n pagination={paginationFactory({\r\n page: query.pagination.page,\r\n sizePerPage: query.pagination.sizePerPage,\r\n totalSize: totalSize,\r\n hideSizePerPage: true,\r\n })}\r\n onTableChange={handleTableChange}\r\n />\r\n }\r\n />\r\n \r\n );\r\n} ","import React from 'react';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport { setIsReadOnlyAPI } from '../../../api/settings';\r\nimport { AdminNotifications } from '../../../components/AdminNotifications/AdminNotifications';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Warning } from '../../../components/Notifications/Notifications';\r\nimport { useAdminNotification, useAdminNotifications } from './useAdminNotifications';\r\n\r\nconst AdminNotificationsContainer = (props) => {\r\n const [data, query, totalSize, isLoading, handleTableChange, setReload] = useAdminNotifications();\r\n const [, , create, update, remove, isNotifLoading] = useAdminNotification();\r\n\r\n async function handleCreate(item) {\r\n var notification = await create(item);\r\n if (notification)\r\n setReload(true);\r\n }\r\n async function handleEdit(item) {\r\n var notification = await update(item);\r\n if (notification)\r\n setReload(true);\r\n }\r\n async function handleRemove(itemId) {\r\n await remove(itemId);\r\n setReload(true);\r\n }\r\n async function handleSetReadOnly(readonly) {\r\n try {\r\n await setIsReadOnlyAPI(readonly);\r\n if (readonly)\r\n Warning(\"service_isReadOnlyEnabled\")\r\n else\r\n Warning(\"service_isReadOnlyDisabled\")\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n }\r\n\r\n }\r\n return (\r\n );\r\n}\r\n\r\nexport default AdminNotificationsContainer;","import React, { useContext, useEffect } from \"react\";\r\nimport { Col, Nav, NavItem, Row, Tab } from \"react-bootstrap\";\r\nimport { useAuthorization } from \"../components/Authorization/useAuthorization\";\r\nimport { WithAuth } from \"../components/Authorization/WithAuth\";\r\nimport Card from \"../components/Cards/Card\";\r\nimport { CustomSelect } from \"../components/CustomControls/CustomSelect\";\r\nimport { LaboratoriesContainer } from \"../containers/Protocols/Admin/Laboratories\";\r\nimport { StudyTasksContainer } from \"../containers/Protocols/Admin/StudyTasks\";\r\nimport { RolesContainer } from \"../containers/Security/Authorization/Roles\";\r\nimport { StudyRolesContainer } from \"../containers/Security/Authorization/StudyRoles\";\r\nimport AdminContext from \"../containers/Settings/AdminContext/AdminContext\";\r\nimport { AdminProvider } from \"../containers/Settings/AdminContext/AdminProvider\";\r\nimport { ResultsTemplatesContainer } from \"../containers/Settings/ResultsTemplates\";\r\nimport { SettingsContainer } from \"../containers/Settings/SettingsContainer\";\r\nimport { SyncContainer } from \"../containers/Settings/SyncContainer\";\r\nimport { useTenants } from \"../containers/Tenants/Hooks\";\r\nimport { TenantsContainer } from \"../containers/Tenants/Tenants\";\r\nimport { UsersContainer } from \"../containers/Users/Users\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AdminNotificationsContainer from \"../containers/Settings/AdminNotifications/AdminNotificationsContainer\";\r\nimport FreezersContainer from \"../containers/Freezers/FreezerComponents/FreezersContainer\";\r\nimport IotDevicesContainers from \"../containers/Freezers/IotDevicesComponents/IotDevicesContainer\";\r\n\r\nconst TenantSelection = ({ isAuthorized }) => {\r\n const { selectedTenant, setSelectedTenant } = useContext(AdminContext);\r\n const [tenants, isTenantsLoading, getAll] = useTenants();\r\n\r\n useEffect(() => {\r\n try {\r\n if (isAuthorized([\"Tenant.View\"]))\r\n getAll();\r\n }\r\n catch (error) {\r\n console.log(JSON.stringify(error))\r\n }\r\n }, [])\r\n\r\n const handleSelectedTenant = (_name, value) => {\r\n setSelectedTenant(value)\r\n }\r\n\r\n return (\r\n \r\n \r\n x.tenantName}\r\n getOptionValue={(x) => x.tenantId}\r\n />\r\n \r\n \r\n {selectedTenant &&
    TenantId: {selectedTenant.tenantId}
    }\r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n\r\nconst Settings = () => {\r\n const { t } = useTranslation();\r\n const [, , isAuthorized] = useAuthorization();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Settings;\r\n","export function WeatherMessage({ deviceId, freezerId, humidity, temperature, measureDate, uploadDate }) {\r\n this.DeviceId = deviceId;\r\n this.FreezerId = freezerId;\r\n this.Humidity = Number.parseFloat(humidity);\r\n this.Temperature = Number.parseFloat(temperature);\r\n this.MeasureDate = new Date(measureDate);\r\n this.UploadDate = new Date(uploadDate);\r\n}\r\n\r\nexport function DoorMessage({ deviceId, freezerId, measureDate, state, uploadDate }) {\r\n this.DeviceId = deviceId;\r\n this.FreezerId = freezerId;\r\n this.State = state;\r\n this.MeasureDate = new Date(measureDate);\r\n this.UploadDate = new Date(uploadDate);\r\n}\r\n","import { Freezer } from \"./Freezer\";\r\n\r\nexport function ProtocolFullData({ protocol, configuration, freezerDaysResume, freezer }) {\r\n this.Protocol = protocol;\r\n this.Configuration = configuration;\r\n this.FreezerDaysResume = freezerDaysResume;\r\n this.Freezer = freezer;\r\n}\r\n\r\nexport function FreezerTelemetryResume({ freezerId, days, freezer, protocol }) {\r\n this.FreezerId = freezerId;\r\n this.Freezer = freezer ?? new Freezer({ description: \"Empty\", type: \"ultra freezer\" });\r\n this.Days = days?.map(d => new TemperatureDayResume(d)) ?? []\r\n this.Protocol = protocol ?? null;\r\n\r\n this.HasAnyInvalidTemperature = function (protocolConfiguration) {\r\n return this.Days.some(d => d.HasInvalidTemperature(protocolConfiguration))\r\n }\r\n}\r\n\r\nexport function TemperatureDayResume({ day, minTemperature, maxTemperature }) {\r\n this.Day = day;\r\n this.MinTemperature = minTemperature;\r\n this.MaxTemperature = maxTemperature;\r\n\r\n this.HasInvalidTemperature = function (protocolConfiguration) {\r\n return protocolConfiguration.IsTemperatureValid(this.MinTemperature)\r\n && protocolConfiguration.IsTemperatureValid(this.MaxTemperature)\r\n }\r\n}","import axios from \"axios\";\r\nimport { ResponseResult, Url } from \"./Util\";\r\nimport { DoorMessage, WeatherMessage } from \"./Entities/IotMessages\";\r\nimport moment from \"moment\";\r\nimport { FreezerTelemetryResume } from \"./Entities/FreezerTelemetryResume\";\r\n\r\nconst GetUrl = Url(\"api/v1/IotMessage/\");\r\n\r\nexport default {\r\n GetWeatherTelemetry,\r\n GetWeatherResume,\r\n GetDoorTelemetry,\r\n}\r\n\r\nconst format = (date) => moment(date).format('MM-DD-YYYY')\r\n\r\nasync function GetWeatherTelemetry({ freezerId, from, to }) {\r\n if (from == null) throw new Error(\"From: Type 'Date' is required\")\r\n if (to == null) throw new Error(\"To: Type 'Date' is required\")\r\n if (freezerId == null) throw new Error(\"FreezerId: can not be empty\")\r\n const response = await axios.get(GetUrl('Weather'), {\r\n params: {\r\n freezerId: freezerId,\r\n from: format(from),\r\n to: format(to)\r\n }\r\n });\r\n\r\n const responseResult = new ResponseResult(response.data);\r\n return responseResult.Value?.map(m => new WeatherMessage(m)) ?? [];\r\n}\r\n\r\nasync function GetWeatherResume({ freezerIds, from, to, withFreezers }) {\r\n if (from == null) throw new Error(\"From: Type 'Date' is required\")\r\n if (to == null) throw new Error(\"To: Type 'Date' is required\")\r\n if (freezerIds == null) throw new Error(\"FreezerIds: can not be empty\")\r\n\r\n const response = await axios.post(GetUrl('Weather/Resume'), { freezerIds, from, to })\r\n const responseResult = new ResponseResult(response.data);\r\n return responseResult.Value?.map(m => new FreezerTelemetryResume(m)) ?? [];\r\n}\r\n\r\nasync function GetDoorTelemetry({ freezerId, from, to }) {\r\n if (from == null) throw new Error(\"From: Type 'Date' is required\")\r\n if (to == null) throw new Error(\"To: Type 'Date' is required\")\r\n if (freezerId == null) throw new Error(\"FreezerId: can not be empty\")\r\n\r\n const response = await axios.get(GetUrl('Door'), {\r\n params: {\r\n freezerId: freezerId,\r\n from: from,\r\n to: to\r\n }\r\n });\r\n\r\n const responseResult = new ResponseResult(response.data);\r\n return responseResult.Value?.map(m => new DoorMessage(m)) ?? [];\r\n}","import moment from \"moment\"\r\n\r\nexport function MapAsDataSet(data, label) {\r\n return {\r\n label,\r\n fill: false,\r\n data: data,\r\n pointRadius: 0,\r\n tension: 0,\r\n borderColor: 'rgb(53, 162, 235)',\r\n backgroundColor: 'rgba(53, 162, 235, 0.5)',\r\n borderWidth: 3\r\n }\r\n}\r\n\r\nexport const commonOptions = {\r\n animation: false,\r\n parsing: true,\r\n responsive: true,\r\n interaction: {\r\n mode: \"nearest\",\r\n axis: \"x\",\r\n intersect: false\r\n },\r\n plugins: {\r\n decimation: {\r\n enabled: true,\r\n algorithm: \"min-max\",\r\n },\r\n datalabels: {\r\n display: false,\r\n }\r\n },\r\n}\r\n\r\nexport const commonPlugins = {\r\n decimation: {\r\n enabled: true,\r\n algorithm: \"min-max\",\r\n },\r\n datalabels: {\r\n display: false,\r\n }\r\n}\r\n\r\nexport const commonScale = {\r\n x:\r\n {\r\n type: 'time',\r\n autoSkip: false,\r\n stacked: false,\r\n time: {\r\n unit: 'hour',\r\n displayFormats: {\r\n hour: 'HH:mm'\r\n },\r\n tooltipFormat: 'DD/MM/yyyy HH:mm'\r\n },\r\n ticks: {\r\n callback: function (value, index, values) {\r\n if (index % 24 === 0) {\r\n const format = moment(values[index].value).format(\"DD/MM\")\r\n return format\r\n }\r\n\r\n return value\r\n }\r\n }\r\n }\r\n}","import { useState } from \"react\"\r\nimport useLoading from \"../../components/Common/useLoading\"\r\n\r\nimport IotMessagesServices from \"../../api/Freezer/IotMessagesServices\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { MapAsDataSet } from \"./TelemetryComponents/Utils\"\r\n\r\nexport default function useIotMessages() {\r\n const [iotMessages, setIotMessages] = useState({\r\n weather: [],\r\n door: []\r\n })\r\n const [isLoading, load, reload] = useLoading()\r\n\r\n const search = ({ from, to, freezerId } = {}) => load(async () => {\r\n const weatherResult = await IotMessagesServices.GetWeatherTelemetry({ from, to, freezerId })\r\n const doorResult = await IotMessagesServices.GetDoorTelemetry({ from, to, freezerId })\r\n setIotMessages({\r\n weather: weatherResult,\r\n door: doorResult\r\n })\r\n })\r\n\r\n return [iotMessages.weather, iotMessages.door, isLoading, search]\r\n}\r\n\r\nexport function useIotTelemetry() {\r\n const { t } = useTranslation()\r\n const [telemetry, setTelemetry] = useState({\r\n temperature: { datasets: [] },\r\n humidity: { datasets: [] },\r\n door: { datasets: [] },\r\n })\r\n const [isLoading, load, reload] = useLoading()\r\n\r\n const search = ({ from, to, freezerId } = {}) => load(async () => {\r\n const weatherResult = await IotMessagesServices.GetWeatherTelemetry({ from, to, freezerId })\r\n const doorResult = await IotMessagesServices.GetDoorTelemetry({ from, to, freezerId })\r\n setTelemetry({\r\n temperature: {\r\n datasets: [MapAsDataSet(weatherResult.map(w => { return { y: w.Temperature, x: w.MeasureDate.getTime() } }), t('settings.freezer.temperature'))]\r\n },\r\n humidity: {\r\n datasets: [MapAsDataSet(weatherResult.map(w => { return { y: w.Humidity, x: w.MeasureDate.getTime() } }), t('settings.freezer.humidity'))]\r\n },\r\n door: {\r\n datasets: [{\r\n ...MapAsDataSet(doorResult.map(d => { return { y: d.State ? t('settings.freezer.open') : t('settings.freezer.close'), x: d.MeasureDate.getTime() } }), t('settings.freezer.door'))\r\n , stepped: true\r\n }]\r\n }\r\n })\r\n })\r\n\r\n return [telemetry, isLoading, search]\r\n}","import React from \"react\"\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { CustomDate } from \"../../../../components/CustomControls/CustomDateTime\";\r\nimport { ErrorMessage } from \"../../../../components/Notifications/Notifications\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function DateRangeComponent({ startDate, endDate, handleChange, name, disabled }) {\r\n const { t } = useTranslation()\r\n\r\n const onHandleFromChange = (e, v) => {\r\n const date = v.toDate();\r\n if (date > endDate) {\r\n ErrorMessage(t('settings.freezer.validDate'))\r\n return\r\n }\r\n handleChange({ to: endDate, from: date })\r\n }\r\n\r\n const onHandleToChange = (e, v) => {\r\n const date = v.toDate();\r\n if (date < startDate) {\r\n ErrorMessage(t('settings.freezer.validDate'))\r\n return\r\n }\r\n handleChange({ from: startDate, to: date })\r\n }\r\n\r\n return (\r\n \r\n \r\n { }}\r\n value={startDate}\r\n dateFormat=\"DD/MM/YYYY\"\r\n disabled={disabled}\r\n inputProps={{ placeholder: \"DD/MM/YYYY\" }}\r\n />\r\n \r\n \r\n { }}\r\n value={endDate}\r\n dateFormat=\"DD/MM/YYYY\"\r\n disabled={disabled}\r\n inputProps={{ placeholder: \"DD/MM/YYYY\" }} />\r\n \r\n )\r\n}","import React, { useContext, useState, createContext, useReducer, useEffect } from \"react\"\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { CustomSelect } from \"../../../../components/CustomControls/CustomSelect\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { DateRangeComponent } from \"./DateRange\";\r\n\r\nconst initialState = {\r\n from: new Date(Date.now()),\r\n to: new Date(Date.now()),\r\n selected: null\r\n}\r\n\r\nexport const SearchContext = createContext(null);\r\nexport const SearchDispatchContext = createContext(null);\r\n\r\nexport function SearchHeaderContext({ children }) {\r\n const [state, dispatch] = useReducer(searchReducer, initialState)\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n}\r\nfunction searchReducer(state, action) {\r\n switch (action.type) {\r\n case 'search':\r\n return {\r\n from: action.from,\r\n to: action.to,\r\n selected: action.selected\r\n }\r\n case 'selectedChange':\r\n return {\r\n from: state.from,\r\n to: state.to,\r\n selected: action.selected\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport function SearchHeader({ name, options, handleSearch, Prepend, disabled = false }) {\r\n const dispatch = useContext(SearchDispatchContext)\r\n const { t } = useTranslation()\r\n const [selectedOption, setSelectedOption] = useState(null)\r\n const [dateRange, setDateRange] = useState({\r\n from: new Date(Date.now()),\r\n to: new Date(Date.now())\r\n })\r\n\r\n const handleSearchCallback = () => {\r\n if (handleSearch != null)\r\n handleSearch({\r\n selected: selectedOption,\r\n from: dateRange.from,\r\n to: dateRange.to\r\n })\r\n dispatch({\r\n type: 'search',\r\n selected: selectedOption,\r\n from: dateRange.from,\r\n to: dateRange.to\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n setSelectedOption(null)\r\n }, [JSON.stringify(options)])\r\n\r\n return (\r\n
    \r\n \r\n {Prepend}\r\n \r\n { setSelectedOption(v) }}\r\n options={options}\r\n getOptionLabel={(option) => option?.Name}\r\n getOptionValue={(option) => option?.Value}\r\n isDisabled={disabled}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { commonOptions, commonScale, commonPlugins } from \"../Utils\";\r\nimport { Chart } from \"react-chartjs-2\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function TemperatureChart({ data, min, max }) {\r\n const { t } = useTranslation()\r\n const hasNotData = HasNotData(data)\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport function HumidityChart({ data }) {\r\n const { t } = useTranslation()\r\n const hasNotData = HasNotData(data)\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport function DoorChart({ data }) {\r\n const { t } = useTranslation()\r\n const hasNotData = HasNotData(data)\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst HasNotData = (data) => {\r\n return !(data.datasets?.reduce((has, value) => {\r\n return has = value.data.length > 0\r\n }, false) ?? false)\r\n}\r\n","import React from 'react';\r\nimport useFreezers from '../useFreezers';\r\nimport { EnumValue } from '../../../api/Freezer/Entities/Utils';\r\nimport Card from '../../../components/Cards/Card';\r\nimport Loader from '../../../components/Common/Loader';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { useIotTelemetry } from '../useIotMessages';\r\nimport { SearchHeader } from './Components/SearchHeader';\r\nimport { DoorChart, HumidityChart, TemperatureChart } from './Components/TelemetryCharts';\r\nimport { SearchHeaderContext } from './Components/SearchHeader';\r\n\r\nexport function FreezerTelemetryContainer() {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function FreezerTelemetry() {\r\n const [freezers, isFreezersLoading] = useFreezers({ pageSize: 50 })\r\n const [telemetry, isTelemetryLoading, search] = useIotTelemetry()\r\n\r\n const handleSearch = (searchObject) => {\r\n if (!searchObject || !searchObject.selected) return\r\n search({ from: searchObject.from, to: searchObject.to, freezerId: searchObject.selected.Value })\r\n }\r\n const freezerOptions = () => freezers.Values.map(f => new EnumValue(f.Id, f.Description))\r\n\r\n return (<>\r\n \r\n }\r\n content={\r\n
    \r\n \r\n
    \r\n \r\n \r\n } />\r\n \r\n \r\n } />\r\n \r\n \r\n } />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n />\r\n\r\n
    \r\n )\r\n}\r\n\r\n\r\n","import { useEffect, useState } from \"react\"\r\nimport FreezerProtocolServices from \"../../../../api/Freezer/FreezerProtocolServices\";\r\nimport { getMasterData, getProtocols } from \"../../../../api/protocol\";\r\nimport { EnumValue } from \"../../../../api/Freezer/Entities/Utils\";\r\nimport { useProtocolAuthFilter } from \"../../../../components/Authorization/useAuthorization\";\r\n\r\nfunction ProtocolTelemetryState({ isFirstLoading, isLoading, laboratories, protocols, protocolsConfig } = {}) {\r\n this.isFirstloading = isFirstLoading ?? false;\r\n this.isLoading = isLoading ?? false;\r\n this.laboratories = laboratories ?? [];\r\n this.protocols = protocols ?? [];\r\n this.protocolsConfig = protocolsConfig ?? []\r\n\r\n this.StartLoading = function () {\r\n return new ProtocolTelemetryState({ ...this, isLoading: true, isFirstLoading: false})\r\n }\r\n this.EndLoading = function ({ protocols } = {}) {\r\n return new ProtocolTelemetryState({ ...this, isLoading: false, protocols , isFirstLoading: false})\r\n }\r\n this.ContainsProtocolConfig = function (protocolId) {\r\n const config = this.protocolsConfig.get(protocolId)\r\n return config !== null && config?.AssignedFreezers?.length > 0;\r\n }\r\n\r\n this.GetConfig = function (protocolId) {\r\n return this.protocolsConfig.get(protocolId)\r\n }\r\n}\r\n\r\nexport function useLaboratoryProtocol() {\r\n const [state, setState] = useState(new ProtocolTelemetryState());\r\n const [canViewProtocol, isAuthLoading] = useProtocolAuthFilter()\r\n useEffect(() => {\r\n async function LoadLaboratories() {\r\n const masterData = await getMasterData([\"Laboratories\"]);\r\n const protocolConfigurations = (await FreezerProtocolServices\r\n .GetProtocolConfigs()).Value.reduce((m, v) => m.set(v.Id, v), new Map())\r\n ?? [];\r\n setState(new ProtocolTelemetryState({\r\n isFirstLoading: false,\r\n laboratories: masterData.data?.Laboratories.map(l => new EnumValue(l.id, l.title)) ?? [],\r\n protocolsConfig: protocolConfigurations\r\n }))\r\n }\r\n LoadLaboratories();\r\n }, [isAuthLoading])\r\n\r\n const HandleSelectedLaboratoryAsync = async (laboratoryId) => {\r\n setState(state.StartLoading())\r\n\r\n const protocols = (await getProtocols({\r\n pagination: { page: 1, sizePerPage: 1000, totalSize: 0 },\r\n sort: { sortField: \"Created\", sortOrder: \"desc\" },\r\n filters: { laboratoryId: laboratoryId }\r\n })).data.data\r\n\r\n var filteredProtocols = protocols\r\n ?.filter(p => canViewProtocol(p.id))\r\n ?.filter(p => state.ContainsProtocolConfig(p.id))\r\n ?.map(p => new EnumValue(p.id, p.title)) ?? []\r\n\r\n setState(state.EndLoading({ protocols: filteredProtocols }))\r\n }\r\n\r\n return [state, HandleSelectedLaboratoryAsync]\r\n}","import React, { useContext, useEffect, useState } from \"react\";\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport Loader from \"../../../components/Common/Loader\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useIotTelemetry } from \"../useIotMessages\";\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { CustomSelect } from \"../../../components/CustomControls/CustomSelect\";\r\nimport { useLaboratoryProtocol } from \"./hooks/useLaboratoryProtocol\";\r\nimport { ErrorMessage } from \"../../../components/Notifications/Notifications\";\r\nimport { ProtocolFreezerConfiguration } from \"../../../api/Freezer/Entities/ProtocolFreezerConfiguration\";\r\nimport './telemetry.css'\r\nimport { SearchHeader, SearchHeaderContext, SearchContext } from \"./Components/SearchHeader\";\r\nimport { DoorChart, HumidityChart, TemperatureChart } from \"./Components/TelemetryCharts\";\r\n\r\nexport function ProtocolTelemetryContainer() {\r\n return (\r\n \r\n \r\n )\r\n}\r\n\r\nexport function ProtocolTelemetry() {\r\n const { t } = useTranslation()\r\n const context = useContext(SearchContext)\r\n const [protocolState, handleLaboratoryChange] = useLaboratoryProtocol();\r\n const [selectedLaboratory, setSelectedLaboratory] = useState(null)\r\n const [telemetry, isTelemetryLoading, search] = useIotTelemetry()\r\n const [telemetryContext, setTelemetryContext] = useState({\r\n protocolConfig: new ProtocolFreezerConfiguration(),\r\n selectedFreezer: null,\r\n })\r\n\r\n useEffect(() => {\r\n if (selectedLaboratory === null) return\r\n handleLaboratoryChange(selectedLaboratory.Value)\r\n }, [selectedLaboratory])\r\n useEffect(() => {\r\n if (selectedLaboratory !== null\r\n && !protocolState.isLoading\r\n && protocolState.protocols.length <= 0) {\r\n ErrorMessage(t(\"telemetry.notProtocolConfigured\"))\r\n }\r\n\r\n }, [protocolState.isLoading])\r\n useEffect(() => {\r\n if (context?.selected == null) return\r\n const config = protocolState.GetConfig(context.selected.Value);\r\n const firstFreezer = config.AssignedFreezers[0];\r\n setTelemetryContext({\r\n protocolConfig: config,\r\n selectedFreezer: firstFreezer.Id\r\n })\r\n search({ from: context.from, to: context.to, freezerId: firstFreezer.Id })\r\n }, [context])\r\n\r\n const handleFreezerChange = (freezerId) => {\r\n setTelemetryContext({\r\n ...telemetryContext,\r\n selectedFreezer: freezerId\r\n })\r\n\r\n search({ from: context.from, to: context.to, freezerId: freezerId })\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n { setSelectedLaboratory(v) }}\r\n options={protocolState.laboratories}\r\n getOptionLabel={(option) => option?.Name}\r\n getOptionValue={(option) => option?.Value}\r\n />\r\n \r\n }\r\n disabled={(selectedLaboratory === null || !(protocolState.protocols.length > 0))}\r\n options={protocolState.protocols}\r\n />\r\n
    \r\n \r\n }\r\n\r\n content={\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n } />\r\n \r\n \r\n } />\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n />\r\n
    \r\n )\r\n}\r\n\r\nfunction SelecteableFreezers({ freezers, handleSelectedFreezer, selectedFreezer }) {\r\n const { t } = useTranslation()\r\n const handleSelected = (freezer) => {\r\n handleSelectedFreezer(freezer.Id)\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {freezers?.length > 0 && freezers.map(f => (\r\n handleSelected(f)} className={f.Id == selectedFreezer ? \"selected pointer\" : \"pointer \"}>\r\n \r\n \r\n )) || }\r\n \r\n
    {t(\"commons.description\")}{t(\"commons.location\")}
    {f.Description}{f.Location}
    {t(\"commons.noData\")}
    \r\n )\r\n}","import React from \"react\"\r\nexport default function Alert({ message }) {\r\n return (\r\n
    \r\n {message}\r\n
    \r\n )\r\n}","import React from \"react\";\r\nexport default function Dot({ color }) {\r\n return (\r\n \r\n );\r\n};","import React from \"react\";\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport { Panel } from \"react-bootstrap\";\r\nimport moment from 'moment';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Alert from './Alert';\r\nimport Dot from './Dot';\r\nimport '../telemetry.css';\r\n\r\nexport default function FreezerTogglePanel({ header, daysResume, protocolConfig }) {\r\n const { t } = useTranslation()\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n const columns = [\r\n {\r\n dataField: 'Day',\r\n text: t('commons.day'),\r\n formatter: (_, row) => {\r\n const date = moment(row.Day);\r\n const formattedDate = date.format('DD/MM/YYYY');\r\n return formattedDate;\r\n }\r\n },\r\n {\r\n dataField: 'MinTemperature',\r\n text: t('telemetry.minTemp'),\r\n formatter: (_, row) => formatTemperature(row.MinTemperature)\r\n },\r\n {\r\n dataField: 'MaxTemperature',\r\n text: t('telemetry.maxTemp'),\r\n formatter: (_, row) => formatTemperature(row.MaxTemperature)\r\n }\r\n ];\r\n\r\n if (protocolConfig) {\r\n columns.push({\r\n dataField: 'state',\r\n text: t('commons.state'),\r\n formatter: (_, row) => {\r\n return ;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n function formatTemperature(value) {\r\n const formattedValue = value.toFixed(2);\r\n return `${formattedValue}°`;\r\n }\r\n\r\n return (\r\n setIsOpen(!isOpen)}>\r\n \r\n
    \r\n {header}\r\n
    \r\n {t('commons.show')}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {daysResume?.length > 0 && || }\r\n \r\n \r\n
    \r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport Card from \"../../../components/Cards/Card\";\r\nimport { SearchHeader, SearchHeaderContext } from './Components/SearchHeader';\r\nimport { EnumValue } from '../../../api/Freezer/Entities/Utils';\r\nimport './telemetry.css';\r\nimport Loader from \"../../../components/Common/Loader\";\r\nimport useFreezerResume from './hooks/useFreezerResume';\r\nimport { useTranslation } from 'react-i18next';\r\nimport useProtocolResume from './hooks/useProtocolResume';\r\nimport Alert from './Components/Alert';\r\nimport FreezerTogglePanel from './Components/FreezerTogglePanel';\r\nimport { useProtocolPageAuth } from '../../../components/Authorization/useAuthorization';\r\n\r\n\r\nexport function TelemetryGeneralViewContainer() {\r\n return \r\n \r\n \r\n}\r\n\r\nfunction TelemetryGeneralView() {\r\n const [isAuthorized, ,] = useProtocolPageAuth();\r\n const [searchContext, setContext] = useState(null)\r\n const headerOptions = [new EnumValue(2, \"Vista por Heladeras\")]\r\n\r\n if (isAuthorized([\"Freezers.View\"])) {\r\n headerOptions.push(new EnumValue(1, \"Vista por Protocolos\"))\r\n }\r\n const SelectedView = ({ searchContext }) => {\r\n switch (searchContext?.selected.Value) {\r\n case 2:\r\n return ()\r\n case 1:\r\n return ()\r\n default:\r\n return
    \r\n }\r\n }\r\n\r\n const handleSearch = (search) => {\r\n setContext(search)\r\n }\r\n\r\n return (\r\n \r\n \r\n }\r\n content={}\r\n />\r\n )\r\n}\r\n\r\nfunction FreezerPanelView({ from, to }) {\r\n const { t } = useTranslation()\r\n const [resumes, isLoading, reload] = useFreezerResume(from, to)\r\n\r\n useEffect(() => {\r\n reload()\r\n }, [from, to])\r\n\r\n const Header = ({ resume }) => {\r\n return (
    \r\n \r\n \r\n
    )\r\n }\r\n\r\n const mapped = resumes.map(r => }\r\n daysResume={r.Days} />)\r\n\r\n return (\r\n {resumes.length > 1 ? mapped : }\r\n )\r\n}\r\n\r\nfunction ProtocolPanelView({ from, to }) {\r\n const { t } = useTranslation()\r\n const [resumes, isLoading, reload] = useProtocolResume(from, to)\r\n console.log(isLoading)\r\n useEffect(() => {\r\n reload()\r\n }, [from, to])\r\n\r\n const Header = ({ resume }) => (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n\r\n const mapped = resumes.map(r => }\r\n daysResume={r.FreezerDaysResume}\r\n protocolConfig={r.Configuration} />)\r\n\r\n return (\r\n {resumes.length > 1 ? mapped : }\r\n )\r\n}\r\n\r\nfunction HeaderData({ title, value }) {\r\n return (\r\n \r\n {title}:{' '}{value}\r\n \r\n )\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import { useState } from 'react';\r\nimport IotMessagesServices from '../../../../api/Freezer/IotMessagesServices';\r\nimport FreezerService from '../../../../api/Freezer/FreezerService';\r\n\r\nexport default function useFreezerResume(from, to) {\r\n const [state, setState] = useState({\r\n resumes: [],\r\n isLoading: false\r\n })\r\n\r\n const findResume = async () => {\r\n const freezers = await FreezerService.Find({ pageSize: 100, withDevices: false });\r\n const freezerIdMap = freezers.Values.reduce((map, freezer) => map.set(freezer.Id, freezer), new Map())\r\n const resumeData = await IotMessagesServices.GetWeatherResume({ from, to, freezerIds: Array.from(freezerIdMap.keys()) });\r\n resumeData.forEach(r => r.Freezer = freezerIdMap.get(r.FreezerId))\r\n return resumeData;\r\n };\r\n\r\n const load = async () => {\r\n setState({ resumes: [], isLoading: true })\r\n const resumes = await findResume();\r\n setState({ resumes: resumes, isLoading: false })\r\n }\r\n return [state.resumes, state.isLoading, load];\r\n}","import { useEffect, useState } from \"react\";\r\nimport FreezerProtocolServices from \"../../../../api/Freezer/FreezerProtocolServices\";\r\nimport IotMessagesServices from \"../../../../api/Freezer/IotMessagesServices\";\r\nimport { getProtocols } from \"../../../../api/protocol\";\r\nimport { ProtocolFullData } from \"../../../../api/Freezer/Entities/FreezerTelemetryResume\";\r\n\r\nexport default function useProtocolResume(from, to) {\r\n const [state, setState] = useState({\r\n resumes: [],\r\n isLoading: false\r\n });\r\n\r\n useEffect(() => {\r\n load();\r\n }, [])\r\n\r\n const findResume = async ({ from, to }) => {\r\n const protocolConfigurationsList = (await FreezerProtocolServices\r\n .GetProtocolConfigs())\r\n .Value;\r\n const uniqueFreezers = protocolConfigurationsList.reduce((map, value) => {\r\n value.AssignedFreezers.forEach(f => map.set(f.Id, f))\r\n return map;\r\n }, new Map());\r\n\r\n const uniqueFreezerIds = uniqueFreezers.keys();\r\n const resumeDataByFreezerId = (await IotMessagesServices\r\n .GetWeatherResume({ from, to, freezerIds: Array.from(uniqueFreezerIds) }))\r\n .reduce((map, r) => map.set(r.FreezerId, [...(map.get(r.FreezerId) ?? []), ...r.Days]), new Map());\r\n\r\n const protocols = (await getProtocols({\r\n pagination: { page: 1, sizePerPage: 1000, totalSize: 0 },\r\n sort: { sortField: \"Created\", sortOrder: \"desc\" },\r\n })).data.data\r\n .reduce((map, p) => map.set(p.id, p), new Map())\r\n\r\n const data = protocolConfigurationsList\r\n .flatMap(p => p.AssignedFreezers.map(f => ({ Config: p, Freezer: f })))\r\n .map(p => new ProtocolFullData({\r\n protocol: protocols.get(p.Config.Id)\r\n , configuration: p.Config\r\n , freezerDaysResume: resumeDataByFreezerId.get(p.Freezer.Id)\r\n , freezer: p.Freezer\r\n }))\r\n\r\n return data;\r\n }\r\n\r\n const load = async () => {\r\n setState({ resumes: [], isLoading: true })\r\n const data = await findResume({ from, to })\r\n setState({ resumes: data, isLoading: false })\r\n }\r\n\r\n\r\n return [state.resumes, state.isLoading, load];\r\n}","import React from 'react';\r\nimport { FreezerTelemetryContainer } from '../containers/Freezers/TelemetryComponents/FreezerTelemetryContainer';\r\nimport { Col, Nav, NavItem, Row, Tab } from \"react-bootstrap\";\r\nimport { useProtocolPageAuth } from '../components/Authorization/useAuthorization';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ProtocolTelemetryContainer } from '../containers/Freezers/TelemetryComponents/ProtocolTelemetry';\r\nimport { TelemetryGeneralViewContainer } from '../containers/Freezers/TelemetryComponents/TelemetryGeneralView';\r\n\r\nexport function TelemetryPage() {\r\n const { t } = useTranslation();\r\n const [isAuthorized, ,] = useProtocolPageAuth();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\n","import React from \"react\";\r\nimport Card from \"../components/Cards/Card\";\r\nimport { EditUserContainer } from \"../containers/Users/EditUser\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst UserProfile = (props) => {\r\n const { t } = useTranslation();\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserProfile;","/*eslint-disable*/\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport { Collapse } from \"react-bootstrap\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\nimport \"perfect-scrollbar/css/perfect-scrollbar.css\";\r\n\r\nimport AdminNavbarLinks from \"../Navbars/AdminNavbarLinks.jsx\";\r\nimport logo from \"../../assets/img/logo-blanco.png\";\r\n\r\nimport routes from \"../../routes.js\";\r\nimport { useAuthorization } from \"../Authorization/useAuthorization.js\";\r\nimport { IconSVG } from \"../Icons/Icons.jsx\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nvar ps;\r\n\r\nexport const Sidebar = (props) => {\r\n const refSidebarWrapper = useRef(null);\r\n const [width, setWidth] = useState(window.innerWidth);\r\n const [collapseStates, setCollapseStates] = useState({});\r\n const [, , isAuthorized] = useAuthorization();\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n // add event listener for windows resize\r\n window.addEventListener(\"resize\", updateDimensions());\r\n // if you are using a Windows Machine, the scrollbars will have a Mac look\r\n if (navigator.platform.indexOf(\"Win\") > -1 && refSidebarWrapper) {\r\n ps = new PerfectScrollbar(refSidebarWrapper.current);\r\n }\r\n\r\n updateDimensions();\r\n\r\n return function cleanup() {\r\n // we need to destroy the false scrollbar when we navigate\r\n // to a page that doesn't have this component rendered\r\n if (navigator.platform.indexOf(\"Win\") > -1) {\r\n ps.destroy();\r\n }\r\n };\r\n }, [])\r\n\r\n // this creates the intial state of this component based on the collapse routes\r\n // that it gets through this.props.routes\r\n const getCollapseStates = (routes) => {\r\n let initialState = {};\r\n routes.map((prop, key) => {\r\n if (prop.collapse) {\r\n initialState = {\r\n [prop.state]: getCollapseInitialState(prop.routes),\r\n ...getCollapseStates(prop.routes),\r\n ...initialState\r\n };\r\n }\r\n return null;\r\n });\r\n return initialState;\r\n };\r\n\r\n // this verifies if any of the collapses should be default opened on a rerender of this component\r\n // for example, on the refresh of the page,\r\n // while on the src/routes/forms/RegularForms.jsx - route /admin/regular-forms\r\n const getCollapseInitialState = (routes) => {\r\n for (let i = 0; i < routes.length; i++) {\r\n if (routes[i].collapse && getCollapseInitialState(routes[i].routes)) {\r\n return true;\r\n } else if (window.location.href.indexOf(routes[i].path) !== -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n // this function creates the links and collapses that appear in the sidebar (left menu)\r\n const createLinks = (routes) => {\r\n return routes.map((prop, key) => {\r\n\r\n if (prop.hidden) {\r\n return null;\r\n }\r\n if (prop.redirect) {\r\n return null;\r\n }\r\n\r\n if (!isAuthorized(prop.permission))\r\n return null;\r\n\r\n if (prop.displayChilds) {\r\n var st = {};\r\n st[prop[\"state\"]] = !collapseStates[prop.state];\r\n return (\r\n
  • \r\n { e.preventDefault(); setCollapseStates(st); }} style={{ textAlign: 'center' }}>\r\n \r\n
    \r\n
    {t(prop.name)}
    \r\n \r\n
    \r\n
    \r\n \r\n
      {createLinks(prop.routes)}
    \r\n
    \r\n
  • \r\n );\r\n }\r\n\r\n return (\r\n
  • \r\n \r\n {prop.iconSVG ? (\r\n <>\r\n \r\n
    {t(prop.name)}
    \r\n \r\n ) : (\r\n <>\r\n {t(prop.name)}\r\n \r\n )}\r\n \r\n
  • \r\n );\r\n });\r\n };\r\n\r\n // verifies if routeName is the one active (in browser input)\r\n const activeRoute = (routeName) => {\r\n return props.location.pathname.indexOf(routeName) > -1 ? \"active\" : \"\";\r\n };\r\n\r\n // if the windows width changes CSS has to make some changes\r\n // this functions tell react what width is the window\r\n const updateDimensions = () => {\r\n setWidth(window.innerWidth);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n
      \r\n {/*\r\n If we are on responsive, we want both links from navbar and sidebar\r\n to appear in sidebar, so we render here HeaderLinks\r\n */}\r\n {width <= 992 ? : null}\r\n {/*\r\n here we render the links in the sidebar if the link is simple,\r\n we make a simple link, if not, we have to create a collapsible group,\r\n with the speciffic parent button and with it's children which are the links\r\n */}\r\n {createLinks(routes)}\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { Agenda } from \"./containers/Agenda/Agenda\";\r\nimport { CreatePatientContainer } from \"./containers/Database/CreatePatient\";\r\nimport { EditPatientContainer } from \"./containers/Database/EditPatient\";\r\nimport { PatientContainer } from \"./containers/Database/Patient\";\r\nimport { ExternalNotesContainer } from \"./containers/ExternalNotes/ExternalNotes\";\r\nimport CreateFreezerContainer from \"./containers/Freezers/FreezerComponents/CreateFreezerContainer\";\r\nimport EditFreezerContainer from \"./containers/Freezers/FreezerComponents/EditFreezerContainer\";\r\nimport FreezersContainer from \"./containers/Freezers/FreezerComponents/FreezersContainer\";\r\nimport CreateIotDeviceContainer from \"./containers/Freezers/IotDevicesComponents/CreateDeviceContainer\";\r\nimport DeviceDetails from \"./containers/Freezers/IotDevicesComponents/DeviceDetails\";\r\nimport IotDevicesContainers from \"./containers/Freezers/IotDevicesComponents/IotDevicesContainer\";\r\nimport CreateEntryContainer from \"./containers/MedicalRecords/CreateEntry\";\r\nimport MedicalRecordContainer from \"./containers/MedicalRecords/MedicalRecord\";\r\nimport { ViewEntryContainer } from \"./containers/MedicalRecords/ViewEntry\";\r\nimport { CreateLaboratoryContainer } from \"./containers/Protocols/Admin/CreateLaboratory\";\r\nimport { CreateStudyTaskContainer } from \"./containers/Protocols/Admin/CreateStudyTasks\";\r\nimport { EditLaboratoryContainer } from \"./containers/Protocols/Admin/EditLaboratory\";\r\nimport { EditStudyTaskContainer } from \"./containers/Protocols/Admin/EditStudyTasks\";\r\nimport { LaboratoriesContainer } from \"./containers/Protocols/Admin/Laboratories\";\r\nimport { StudyTasksContainer } from \"./containers/Protocols/Admin/StudyTasks\";\r\nimport { ExtraForm } from \"./containers/Protocols/ExtraForms/ExtraForm\";\r\nimport ProtocolContainer from \"./containers/Protocols/Protocol\";\r\nimport { Visit } from \"./containers/Protocols/Visits/Visit\";\r\nimport { VisitForm } from \"./containers/Protocols/Visits/VisitForm\";\r\nimport { CreateRoleContainer } from \"./containers/Security/Authorization/CreateRole\";\r\nimport { CreateStudyRoleContainer } from \"./containers/Security/Authorization/CreateStudyRole\";\r\nimport { EditRoleContainer } from \"./containers/Security/Authorization/EditRole\";\r\nimport { EditStudyRoleContainer } from \"./containers/Security/Authorization/EditStudyRole\";\r\nimport { RolesContainer } from \"./containers/Security/Authorization/Roles\";\r\nimport { StudyRolesContainer } from \"./containers/Security/Authorization/StudyRoles\";\r\nimport { CreateTenantContainer } from \"./containers/Tenants/Create\";\r\nimport { EditTenantContainer } from \"./containers/Tenants/Edit\";\r\nimport { TenantsContainer } from \"./containers/Tenants/Tenants\";\r\nimport { CreateUserContainer } from \"./containers/Users/CreateUser\";\r\nimport { EditUserContainer } from \"./containers/Users/EditUser\";\r\nimport { UserContainer } from \"./containers/Users/User\";\r\nimport { UserSettingsContainer } from \"./containers/Users/UserSettings\";\r\nimport { UsersContainer } from \"./containers/Users/Users\";\r\nimport Dashboard from \"./views/Dashboard\";\r\nimport DatabaseHome from './views/Database';\r\nimport ForbiddenPage from \"./views/Errors/Forbidden\";\r\nimport NotFoundPage from \"./views/Errors/NotFound\";\r\nimport UnauthorizedPage from \"./views/Errors/Unauthorized\";\r\nimport { ExtraVisitTrackingView } from \"./views/Protocols/ExtraVisitTrackingView\";\r\nimport { PractitionersView } from \"./views/Protocols/PractitionersView\";\r\nimport { ProtocolCreateView } from \"./views/Protocols/ProtocolCreateView\";\r\nimport { ProtocolEditView } from \"./views/Protocols/ProtocolEditView\";\r\nimport { ProtocolsView } from \"./views/Protocols/ProtocolsView\";\r\nimport { VisitTrackingView } from \"./views/Protocols/VisitTrackingView\";\r\nimport Settings from \"./views/Settings\";\r\nimport { TelemetryPage } from \"./views/TelemetryPage\";\r\nimport UserProfile from \"./views/UserProfile\";\r\n\r\nconst routes = [\r\n {\r\n path: \"/dashboard\",\r\n name: \"routes.dashboard\",\r\n iconSVG: \"dashboard\",\r\n component: Dashboard,\r\n layout: \"/admin\"\r\n },\r\n // Agenda\r\n {\r\n path: \"/agenda\",\r\n name: \"routes.agenda\",\r\n iconSVG: \"agenda\",\r\n component: Agenda,\r\n layout: \"/admin\",\r\n permission: [\"Agenda.List\"],\r\n },\r\n // Patients\r\n {\r\n collapse: true,\r\n displayChilds: false,\r\n path: \"/database\",\r\n name: \"routes.database\",\r\n iconSVG: \"patients\",\r\n layout: \"/admin\",\r\n permission: [\"Database.List\"],\r\n component: DatabaseHome,\r\n routes: [\r\n {\r\n path: \"/database\",\r\n name: \"Pacientes\",\r\n mini: \"P\",\r\n layout: \"/admin\",\r\n component: DatabaseHome,\r\n hidden: true\r\n },\r\n {\r\n path: \"/database/create\",\r\n name: \"Nuevo Paciente\",\r\n mini: \"NP\",\r\n layout: \"/admin\",\r\n component: CreatePatientContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/database/:medicalRecordNumber\",\r\n name: \"Ver Paciente\",\r\n mini: \"VP\",\r\n layout: \"/admin\",\r\n component: PatientContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/database/:medicalRecordNumber/edit\",\r\n name: \"Editar Paciente\",\r\n mini: \"EP\",\r\n layout: \"/admin\",\r\n component: EditPatientContainer,\r\n hidden: true\r\n },\r\n ]\r\n },\r\n // Medical Records\r\n {\r\n collapse: true,\r\n displayChilds: false,\r\n path: \"/medicalRecords\",\r\n name: \"routes.medicalRecords\",\r\n iconSVG: \"medicalRecords\",\r\n component: MedicalRecordContainer,\r\n layout: \"/admin\",\r\n permission: [\"MedicalRecords.List\"],\r\n hidden: true,\r\n routes: [\r\n {\r\n path: \"/medicalRecords/:medicalRecordNumber\",\r\n name: \"Historia Clínica\",\r\n mini: \"HC\",\r\n layout: \"/admin\",\r\n component: MedicalRecordContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/medicalRecords/:medicalRecordNumber/newentry/:entryId\",\r\n name: \"Nueva Entrada\",\r\n mini: \"NE\",\r\n layout: \"/admin\",\r\n component: CreateEntryContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/medicalRecords/:medicalRecordNumber/entry/:entryId\",\r\n name: \"Entrada\",\r\n mini: \"VE\",\r\n layout: \"/admin\",\r\n component: ViewEntryContainer,\r\n hidden: true\r\n }\r\n ]\r\n },\r\n // Protocols\r\n {\r\n collapse: true,\r\n displayChilds: false,\r\n path: \"/protocols\",\r\n name: \"routes.protocols\",\r\n iconSVG: \"protocols\",\r\n layout: \"/admin\",\r\n permission: [\"Protocols.List\"],\r\n routes: [\r\n {\r\n path: \"/protocols\",\r\n name: \"Protocolos\",\r\n mini: \"P\",\r\n layout: \"/admin\",\r\n component: ProtocolsView,\r\n hidden: false\r\n },\r\n {\r\n path: \"/protocols/create\",\r\n name: \"Nuevo Protocolo\",\r\n mini: \"NP\",\r\n layout: \"/admin\",\r\n component: ProtocolCreateView,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId\",\r\n name: \"Protocolo\",\r\n mini: \"P\",\r\n layout: \"/admin\",\r\n component: ProtocolContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/section/:section\",\r\n mini: \"P\",\r\n layout: \"/admin\",\r\n component: ProtocolContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/edit/\",\r\n name: \"Editar Protocolo\",\r\n mini: \"EP\",\r\n layout: \"/admin\",\r\n component: ProtocolEditView,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/practitioners\",\r\n name: \"Profesionales\",\r\n mini: \"AP\",\r\n layout: \"/admin\",\r\n component: PractitionersView,\r\n hidden: true\r\n },\r\n // visitTracking\r\n {\r\n path: \"/protocols/:protocolId/visitTracking/:visitId/patient/:patientId\",\r\n name: \"Visita Protocolar\",\r\n mini: \"VP\",\r\n layout: \"/admin\",\r\n component: VisitTrackingView,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/visitTrackingExtra/:visitId/patient/:patientId\",\r\n name: \"Visita No Programada\",\r\n mini: \"VEP\",\r\n layout: \"/admin\",\r\n component: ExtraVisitTrackingView,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/visitsTemplate/:visitId\",\r\n name: \"Hoja de Visita\",\r\n mini: \"VP\",\r\n layout: \"/admin\",\r\n component: Visit,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/visitsTemplate/:visitId/forms/create\",\r\n name: \"Crear formulario para hoja de visita\",\r\n mini: \"VP\",\r\n layout: \"/admin\",\r\n component: VisitForm,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/visitsTemplate/:visitId/forms/:formId\",\r\n name: \"Editar formulario para hoja de visita\",\r\n mini: \"VP\",\r\n layout: \"/admin\",\r\n component: VisitForm,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/extraforms/create/:extraformtype\",\r\n name: \"Crear formulario extra\",\r\n mini: \"EF\",\r\n layout: \"/admin\",\r\n component: ExtraForm,\r\n hidden: true\r\n },\r\n {\r\n path: \"/protocols/:protocolId/extraforms/:formId\",\r\n name: \"Editar formulario extra\",\r\n mini: \"EEF\",\r\n layout: \"/admin\",\r\n component: ExtraForm,\r\n hidden: true\r\n },\r\n ]\r\n },\r\n // External Notes\r\n {\r\n path: \"/externalnotes\",\r\n name: \"routes.externalnotes\",\r\n iconSVG: \"externalnote\",\r\n layout: \"/admin\",\r\n permission: [\"Protocols.List\"],\r\n component: ExternalNotesContainer,\r\n },\r\n // Settings\r\n {\r\n collapse: true,\r\n path: \"/settings\",\r\n name: \"routes.settings\",\r\n state: \"active\",\r\n layout: \"/admin\",\r\n iconSVG: \"settings\",\r\n permission: [\"Security.List\", \"Settings.List\"],\r\n routes: [\r\n // Tenants\r\n {\r\n path: \"/tenant\",\r\n name: \"Clientes\",\r\n mini: \"CL\",\r\n layout: \"/admin\",\r\n component: TenantsContainer,\r\n permission: [\"Tenant.List\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/tenant/create\",\r\n name: \"Crear Cliente\",\r\n mini: \"CLC\",\r\n layout: \"/admin\",\r\n component: CreateTenantContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/tenant/:tenantId\",\r\n name: \"Editar Cliente\",\r\n mini: \"CLE\",\r\n layout: \"/admin\",\r\n component: EditTenantContainer,\r\n hidden: true\r\n },\r\n\r\n {\r\n permission: [\"Security.List\", \"Settings.List\"],\r\n path: \"/settings\",\r\n name: \"Configuración\",\r\n mini: \"C\",\r\n layout: \"/admin\",\r\n component: Settings,\r\n hidden: true\r\n },\r\n {\r\n permission: [\"Users.List\"],\r\n path: \"/users\",\r\n name: \"Usuarios\",\r\n mini: \"U\",\r\n layout: \"/admin\",\r\n component: UsersContainer,\r\n hidden: true\r\n },\r\n {\r\n permission: [\"Users.Create\"],\r\n path: \"/users/create\",\r\n name: \"Nuevo Usuario\",\r\n mini: \"NP\",\r\n layout: \"/admin\",\r\n component: CreateUserContainer,\r\n hidden: true\r\n },\r\n {\r\n permission: [\"Users.View\"],\r\n path: \"/users/:userId\",\r\n name: \"Usuario\",\r\n mini: \"VP\",\r\n layout: \"/admin\",\r\n component: UserContainer,\r\n hidden: true\r\n },\r\n {\r\n permission: [\"Users.Edit\"],\r\n path: \"/users/:userId/edit\",\r\n name: \"Editar\",\r\n mini: \"EP\",\r\n layout: \"/admin\",\r\n component: EditUserContainer,\r\n hidden: true\r\n },\r\n {\r\n permission: [\"Users.Edit\"],\r\n path: \"/users/:userId/completeProfile\",\r\n name: \"Perfíl de usuario\",\r\n mini: \"EP\",\r\n layout: \"/admin\",\r\n component: UserProfile,\r\n hidden: true\r\n },\r\n {\r\n permission: [\"Users.Edit\"],\r\n path: \"/users/:userId/config\",\r\n name: \"Configurar\",\r\n mini: \"C\",\r\n layout: \"/admin\",\r\n component: UserSettingsContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/roles\",\r\n name: \"Roles\",\r\n mini: \"R\",\r\n layout: \"/admin\",\r\n component: RolesContainer,\r\n permission: [\"Security.List\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/roles/create\",\r\n name: \"Crear Rol\",\r\n mini: \"CR\",\r\n layout: \"/admin\",\r\n component: CreateRoleContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/roles/:roleId\",\r\n name: \"Editar Rol\",\r\n mini: \"ER\",\r\n layout: \"/admin\",\r\n component: EditRoleContainer,\r\n hidden: true\r\n },\r\n // StudyRoles\r\n {\r\n path: \"/settings/studyRoles\",\r\n name: \"Roles del Protocolo\",\r\n mini: \"RP\",\r\n layout: \"/admin\",\r\n component: StudyRolesContainer,\r\n permission: [\"Security.List\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/studyRoles/create\",\r\n name: \"Crear Rol\",\r\n mini: \"CRP\",\r\n layout: \"/admin\",\r\n component: CreateStudyRoleContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/studyRoles/:roleId\",\r\n name: \"Editar Rol\",\r\n mini: \"ERP\",\r\n layout: \"/admin\",\r\n component: EditStudyRoleContainer,\r\n hidden: true\r\n },\r\n // StudyTasks\r\n {\r\n path: \"/settings/studyTasks\",\r\n name: \"Tareas del Protocolo\",\r\n mini: \"TP\",\r\n layout: \"/admin\",\r\n component: StudyTasksContainer,\r\n permission: [\"Settings.List\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/studyTasks/create\",\r\n name: \"Crear Tarea Protocolar\",\r\n mini: \"CTP\",\r\n layout: \"/admin\",\r\n component: CreateStudyTaskContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/studyTasks/:studyTaskId\",\r\n name: \"Editar Tarea Protocolar\",\r\n mini: \"ETP\",\r\n layout: \"/admin\",\r\n component: EditStudyTaskContainer,\r\n hidden: true\r\n },\r\n\r\n // Laboratories\r\n {\r\n path: \"/settings/laboratories\",\r\n name: \"Laboratorios\",\r\n mini: \"TP\",\r\n layout: \"/admin\",\r\n component: LaboratoriesContainer,\r\n permission: [\"Settings.List\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/laboratories/create\",\r\n name: \"Crear Laboratorio\",\r\n mini: \"CTP\",\r\n layout: \"/admin\",\r\n component: CreateLaboratoryContainer,\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/laboratories/:laboratoryId\",\r\n name: \"Editar Laboratorio\",\r\n mini: \"ETP\",\r\n layout: \"/admin\",\r\n component: EditLaboratoryContainer,\r\n hidden: true\r\n },\r\n // Freezers\r\n {\r\n path: \"/settings/freezers\",\r\n name: \"Heladeras\",\r\n mini: \"TP\",\r\n layout: \"/admin\",\r\n component: FreezersContainer,\r\n permission: [\"Freezers.List\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/freezers/create\",\r\n name: \"Crear Heladera\",\r\n mini: \"CTP\",\r\n layout: \"/admin\",\r\n component: CreateFreezerContainer,\r\n permission: [\"Freezers.Create\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/freezers/:freezerId\",\r\n name: \"Editar Heladera\",\r\n mini: \"ETP\",\r\n layout: \"/admin\",\r\n component: EditFreezerContainer,\r\n permission: [\"Freezers.Edit\"],\r\n hidden: true\r\n },\r\n //Devices\r\n {\r\n path: \"/settings/devices\",\r\n name: \"Dispositivos\",\r\n mini: \"TP\",\r\n layout: \"/admin\",\r\n component: IotDevicesContainers,\r\n permission: [\"Devices.List\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/devices/create\",\r\n name: \"Crear Dispositivo\",\r\n mini: \"CTP\",\r\n layout: \"/admin\",\r\n component: CreateIotDeviceContainer,\r\n permission: [\"Devices.Create\"],\r\n hidden: true\r\n },\r\n {\r\n path: \"/settings/devices/detail/:deviceId\",\r\n name: \"Editar Dispositivo\",\r\n mini: \"ETP\",\r\n layout: \"/admin\",\r\n component: DeviceDetails,\r\n permission: [\"Devices.Edit\"],\r\n hidden: true\r\n },\r\n //Telemetry\r\n {\r\n path: \"/devicetelemetry\",\r\n name: \"Telemetria\",\r\n mini: \"T\",\r\n layout: \"/admin\",\r\n component: TelemetryPage,\r\n permission: [\"Telemetry.View\", \"Freezers.View\"],\r\n hidden: true\r\n }\r\n\r\n ]\r\n },\r\n // Error Pages\r\n {\r\n path: \"/unauthorized\",\r\n name: \"Error\",\r\n layout: \"/admin\",\r\n component: UnauthorizedPage,\r\n hidden: true,\r\n },\r\n {\r\n path: \"/forbidden\",\r\n name: \"Error\",\r\n layout: \"/admin\",\r\n component: ForbiddenPage,\r\n hidden: true,\r\n },\r\n {\r\n path: \"/not-found\",\r\n name: \"Error\",\r\n layout: \"/admin\",\r\n component: NotFoundPage,\r\n hidden: true,\r\n },\r\n //Telemetry\r\n {\r\n path: \"/devicetelemetry\",\r\n name: \"routes.telemetry\",\r\n layout: \"/admin\",\r\n iconSVG: \"telemetry\",\r\n permission: [\"Telemetry.View\"],\r\n component: TelemetryPage\r\n }\r\n];\r\n\r\nexport default routes;\r\n","import React, { useState } from 'react';\r\nimport { Alert, Col, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { DigitalSign } from '../../components/DigitalSign/DigitalSign.jsx';\r\nimport { SignWithOutInfo } from '../../components/DigitalSign/Sign.js';\r\nimport { Actions } from \"../../components/MedicalRecords/Actions.jsx\";\r\nimport { EntryNav } from \"../../components/MedicalRecords/EntryNav\";\r\nimport EntryView from '../../components/MedicalRecords/EntryView';\r\nimport { PatientInfo2 } from \"../../components/MedicalRecords/PatientInfo\";\r\nimport { HandleApiError } from '../../components/Notifications/APIErrorHandler.js';\r\nimport { Success } from '../../components/Notifications/Notifications';\r\nimport { getProtocolUrl } from '../../components/Utils/Commons.jsx';\r\nimport { Spinner } from '../../components/Utils/Loaders.jsx';\r\nimport { useAudits } from '../Protocols/Hooks.js';\r\nimport { DiagnosesContainer } from './CreateEntryItems/DiagnosisContainer.js';\r\nimport { ObservationsContainer } from './CreateEntryItems/ObservationContainer.js';\r\nimport { useEntries, useEntry } from './Hooks/useEntries';\r\nimport { useModalData } from './Hooks/useModalData.js';\r\nimport { usePatient } from './Hooks/usePatient';\r\nimport { EntryItemsList } from './MedicalRecordItems/EntryItemsList.jsx';\r\nimport { OrdersListContainer } from './MedicalRecordItems/OrdersListContainer.js';\r\nimport { PrescriptionsListContainer } from './MedicalRecordItems/PrescriptionsListContainer.js';\r\nimport { AuditModal } from '../../components/AuditTrail/AuditModal.jsx';\r\nimport { AuditTrail } from '../Admin/AuditTrail.jsx';\r\n\r\nexport const ViewEntryContainer = (props) => {\r\n const { match: { params } } = props;\r\n const { medicalRecordNumber, entryId } = params;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const [patient, isPatientLoading] = usePatient(medicalRecordNumber);\r\n const [entry, isEntryLoading, , , , , exportToPDF] = useEntry(medicalRecordNumber, entryId);\r\n const [isAuditLoading, , getLastChange] = useAudits(\"Entry\", entryId);\r\n const [isShowingDigitalSign, toggleDigitalSign] = useModalData();\r\n const settingsStore = useSelector(state => state.settings);\r\n const [entries] = useEntries(medicalRecordNumber);\r\n const [modal, setModal] = useState(null);\r\n\r\n if (isEntryLoading || isAuditLoading)\r\n return ;\r\n\r\n if (!entry)\r\n return \"\";\r\n\r\n const handleExportAction = () => {\r\n if (settingsStore.settings.digitalSignEnabled)\r\n toggleDigitalSign();\r\n else\r\n handleExportToPDF()\r\n }\r\n\r\n const handleExportToPDF = async (pin) => {\r\n setIsLoading(true);\r\n\r\n if (settingsStore.settings.digitalSignEnabled)\r\n toggleDigitalSign();\r\n\r\n try {\r\n var response = await exportToPDF(entry, pin?.password);\r\n\r\n const blob = response.data;\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n let fileName = `${patient.fullName}-${entry.group}-${entry.created}.pdf`;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n\r\n setIsLoading(false);\r\n Success(\"medicalRecordsNotifications.entry_Exported\");\r\n }\r\n catch (error) {\r\n setIsLoading(false);\r\n HandleApiError(error);\r\n console.log(error);\r\n };\r\n }\r\n\r\n //#region AuditTrail\r\n // Si envío \"Entity\" == \"ALL\", trae por parentKey solamente. Por ejemplo, busco todas las auditorias de una Visita particular. \r\n const handleAuditTrail = () => {\r\n setModal(\r\n setModal(null)}\r\n title={t(\"auditTrail.audit\")}\r\n >\r\n \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n return (\r\n
    \r\n {modal}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n props.history.push(`/admin/agenda?medicalRecordNumber=${patient?.medicalRecordNumber}&source=${props.location.pathname}`)}\r\n onRedirectTo={() => props.history.push(`/admin/medicalRecords/${medicalRecordNumber}`)}\r\n onEditEntry={() => { props.history.push(`/admin/medicalRecords/${medicalRecordNumber}/newentry/${entryId}`) }}\r\n onExportToPDF={handleExportAction}\r\n isLoading={isLoading}\r\n isProtocol={entry.protocolId}\r\n onAuditTrail={handleAuditTrail}\r\n />\r\n \r\n \r\n {\r\n entry.protocolId &&\r\n {t(\"medicalRecords.textToProtocolarVisit\")} \r\n \r\n {t(\"medicalRecords.linkToProtocolarVisit\")}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n !settingsStore.settings.digitalSignEnabled &&\r\n \r\n }\r\n {\r\n settingsStore.settings.digitalSignEnabled &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}","import React from \"react\";\r\n\r\nimport { Protocols } from \"../../containers/Protocols/Protocols\";\r\n\r\nexport const ProtocolsView = props => {\r\n const { match: { params } } = props;\r\n\r\n return ();\r\n}","import React from \"react\";\r\n\r\nimport { ProtocolCreateBriefContainer } from \"../../containers/Protocols/Brief/CreateBrief\";\r\n\r\nexport const ProtocolCreateView = () => {\r\n return ();\r\n}","import React from \"react\";\r\n\r\nimport { ProtocolPractitionersContainer } from \"../../containers/Protocols/Practitioners/Practitioners\";\r\nimport { ProtocolHeader } from \"../../components/Protocols/Header\";\r\n\r\nexport const PractitionersView = props => {\r\n const { match: { params } } = props;\r\n\r\n if (!params.protocolId)\r\n return \"\";\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { ProtocolInfo } from \"../../components/Protocols/ProtocolInfo\";\r\nimport { ProtocolProvider } from \"../../containers/Protocols/ProtocolContext/ProtocolProvider\";\r\nimport { VisitTracking } from \"../../containers/Protocols/Tracking/VisitTracking\";\r\nimport VisitHeaderContainer from \"../../containers/Protocols/VisitHeaderContainer\";\r\n\r\nexport const VisitTrackingView = props => {\r\n const { match: { params: { protocolId, patientId, visitId } } } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { ProtocolInfo } from \"../../components/Protocols/ProtocolInfo\";\r\nimport { ProtocolProvider } from \"../../containers/Protocols/ProtocolContext/ProtocolProvider\";\r\nimport { ExtraVisitTracking } from \"../../containers/Protocols/TrackingExtra/ExtraVisit\";\r\nimport VisitHeaderContainer from \"../../containers/Protocols/VisitHeaderContainer\";\r\n\r\nexport const ExtraVisitTrackingView = props => {\r\n const { match: { params: { protocolId, patientId, visitId } } } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Col, Grid, Row } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { getForms, getVisit, getVisitHistory, printVisit, publishVisit, removeVisit, sortForms } from '../../../api/protocol';\r\nimport { getExtraForms } from '../../../api/protocolsExtraForms';\r\nimport { ModalData } from '../../../components/Modals/ModalData';\r\nimport { HandleApiError } from '../../../components/Notifications/APIErrorHandler';\r\nimport { Success } from '../../../components/Notifications/Notifications';\r\nimport { Actions } from '../../../components/Protocols/Actions';\r\nimport { ProtocolInfo } from '../../../components/Protocols/ProtocolInfo';\r\nimport { VisitExtraForms, VisitForms } from '../../../components/Protocols/Visit/Forms';\r\nimport { VisitHeader } from '../../../components/Protocols/Visit/Header';\r\nimport { VisitHistory } from '../../../components/Protocols/Visit/VisitHistory';\r\nimport { useProtocolApprovedVisits } from '../Hooks';\r\nimport { ProtocolProvider } from '../ProtocolContext/ProtocolProvider';\r\nimport { EditVisitModal } from './EditVisit';\r\nimport { FormRestrictionsContainer } from './FormRestrictions';\r\nimport { PublishModal, RemoveModal } from './RemoveVisit';\r\nimport { CopyFormsContainer } from './CopyForms';\r\n\r\nexport const Visit = (props) => {\r\n const { match: { params: { protocolId, visitId } } } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const visits = useProtocolApprovedVisits(protocolId);\r\n const [reload, setReload] = useState(false);\r\n const [reloadForms, setReloadForms] = useState(false);\r\n const [visit, setVisit] = useState(null);\r\n const { t } = useTranslation();\r\n\r\n //#region Effects\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchVisitData = async () => {\r\n try {\r\n setIsLoading(true);\r\n const response = await getVisit(protocolId, visitId);\r\n if (isSubscribed)\r\n setVisit(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchVisitData();\r\n return () => isSubscribed = false;\r\n }, [protocolId, visitId, reload]);\r\n\r\n const [forms, setForms] = useState([]);\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchFormsData = async () => {\r\n try {\r\n setIsLoading(true);\r\n setReloadForms(false);\r\n const response = await getForms(protocolId, visitId);\r\n if (isSubscribed)\r\n setForms(response.data.sort((function (a, b) { return a.order - b.order; })));\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchFormsData();\r\n return () => isSubscribed = false;\r\n }, [protocolId, visitId, reloadForms]);\r\n\r\n const [visitHistory, setVisitHistory] = useState([]);\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchVisitHistory = async () => {\r\n try {\r\n setIsLoading(true);\r\n setReload(false);\r\n const response = await getVisitHistory(protocolId, visitId);\r\n if (isSubscribed)\r\n setVisitHistory(response.data);\r\n setIsLoading(false);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n }\r\n }\r\n\r\n fetchVisitHistory();\r\n return () => isSubscribed = false;\r\n }, [protocolId, visitId]);\r\n\r\n const [extraForms, setExtraForms] = useState([]);\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const fetchData = async () => {\r\n try {\r\n const response = await getExtraForms(protocolId, { filters: { extraFormType: 0 } });\r\n if (isSubscribed)\r\n setExtraForms(response.data);\r\n }\r\n catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId]);\r\n //#endregion\r\n\r\n //#region Handlers\r\n const handleSortEnd = (sortedForms) => {\r\n\r\n setIsLoading(true);\r\n sortForms(protocolId, visit.crossVersionId, sortedForms)\r\n .then(() => {\r\n setForms(sortedForms);\r\n setIsLoading(false);\r\n })\r\n .catch(error => {\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const [modal, setModal] = useState(null);\r\n const handleRemoveVisit = () => {\r\n setModal( { setModal(null); }}\r\n onConfirm={handleConfirmRemove} />)\r\n }\r\n const handleConfirmRemove = (visitId) => {\r\n removeVisit(protocolId, visitId)\r\n .then(res => {\r\n Success(\"protocolNotifications.visit_Removed\");\r\n props.history.push(`/admin/protocols/${protocolId}`);\r\n }).catch(error => {\r\n console.error(error);\r\n HandleApiError(error);\r\n setModal(null);\r\n });\r\n }\r\n\r\n const handlePublishVisit = () => {\r\n setModal( { setModal(null); }} onConfirm={handleConfirmPublish} />)\r\n }\r\n const handleConfirmPublish = (comments, visitId) => {\r\n publishVisit(protocolId, visitId, comments)\r\n .then(res => {\r\n Success(\"protocolNotifications.visit_Published\");\r\n const visitResponse = res.data;\r\n const historyCopy = JSON.parse(JSON.stringify(visitHistory));\r\n let publishedVisit = historyCopy.find(x => x.crossVersionId === parseInt(visitId));\r\n publishedVisit.version = visitResponse.version;\r\n publishedVisit.versionComments = comments;\r\n setVisitHistory(historyCopy);\r\n setVisit(visitResponse);\r\n setModal(null);\r\n }).catch(error => {\r\n console.log(error);\r\n HandleApiError(error);\r\n setModal(null);\r\n });\r\n }\r\n\r\n const handleEditVisit = () => {\r\n setModal( setModal(null)}\r\n submit={() => { setModal(null); setReload(true); }}\r\n isShowing={true} />);\r\n }\r\n\r\n const handlePrintVisit = async () => {\r\n try {\r\n var response = await printVisit(protocolId, visitId);\r\n\r\n const blob = new Blob([response.data], { type: \"application/pdf\" });\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.target = '_blank';\r\n link.setAttribute('download', visit.title);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n catch (error) {\r\n HandleApiError(error);\r\n console.log(error);\r\n };\r\n }\r\n //#endregion\r\n\r\n //#region FormRestrictions\r\n const handleFormRestrictions = () => {\r\n setModal( setModal(null)}\r\n title={t(\"protocols.visitTracking.formRestrictions.title\")}\r\n >\r\n setModal(null)}\r\n onCancel={() => setModal(null)}\r\n />\r\n );\r\n }\r\n //#endregion\r\n\r\n //#region CopyForms\r\n const handleCopyForms = () => {\r\n setModal( { setReloadForms(true); setModal(null) }}\r\n title={t(\"protocols.visit.copyForms_title\")}\r\n >\r\n { setReloadForms(true); setModal(null) }}\r\n onCancel={() => setModal(null)}\r\n />\r\n );\r\n }\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n props.history.push(`/admin/protocols/${protocolId}/section/visitstemplate`)}\r\n onEdit={handleEditVisit}\r\n onPublish={\r\n (visit?.version % 1) !== 0 ?\r\n handlePublishVisit\r\n : null\r\n }\r\n onRemove={handleRemoveVisit}\r\n onPrint={handlePrintVisit}\r\n onFormRestrictions={handleFormRestrictions}\r\n />\r\n \r\n \r\n \r\n \r\n {modal}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport overlayFactory from 'react-bootstrap-table2-overlay';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport Card from '../../components/Cards/Card';\r\nimport { CustomSelect } from '../../components/CustomControls/CustomSelect';\r\nimport { CustomSearchBox } from '../../components/CustomControls/CustomSearchBox';\r\nimport { View } from '../../components/Icons/Icons';\r\nimport { NotesEnum } from '../../components/Protocols/Visit/Enums';\r\nimport { Tooltip } from \"../../components/Utils/Tooltips\";\r\nimport { dateFormatter } from \"../../components/Utils/Formatter\";\r\nimport { useProtocols } from '../Protocols/Hooks';\r\nimport { useExternalNotes } from './useExternalNotes';\r\nimport { getFullNameFromUserMention } from '../../components/Utils/Commons';\r\n\r\nexport const ExternalNotesContainer = () => {\r\n const { t } = useTranslation();\r\n const [selectedProtocol, setSelectedProtocol] = useState(null);\r\n const [data, query, totalSize, isLoading, handleTableChange, handleFilterChange] = useExternalNotes(selectedProtocol);\r\n const [protocols, , , isLoadingProtocols] = useProtocols({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 100,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Created\",\r\n sortOrder: \"desc\"\r\n },\r\n filters: {}\r\n });\r\n\r\n const columns = [\r\n { dataField: 'note', text: t(\"notes.externalNotes.note\"), formatter: function (cell) { return getFullNameFromUserMention(cell) } },\r\n { dataField: 'medicalRecordNumber', sort: true, text: t(\"notes.externalNotes.patientNumber\") },\r\n { dataField: 'createdBy', sort: true, text: t(\"notes.externalNotes.createdBy\") },\r\n { dataField: 'created', sort: true, text: t(\"notes.externalNotes.created\"), formatter: function (cell) { return dateFormatter(cell, \"DD/MM/YY\") }, headerClasses: 'header-date' },\r\n { dataField: 'responseBy', sort: true, text: t(\"notes.externalNotes.responseBy\") },\r\n {\r\n dataField: 'status', sort: true, text: t(\"notes.externalNotes.status\"),\r\n formatter: function (cell) {\r\n return NotesEnum().find(x => x.id === cell)?.title;\r\n }\r\n },\r\n\r\n {\r\n dataField: 'view',\r\n text: t(\"commons.actions\"),\r\n isDummyField: true,\r\n headerClasses: 'header-visit-actions',\r\n classes: 'row-visit-actions',\r\n formatter: function (_cell, row, rowIndex) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n }\r\n ];\r\n\r\n const expandedContent = (row) => {\r\n if (row.response)\r\n return (
    \r\n [{dateFormatter(row.responseDate, \"DD/MM/YY\")}] - {row.response}\r\n
    );\r\n }\r\n\r\n const expandRow = {\r\n renderer: expandedContent,\r\n onlyOneExpanding: true,\r\n };\r\n\r\n return (\r\n \r\n
    \r\n setSelectedProtocol(selectedProtocol.id)}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n handleFilterChange(\"patientNumber\", value)} placeholder={t('protocols.visitTracking.searchByNumber')}>\r\n
    \r\n \r\n }\r\n content={\r\n <>{t(\"commons.noData\")}}\r\n loading={isLoading}\r\n overlay={overlayFactory({ spinner: true })}\r\n pagination={paginationFactory({\r\n page: query.pagination.page,\r\n sizePerPage: query.pagination.sizePerPage,\r\n totalSize: totalSize,\r\n hideSizePerPage: true,\r\n })}\r\n expandRow={expandRow}\r\n\r\n onTableChange={handleTableChange}\r\n />\r\n }\r\n />\r\n );\r\n}","import { useEffect, useState } from \"react\";\r\nimport { HandleApiError } from \"../../components/Notifications/APIErrorHandler\";\r\nimport { getExternalNotes } from \"../../api/protocol\";\r\n\r\nexport const useExternalNotes = (protocolId) => {\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [totalSize, setTotalSize] = useState(0);\r\n const [query, setQuery] = useState({\r\n pagination: {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalSize: 0\r\n },\r\n sort: {\r\n sortField: \"Created\",\r\n sortOrder: \"desc\"\r\n },\r\n filters: {}\r\n });\r\n\r\n useEffect(() => {\r\n let isSubscribed = true\r\n\r\n const fetchData = async () => {\r\n\r\n setIsLoading(true);\r\n try {\r\n const response = await getExternalNotes(protocolId, query);\r\n if (isSubscribed) {\r\n setTotalSize(response.data.count);\r\n setData(response.data.data);\r\n setIsLoading(false);\r\n }\r\n\r\n } catch (error) {\r\n if (isSubscribed) {\r\n console.log(error);\r\n HandleApiError(error);\r\n setIsLoading(false);\r\n setTotalSize(0);\r\n setData([]);\r\n }\r\n }\r\n }\r\n\r\n if (protocolId)\r\n fetchData();\r\n\r\n return () => isSubscribed = false;\r\n }, [protocolId, query]);\r\n\r\n\r\n const handleTableChange = (type, { page, sizePerPage, sortField, sortOrder }) => {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n switch (type) {\r\n case 'pagination': {\r\n newQuery.pagination.page = page;\r\n newQuery.pagination.sizePerPage = sizePerPage;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n case 'sort': {\r\n newQuery.sort.sortField = sortField;\r\n newQuery.sort.sortOrder = sortOrder;\r\n setQuery(newQuery);\r\n break;\r\n }\r\n default: break;\r\n }\r\n }\r\n\r\n const handleFilterChange = (filterName, selectedValue) => {\r\n if (filterName) {\r\n var newQuery = JSON.parse(JSON.stringify(query));\r\n\r\n if (filterName === \"patientNumber\")\r\n newQuery.filters[filterName] = selectedValue;\r\n else\r\n newQuery.filters[filterName] = selectedValue != null ? selectedValue.id : selectedValue;\r\n \r\n newQuery.pagination.page = 1;\r\n setQuery(newQuery);\r\n }\r\n }\r\n\r\n return [data, query, totalSize, isLoading, handleTableChange, handleFilterChange];\r\n}","import { useState } from \"react\";\r\nimport useLoading from \"../../components/Common/useLoading\";\r\nimport FreezerService from \"../../api/Freezer/FreezerService\";\r\nimport { Freezer } from \"../../api/Freezer/Entities/Freezer\";\r\n\r\n\r\nexport default function useFreezer(freezerId) {\r\n const [freezer, setFrezeer] = useState(new Freezer())\r\n const [isLoading, reload] = useLoading({\r\n onLoad: async () => {\r\n if (freezerId == \"\") return;\r\n const result = await FreezerService.GetById(freezerId)\r\n setFrezeer(result)\r\n },\r\n onError: () => {\r\n setFrezeer(new Freezer())\r\n }\r\n })\r\n\r\n return [freezer, isLoading, reload]\r\n}","import { useState } from \"react\";\r\nimport useLoading from \"../../components/Common/useLoading\";\r\nimport { IotDevice } from \"../../api/Freezer/Entities/IotDevice\";\r\nimport DeviceService from \"../../api/Freezer/DeviceService\";\r\n\r\nexport default function useIotDevice(deviceId) {\r\n const [device, setDevice] = useState(new IotDevice())\r\n const [isLoading, useLoad, doReload] = useLoading({\r\n onLoad: async () => {\r\n if (!deviceId || deviceId <= 0) return;\r\n const result = await DeviceService.GetById(deviceId)\r\n setDevice(result)\r\n },\r\n onError: () => {\r\n setDevice(new IotDevice())\r\n }\r\n })\r\n\r\n const getCertificate = async () => {\r\n return await DeviceService.GetCertificate(device.CertificatePath)\r\n }\r\n\r\n return [device, isLoading, doReload, getCertificate]\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Breadcrumbs = (props) => {\r\n const { t } = useTranslation();\r\n let crumbs = props.crumbs;\r\n\r\n // If single Crumb. Add Home to init\r\n if (!crumbs) {\r\n return
    ;\r\n }\r\n\r\n if (crumbs.length === 1 && !crumbs.find(x => x.path === \"/admin/dashboard\")) {\r\n crumbs.unshift({ name: t(\"routes.dashboard\"), path: \"/admin/dashboard\" });\r\n }\r\n\r\n return (\r\n
    \r\n
      \r\n {/* Link back to any previous steps of the breadcrumb. */}\r\n {crumbs.map(({ name, path }, key) =>\r\n key + 1 === crumbs.length ? (\r\n
    1. {t(name)}
    2. \r\n ) : (\r\n
    3. \r\n \r\n {t(name)}\r\n \r\n
    4. \r\n )\r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Breadcrumbs;","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport Breadcrumbs from '../Utils/Breadcrumbs';\r\n\r\nexport const CustomRoute = props => {\r\n\r\n const { routes, route, ...rest } = props;\r\n\r\n return {\r\n const crumbs = routes\r\n // Get all routes that contain the current one.\r\n .filter(({ path }) => props.match.path.includes(path))\r\n // Swap out any dynamic routes with their param values.\r\n .map(({ path, ...rest }) => ({\r\n path: Object.keys(props.match.params).length\r\n ? Object.keys(props.match.params).reduce(\r\n (item, param) =>\r\n item.replace(`:${param}`, props.match.params[param]),\r\n route.layout + path\r\n )\r\n : route.layout + path,\r\n ...rest\r\n }));\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n />\r\n\r\n}","// this is used to create scrollbars on windows devices like the ones from apple devices\r\n//import PerfectScrollbar from \"perfect-scrollbar\";\r\n//import \"perfect-scrollbar/css/perfect-scrollbar.css\";\r\nimport React from \"react\";\r\n// react component that creates notifications (like some alerts with messages)\r\nimport NotificationSystem from \"react-notification-system\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport { ToastContainer } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport Footer from \"../components/Footer/Footer\";\r\nimport AdminNavbar from \"../components/Navbars/AdminNavbar\";\r\nimport { Sidebar } from \"../components/Sidebar/Sidebar\";\r\nimport { CustomRoute } from \"../components/api-authorization/CustomRoute\";\r\n// dinamically create routes\r\nimport routes from \"../routes\";\r\n// style for notifications\r\nimport { style } from \"../variables/Variables.jsx\";\r\n\r\n\r\nconst AdminLayout = (props) => {\r\n\r\n const getRoutes = routes => {\r\n return routes.map((route, i) => {\r\n\r\n if (route.collapse) {\r\n return getRoutes(route.routes);\r\n }\r\n if (route.layout === \"/admin\") {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {getRoutes(routes)}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default AdminLayout;\r\n\r\n/*\r\nclass AdminLayout2 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n _notificationSystem: null,\r\n color: \"black\",\r\n hasImage: false,\r\n navbar: false,\r\n mini: false,\r\n fixedClasses: \"dropdown show-dropdown open\"\r\n };\r\n this.handleMiniClick = this.handleMiniClick.bind(this);\r\n }\r\n componentDidMount() {\r\n //this.setState({ _notificationSystem: this.refs.notificationSystem });\r\n //if (navigator.platform.indexOf(\"Win\") > -1) {\r\n // ps = new PerfectScrollbar(this.refs.mainPanel);\r\n //}\r\n }\r\n componentWillUnmount() {\r\n //if (navigator.platform.indexOf(\"Win\") > -1) {\r\n // ps.destroy();\r\n //}\r\n }\r\n componentDidUpdate(e) {\r\n //if (navigator.platform.indexOf(\"Win\") > -1) {\r\n // setTimeout(() => {\r\n // ps.update();\r\n // }, 350);\r\n //}\r\n if (e.history.action === \"PUSH\") {\r\n document.documentElement.scrollTop = 0;\r\n document.scrollingElement.scrollTop = 0;\r\n //this.refs.mainPanel.scrollTop = 0;\r\n }\r\n if (\r\n window.innerWidth < 993 &&\r\n e.history.action === \"PUSH\" &&\r\n document.documentElement.className.indexOf(\"nav-open\") !== -1\r\n ) {\r\n document.documentElement.classList.toggle(\"nav-open\");\r\n }\r\n }\r\n componentWillMount() {\r\n if (document.documentElement.className.indexOf(\"nav-open\") !== -1) {\r\n document.documentElement.classList.toggle(\"nav-open\");\r\n }\r\n }\r\n\r\n handleMiniClick = () => {\r\n this.setState({ mini: !this.state.mini });\r\n document.body.classList.toggle(\"sidebar-mini\");\r\n };\r\n\r\n getRoutes = routes => {\r\n return routes.map((route, i) => {\r\n\r\n if (route.collapse) {\r\n return this.getRoutes(route.routes);\r\n }\r\n if (route.layout === \"/admin\") {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {this.getRoutes(routes)}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AdminLayout2;*/","import { getIsDigitalSignEnabled } from '../api/digitalSign';\r\nimport { getConfiguration } from '../api/settings';\r\n\r\nconst requestConfiguration = 'CONFIGURATION_REQUEST';\r\nconst receiveConfiguration = 'CONFIGURATION_RECEIVE';\r\nconst requestDigitalSign_Enabled = 'DIGITALSIGN_ENABLED_REQUEST';\r\nconst receivetDigitalSign_Enabled = 'DIGITALSIGN_ENABLED_RECEIVE';\r\n\r\nconst initialState = { isLoading: false, settings: {} };\r\n\r\nexport const settingsActions = {\r\n\r\n requestConfiguration: () => async (dispatch) => {\r\n dispatch({ type: requestConfiguration });\r\n\r\n try {\r\n const response = await getConfiguration();\r\n const config = response.data;\r\n\r\n dispatch({ type: receiveConfiguration, config });\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n },\r\n\r\n requestDigitalSignEnabled: () => async (dispatch) => {\r\n dispatch({ type: requestDigitalSign_Enabled });\r\n\r\n try {\r\n const response = await getIsDigitalSignEnabled();\r\n const isEnabled = response.data;\r\n\r\n dispatch({ type: receivetDigitalSign_Enabled, isEnabled });\r\n }\r\n catch (error) {\r\n console.log(error);\r\n dispatch({ type: receivetDigitalSign_Enabled, isEnabled: false });\r\n }\r\n },\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === requestConfiguration) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n if (action.type === receiveConfiguration) {\r\n return {\r\n ...state,\r\n settings: action.config,\r\n isLoading: false\r\n };\r\n }\r\n if (action.type === requestDigitalSign_Enabled) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n if (action.type === receivetDigitalSign_Enabled) {\r\n\r\n return {\r\n ...state,\r\n settings: { ...state.settings, digitalSignEnabled: action.isEnabled },\r\n isLoading: false\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Redirect, Route, Switch, useHistory } from \"react-router-dom\";\r\nimport { WithAuth } from './components/Authorization/WithAuth';\r\nimport SessionTimeout from './components/SessionControls/SessionTimeout';\r\nimport { Spinner } from './components/Utils/Loaders';\r\nimport { ApplicationPaths } from './components/api-authorization/ApiAuthorizationConstants';\r\nimport ApiAuthorizationRoutes from './components/api-authorization/ApiAuthorizationRoutes';\r\nimport { AuthorizeRoute } from \"./components/api-authorization/AuthorizeRoute\";\r\nimport { SystemNotification } from './containers/Settings/AdminNotifications/SystemNotification';\r\nimport AdminLayout from './layouts/Admin';\r\nimport SignalRProvider from './services/signalRService';\r\nimport { settingsActions } from './store/Configuration';\r\n\r\nexport default () => {\r\n const dispatch = useDispatch();\r\n const isAuthenticated = useSelector(state => state.authentication.isAuthenticated);\r\n const currentUser = useSelector(state => state.authentication.user);\r\n const settingsState = useSelector(state => state.settings);\r\n let navigation = useHistory();\r\n const { i18n } = useTranslation()\r\n\r\n useEffect(() => {\r\n if (isAuthenticated) {\r\n i18n.changeLanguage(currentUser.language);\r\n\r\n dispatch(settingsActions.requestDigitalSignEnabled());\r\n }\r\n }, [isAuthenticated]);\r\n\r\n const handleLogOut = () => {\r\n navigation.push({ pathname: `${ApplicationPaths.LogOut}`, state: { local: true } });\r\n }\r\n\r\n if (settingsState.isLoading)\r\n return ;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n );\r\n}","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport 'tippy.js/dist/tippy.css'; //Styles for Tooltips\r\nimport 'tippy.js/themes/light.css';\r\nimport \"./assets/css/animate.min.css\";\r\nimport \"./assets/css/demo.css\";\r\nimport \"./assets/sass/light-bootstrap-dashboard-react.scss?v=1.3.0\";\r\n\r\nimport React from 'react';\r\nimport { createRoot } from 'react-dom/client';\r\n\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { Provider } from 'react-redux';\r\n\r\nimport App from './App';\r\nimport configureStore from './store/configureStore';\r\n\r\nimport './i18n';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nimport history from './history';\r\nimport { settingsActions } from \"./store/Configuration\";\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst initialState = window.initialReduxState;\r\nconst store = configureStore(history, initialState);\r\nstore.dispatch(settingsActions.requestConfiguration());\r\n\r\nconst container = document.getElementById('root');\r\nconst root = createRoot(container);\r\nroot.render(\r\n \r\n \r\n \r\n);\r\n\r\nregisterServiceWorker();","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\r\n\r\nimport * as Configuration from './Configuration';\r\nimport * as Notifications from './Notifications';\r\nimport * as Authentication from './AuthUser';\r\nimport * as Protocol from './Protocol';\r\nimport * as Agenda from './Agenda';\r\n\r\nexport default function configureStore(history, initialState) {\r\n const reducers = {\r\n notifications: Notifications.reducer,\r\n authentication: Authentication.reducer,\r\n settings: Configuration.reducer,\r\n protocol: Protocol.reducer,\r\n agenda: Agenda.reducer\r\n };\r\n\r\n const middleware = [\r\n thunk,\r\n routerMiddleware(history)\r\n ];\r\n\r\n // In development, use the browser's Redux dev tools extension if installed\r\n const enhancers = [];\r\n const isDevelopment = process.env.NODE_ENV === 'development';\r\n if (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\r\n enhancers.push(window.devToolsExtension());\r\n }\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history)\r\n });\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n"],"sourceRoot":""}