{"version":3,"sources":["assets/images/lifecheck-logo.png","utils/api.js","modules/account.js","modules/notifications.js","modules/admin/admins.js","modules/admin/patients.js","modules/admin/doctors.js","modules/admin/cases.js","modules/admin/tests.js","modules/admin/laboratories.js","modules/admin/healthPackages.js","modules/admin/referrals.js","modules/admin/surveys.js","modules/doctor/patients.js","modules/doctor/cases.js","modules/doctor/tests.js","modules/doctor/surveys.js","modules/patient/cases.js","modules/patient/messages.js","modules/patient/statements.js","modules/patient/surveys.js","modules/patient/tests.js","modules/index.js","configureStore.js","services/httpService.js","components/AuthRoute.js","hooks/useToggle.js","layout/components/sideDrawer/AdminMenu.js","layout/components/sideDrawer/DoctorMenu.js","layout/components/sideDrawer/PatientMenu.js","layout/components/SideDrawer.js","layout/components/Header.js","layout/theme/palette.js","layout/theme/overrides/index.js","layout/theme/overrides/MuiTableBody.js","layout/theme/overrides/MuiTableHead.js","layout/theme/overrides/MuiTab.js","layout/theme/overrides/MuiTabs.js","layout/theme/overrides/MUIRichTextEditor.js","layout/theme/index.js","layout/theme/typography.js","layout/styles.js","layout/index.js","views/Home.js","utils/validation.js","utils/helpers.js","views/PatientLogin.js","views/DevLogin.js","views/DoctorLogin.js","views/AdminLogin.js","views/notifications/NotificationItem.js","views/Notifications.js","components/ButtonBar.js","views/laboratories/AnalysisList.js","components/FormDialog.js","views/laboratories/CreateLaboratory.js","views/Laboratories.js","components/MultiSelect.js","views/referrals/ReferralModal.js","views/Referrals.js","views/healthPackages/HealthPackageModal.js","views/HealthPackages.js","components/PolarChart.js","utils/surveys.js","utils/surveys/surveyV1.js","utils/surveys/surveyV2.js","components/HealthSurveyAnswers.js","views/HealthSurvey.js","components/AttachmentsList.js","hooks/useFileUpload.js","components/Attachments.js","components/Comments.js","utils/enums.js","components/Statements.js","components/testResults/UploadTestResultForm.js","components/testResults/CreateLabportalenTestResult.js","components/TestResults.js","views/patients/show/EditPatientData.js","views/patients/show/Overview.js","views/patients/show/CreateCaseForm.js","views/patients/show/Cases.js","views/patients/show/HealthSurveys.js","views/patients/show/Messages.js","views/patients/Show.js","components/Table.js","views/patients/index/CreatePatientForm.js","views/patients/Index.js","views/admins/show/Statements.js","views/admins/Show.js","views/admins/index/CreateAdminForm.js","views/admins/Index.js","views/doctors/show/Statements.js","views/doctors/Show.js","views/doctors/index/CreateDoctorForm.js","views/doctors/Index.js","views/cases/show/UploadReferralForm.js","components/HealthSurveyForm.js","views/cases/show/CreateHealthSurveyDialog.js","views/cases/show/HealthSurvey.js","views/cases/Show.js","views/tests/Show.js","views/patient/Messages.js","views/patient/Statements.js","views/patient/Settings.js","views/patient/surveys/Index.js","views/patient/surveys/Show.js","views/patient/cases/Index.js","views/patient/cases/show/TestResults.js","views/patient/cases/show/Statements.js","views/patient/cases/Show.js","views/patient/tests/Index.js","views/patient/tests/Show.js","views/patient/Attachments.js","Routes.js","App.js","registerServiceWorker.js","index.js"],"names":["module","exports","COMMON_ENDPOINTS","ACCOUNT","FILES","NOTIFICATIONS","BANKID","ADMIN_ENDPOINT","ADMIN_ENDPOINTS","ADMINS","CASES","DOCTORS","PATIENTS","TESTS","LABORATORIES","HEALTHPACKAGES","FILEUPLOAD","REFERRALS","SURVEYS","DOCTOR_ENDPOINT","DOCTOR_ENDPOINTS","PATIENT_ENDPOINT","PATIENT_ENDPOINTS","MESSAGES","STATEMENTS","LOGIN","LOGOUT","AUTH","initialState","data","authenticated","role","state","action","type","payload","authenticate","dispatch","axios","get","then","res","useAccountState","user","useSelector","account","useAccountDispatch","useDispatch","devLogin","userName","password","post","removeAuth","logout","createLabportalenAccount","id","updateAccountAsPatient","patientId","updatedPatient","put","FETCHING","FETCHED_ALL","SET_READ","SET_DONE","fetching","unreadNotifications","notifications","useNotificationState","useNotificationDispatch","fetchAll","setRead","notificationId","setDone","CREATE","CLEAR_CURRENT","fetched","current","showLoader","useAdminState","admin","admins","useAdminDispatch","fetchSingle","clearCurrent","createAdmin","newAdmin","CREATE_PATIENT","CREATE_COMMENT","UPDATE_COMMENT","DELETE_COMMENT","CREATE_MESSAGE","usePatientState","patients","usePatientDispatch","createPatient","newPatient","updatePatient","createComment","newComment","updateComment","commentId","updatedComment","deleteComment","statementId","delete","createStatement","newStatement","createMessage","newMessage","deleteTestResult","createAttachment","newAttachment","headers","useDoctorState","doctors","useDoctorDispatch","createDoctor","newDoctor","CREATE_CASE","useCaseState","cases","useCaseDispatch","createCase","newCase","updateSurveyAnswers","caseId","surveyId","versionId","updatedSurvey","surveyVersionId","answers","addReferrals","newReferralIds","SIGNED","useTestState","tests","useTestDispatch","createCaseTestResult","newTestResult","createPatientTestResult","createPatientLabportalenTestResult","createCaseLabportalenTestResult","signTestResult","UPDATE","UPDATE_ANALYSIS","useLaboratoryState","laboratories","useLaboratoryDispatch","createLaboratory","newLab","updateLaboratory","labId","updatedLab","updateAnalysis","useHealthPackageState","healthPackages","useHealthPackageDispatch","createHealthPackage","newHealthPackage","updateHealthPackage","healthPackageId","updatedHealthPackage","useReferralState","referrals","useReferralDispatch","createReferral","newReferral","updateReferral","referralId","updatedReferral","useSurveyState","surveys","useSurveyDispatch","doctor","patient","useMessageDispatch","useStatementDispatch","update","history","combineReducers","adminPatients","adminCases","adminTests","adminSurveys","doctorPatients","doctorCases","doctorTests","doctorSurveys","patientCases","messages","statements","patientSurveys","patientTests","router","connectRouter","configureStore","middleware","thunk","routerMiddleware","createLogger","enhancers","createStore","reducers","compose","applyMiddleware","httpService","setupInterceptors","store","interceptors","response","use","error","status","location","pathname","search","queryParam","includes","push","Promise","reject","AuthRoute","Component","component","rest","render","props","initialValue","useState","toggleState","setToggleState","toggle","AdminMenu","isMobile","userUnreadNotifications","Fragment","Divider","List","ListItem","button","Link","to","selected","onClick","ListItemIcon","ListItemText","primary","Badge","badgeContent","color","DoctorMenu","PatientMenu","unansweredSurveys","useStyles","makeStyles","theme","drawer","breakpoints","up","width","flexShrink","toolbar","mixins","drawerPaper","SideDrawer","open","isLoggedIn","classes","useHistory","useLocation","className","toLowerCase","Hidden","smUp","implementation","Drawer","variant","onClose","paper","ModalProps","keepMounted","xsDown","appBar","marginLeft","backgroundColor","palette","main","menuButton","marginRight","spacing","display","menuIcon","fill","Header","toggleDrawer","position","Toolbar","IconButton","aria-label","edge","src","logo","alt","height","secondary","disabledBackground","success","green","contrastText","MuiTableBody","root","borderBottom","MuiTableHead","fontWeight","MuiTab","textTransform","MuiTabs","padding","MUIRichTextEditor","editor","editorContainer","createMuiTheme","typography","fontFamily","h1","fontSize","marginBottom","h2","lineHeight","h3","body1","overrides","shape","borderRadius","content","flexGrow","minHeight","maxWidth","boxShadow","down","container","body","a","textDecoration","textDecorationColor","shadows","Layout","children","useToggle","drawerOpen","toggleDrawerOpen","ThemeProvider","CssBaseline","Paper","Home","LoginSchema","Yup","personalNumber","matches","DevLoginSchema","required","UserCreationSchema","firstName","lastName","email","PatientCreationSchema","address","postCode","city","country","phoneNumber","gender","phoneWork","phoneHome","length","weight","CaseCreationSchema","TestResultCreationSchema","title","requisitionId","CommentCreationSchema","doctorHasPermission","StatementCreationSchema","MessageCreationSchema","LaboratoryCreationSchema","name","code","orderCode","HealthPackageCreationSchema","woocommerceProductId","ReferralCreationSchema","laboratoryId","AttachmentCreationSchema","description","ReferralsAddedToCaseSchema","referralIds","getReturnUrl","window","substring","indexOf","Login","initialValues","validationSchema","onSubmit","values","replace","redirectUrl","errors","touched","handleChange","handleBlur","handleSubmit","Grid","item","xs","Typography","align","href","TextField","label","fullWidth","helperText","onChange","onBlur","value","Button","DevLogin","isDevEnv","setIsDevEnv","selectedRole","setSelectedRole","useEffect","LinearProgress","FormControl","Select","native","e","target","inputProps","DoctorLogin","AdminLogin","NotificationItem","notification","checked","handleToggle","useInView","ref","isVisible","read","url","key","NotificationsNone","NotificationsActive","createdAt","split","ListItemSecondaryAction","Checkbox","Notifications","React","setChecked","currentIndex","newChecked","splice","filter","n","done","map","margin","minWidth","icon","ButtonBar","buttons","i","size","disabled","event","onClickFunc","onClickEvent","save","grid","menu","edit","add","settings","files","refresh","AnalysisList","show","analysisList","Dialog","DialogTitle","DialogContent","dividers","analysis","AnalysisCode","AnalysisName","top","right","bottom","closeButton","grey","FormDialog","onSubmitDisabled","PaperProps","disableBackdropClick","disableEscapeKeyDown","disableTypography","header","DialogContentText","DialogActions","defaultProps","form","textAlign","formActions","justifyContent","CreateLaboratory","toggleOpen","actions","catch","setSubmitting","isSubmitting","autoComplete","Laboratories","analysisListOpen","toggleAnalysisListOpen","newLabOpen","toggleNewLabOpen","setAnalysisList","Box","ml","TableHead","TableRow","TableCell","TableBody","lab","scope","lastCheck","lastUpdate","Tooltip","index","currentLabAnalysis","Object","keys","Analysislist","handleAnalysisListToggle","zIndex","input","valueContainer","flexWrap","flex","alignItems","overflow","chip","chipFocused","emphasize","noOptionsMessage","singleValue","placeholder","left","popper","marginTop","divider","inputComponent","inputRef","components","Control","innerProps","innerRef","selectProps","TextFieldProps","InputProps","Menu","Popper","anchorEl","document","getElementById","rootId","style","offsetWidth","square","MultiValue","Chip","tabIndex","classnames","isFocused","onDelete","removeProps","deleteIcon","NoOptionsMessage","Option","MenuItem","isSelected","Placeholder","ValueContainer","MultiSelect","suggestions","selectId","useTheme","selectStyles","base","text","font","inputId","InputLabelProps","htmlFor","shrink","options","isMulti","styles","menuPortal","CreateHealthPackage","editReferral","clearEditReferral","differingAnalysisList","setDifferingAnalysisList","editAnalysisList","needsVerification","oldAnalysisList","forEach","oldAnalysis","laboratory","find","resetForm","InputLabel","labelWidth","newValues","t","crossIcon","doneIcon","Referrals","newReferralOpen","toggleReferralOpen","setEditReferral","ReferralModal","r","Done","verificationIcon","cursor","editPackage","clearEditPackage","packageReferrals","setPackageReferrals","setAnchorEl","handleClickLabSelect","currentTarget","handleCloseLabSelect","referral","Boolean","handleAddReferral","subheader","disableRipple","referralArrayIndex","newPackageReferrals","handleRemoveReferral","HealthPackages","newHealthPackageOpen","toggleNewHealthPackageOpen","setEditPackage","HealthPackageModal","hp","referralNeedsVerification","handlePackageEdit","legend","scale","scales","xAxes","ticks","gridLines","lineWidth","circular","yAxes","tooltips","callbacks","tooltipItem","labels","PolarChart","colors","datasets","version","sections","questions","multiple","inputRequired","scaleGroup","choices","scoring","inputType","accessor","getLatestVersionId","reduce","prev","userInput","whiteSpace","HealthSurveyAnswers","dbSurvey","survey","s","calcScorePerSection","answersScore","question","section","answer","acc","choice","maxPointsPerSection","questionsPerSection","percentOfScorePerSection","points","score","ExpansionPanel","defaultExpanded","ExpansionPanelSummary","expandIcon","ExpansionPanelDetails","Math","round","qIndex","b","currQuestion","join","unshift","generateResponse","flexDirection","extra","comment","HealthSurvey","useParams","useSurveyAdminState","useSurveyDoctorState","useSurveyAdminDispatch","useSurveyDoctorDispatch","parseInt","expansionDetails","wordWrap","AttachmentsList","attachments","gutterBottom","attachment","file","clearButton","accept","initialFile","fileInput","useRef","setFile","fileUrl","setFileUrl","setError","fileTypeVerified","fileType","saveFile","URL","createObjectURL","clearFile","acceptTypes","renderFileUploader","uploadButton","Attachments","create","modelId","showModal","toggleShowModal","useFileUpload","formData","FormData","append","multiline","rows","rowsMax","contentDoctorPermission","fontStyle","addNew","Comments","comments","page","editingIds","setEditingIds","toggleEditing","editingIndex","findIndex","newEditingId","usePatientDispatchAdmin","usePatientDispatchDoctor","useCaseDispatchAdmin","useCaseDispatchDoctor","CommentForm","editing","FormControlLabel","control","justify","adminId","doctorId","Clear","confirm","Gender","DoctorType","Doctor","Therapist","Statements","healthStatements","doctorStatements","console","log","StatementForm","statement","case","doctorType","UploadTestResultForm","updateView","CreateLabportalenTestResult","TestResults","fetch","deleteTest","showUploadTest","toggleShowUploadTest","showLabportalenLinkForm","toggleShowLabportalenLinkForm","test","signed","ArrowForward","EditPatientData","Overview","showUpdateInfo","toggleShowUpdateInfo","CreateCaseForm","fetchPatient","fetchingHealthPackages","fetchAllHealthPackages","Cases","c","healthPackageName","HealthSurveys","answered","message","contentWrapper","paddingBottom","messageHeader","date","Messages","Avatar","creatorName","charAt","Show","view","usePatientStateAdmin","usePatientStateDoctor","entries","Tabs","indicatorColor","textColor","Tab","overview","testResults","testId","generalHealthStatements","healthSurveys","patientAttachments","Table","columns","Container","elevation","localization","pagination","labelDisplayedRows","labelRowsSelect","searchPlaceholder","searchTooltip","pageSize","CreatePatientForm","Index","fileUploadRef","click","field","tooltip","rowData","labPortalenUserGuid","applicationUserId","PersonAdd","CreateAdminForm","CreateDoctorForm","UploadReferralForm","textField","select","float","questionInputWrapper","questionInput","HealthSurveyForm","updateAnswers","updateExtraData","Array","q","numberOfQuestions","setAnswers","extraData","setExtraData","addAnswer","sIndex","newAnswers","handleUpdateExtraData","newExtraData","addAnswerInput","renderValue","cIndex","min","step","CreateHealthSurveyDialog","currentCase","healthSurveyId","setTouched","setIsSubmitting","preventDefault","every","showCreateHealthSurvey","toggleCreateHealthSurvey","showUploadReferral","toggleShowUploadReferral","useCaseStateAdmin","useCaseStateDoctor","healthSurvey","signContainer","useTestStateAdmin","useTestStateDoctor","useTestDispatchAdmin","useTestDispatchDoctor","attachmentFile","labPortalenUrl","frameBorder","onLoad","therapistStatements","Settings","sm","md","lg","xl","tableCell","loading","setLoading","result","doctorRoleStatements","overflowX","PatientAttachments","Routes","exact","path","PatientLogin","PatientCasesIndex","PatientCasesShow","PatientTestsIndex","PatientTestsShow","PatientSurveysIndex","PatientSurveysShow","AdminsIndex","AdminsShow","DoctorsIndex","DoctorsShow","PatientsIndex","PatientsShow","CasesShow","TestsShow","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","initialReduxState","hostname","match","rootElement","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.1f06066f.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAT4AAABGCAYAAABVPvgoAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAuIAAALiAB1RweGwAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS42/U4J6AAAHTVJREFUeF7tXQmUXFWZ7koCjgp0+r1X3V1LdzRElkQQBFlk6QHGERXHcelBZUn3u6+qO+QEZXPE5TQecNfRDOKwyCLIKGMEFZSdjIiAwEAIaDCLgRDDJpCNYJJOar7vvtvdb+uqV1tXxb7fOf/p5d19+e5/t/+2aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGjsSkjMnt27ezJ5xh4z2/KtFNO098xmz3pjS0vvVOWmQvROZbjJ5NzObJv99oyVe1/aEidnDOdjWcs+tru9f2Z6z9PMWbMWvEF50NDQ0Kgf9gW5pY3cP2VN57yM6VyRNsWvIQ+AmB5KW87ijCluyFjON9OWbWfaxYGHtOR3U15LoqPj1DenTfsEhHsR5A78/jzCGoYUvIK4/paxxFP4/Zq0IfpBiFl4T7ihaGhoaNQIs1t6dwfJzM2Y9pMguFdBOiFC8grI8G8gwRfSSfvebNJ5byktMJ3MvRth3+eGLXZEhRkladN5HXEtx++53qo1TQ0NDQ2gp2VoWrZDHAaC+VU5hOQXsQPk9Bv8fD+1OhU0UEh0GwOzQZA/gBZXlEjjSMp0buk0xP4qcA0NDY1KMDQtY4gzQVovRBFN2WKKTQjrlpSZ3w+BT8H/ciDDP+PnTp+7ymUnCHp5NilOdNOvoaGhUQa4NgciycspazTJVCo7MZ1dC8L7RemwoWGa4jXIX0Foz8upM6bC0A63Rbt3BeGuS1nOMciGXvfT0NCIi96pIJpBEMiWKGKh4NtWuaFhisvw84sgpc+CqL4BYroJv6/G/yqcFo+sDzr3y3CT4iMZwzlC7u4m+9+B/x+fTor+jGVfk7LEK1H+KQhjSTKZ21tlSENDQ6M4QF77gPhWRREKyG17xszd1mnah85onTvdPVIyNIVCLZFreKk9PmEhjJMwTf4/6T4ynCgRO1KmswKk9UGGXWxDZMaMuf+QTjoHgQjvk5phOLydKcO5q5xdZQ0NjUkMkMYlARJxhVNN0znPPasXB727p63cx6GZ/Q7+S21eYDorvtzWlm9VnmOB5/2QpoWQ0LSZU2Jqh3Cmp7waGhrjI20NHgwSCU1xQUqvpM3cv7jaXVlIdHb2J+H33NQ4U+e0Ya/jFLZS7SyZ7N0D5PqNyLAtZ3F2L2EopxoaGhpBDE2BlnRtJIGY9n+UOotXHAgbxImw1njC3QlCXdpp9M9WjqrA0LSU5dzlCdsVU2zOGuIw5UhDQ0PDjy7TTkPbWxEiD0usTqfnm8pZFRiawo0KkNFjDDdlOE+lrL534kNNpqJy48M9XO1Lv0vaerqroaERAd6DBXG8HCYO5zzlpCaQmyeGcxMIaV/8WTNC4n1hhP1wMP2YYv+pOm1VQ0Pj7xbQxE4FcWz1kgamoptIVMpJDTE0Tf1SU4BMF0JD9R+INu1tqVTeUk40NDQ0RpGAZjc/eDSEU98Zybmdyk3TI00rLhE7yM22zpc1BjIYaP4zZYl70oY91Nr6qenqU6VIgNzfJC3XJJ2D0ubgvrOMU/bi/93PGtEooHzc41hjolFfBMubddA4JEAQn4b4tCUQ3xLuyio3TY8uyzkG6Q6dHYTWepJy0nBwig/S41U9b/p+39FxartyEheJrHF6JmU6p4Dw784YziZPmDvxvy2Qh+SA5lqw0QgA5X49ZjUvQF5U8iBNnqnPGjVGao+8lTbEMk95Q5yF6nNDkEgZ4szQNNGy/9jeLjqUm6ZHKjlwFNJdFvHRriAPYntFfaoHEiCqHyNNofvJIKkvKjexwEPkkthKn5EcVo1rl9P+eFSpo82Z09kmTkReT86C5DNJ0YvB44RsUsyqtq5QLr/ylhX+Xr4rDfS7Gjo6BtszpvOit8xTpn2V+twYpKx+gcblJw2Mhqm207qVk6ZHxhAfQbpDRJBuy71bOQkBo84S5HPTiKAMNkAFr8saJK3dIA4e6PalT6bRsC9VzkqiHVNahPNMVDhBQX62pdr63qu8NjWy2Y+9kVcNs5ZwQG53YCBej/r5G8idVyS34e9t/Cn/pkkyCxqDZV+fanc+TO23pcyzoJr4JhZNSXzQ7j4gO78nUZDhVLt4j3LS9EBn+Up4nVJsL7ZOiTz/yese/ofL7UBlgJo1D1v7lxSYZsP+qHJTFLzdgg4KUvCmmSJeQl5uyFrOV/H3t+Dmdvy9GSTxOI8qKe9NCV5BhCb8IaQbU09/x4gpNH22EmX4vayZe5e7dlQamvgmFk1JfDQEgE6y1psoCv53nXLS1OCUFaP/4lD6DfGXYhrcBBNfC+8hc1MD8ZD8uBY3jDR8O+7NFQ5E8LPel2bTfqx9eu4A195h71SGZRin7CUNO1hOvpmP88wyFuwF0voh2tlGX54qEsFD8euoMcbJsya+iUVzTnVT+Teh4TzkTRQFDek1Tq2Us6YFb4CAEJ4Npd8S1+LzuOtbE018hCxrWp6xxFkgrePixzc0JSUt4Xg0RpruQljKwS4ETPvbxPvD5e8XkNFW2VlMZzXa4nLIavh5AfVaxKyZJMDLS51I0MQ3sWhK4iOypjgHiQkvvJviBy0tPXVZ96oVkEakPWCpBdPclGH/s3ISiUYQX6WgJoeGc403vdAe17rWbHYtpA27D0QTOjDvitgBTX1JxhDn07ZiB2Yj3Mzo6Jj7lmTy9L254cHnCtKmfS4I8En4CbVZyDD8/9yARqmiDEET38SiaYmvu3VeGxraX70Jk2I6zzXznde3tosOENi6YLoxffpjqaMcuxLxcRczY9m/9KaXHV993kXQOxVt7BNRGhvqi5sYD3Pn1t2xLXXGq5CQJsos++Pw+zjCGN3YQjhb00nxXX5XjkPQxDexaFriIzLJ3PmcKngTR+H6WTNaOuGzltD2bgymV2oNpvPdUmtnuxrxpZP+zpoyxGPq8y4BDqCor6hBaiPq67xKb9lwgEO4XyahIqxhWuwppQlr4ptYNDXxdSVze6MB8eWy0cS5IrgQ/6NiI2gj4L7Q5vApykB6nQ2Z5MA7lLNx0Qji46t1JLERKULO8v3iEXeS5C3nVm96QXxLvGF5Zfbsod3j7nAqQMPK78Y65kYJ7R3yJ4+ZqDRWeRawZxrSzx1p/8CKztCV5JJEdceImEZ5FMbKfT5OO41PfL1TWZ5cm3XffD5jD/7O/9V/46hnmrc+KLSJyTZUZt2WC9T1UCjuavJdS+JjXY+08xFxy6TiNjo0Rb6bK89NjSWQAkKkWfiL4hsjnRi4Jq+859oE3+u4QH0uikYQX8p0rkQ5/mRUkuJ89cmHGa0Db0HeLh9xh4Hnp0FtCZrNK76wPAIC+FG8l+eGpnEHuNMUA8j/JfB7B+J5EkSwCnEug9yN36+Atjkf09RDKiUotCtei/SRHuLZkpUGY2tGIGz4sRp/KeLjLY4u0/kQyHoIZbAIwpswK6RYzsNI+6KMaX8JPz9YbC2xfBQS3FDkrRyU1zcR/i2I83H8XMX2it/5FOt1KVN8hptjJCTlsQbI7+auofb3I77vIL6bIY/h95Vp00a+xYMsC8R9QcpwPqwuOMQq71oRnzzHajkXe9u6uhiQV+RXGcjqyFzE9FE2jtfZGQ85pLmmg9B83jNaqOi4XK9Un4qiQcTnX9Q3xW34d6jxpC37YHyr+JU7dI6tnZZ9rAouEqm2fHfaED9Cw16HOi/6VADCG0bZPg93P89YA29TQcRCZ6c9A36fDoVpOl8ptRxRLyDucYivd2rWtE9BmTyB8ufZ1qjNE69sBBE8yI0YFXTFkMeQLOfriHc1+1ognoDIWdgrqJfFxQ7pxwUPgacN+zqE+SzbTnSco7IT9bkZaXwCMhhH+6wF8XGnHvXyv8i7dyOTu/iLamJXoNvKpVD4jzJQTwRKxA50yos59VLOmwJqkXtpqc7uBfI4SYlvaFoWIzYaeejsZiwxnTXwezKnwSrAYkhAW+ADVr4NDaTvkdYG7khHEZ9c6jHE14JpjSMoj/VZw7Yraz89qA9xGMIIHSmLIyRJtJcvVKJ5UtHhEgHqNLyxGU9IwDem2/q6VJCRqI74Cgl51tjkWz7+uDHrubOW99ETCOwIBOq1mjwqLGh0yh/EbPgTBjbccqZNzUx8meniQIzAKzGdWT8mwSUIOa33fPe5fZFroCq4UXA9BNPrC9lR/WG5Au3ldcjajGEvw9/PIJzXgm4oJAfeFCm1nsalETT4n/j8uhpFLo6mUC+EiM9y1oL0eLg86gEriI0Bv/jdaJYpymWeiiIuEpmk/VH4C236KNmO8nsO6VqGuqCBiw2B71JYH8jTon3LUEg4c0O+vj9eHUthmzMRp0HtN7zx6Qo3E8VvaXlIBR1CNcSXSoqjEMdT8OOJnwqYcy2VNOWsZkh0mvlDkWEU+lhiAxFfV05BNxtQqU1LfCRwmpeikVUpbx5sR3nf7vWLv5/hWtSom4CE1+P4DIAzGGzo6LDbUM+r+D4KR253U+OsN0ptgGa0rHweWhvXmfzEy3AM0YuAx13nQVjt8OfbMEN8a7tr8uxA5QgSH4SdarRjIc1bkL/H0Fm/REO9vLcud48xraR2he9PIB+hKSHq5NWODvvtKpqS6Ohw5iAsHyEoInkW8X+7q+P0OSObGrI+ssJAG/oQyv3eYD3CH6ag4koObir4cTGrZcEbUob4HvyF77fLNip+nknme7kcgsFtenavs4yOttPngKT/Hd+eRPqCWjGmnPZtbDsqCh8qI77eqXID0whtYPIlxVvqugufSuaPRiYjdnrdDpM2nEuV/be6Yc7b5u0fZ6euXKCRNDHx+cHGHDzOgk72dDnrrexkyKPfwIEpNkMuLNWIurvntaGxfQ5twadxoJM8l52eO0A5C4EbLGgn/k5i2vfVu5xLIYL4RgXl+gTSeFqx5Rwe78LUdkGwM0vyscQlcdYuSaYozyU+/6YYRnn9UG1MjdsuuJDvrkWGnoPdAEL5Vzgp0qYwABpirqx7j1+EtRX/+7E7Uxh/5tTd+sk2DJJnwO1qn3/DeQTkR+vqIZRPfL1TO2kgObjcYzrD6EM/mYA76ENTuJuHadc4601iOxLyM45GykNNsd9++SNTRv/KTsP+QliDqQ6ouElEfIUEprA3e/2zk3IXP46G4CK/G+L8txCRGc4vx6ubbFKc6HNLMZ2L1eeGYTziw/9XqKNQJetEEUg/yiRovXxp6Y4Jv0nxZbj3alxcs7ok/lrd0JSMmTsO9eEfjCzxULE6bWvrbYWbP3j9QIZBWgvdmUIcIG4r9z7k/RWEtR15vtzNc/TyRbnEJ4k5kC+2V27ATOiZYpIfJDDPdkVWvNF/5niZrhT7vDX3rozV/0cZD9R6qOZnUkVXn6vGZCI+NOoT0Kk9z3zKO61lX0dkOjKWfTHCGOuwbNBG/+HKiQ+Ic3AsTlfQudFWGoso4kN5bGeHU05igZ2QROMPx9miHtMaF1ybgrsnAv6WVLJQ3wntFGn3DUboq59Qn0Ng+XvdUqCtLY57GsILSfxJu49m19S/IhGX+KhAYYD+DNq2Lz8o42EM0ovqOr2NxtAUMPqhacte6U2QFKjHtLCqHNYEndP7e5BZnxrPykUFfX12Cw/nVo/JQ3xc27OvINmN+uVieoxD3lHgdAbp9jRirknZ50ZNjzJJaVhhNM0UGhVVnxuGcYjvt5Ucr0E7/TzLwBceyEh9jgTq7iS486+vlfAzHkgWqA+fNo+83BtVH+5BeDtgBVysT5n5/ZSTchFDM45HfD09Q9PQNhYiL4E1aE5vxbfja6N1QHtr/0w0GqrJ7ETbkcj/Hm9Bs1LQrhrCXt3V7hRmZsYKgIIK3YICQ8ep3l4/0j4piC+953wTje7+gN/Fle/KFxLoLIu84aHsboo63M7R2+8OYopT1eeGIYr4MknndPW5LERZ/0b50Kr2uPWKdnyZ1z1I7/kqTkkk0DZ4QHw0DRzY+A6L+j4KxHMc2oJvbQ9t8sp6n6csRXxKc/5haADhFNyyr6/tIfHKkEi38lEbqZZfzwyp/9cEchfHcv6AjllYkMsXrv7+QGH/md7CEiu5vQ2nmvhiEh+tm6DR+Y4mcT2np6dnWm9v79RKhFMpf3jO8qgROWs5wuvOddt/jvrcMISID1pGR+vAW9TnsmDx3Gtona+4yX90ev9OtykWsS6jyjqOoH6PB3G84glzQ5eRC1knQhs/C+48u/MgS9cQbtX9qRiKER9PJqD8b/Cny5Ws4VzXUE0vgARU5nRtr8u0JFLJ/qNREWuySafw6Xn5wl9XzSs8ePdgYZ8ZowXxqkt6tVlLnCzEhxGTh6F9FrZT7nW3VZVK2rB9587QcTdRs1RRjqKLt2o87ly39hXqc8MQJD6U5dpK35jhcQ+Up2f9lCL+C58i65WaMeL33cxA+W2IKue4Av88jD46dWb43BVVUY4CZf8dpG1Uq0K+VZ+qL6KJz7lK3h4yxQPeNHkF35Y3o4GUmiHT7hyBzD9JTW+gL1947ql5hYdAescekVMF4CyHllH1tSAvJgvxsWzRgILnrmoqSMtw1LWhJLRNxO0/b2Y4D9fjeFI5CBFf4K5uOSiX+OTVq4CGWHvhwWMxoKJUKCTwv6t97vi2jryDXV9EER80vLsR/2/xe2jD1Cdm7oZm0vpiQTK6+9LZuJ07a/X3oKKeIemdOZAvPL98XuH3iwcLhx4wQnriRWqDtd41RqFPDo2v3T6y/h3N3hFFfKlU3kIDX+pzKztbruiuZ73RSOJLTgDxcdpIwxMqyhEkkK4A8TmNJD5ObQOkB83P9G/6uIO2/ala9/96IZFOzj0obdCaBU+hO8fzf+6nMbg22pyV3R2Y3g7mCy9jevvQPSC9AyXp8cjFKmosynlNMWmIL2KqmzHEo5jiXFkzsexLo5Y+mG7U/ZW+uLlgbYpzih2SrTcaSXzchUV8QffLUIZXRZZtBYIp7WVRxgtAhv6prum8WgsjB6UQRXxBIU9kTfFJlMM13jTKb5g18ExoLTY164rs9L4DkFiO9JLRkam1nYb/fQheBSL5oPAL58zPF9Ytm1d4GJre0Ye5mh5kdT00vRFMFuKTmxvhGxtX49OENCI2ZsTnP6IgX0Zr3GPnjSQ+Au55JnYsfstZPBEaDUjlU0rTUvGK7apf1rUtlCI+tIcn0235I+m22zqFRlLuDLtDGzbqowTVAgmeCcKIw7NCPjUWlfuXrJXrYQWnk33cvV3DIytng/So6d1/52Dh4NmK9GhgtCN3eD0ZfrIQn3zFXi4ge+K1nEfS6dNCmxH1QDo93ySxBOKnVY+fVmVDrQo0mvhQH/7jLIb9GjTm6k0rlQBnXhDfcZaMlUNa69vuixAfTVyt6Xan26PlBa24G3WyIugW/7s1ahOt4ZCXqU37ZzJDnkQfAy2O01n8zpEuD5Gn1hfk3Y2M++8YLBx7uEt68L/C1fTqOwpNFuLjlJIdETI2fZBTX/sD+FjXMh4BptZ8WS5wXEGeO/sc86acVQVOtePeG2808eH7+0H8wbWs75R7k6Zc0OZfmFDES3ypUDmpC6KJT7bHuzqNgai4E+np/SehnfrMZaHMSH5XcLlAuWsaJGjFFZkcnVqdcHSusPR3g4VvXTTAQ6JsZHIrn5reSyvdIyvv2H9E0xOb3N3b+qv9k4f42NGDV9ZkR1ta3Stt5dSRJF//wrqbBtS3vMJWFQH3gDAQ3iWI48Y4nQJl0VDic6+s+Td98PcL6TZbTvcqQOzyQ9rO8sYr47acO5CPsnfa4e+kbLLvvfi1aPyRxGc6jyo7fuP47ZmGMpkHt8ENkO2Il3f3m2+zo4vkZ9m8Z7vzkANyhcU3D8pzeWefkS/M6HQPJ7+4wt3IOPKdLukhkysnYqF1BJOJ+NhIUob/lTYKBpm7Olrn8uBu7I7DndqMaV+EvFxUjrbGJZBwmVNoTdi+tCt5+t5wFjsdLoam0HQ+iN3zHom4rZhtOKLRxCcHAlNcyE7s82eKR90d7/idmssF8DeQMuIZOKBpK8RLe4uj8aLvbWOdxr+FNTSFhm5Rbs+BwDZD4Nd5Kz5E5jmK+Lw3N4pBnT30zRY4SCDP/6icNBUSvHqGBMr7tgdBo7t10aAkuxuuGig896d5hQfuGiwcfrCa3lr2s6kaHk6Og3An/HsmPrXJoepjTMSOFO3OGfneONMsdd7yTgg6rNiYMeQ1r7hklchaeW5oRVj6kTbolmcN8TV11apUmIkZnWL/dNJeiOkPH5P3aAUMy7m1rcjZr8YTn3oa1QhZFaasQd2eHUNzpXXrfdOGuBbuNyLOndxdL+1PWnU5TRKWJ16U/xbk4xddHc4c5XAc9O4urTb7NswQN9/nsOyDlSMfqiK+PeebHKDhx6f5Ia0ry30GYaKQQIXsg0bFzrbznXNyci1v87PzCr+7ndNbmQGa4lmj3u6N24Fqggji45pDHulxqhEQVN94ZokaSXxylDbEXBDFem84blhiGxru/SQyPuLNHVfmwTVE2vc2PrwDdzehLrlMMdYADbFJLUzHRSLVRhuP8g2OwBSGIg3cbkQnvCWbzJ3RZfUdwzUgPiZOjZGDI/wOouPeDDe0Cuw79kCRaYT2UsyYBdw0nPgI9g+k1b/j7sow00TjsLT0wvOwrA9Kd/u8mSCR4xHn9+Af7clrfMJ5HSRByyxF4+YrfCDMy+A3eE0M2rfzMsJZ2MUH3TEbGGkHTCvaycko9wfYXkL+am6IdAw8CB8etJlfce9EbdKVC3kVDSOBtAhx/FG5wjXfH5CbHSrhK1Nttbl7Wy7CxFcbYePjmpqKxofGEp87LUobTh/iDSw0e8I1xVbIOsifqU3hJzp1lNlxWvy17+Oyhgo+JoamcC0L4f4aEiIuv0jzWVzTQZnyZwn3pngJbs8udZ0SddQUxAckOjBlQ3sJ7mCOiSkNILyI/NPw59MoAw5cEfUh3a7h41sM1w1+fHBND2HxjZFA2kdEDkIkQcQr1qBsAxafR0XutpKcVdAhVEt8BAc9pMM3SLgELL45a9aJNTNXV0NAtTZyh2MkkpeoZ2ZHEi42pNv63j2R01svJiPxuRiaos5QskFHd6CSgimy5dzTOd2eoQItG7yGhMZ8PvKBado4HTm2oJMaYplrPbj0lL2JiA8YmkKNFsRwH/PhDye2kHye5vJSOf2JFmGgWZ+ryK+COmC586W3ej42NAK5Tr2A/csbDtL+esboL2fJZWLRaUkbexy1qBavQMep6d3bcjF5ic8Fp7NZd8RfCol3l9cUm6G9Y6rjnN3RcU4tzJElMu3iQEyZL0Hb+EOwUZcQ94lF0/kN0n9OsTW9IOCniYjPBbVU+OOO6/0o38hHhYLitjX5DvJXuOmkgiob3FBBnNdTY4xDvqq9PIL28NlS2jVRG+JT/cB0/IZwIUjPelqjhpNmJD93JwiF9QTf8ihnZKoHUFiXIS18NLnWcuN4Rj7x7cd+t86X1KeioL00uL/A6zdliitpvFE5qRDSwGya04iUmbsA06R7QNrPovFvxDT2NRALOiCnF+J2xPeZTmgUqoPVuIH1TiURd7eJo9ABhxDfXUjHOgwUIEKed+MrZzShJDah4a9Auf1POin6Wc7KcnBZ6ZFxeMoSbeHySi/Cc10L4f0MYdwyInxAHZ8qKiMe+JYbgxhcVPr+jPzz5bzXEPYmaLZchrgX5fIN1NFxLDeWn/JeMTj15Xque+YydzXK+XGk4WXGC+F6KqfbD/B1Pc4YXGs28S4YcFBCWCDWsTIHYX1afS4L3LyB/wt9YUGyhvPVer//UxWaZz5O4q2XjNfoI93GRDV+44CNmGHmd2NnprVed4eQU0cZV0UduXy46eB65CxjwV7SSOWep5kkOHfxvBbpGSk/r1SDYFg1uXGk6mNoGi8GsD5cLZtaPomO3+oCFW/vVJIhNTpXq+MtG8Zbad5GymZEqimjkbYaFA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ2NhqKl5f8Bf5raBhweg9IAAAAASUVORK5CYII=\"","export const API_ROOT_ENDPOINT = '/api';\n\nexport const COMMON_ENDPOINTS = {\n ACCOUNT: `${API_ROOT_ENDPOINT}/account`,\n FILES: `${API_ROOT_ENDPOINT}/files`,\n NOTIFICATIONS: `${API_ROOT_ENDPOINT}/notifications`,\n BANKID: `${API_ROOT_ENDPOINT}/authenticate/bankid`\n};\n\nconst ADMIN_ENDPOINT = `${API_ROOT_ENDPOINT}/admin`;\nexport const ADMIN_ENDPOINTS = {\n ADMINS: `${ADMIN_ENDPOINT}/admins`,\n CASES: `${ADMIN_ENDPOINT}/cases`,\n DOCTORS: `${ADMIN_ENDPOINT}/doctors`,\n PATIENTS: `${ADMIN_ENDPOINT}/patients`,\n TESTS: `${ADMIN_ENDPOINT}/tests`,\n LABORATORIES: `${ADMIN_ENDPOINT}/laboratories`,\n HEALTHPACKAGES: `${ADMIN_ENDPOINT}/health-packages`,\n FILEUPLOAD: `${ADMIN_ENDPOINT}/file-uploads`,\n REFERRALS: `${ADMIN_ENDPOINT}/referrals`,\n SURVEYS: `${ADMIN_ENDPOINT}/surveys`,\n};\n\nconst DOCTOR_ENDPOINT = `${API_ROOT_ENDPOINT}/doctor`;\nexport const DOCTOR_ENDPOINTS = {\n CASES: `${DOCTOR_ENDPOINT}/cases`,\n PATIENTS: `${DOCTOR_ENDPOINT}/patients`,\n TESTS: `${DOCTOR_ENDPOINT}/tests`,\n SURVEYS: `${DOCTOR_ENDPOINT}/surveys`,\n};\n\nconst PATIENT_ENDPOINT = `${API_ROOT_ENDPOINT}/patient`;\nexport const PATIENT_ENDPOINTS = {\n CASES: `${PATIENT_ENDPOINT}/cases`,\n MESSAGES: `${PATIENT_ENDPOINT}/messages`,\n STATEMENTS: `${PATIENT_ENDPOINT}/statements`,\n SURVEYS: `${PATIENT_ENDPOINT}/surveys`,\n TESTS: `${PATIENT_ENDPOINT}/tests`,\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { COMMON_ENDPOINTS } from 'utils/api';\n\nconst LOGIN = 'ACCOUNT/LOGIN';\nconst LOGOUT = 'ACCOUNT/LOGOUT';\nconst AUTH = 'ACCOUNT/AUTH';\nconst REMOVE_AUTH = 'ACCOUNT/REMOVE_AUTH';\nconst CREATE_LABPORTALEN_ACCOUNT = 'ACCOUNT/CREATE_LABPORTALEN_ACCOUNT';\nconst UPDATE_PATIENT = 'ACCOUNT/UPDATE_PATIENT';\n\nconst initialState = {\n data: {},\n authenticated: null,\n role: '',\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case LOGIN:\n return {\n ...state,\n authenticated: true,\n role: action.payload.role,\n data: action.payload\n };\n case UPDATE_PATIENT:\n case AUTH:\n return {\n ...state,\n authenticated: true,\n role: action.payload.role,\n data: action.payload\n };\n case LOGOUT:\n case REMOVE_AUTH:\n return {\n ...state,\n authenticated: false,\n role: '',\n data: {}\n };\n default:\n return state;\n }\n};\n\nexport const devLogin = (userName, password) => (dispatch) =>\n axios.post(`${COMMON_ENDPOINTS.ACCOUNT}/login`, {\n userName,\n password\n }).then((res) => dispatch({ type: LOGIN, payload: res.data }));\n\nexport const authenticate = () => (dispatch) =>\n axios.get(`${COMMON_ENDPOINTS.ACCOUNT}/authenticate`).then((res) => {\n dispatch({\n type: AUTH,\n payload: res.data\n });\n });\n\nexport const removeAuth = () => (dispatch) => {\n dispatch({ type: REMOVE_AUTH });\n};\n\nexport const logout = () => (dispatch) =>\n axios.post(`${COMMON_ENDPOINTS.ACCOUNT}/logout`).then(() => dispatch({ type: LOGOUT }));\n\nexport const createLabportalenAccount = (id) => (dispatch) =>\n axios.post(`${COMMON_ENDPOINTS.ACCOUNT}/create-labportalen-account/${id}`).then(() => dispatch({ type: CREATE_LABPORTALEN_ACCOUNT }));\n\nexport const updateAccountAsPatient = (patientId, updatedPatient) => (dispatch) =>\n axios.put(`${COMMON_ENDPOINTS.ACCOUNT}/patient/${patientId}`, updatedPatient)\n .then((res) => {\n dispatch({ type: UPDATE_PATIENT, payload: res.data });\n });\n\nexport const useAccountState = () => ({\n user: useSelector(({ account: { data } }) => data),\n authenticated: useSelector(({ account: { authenticated } }) => authenticated),\n role: useSelector(({ account: { role } }) => role),\n});\n\nexport const useAccountDispatch = () => {\n const dispatch = useDispatch();\n return {\n devLogin: (userName, password) => dispatch(devLogin(userName, password)),\n authenticate: () => dispatch(authenticate()),\n removeAuth: () => dispatch(removeAuth()),\n logout: () => dispatch(logout()),\n createLabportalenAccount: (id) => dispatch(createLabportalenAccount(id)),\n updateAccountAsPatient: (patientId, updatedPatient) => dispatch(updateAccountAsPatient(patientId, updatedPatient))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { COMMON_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'NOTIFICATIONS/FETCHING';\nconst FETCHED_ALL = 'NOTIFICATIONS/FETCHED_ALL';\nconst SET_READ = 'NOTIFICATIONS/SET_READ';\nconst SET_DONE = 'NOTIFICATIONS/SET_DONE';\n\nconst initialState = {\n fetching: false,\n data: [],\n unreadNotifications: null\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHING:\n return { ...state, fetching: true };\n case FETCHED_ALL:\n return {\n ...state,\n data: action.payload.notifications,\n unreadNotifications: action.payload.unreadNotifications,\n fetching: false\n };\n case SET_READ:\n case SET_DONE:\n default:\n return state;\n }\n};\n\nexport const fetchAll = () => (dispatch) => {\n dispatch({ type: FETCHING });\n return axios.get(`${COMMON_ENDPOINTS.NOTIFICATIONS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const setRead = (notificationId) => (dispatch) =>\n axios.post(`${COMMON_ENDPOINTS.NOTIFICATIONS}/read/${notificationId}`)\n .then(() => {\n dispatch({\n type: SET_READ,\n });\n });\n\nexport const setDone = (notificationId) => (dispatch) =>\n axios.post(`${COMMON_ENDPOINTS.NOTIFICATIONS}/done/${notificationId}`)\n .then(() => {\n dispatch({\n type: SET_DONE,\n });\n });\n\nexport const useNotificationState = () => ({\n notifications: useSelector(({ notifications: { data } }) => data),\n unreadNotifications: useSelector(({ notifications: { unreadNotifications } }) => unreadNotifications),\n fetching: useSelector(({ notifications: { fetching } }) => fetching),\n});\n\nexport const useNotificationDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchAll: () => dispatch(fetchAll()),\n setRead: (notificationId) => dispatch(setRead(notificationId)),\n setDone: (notificationId) => dispatch(setDone(notificationId))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/ADMINS/FETCHING';\nconst FETCHED_ALL = 'ADMIN/ADMINS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'ADMIN/ADMINS/FETCHED_SINGLE';\nconst CREATE = 'ADMIN/ADMINS/CREATE';\nconst CLEAR_CURRENT = 'ADMIN/ADMINS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n fetched: false,\n data: [],\n current: {},\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n fetched: true,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.ADMINS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id) => (dispatch) => {\n dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.ADMINS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const createAdmin = (newAdmin) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.ADMINS}`, newAdmin)\n .then(() => {\n dispatch({ type: CREATE });\n dispatch(fetchAll(false));\n });\n\nexport const useAdminState = () => ({\n fetching: useSelector(({ admin: { admins: { fetching } } }) => fetching),\n fetched: useSelector(({ admin: { admins: { fetched } } }) => fetched),\n admins: useSelector(({ admin: { admins: { data } } }) => data),\n current: useSelector(({ admin: { admins: { current } } }) => current),\n});\n\nexport const useAdminDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n createAdmin: (newAdmin) => dispatch(createAdmin(newAdmin))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/PATIENTS/FETCHING';\nconst FETCHED_ALL = 'ADMIN/PATIENTS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'ADMIN/PATIENTS/FETCHED_SINGLE';\nconst CREATE_PATIENT = 'ADMIN/PATIENTS/CREATE_PATIENT';\nconst UPDATE_PATIENT = 'ADMIN/PATIENTS/UPDATE_PATIENT';\nconst CREATE_COMMENT = 'ADMIN/PATIENTS/CREATE_COMMENT';\nconst UPDATE_COMMENT = 'ADMIN/PATIENTS/UPDATE_COMMENT';\nconst DELETE_COMMENT = 'ADMIN/PATIENTS/DELETE_COMMENT';\nconst CREATE_STATEMENT = 'ADMIN/PATIENTS/CREATE_STATEMENT';\nconst CREATE_MESSAGE = 'ADMIN/PATIENTS/CREATE_MESSAGE';\nconst CREATE_ATTACHMENT = 'ADMIN/PATIENTS/CREATE_ATTACHMENT';\nconst DELETE_TEST_RESULT = 'ADMIN/PATIENTS/DELETE_TEST_RESULT';\nconst CLEAR_CURRENT = 'ADMIN/PATIENTS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n fetched: false,\n data: [],\n current: {},\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHING:\n return {\n ...state,\n fetching: true\n };\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n fetched: true,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE_PATIENT:\n case UPDATE_PATIENT:\n case CREATE_STATEMENT:\n case CREATE_COMMENT:\n case CREATE_MESSAGE:\n case CREATE_ATTACHMENT:\n case DELETE_TEST_RESULT:\n case UPDATE_COMMENT:\n case DELETE_COMMENT:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.PATIENTS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.PATIENTS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const createPatient = (newPatient) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.PATIENTS}`, newPatient)\n .then(() => {\n dispatch({ type: CREATE_PATIENT });\n dispatch(fetchAll(false));\n });\n\nexport const updatePatient = (patientId, updatedPatient) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.PATIENTS}/${patientId}`, updatedPatient)\n .then(() => {\n dispatch({ type: UPDATE_PATIENT });\n dispatch(fetchSingle(patientId));\n });\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const createComment = (patientId, newComment) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.PATIENTS}/${patientId}/comments`, newComment).then(() => {\n dispatch({ type: CREATE_COMMENT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const updateComment = (patientId, commentId, updatedComment) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.PATIENTS}/${patientId}/comments/${commentId}`, updatedComment).then(() => {\n dispatch({ type: UPDATE_COMMENT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const deleteComment = (patientId, commentId) => (dispatch) =>\n axios.delete(`${ADMIN_ENDPOINTS.PATIENTS}/${patientId}/comments/${commentId}`).then(() => {\n dispatch({ type: DELETE_COMMENT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const createStatement = (patientId, newStatement) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.PATIENTS}/${patientId}/statements`, newStatement).then(() => {\n dispatch({ type: CREATE_STATEMENT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const createMessage = (patientId, newMessage) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.PATIENTS}/${patientId}/messages`, newMessage).then(() => {\n dispatch({ type: CREATE_MESSAGE });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const createAttachment = (id, newAttachment) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.PATIENTS}/${id}/attachment`, newAttachment,{\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n .then(() => {\n dispatch({ type: CREATE_ATTACHMENT });\n dispatch(fetchSingle(id, false));\n });\n\nexport const deleteTestResult = (id, patientId) => (dispatch) =>\n axios.delete(`${ADMIN_ENDPOINTS.TESTS}/${id}`).then(() => {\n dispatch({ type: DELETE_TEST_RESULT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const usePatientState = () => ({\n fetching: useSelector(({ admin: { patients: { fetching } } }) => fetching),\n fetched: useSelector(({ admin: { patients: { fetched } } }) => fetched),\n patients: useSelector(({ admin: { patients: { data } } }) => data),\n current: useSelector(({ admin: { patients: { current } } }) => current),\n});\n\nexport const usePatientDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n createPatient: (newPatient) => dispatch(createPatient(newPatient)),\n updatePatient: (patientId, updatedPatient) => dispatch(updatePatient(patientId, updatedPatient)),\n clearCurrent: () => dispatch(clearCurrent()),\n createComment: (patientId, newComment) => dispatch(createComment(patientId, newComment)),\n updateComment: (patientId, commentId, updatedComment) => dispatch(updateComment(patientId, commentId, updatedComment)),\n deleteComment: (patientId, statementId) => dispatch(deleteComment(patientId, statementId)),\n createStatement: (patientId, newStatement) => dispatch(createStatement(patientId, newStatement)),\n createMessage: (patientId, newMessage) => dispatch(createMessage(patientId, newMessage)),\n deleteTestResult: (id, patientId) => dispatch(deleteTestResult(id, patientId)),\n createAttachment: (id, newAttachment) => dispatch(createAttachment(id, newAttachment))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/DOCTORS/FETCHING';\nconst FETCHED_ALL = 'ADMIN/DOCTORS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'ADMIN/DOCTORS/FETCHED_SINGLE';\nconst CREATE = 'ADMIN/DOCTORS/CREATE';\nconst CLEAR_CURRENT = 'ADMIN/DOCTORS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n fetched: false,\n data: [],\n current: {},\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n fetched: true,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.DOCTORS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id) => (dispatch) => {\n dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.DOCTORS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const createDoctor = (newDoctor) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.DOCTORS}`, newDoctor)\n .then(() => {\n dispatch({ type: CREATE });\n dispatch(fetchAll(false));\n });\n\nexport const useDoctorState = () => ({\n fetching: useSelector(({ admin: { doctors: { fetching } } }) => fetching),\n fetched: useSelector(({ admin: { doctors: { fetched } } }) => fetched),\n doctors: useSelector(({ admin: { doctors: { data } } }) => data),\n current: useSelector(({ admin: { doctors: { current } } }) => current),\n});\n\nexport const useDoctorDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n createDoctor: (newDoctor) => dispatch(createDoctor(newDoctor))\n };\n};\n","import axios from 'axios';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/CASES/FETCHING';\nconst FETCHED_ALL = 'ADMIN/CASES/FETCHED_ALL';\nconst FETCHED_SINGLE = 'ADMIN/CASES/FETCHED_SINGLE';\nconst CREATE_CASE = 'ADMIN/CASES/CREATE_CASE';\nconst CREATE_COMMENT = 'ADMIN/CASES/CREATE_COMMENT';\nconst UPDATE_COMMENT = 'ADMIN/CASES/UPDATE_COMMENT';\nconst DELETE_COMMENT = 'ADMIN/CASES/DELETE_COMMENT';\nconst CREATE_STATEMENT = 'ADMIN/CASES/CREATE_STATEMENT';\nconst CREATE_ATTACHMENT = 'ADMIN/CASES/CREATE_ATTACHMENT';\nconst UPDATE_SURVEY_ANSWERS = 'ADMIN/CASES/UPDATE_SURVEY_ANSWERS';\nconst ADD_REFERRALS = 'ADMIN/CASES/ADD_REFERRALS';\nconst DELETE_TEST_RESULT = 'ADMIN/PATIENTS/DELETE_TEST_RESULT';\nconst CLEAR_CURRENT = 'ADMIN/CASES/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n data: [],\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE_CASE:\n case CREATE_STATEMENT:\n case CREATE_COMMENT:\n case UPDATE_COMMENT:\n case DELETE_COMMENT:\n case CREATE_ATTACHMENT:\n case ADD_REFERRALS:\n case UPDATE_SURVEY_ANSWERS:\n case DELETE_TEST_RESULT:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.CASES}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.CASES}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const createCase = (newCase) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.CASES}`, newCase)\n .then(() => {\n dispatch({ type: CREATE_CASE });\n dispatch(fetchAll(false));\n });\n\n\nconst updateSurveyAnswers = (caseId, surveyId, surveyVersionId, updatedSurvey) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.SURVEYS}/${surveyId}`, {\n answers: { ...updatedSurvey },\n versionId: surveyVersionId\n }).then(() => {\n dispatch({ type: UPDATE_SURVEY_ANSWERS });\n dispatch(fetchSingle(caseId, false));\n });\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const createComment = (caseId, newComment) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.CASES}/${caseId}/comments`, newComment).then(() => {\n dispatch({ type: CREATE_COMMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const updateComment = (caseId, commentId, updatedComment) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.CASES}/${caseId}/comments/${commentId}`, updatedComment).then(() => {\n dispatch({ type: UPDATE_COMMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const deleteComment = (caseId, statementId) => (dispatch) =>\n axios.delete(`${ADMIN_ENDPOINTS.CASES}/${caseId}/comments/${statementId}`).then(() => {\n dispatch({ type: DELETE_COMMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const createStatement = (caseId, newStatement) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.CASES}/${caseId}/statements`, newStatement).then(() => {\n dispatch({ type: CREATE_STATEMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const addReferrals = (caseId, newReferralIds) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.CASES}/${caseId}/referrals`, newReferralIds).then(() => {\n dispatch({ type: ADD_REFERRALS });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const createAttachment = (id, newAttachment) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.CASES}/${id}/attachment`, newAttachment,{\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n .then(() => {\n dispatch({ type: CREATE_ATTACHMENT });\n dispatch(fetchSingle(id, false));\n });\n\nexport const deleteTestResult = (id, caseId) => (dispatch) =>\n axios.delete(`${ADMIN_ENDPOINTS.TESTS}/${id}`).then(() => {\n dispatch({ type: DELETE_TEST_RESULT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const useCaseState = () => ({\n fetching: useSelector(({ admin: { cases: { fetching } } }) => fetching),\n cases: useSelector(({ admin: { cases: { data } } }) => data),\n current: useSelector(({ admin: { cases: { current } } }) => current),\n});\n\nexport const useCaseDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n createCase: (newCase) => dispatch(createCase(newCase)),\n updateSurveyAnswers: (caseId, surveyId, versionId, updatedSurvey) =>\n dispatch(updateSurveyAnswers(caseId, surveyId, versionId, updatedSurvey)),\n createComment: (caseId, newComment) => dispatch(createComment(caseId, newComment)),\n updateComment: (caseId, commentId, updatedComment) => dispatch(updateComment(caseId, commentId, updatedComment)),\n deleteComment: (caseId, statementId) => dispatch(deleteComment(caseId, statementId)),\n createStatement: (caseId, newStatement) => dispatch(createStatement(caseId, newStatement)),\n createAttachment: (id, newAttachment) => dispatch(createAttachment(id, newAttachment)),\n deleteTestResult: (id, caseId) => dispatch(deleteTestResult(id, caseId)),\n addReferrals: (id, newReferralIds) => dispatch(addReferrals(id, newReferralIds))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/TESTS/FETCHING';\nconst FETCHED_ALL = 'ADMIN/TESTS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'ADMIN/TESTS/FETCHED_SINGLE';\nconst CLEAR_CURRENT = 'ADMIN/TESTS/CLEAR_CURRENT';\nconst CREATE_CASE_TEST_RESULT = 'ADMIN/TESTS/CREATE_CASE_TEST_RESULT';\nconst CREATE_PATIENT_TEST_RESULT = 'ADMIN/TESTS/CREATE_PATIENT_TEST_RESULT';\nconst CREATE_PATIENT_LABPORTALEN_TEST_RESULT = 'ADMIN/TESTS/CREATE_PATIENT_LABPORTALEN_TEST_RESULT';\nconst CREATE_CASE_LABPORTALEN_TEST_RESULT = 'ADMIN/TESTS/CREATE_CASE_LABPORTALEN_TEST_RESULT';\nconst SIGNED = 'ADMIN/TESTS/SIGNED';\n\nconst initialState = {\n fetching: false,\n data: [],\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE_CASE_TEST_RESULT:\n case CREATE_PATIENT_TEST_RESULT:\n case CREATE_PATIENT_LABPORTALEN_TEST_RESULT:\n case CREATE_CASE_LABPORTALEN_TEST_RESULT:\n case SIGNED:\n default:\n return state;\n }\n};\n\nexport const fetchAll = () => (dispatch) => {\n dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.TESTS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.TESTS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const createCaseTestResult = (newTestResult) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.TESTS}/case`, newTestResult).then(() => {\n dispatch({ type: CREATE_CASE_TEST_RESULT });\n dispatch(fetchAll());\n });\n\nexport const createPatientTestResult = (newTestResult) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.TESTS}/patient`, newTestResult, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n }).then(() => {\n dispatch({ type: CREATE_PATIENT_TEST_RESULT });\n dispatch(fetchAll());\n });\n\nexport const createPatientLabportalenTestResult = (newTestResult) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.TESTS}/patient-labportalen`, newTestResult).then(() => {\n dispatch({ type: CREATE_PATIENT_LABPORTALEN_TEST_RESULT });\n });\n\nexport const createCaseLabportalenTestResult = (newTestResult) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.TESTS}/case-labportalen`, newTestResult).then(() => {\n dispatch({ type: CREATE_CASE_LABPORTALEN_TEST_RESULT });\n });\n\nexport const signTestResult = (id) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.TESTS}/${id}/sign`)\n .then(() => {\n dispatch({ type: SIGNED });\n dispatch(fetchSingle(id, false));\n });\n\nexport const useTestState = () => ({\n fetching: useSelector(({ admin: { tests: { fetching } } }) => fetching),\n tests: useSelector(({ admin: { tests: { data } } }) => data),\n current: useSelector(({ admin: { tests: { current } } }) => current),\n});\n\nexport const useTestDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n createCaseTestResult: (newTestResult) => dispatch(createCaseTestResult(newTestResult)),\n createPatientTestResult: (newTestResult) => dispatch(createPatientTestResult(newTestResult)),\n createPatientLabportalenTestResult: (newTestResult) => dispatch(createPatientLabportalenTestResult(newTestResult)),\n createCaseLabportalenTestResult: (newTestResult) => dispatch(createCaseLabportalenTestResult(newTestResult)),\n signTestResult: (id) => dispatch(signTestResult(id))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/LABORATORIES/FETCHING';\nconst FETCHED_ALL = 'ADMIN/LABORATORIES/FETCHED_ALL';\nconst CREATE = 'ADMIN/LABORATORIES/CREATE';\nconst UPDATE = 'ADMIN/LABORATORIES/UPDATE';\nconst UPDATE_ANALYSIS = 'ADMIN/LABORATORIES/UPDATE_ANALYSIS';\n\nconst initialState = {\n fetching: false,\n fetched: false,\n data: [],\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n fetched: true,\n data: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true\n };\n case CREATE:\n case UPDATE:\n case UPDATE_ANALYSIS:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.LABORATORIES}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const createLaboratory = (newLab) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.LABORATORIES}`, newLab)\n .then(() => {\n dispatch({ type: CREATE });\n dispatch(fetchAll(false));\n });\n\nexport const updateLaboratory = (labId, updatedLab) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.LABORATORIES}/${labId}`, updatedLab)\n .then(() => {\n dispatch({ type: UPDATE });\n dispatch(fetchAll(false));\n });\n\nexport const updateAnalysis = (labId) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.LABORATORIES}/${labId}/update-analysis`)\n .then(() => {\n dispatch({ type: UPDATE_ANALYSIS });\n dispatch(fetchAll(false));\n });\n\nexport const useLaboratoryState = () => ({\n fetching: useSelector(({ admin: { laboratories: { fetching } } }) => fetching),\n fetched: useSelector(({ admin: { laboratories: { fetched } } }) => fetched),\n laboratories: useSelector(({ admin: { laboratories: { data } } }) => data),\n});\n\nexport const useLaboratoryDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchAll: () => dispatch(fetchAll()),\n createLaboratory: (newLab) => dispatch(createLaboratory(newLab)),\n updateLaboratory: (labId, updatedLab) => dispatch(updateLaboratory(labId, updatedLab)),\n updateAnalysis: (labId) => dispatch(updateAnalysis(labId))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/HEALTH-PACKAGES/FETCHING';\nconst FETCHED_ALL = 'ADMIN/HEALTH-PACKAGES/FETCHED_ALL';\nconst CREATE = 'ADMIN/HEALTH-PACKAGES/CREATE';\nconst UPDATE = 'ADMIN/HEALTH-PACKAGES/UPDATE';\n\nconst initialState = {\n fetching: false,\n fetched: false,\n data: [],\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n fetched: true,\n data: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true\n };\n case CREATE:\n case UPDATE:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.HEALTHPACKAGES}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const createHealthPackage = (newHealthPackage) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.HEALTHPACKAGES}`, newHealthPackage)\n .then(() => {\n dispatch({ type: CREATE });\n dispatch(fetchAll(false));\n });\n\nexport const updateHealthPackage = (healthPackageId, updatedHealthPackage) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.HEALTHPACKAGES}/${healthPackageId}`, updatedHealthPackage)\n .then(() => {\n dispatch({ type: UPDATE });\n dispatch(fetchAll(false));\n });\n\nexport const useHealthPackageState = () => ({\n fetching: useSelector(({ admin: { healthPackages: { fetching } } }) => fetching),\n fetched: useSelector(({ admin: { healthPackages: { fetched } } }) => fetched),\n healthPackages: useSelector(({ admin: { healthPackages: { data } } }) => data),\n});\n\nexport const useHealthPackageDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchAll: () => dispatch(fetchAll()),\n createHealthPackage: (newHealthPackage) => dispatch(createHealthPackage(newHealthPackage)),\n updateHealthPackage: (healthPackageId, updatedHealthPackage) =>\n dispatch(updateHealthPackage(healthPackageId, updatedHealthPackage)),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/REFERRALS/FETCHING';\nconst FETCHED_ALL = 'ADMIN/REFERRALS/FETCHED_ALL';\nconst CREATE = 'ADMIN/REFERRALS/CREATE';\nconst UPDATE = 'ADMIN/REFERRALS/UPDATE';\n\nconst initialState = {\n fetching: false,\n fetched: false,\n data: [],\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n fetched: true,\n data: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true\n };\n case CREATE:\n case UPDATE:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.REFERRALS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const createReferral = (newReferral) => (dispatch) =>\n axios.post(`${ADMIN_ENDPOINTS.REFERRALS}`, newReferral)\n .then(() => {\n dispatch({ type: CREATE });\n dispatch(fetchAll(false));\n });\n\nexport const updateReferral = (referralId, updatedReferral) => (dispatch) =>\n axios.put(`${ADMIN_ENDPOINTS.REFERRALS}/${referralId}`, updatedReferral)\n .then(() => {\n dispatch({ type: UPDATE });\n dispatch(fetchAll());\n });\n\nexport const useReferralState = () => ({\n fetching: useSelector(({ admin: { referrals: { fetching } } }) => fetching),\n fetched: useSelector(({ admin: { referrals: { fetched } } }) => fetched),\n referrals: useSelector(({ admin: { referrals: { data } } }) => data),\n});\n\nexport const useReferralDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchAll: () => dispatch(fetchAll()),\n createReferral: (newReferral) => dispatch(createReferral(newReferral)),\n updateReferral: (referralId, updatedReferral) =>\n dispatch(updateReferral(referralId, updatedReferral)),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'ADMIN/SURVEYS/FETCHING';\nconst FETCHED_SINGLE = 'ADMIN/SURVEYS/FETCHED_SINGLE';\nconst CLEAR_CURRENT = 'ADMIN/SURVEYS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: true,\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n default:\n return state;\n }\n};\n\n\nconst fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${ADMIN_ENDPOINTS.SURVEYS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nconst clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const useSurveyState = () => ({\n fetching: useSelector(({ admin: { surveys: { fetching } } }) => fetching),\n current: useSelector(({ admin: { surveys: { current } } }) => current),\n});\n\nexport const useSurveyDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n clearCurrent: () => dispatch(clearCurrent()),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { DOCTOR_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'DOCTOR/PATIENTS/FETCHING';\nconst FETCHED_ALL = 'DOCTOR/PATIENTS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'DOCTOR/PATIENTS/FETCHED_SINGLE';\nconst CREATE_STATEMENT = 'DOCTOR/PATIENTS/CREATE_STATEMENT';\nconst CREATE_ATTACHMENT = 'DOCTOR/PATIENTS/CREATE_ATTACHMENT';\nconst CLEAR_CURRENT = 'DOCTOR/PATIENTS/CLEAR_CURRENT';\nconst CREATE_COMMENT = 'DOCTOR/PATIENTS/CREATE_COMMENT';\nconst UPDATE_COMMENT = 'DOCTOR/PATIENTS/UPDATE_COMMENT';\nconst DELETE_COMMENT = 'DOCTOR/PATIENTS/DELETE_COMMENT';\n\nconst initialState = {\n fetching: false,\n data: [],\n current: {},\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHING:\n return {\n ...state,\n fetching: true\n };\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE_STATEMENT:\n case CREATE_ATTACHMENT:\n case CREATE_COMMENT:\n case UPDATE_COMMENT:\n case DELETE_COMMENT:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${DOCTOR_ENDPOINTS.PATIENTS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${DOCTOR_ENDPOINTS.PATIENTS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const createStatement = (patientId, newStatement) => (dispatch) =>\n axios.post(`${DOCTOR_ENDPOINTS.PATIENTS}/${patientId}/statements`, newStatement).then(() => {\n dispatch({ type: CREATE_STATEMENT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const createAttachment = (id, newAttachment) => (dispatch) =>\n axios.post(`${DOCTOR_ENDPOINTS.PATIENTS}/${id}/attachment`, newAttachment,{\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n .then(() => {\n dispatch({ type: CREATE_ATTACHMENT });\n dispatch(fetchSingle(id, false));\n });\n\nexport const createComment = (patientId, newComment) => (dispatch) =>\n axios.post(`${DOCTOR_ENDPOINTS.PATIENTS}/${patientId}/comments`, newComment).then(() => {\n dispatch({ type: CREATE_COMMENT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const updateComment = (patientId, commentId, updatedComment) => (dispatch) =>\n axios.put(`${DOCTOR_ENDPOINTS.PATIENTS}/${patientId}/comments/${commentId}`, updatedComment).then(() => {\n dispatch({ type: UPDATE_COMMENT });\n dispatch(fetchSingle(patientId, false));\n });\n\nexport const deleteComment = (patientId, commentId) => (dispatch) =>\n axios.delete(`${DOCTOR_ENDPOINTS.PATIENTS}/${patientId}/comments/${commentId}`).then(() => {\n dispatch({ type: DELETE_COMMENT });\n dispatch(fetchSingle(patientId, false));\n });\nexport const usePatientState = () => ({\n fetching: useSelector(({ doctor: { patients: { fetching } } }) => fetching),\n patients: useSelector(({ doctor: { patients: { data } } }) => data),\n current: useSelector(({ doctor: { patients: { current } } }) => current),\n});\n\nexport const usePatientDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n createStatement: (caseId, newStatement) => dispatch(createStatement(caseId, newStatement)),\n createAttachment: (id, newAttachment) => dispatch(createAttachment(id, newAttachment)),\n createComment: (patientId, newComment) => dispatch(createComment(patientId, newComment)),\n updateComment: (patientId, commentId, updatedComment) => dispatch(updateComment(patientId, commentId, updatedComment)),\n deleteComment: (patientId, statementId) => dispatch(deleteComment(patientId, statementId)),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DOCTOR_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'DOCTOR/CASES/FETCHING';\nconst FETCHED_ALL = 'DOCTOR/CASES/FETCHED_ALL';\nconst FETCHED_SINGLE = 'DOCTOR/CASES/FETCHED_SINGLE';\nconst CREATE_STATEMENT = 'DOCTOR/CASES/CREATE_STATEMENT';\nconst CREATE_ATTACHMENT = 'DOCTOR/CASES/CREATE_ATTACHMENT';\nconst CLEAR_CURRENT = 'DOCTOR/CASES/CLEAR_CURRENT';\nconst CREATE_COMMENT = 'DOCTOR/CASES/CREATE_COMMENT';\nconst UPDATE_COMMENT = 'DOCTOR/CASES/UPDATE_COMMENT';\nconst DELETE_COMMENT = 'DOCTOR/CASES/DELETE_COMMENT';\n\nconst initialState = {\n fetching: false,\n data: [],\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE_STATEMENT:\n case CREATE_ATTACHMENT:\n case CREATE_COMMENT:\n case UPDATE_COMMENT:\n case DELETE_COMMENT:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${DOCTOR_ENDPOINTS.CASES}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${DOCTOR_ENDPOINTS.CASES}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const createStatement = (caseId, newStatement) => (dispatch) =>\n axios.post(`${DOCTOR_ENDPOINTS.CASES}/${caseId}/statements`, newStatement).then(() => {\n dispatch({ type: CREATE_STATEMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const createAttachment = (id, newAttachment) => (dispatch) =>\n axios.post(`${DOCTOR_ENDPOINTS.CASES}/${id}/attachment`, newAttachment,{\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n .then(() => {\n dispatch({ type: CREATE_ATTACHMENT });\n dispatch(fetchSingle(id, false));\n });\n\nexport const createComment = (caseId, newComment) => (dispatch) =>\n axios.post(`${DOCTOR_ENDPOINTS.CASES}/${caseId}/comments`, newComment).then(() => {\n dispatch({ type: CREATE_COMMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const updateComment = (caseId, commentId, updatedComment) => (dispatch) =>\n axios.put(`${DOCTOR_ENDPOINTS.CASES}/${caseId}/comments/${commentId}`, updatedComment).then(() => {\n dispatch({ type: UPDATE_COMMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const deleteComment = (caseId, statementId) => (dispatch) =>\n axios.delete(`${DOCTOR_ENDPOINTS.CASES}/${caseId}/comments/${statementId}`).then(() => {\n dispatch({ type: DELETE_COMMENT });\n dispatch(fetchSingle(caseId, false));\n });\n\nexport const useCaseState = () => ({\n fetching: useSelector(({ doctor: { cases: { fetching } } }) => fetching),\n cases: useSelector(({ doctor: { cases: { data } } }) => data),\n current: useSelector(({ doctor: { cases: { current } } }) => current),\n});\n\nexport const useCaseDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n createStatement: (caseId, newStatement) => dispatch(createStatement(caseId, newStatement)),\n createAttachment: (id, newAttachment) => dispatch(createAttachment(id, newAttachment)),\n createComment: (caseId, newComment) => dispatch(createComment(caseId, newComment)),\n updateComment: (caseId, commentId, updatedComment) => dispatch(updateComment(caseId, commentId, updatedComment)),\n deleteComment: (caseId, statementId) => dispatch(deleteComment(caseId, statementId)),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DOCTOR_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'DOCTOR/TESTS/FETCHING';\nconst FETCHED_ALL = 'DOCTOR/TESTS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'DOCTOR/TESTS/FETCHED_SINGLE';\nconst SIGNED = 'DOCTOR/TESTS/SIGNED';\nconst CLEAR_CURRENT = 'DOCTOR/TESTS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n data: [],\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case SIGNED:\n default:\n return state;\n }\n};\n\nexport const fetchAll = () => (dispatch) => {\n dispatch({ type: FETCHING });\n\n return axios.get(`${DOCTOR_ENDPOINTS.TESTS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${DOCTOR_ENDPOINTS.TESTS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const signTestResult = (id) => (dispatch) =>\n axios.post(`${DOCTOR_ENDPOINTS.TESTS}/${id}/sign`)\n .then(() => {\n dispatch({ type: SIGNED });\n dispatch(fetchSingle(id, false));\n });\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const useTestState = () => ({\n fetching: useSelector(({ doctor: { tests: { fetching } } }) => fetching),\n tests: useSelector(({ doctor: { tests: { data } } }) => data),\n current: useSelector(({ doctor: { tests: { current } } }) => current),\n});\n\nexport const useTestDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n signTestResult: (id) => dispatch(signTestResult(id))\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DOCTOR_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'DOCTOR/SURVEYS/FETCHING';\nconst FETCHED_SINGLE = 'DOCTOR/SURVEYS/FETCHED_SINGLE';\nconst CLEAR_CURRENT = 'DOCTOR/SURVEYS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: true,\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n default:\n return state;\n }\n};\n\n\nconst fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${DOCTOR_ENDPOINTS.SURVEYS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nconst clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const useSurveyState = () => ({\n fetching: useSelector(({ doctor: { surveys: { fetching } } }) => fetching),\n current: useSelector(({ doctor: { surveys: { current } } }) => current),\n});\n\nexport const useSurveyDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n clearCurrent: () => dispatch(clearCurrent()),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PATIENT_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'PATIENT/CASES/FETCHING';\nconst FETCHED_ALL = 'PATIENT/CASES/FETCHED_ALL';\nconst FETCHED_SINGLE = 'PATIENT/CASES/FETCHED_SINGLE';\nconst CREATE_ATTACHMENT = 'PATIENT/CASES/CREATE_ATTACHMENT';\nconst CLEAR_CURRENT = 'PATIENT/CASES/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n data: [],\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case CREATE_ATTACHMENT:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.CASES}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.CASES}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const createAttachment = (id, newAttachment) => (dispatch) =>\n axios.post(`${PATIENT_ENDPOINTS.CASES}/${id}/attachment`, newAttachment,{\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n .then(() => {\n dispatch({ type: CREATE_ATTACHMENT });\n dispatch(fetchSingle(id, false));\n });\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const useCaseState = () => ({\n fetching: useSelector(({ patient: { cases: { fetching } } }) => fetching),\n cases: useSelector(({ patient: { cases: { data } } }) => data),\n current: useSelector(({ patient: { cases: { current } } }) => current),\n});\n\nexport const useCaseDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n createAttachment: (id, newAttachment) => dispatch(createAttachment(id, newAttachment)),\n clearCurrent: () => dispatch(clearCurrent()),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PATIENT_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'PATIENT/MESSAGES/FETCHING';\nconst FETCHED_ALL = 'PATIENT/MESSAGES/FETCHED_ALL';\nconst CREATE_MESSAGE = 'PATIENT/MESSAGES/CREATE_MESSAGE';\n\nconst initialState = {\n fetching: false,\n data: [],\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CREATE_MESSAGE:\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.MESSAGES}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const createMessage = (newMessage) => (dispatch) =>\n axios.post(`${PATIENT_ENDPOINTS.MESSAGES}`, newMessage).then(() => {\n dispatch({ type: CREATE_MESSAGE });\n dispatch(fetchAll(false));\n });\n\nexport const useMessageState = () => ({\n fetching: useSelector(({ patient: { messages: { fetching } } }) => fetching),\n messages: useSelector(({ patient: { messages: { data } } }) => data),\n});\n\nexport const useMessageDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchAll: () => dispatch(fetchAll()),\n createMessage: (newMessage) => dispatch(createMessage(newMessage)),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PATIENT_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'PATIENT/STATEMENTS/FETCHING';\nconst FETCHED_ALL = 'PATIENT/STATEMENTS/FETCHED_ALL';\nconst CLEAR_CURRENT = 'PATIENT/STATEMENTS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n data: {},\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.STATEMENTS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const useStatementState = () => ({\n fetching: useSelector(({ patient: { statements: { fetching } } }) => fetching),\n statements: useSelector(({ patient: { statements: { data } } }) => data),\n});\n\nexport const useStatementDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PATIENT_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'PATIENT/SURVEYS/FETCHING';\nconst FETCHED_ALL = 'PATIENT/SURVEYS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'PATIENT/SURVEYS/FETCHED_SINGLE'\nconst UPDATE = 'PATIENT/SURVEYS/UPDATE';\nconst CLEAR_CURRENT = 'PATIENT/SURVEYS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: true,\n data: [],\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n case UPDATE:\n default:\n return state;\n }\n};\n\nconst fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.SURVEYS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nconst fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.SURVEYS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nconst clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nconst update = (id, versionId, updatedSurvey) => (dispatch) =>\n axios.put(`${PATIENT_ENDPOINTS.SURVEYS}/${id}`, {\n answers: { ...updatedSurvey },\n versionId,\n }).then(() => {\n dispatch({ type: UPDATE });\n dispatch(fetchSingle(id, false));\n });\n\nexport const useSurveyState = () => ({\n fetching: useSelector(({ patient: { surveys: { fetching } } }) => fetching),\n surveys: useSelector(({ patient: { surveys: { data } } }) => data),\n current: useSelector(({ patient: { surveys: { current } } }) => current),\n});\n\nexport const useSurveyDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n update: (id, versionId, updatedSurvey) => dispatch(update(id, versionId, updatedSurvey)),\n clearCurrent: () => dispatch(clearCurrent()),\n };\n};\n","import axios from 'axios';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PATIENT_ENDPOINTS } from 'utils/api';\n\nconst FETCHING = 'PATIENT/TESTS/FETCHING';\nconst FETCHED_ALL = 'PATIENT/TESTS/FETCHED_ALL';\nconst FETCHED_SINGLE = 'PATIENT/TESTS/FETCHED_SINGLE';\nconst CLEAR_CURRENT = 'PATIENT/TESTS/CLEAR_CURRENT';\n\nconst initialState = {\n fetching: false,\n data: [],\n current: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case FETCHED_ALL:\n return {\n ...state,\n fetching: false,\n data: action.payload\n };\n case FETCHED_SINGLE:\n return {\n ...state,\n fetching: false,\n current: action.payload\n };\n case FETCHING:\n return {\n ...state,\n fetching: true,\n };\n case CLEAR_CURRENT:\n return {\n ...state,\n current: {}\n };\n default:\n return state;\n }\n};\n\nexport const fetchAll = (showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.TESTS}`)\n .then((res) => dispatch({ type: FETCHED_ALL, payload: res.data }));\n};\n\nexport const fetchSingle = (id, showLoader = true) => (dispatch) => {\n if (showLoader) dispatch({ type: FETCHING });\n\n return axios.get(`${PATIENT_ENDPOINTS.TESTS}/${id}`)\n .then((res) => dispatch({ type: FETCHED_SINGLE, payload: res.data }));\n};\n\nexport const clearCurrent = () => (dispatch) => dispatch({ type: CLEAR_CURRENT });\n\nexport const useTestState = () => ({\n fetching: useSelector(({ patient: { tests: { fetching } } }) => fetching),\n tests: useSelector(({ patient: { tests: { data } } }) => data),\n current: useSelector(({ patient: { tests: { current } } }) => current),\n});\n\nexport const useTestDispatch = () => {\n const dispatch = useDispatch();\n return {\n fetchSingle: (id) => dispatch(fetchSingle(id)),\n fetchAll: () => dispatch(fetchAll()),\n clearCurrent: () => dispatch(clearCurrent()),\n };\n};\n","import { combineReducers } from 'redux';\nimport { connectRouter } from 'connected-react-router';\n\nimport account from './account';\nimport notifications from './notifications';\n\n// Admin modules\nimport admins from './admin/admins';\nimport adminPatients from './admin/patients';\nimport doctors from './admin/doctors';\nimport adminCases from './admin/cases';\nimport adminTests from './admin/tests';\nimport laboratories from './admin/laboratories';\nimport healthPackages from './admin/healthPackages';\nimport referrals from './admin/referrals';\nimport adminSurveys from './admin/surveys';\n\n\n// Doctor modules\nimport doctorPatients from './doctor/patients';\nimport doctorCases from './doctor/cases';\nimport doctorTests from './doctor/tests';\nimport doctorSurveys from './doctor/surveys';\n\n// Patient modules\nimport patientCases from './patient/cases';\nimport messages from './patient/messages';\nimport statements from './patient/statements';\nimport patientSurveys from './patient/surveys';\nimport patientTests from './patient/tests';\n\nexport default (history) => combineReducers({\n admin: combineReducers({\n admins,\n patients: adminPatients,\n doctors,\n cases: adminCases,\n tests: adminTests,\n laboratories,\n healthPackages,\n referrals,\n surveys: adminSurveys,\n }),\n doctor: combineReducers({\n patients: doctorPatients,\n cases: doctorCases,\n tests: doctorTests,\n surveys: doctorSurveys,\n }),\n patient: combineReducers({\n cases: patientCases,\n messages,\n statements,\n surveys: patientSurveys,\n tests: patientTests,\n }),\n account,\n notifications,\n router: connectRouter(history)\n});\n","import { applyMiddleware, compose, createStore } from 'redux';\nimport thunk from 'redux-thunk';\nimport { routerMiddleware } from 'connected-react-router';\nimport { createLogger } from 'redux-logger';\nimport reducers from './modules';\n\nexport default function configureStore(history, initialState) {\n const middleware = [thunk, routerMiddleware(history), createLogger()];\n\n // In development, use the browser's Redux dev tools extension if installed\n const enhancers = [];\n const isDevelopment = process.env.NODE_ENV === 'development';\n\n /* eslint-disable no-underscore-dangle */\n if (isDevelopment && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__) {\n enhancers.push(window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /* eslint-enable */\n\n const store = createStore(\n reducers(history),\n initialState,\n compose(\n applyMiddleware(...middleware),\n ...enhancers,\n ),\n );\n\n if (process.env.NODE_ENV !== 'production') {\n if (module.hot) {\n module.hot.accept('./modules', () => {\n store.replaceReducer(reducers);\n });\n }\n }\n\n return store;\n}\n","import axios from 'axios';\nimport { removeAuth } from 'modules/account';\n\nconst httpService = {\n setupInterceptors: (store, history) => {\n axios.interceptors.response.use((response) =>\n // Return response if no errors occurred\n response,\n (error) => {\n if (error.response.status === 401) {\n // Remove authentication status in redux\n store.dispatch(removeAuth());\n\n // Redirect user to login screen\n const { pathname, search } = history.location;\n\n let queryParam = search;\n if (search.includes('notification')) {\n queryParam = `?return=${pathname}${search}`;\n } else if (search === '' && !pathname.includes('login')) {\n queryParam = `?return=${pathname}`;\n }\n if (pathname.includes('dev')) {\n history.push(`/dev/login${queryParam}`);\n } else if (pathname.includes('admin')) {\n history.push(`/admin/login${queryParam}`);\n } else if (pathname.includes('doctor')) {\n history.push(`/doctor/login${queryParam}`);\n } else {\n history.push(`/login${queryParam}`);\n }\n }\n return Promise.reject(error);\n });\n }\n};\n\nexport default httpService;\n","import React from 'react';\nimport { Route } from 'react-router-dom';\n\nimport { useAccountState } from 'modules/account';\n\nconst AuthRoute = ({ component: Component, ...rest }) => {\n const { authenticated } = useAccountState();\n return (authenticated !== null &&\n authenticated && }\n />\n );\n};\n\nexport default AuthRoute;\n","import { useState } from 'react';\n\nexport default (initialValue = false) => {\n const [toggleState, setToggleState] = useState(initialValue);\n const toggle = () => setToggleState(!toggleState);\n return [toggleState, toggle, setToggleState];\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Badge from '@material-ui/core/Badge';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport PeopleIcon from '@material-ui/icons/People';\nimport DoctorsIcon from '@material-ui/icons/LocalHospital';\nimport NotificationIcon from '@material-ui/icons/Notifications';\nimport AdminIcon from '@material-ui/icons/SupervisorAccount';\nimport LaboratoryIcon from '@material-ui/icons/MeetingRoom';\nimport ReferralIcon from '@material-ui/icons/Class';\nimport HealthPackageIcon from '@material-ui/icons/CollectionsBookmark';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Divider from '@material-ui/core/Divider';\n\nimport { useAccountState } from 'modules/account';\nimport { useNotificationState } from 'modules/notifications';\n\nconst AdminMenu = ({ toggle, isMobile, pathname }) => {\n const { user: { unreadNotifications: userUnreadNotifications } } = useAccountState();\n const { unreadNotifications } = useNotificationState();\n\n return (\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n \n \n \n \n \n \n );\n};\n\nAdminMenu.propTypes = {\n toggle: PropTypes.func.isRequired,\n isMobile: PropTypes.bool.isRequired,\n pathname: PropTypes.string.isRequired,\n};\n\nexport default AdminMenu;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport PeopleIcon from '@material-ui/icons/People';\nimport NotificationIcon from '@material-ui/icons/Notifications';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Divider from '@material-ui/core/Divider';\nimport Badge from '@material-ui/core/Badge';\n\nimport { useAccountState } from 'modules/account';\nimport { useNotificationState } from 'modules/notifications';\n\nconst DoctorMenu = ({ toggle, isMobile, pathname }) => {\n const { user: { unreadNotifications: userUnreadNotifications } } = useAccountState();\n const { unreadNotifications } = useNotificationState();\n\n return (\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n \n \n \n \n \n \n );\n};\n\nDoctorMenu.propTypes = {\n toggle: PropTypes.func.isRequired,\n isMobile: PropTypes.bool.isRequired,\n pathname: PropTypes.string.isRequired,\n};\n\nexport default DoctorMenu;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport AttachmentIcon from '@material-ui/icons/Attachment';\nimport MessageIcon from '@material-ui/icons/Message';\nimport NotificationIcon from '@material-ui/icons/Notifications';\nimport TestResultIcon from '@material-ui/icons/AssignmentTurnedIn';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Divider from '@material-ui/core/Divider';\nimport Badge from '@material-ui/core/Badge';\n\nimport { useAccountState } from 'modules/account';\nimport { useNotificationState } from 'modules/notifications';\n\nconst PatientMenu = ({ toggle, isMobile, pathname }) => {\n const {\n user:\n {\n unreadNotifications: userUnreadNotifications,\n unansweredSurveys\n }\n } = useAccountState();\n const { unreadNotifications } = useNotificationState();\n\n return (\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n \n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n isMobile && toggle()}\n >\n \n \n \n \n \n \n \n isMobile && toggle()}\n >\n \n \n \n \n \n );\n};\n\nPatientMenu.propTypes = {\n toggle: PropTypes.func.isRequired,\n isMobile: PropTypes.bool.isRequired,\n pathname: PropTypes.string.isRequired,\n};\n\nexport default PatientMenu;\n","import React from 'react';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Divider from '@material-ui/core/Divider';\nimport Drawer from '@material-ui/core/Drawer';\nimport Hidden from '@material-ui/core/Hidden';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport LogoutIcon from '@material-ui/icons/ExitToApp';\nimport AccountIcon from '@material-ui/icons/AccountBox';\nimport HomeIcon from '@material-ui/icons/Home';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport AdminMenu from './sideDrawer/AdminMenu';\nimport DoctorMenu from './sideDrawer/DoctorMenu';\nimport PatientMenu from './sideDrawer/PatientMenu';\n\nconst drawerWidth = 240;\nconst useStyles = makeStyles((theme) => ({\n drawer: {\n [theme.breakpoints.up('sm')]: {\n width: drawerWidth,\n flexShrink: 0,\n },\n },\n toolbar: theme.mixins.toolbar,\n drawerPaper: {\n width: drawerWidth,\n },\n}));\n\nconst SideDrawer = ({\n toggle, open, role, logout, isLoggedIn\n}) => {\n const classes = useStyles();\n const history = useHistory();\n const { pathname } = useLocation();\n\n const drawer = (isMobile) => (\n \n
\n { role === 'Admin' && }\n { role === 'Doctor' && }\n { role === 'Patient' && }\n \n {/*\n isMobile && toggle()} selected={pathname === '/'}>\n \n \n \n \n */}\n \n { isLoggedIn !== null && isLoggedIn ?\n \n logout().then(() => {\n if (isMobile) toggle();\n history.push(`${role !== 'Patient' ? `/${role.toLowerCase()}` : ''}/login`);\n })\n }>\n \n \n \n :\n isMobile && toggle()} selected={pathname === '/login'}>\n \n \n \n }\n \n \n );\n\n return (\n \n );\n};\n\nSideDrawer.propTypes = {\n isLoggedIn: PropTypes.bool,\n toggle: PropTypes.func.isRequired,\n open: PropTypes.bool.isRequired,\n};\n\n\nexport default SideDrawer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport AppBar from '@material-ui/core/AppBar/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport logo from 'assets/images/lifecheck-logo.png';\n\nconst drawerWidth = 240;\n\nconst useStyles = makeStyles((theme) => ({\n appBar: {\n marginLeft: drawerWidth,\n backgroundColor: 'white',\n color: theme.palette.primary.main,\n [theme.breakpoints.up('sm')]: {\n width: `calc(100% - ${drawerWidth}px)`,\n },\n },\n menuButton: {\n marginRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n display: 'none',\n },\n },\n menuIcon: {\n fill: theme.palette.primary.main,\n },\n}));\n\nconst Header = ({ toggleDrawer }) => {\n const classes = useStyles();\n return (\n \n \n \n \n \n \"Logo\"\n \n \n );\n};\n\nHeader.propTypes = {\n toggleDrawer: PropTypes.func.isRequired\n};\n\nexport default Header;\n","import green from '@material-ui/core/colors/green';\n\nexport default {\n primary: {\n main: '#161e56',\n },\n secondary: {\n main: '#f6e569',\n },\n action: {\n disabledBackground: 'none'\n },\n success: {\n main: green[700],\n contrastText: '#fff'\n }\n};\n","import MuiTableBody from './MuiTableBody';\nimport MuiTableHead from './MuiTableHead';\nimport MuiTab from './MuiTab';\nimport MuiTabs from './MuiTabs';\nimport MUIRichTextEditor from './MUIRichTextEditor';\n\nexport default {\n MuiTableBody,\n MuiTableHead,\n MuiTab,\n MuiTabs,\n MUIRichTextEditor\n};\n","export default {\n root: {\n '& tr:nth-child(odd)': {\n backgroundColor: '#F0F0F0'\n },\n '& td': {\n borderBottom: '1px solid #DFE3E8',\n },\n '& > a:nth-child(odd)': {\n backgroundColor: '#F0F0F0'\n },\n '& > a': {\n borderBottom: '1px solid #DFE3E8',\n },\n }\n};\n","export default {\n root: {\n '& th': {\n borderBottom: '1px solid #DFE3E8',\n fontWeight: 'bold',\n },\n }\n};\n","export default {\n root: {\n fontWeight: 'bold',\n textTransform: 'unset'\n }\n};\n","export default {\n root: {\n padding: '0 10px'\n }\n};\n","export default {\n root: {\n },\n editor: {\n borderBottom: '1px solid gray'\n },\n editorContainer: {\n }\n};\n","import { createMuiTheme } from '@material-ui/core/styles';\n\nimport palette from './palette';\nimport typography from './typography';\nimport overrides from './overrides';\n\nexport default createMuiTheme({\n palette,\n typography,\n overrides,\n shape: {\n borderRadius: 3,\n },\n});\n","export default {\n fontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n h1: {\n fontSize: 48,\n marginBottom: 20,\n fontWeight: 'bold',\n },\n h2: {\n fontSize: 24,\n marginBottom: 20,\n lineHeight: '38px',\n fontWeight: 'bold',\n },\n h3: {\n fontSize: 19,\n fontWeight: 'bold',\n lineHeight: '23px'\n },\n body1: {\n fontSize: 12\n }\n};\n","import { makeStyles } from '@material-ui/core/styles';\n\nexport default makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n toolbar: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n minHeight: '100vh',\n backgroundColor: 'rgba(248,248,248,1)'\n },\n paper: {\n padding: 0,\n maxWidth: 'calc(100vw - 272px)',\n boxShadow: 'none',\n backgroundColor: 'unset',\n [theme.breakpoints.down('sm')]: {\n maxWidth: 'calc(100vw - 16px)',\n },\n },\n container: {\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(2, 1),\n },\n padding: theme.spacing(5, 2),\n },\n\n // Global styles below\n '@global': {\n body: {\n backgroundColor: '#FFFFFF',\n },\n a: {\n color: '#0480C3',\n textDecoration: 'none',\n textDecorationColor: 'none',\n '&: -webkit-any-link': {\n color: 'red'\n }\n },\n '.elevated-container': {\n boxShadow: theme.shadows[2],\n backgroundColor: 'white',\n borderRadius: 3,\n padding: '10px 0',\n marginBottom: 20\n }\n }\n}));\n","import React from 'react';\nimport { ThemeProvider } from '@material-ui/styles';\nimport Paper from '@material-ui/core/Paper';\nimport CssBaseline from '@material-ui/core/CssBaseline';\n\nimport { useAccountState, useAccountDispatch } from 'modules/account';\nimport useToggle from 'hooks/useToggle';\nimport SideDrawer from './components/SideDrawer';\nimport Header from './components/Header';\nimport theme from './theme';\n\nimport useStyles from './styles';\n\nconst Layout = ({ children }) => {\n const [drawerOpen, toggleDrawerOpen] = useToggle();\n const classes = useStyles();\n\n const { authenticated, role } = useAccountState();\n const { logout } = useAccountDispatch();\n\n return (\n \n \n
\n \n \n
\n
\n
\n \n { children }\n \n
\n
\n
\n
\n );\n};\n\nexport default Layout;\n","import React from 'react';\n\nconst Home = () => {\n return (\n
\n Hem\n
\n );\n};\n\nexport default Home;\n","import * as Yup from 'yup';\n\nexport const LoginSchema = Yup.object().shape({\n personalNumber: Yup\n .string()\n .matches(/^[0-9]{12}$/, 'Must be exactly 12 digits')\n});\nexport const DevLoginSchema = Yup.object().shape({\n personalNumber: Yup\n .string()\n .matches(/^[0-9]{12}$/, 'Must be exactly 12 digits'),\n password: Yup\n .string()\n .required('required')\n});\n\nexport const UserCreationSchema = Yup.object().shape({\n personalNumber: Yup\n .string()\n .matches(/^[0-9]{12}$/, 'Must be exactly 12 digits')\n .required('Required'),\n firstName: Yup\n .string()\n .required('Required.'),\n lastName: Yup\n .string()\n .required('Required.'),\n email: Yup\n .string()\n .email()\n .required('Required.'),\n password: Yup\n .string()\n .required('Required.')\n});\n\nexport const PatientCreationSchema = Yup.object().shape({\n personalNumber: Yup.string().matches(/^[0-9]{12}$/, 'Det måste vara exakt 12 siffror enligt (ÅÅÅÅMMDDXXXX)'),\n firstName: Yup.string().required('Required.'),\n lastName: Yup.string().required('Required.'),\n address: Yup.string(),\n postCode: Yup.string(),\n city: Yup.string(),\n country: Yup.string(),\n phoneNumber: Yup.string(),\n gender: Yup.string(),\n email: Yup.string().email().required('Required.'),\n password: Yup.string(),\n phoneWork: Yup.string(),\n phoneHome: Yup.string(),\n length: Yup.string(),\n weight: Yup.string()\n});\n\nexport const CaseCreationSchema = Yup.object().shape({\n healthPackageId: Yup\n .number()\n .required('Required.'),\n patientId: Yup\n .number()\n .required('Required.')\n});\n\nexport const TestResultCreationSchema = Yup.object().shape({\n title: Yup\n .string(),\n requisitionId: Yup\n .string()\n});\n\nexport const CommentCreationSchema = Yup.object().shape({\n content: Yup\n .string()\n .required('Required'),\n doctorHasPermission: Yup\n .bool()\n});\n\nexport const StatementCreationSchema = Yup.object().shape({\n content: Yup\n .string()\n .required('Required'),\n});\n\nexport const MessageCreationSchema = Yup.object().shape({\n content: Yup\n .string()\n .required('Required'),\n});\n\nexport const LaboratoryCreationSchema = Yup.object().shape({\n name: Yup\n .string()\n .required('Required'),\n code: Yup\n .string()\n .required('Required'),\n orderCode: Yup\n .string()\n .required('Required'),\n});\n\nexport const HealthPackageCreationSchema = Yup.object().shape({\n name: Yup\n .string()\n .required('Required'),\n woocommerceProductId: Yup\n .number()\n .required('Required'),\n});\n\nexport const ReferralCreationSchema = Yup.object().shape({\n name: Yup\n .string()\n .required('Required'),\n laboratoryId: Yup\n .number()\n .required('Required'),\n});\n\nexport const AttachmentCreationSchema = Yup.object().shape({\n description: Yup\n .string(),\n title: Yup\n .string()\n .required('Required')\n});\n\nexport const ReferralsAddedToCaseSchema = Yup.object().shape({\n referralIds: Yup\n .string()\n .required('Required.'),\n});\n\nexport const PatientUpdateSchema = Yup.object().shape({\n firstName: Yup.string(),\n lastName: Yup.string(),\n personalNumber: Yup.string().matches(/^[0-9]{12}$/, 'Must be exactly 12 digits'),\n address: Yup.string(),\n postCode: Yup.string(),\n city: Yup.string(),\n country: Yup.string(),\n phoneNumber: Yup.string(),\n phoneWork: Yup.string(),\n phoneHome: Yup.string(),\n length: Yup.string(),\n weight: Yup.string()\n});\n","\nexport const toBase64 = (file) => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n});\n\nexport const getReturnUrl = () =>\n window.location.search.substring(window.location.search.indexOf('=') + 1);\n","import React from 'react';\nimport axios from 'axios';\nimport { Redirect } from 'react-router-dom';\nimport { Formik } from 'formik';\nimport {\n Button, Container, Grid, TextField, Typography\n} from '@material-ui/core';\n\n\nimport { useAccountState } from 'modules/account';\nimport { LoginSchema } from 'utils/validation';\nimport { getReturnUrl } from 'utils/helpers';\nimport { COMMON_ENDPOINTS } from '../utils/api';\n\nconst Login = () => {\n const { authenticated } = useAccountState();\n return (authenticated ?\n \n :\n {\n axios.post(`${COMMON_ENDPOINTS.BANKID}/login/${values.personalNumber}-p?return=${getReturnUrl()}`).then((res) => {\n window.location.replace(res.data.redirectUrl);\n });\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit\n }) => (\n
\n \n \n \n \n Logga in\n \n \n {window.location.href.includes('error') &&\n \n \n Något gick fel, verifiera att uppgifterna är korrekta och försök igen.\n \n \n }\n \n \n \n \n \n Logga in\n \n \n \n \n
\n )}\n />\n );\n};\n\nexport default Login;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { useHistory, Redirect } from 'react-router-dom';\nimport { Formik } from 'formik';\nimport {\n Button, Container, Grid, TextField, Typography, LinearProgress, FormControl, Select,\n} from '@material-ui/core';\n\nimport { useAccountState, useAccountDispatch } from 'modules/account';\nimport { DevLoginSchema } from 'utils/validation';\nimport { getReturnUrl } from 'utils/helpers';\nimport { COMMON_ENDPOINTS } from '../utils/api';\n\nconst DevLogin = () => {\n const [isDevEnv, setIsDevEnv] = useState(null);\n const [selectedRole, setSelectedRole] = useState('-p');\n const history = useHistory();\n const { authenticated } = useAccountState();\n const { devLogin } = useAccountDispatch();\n\n useEffect(() => {\n axios.get(`${COMMON_ENDPOINTS.ACCOUNT}/environment`).then((res) => {\n if (!res.data) return history.push('/');\n return setIsDevEnv(true);\n });\n }, []);\n\n return (authenticated ?\n \n : isDevEnv === null ?\n \n :\n {\n devLogin(`${values.personalNumber}${selectedRole}`, values.password).then(() => history.push(getReturnUrl()));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit\n }) => (\n
\n \n \n \n \n Logga in\n \n \n \n \n Välj roll\n setSelectedRole(e.target.value)}\n inputProps={{\n name: 'role',\n id: 'role-select',\n }}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Logga in\n \n \n \n \n Utvecklarlogin nedan\n \n \n \n devLogin('111111111111-a', 'Password123!').then(() => history.push(getReturnUrl()))}\n variant=\"outlined\"\n fullWidth\n >\n Admin\n \n \n \n devLogin('222222222222-d', 'Password123!').then(() => history.push(getReturnUrl()))}\n variant=\"outlined\"\n fullWidth\n >\n Doctor\n \n \n \n devLogin('333333333333-p', 'Password123!').then(() => history.push(getReturnUrl()))}\n variant=\"outlined\"\n fullWidth\n >\n Patient\n \n \n \n \n
\n )}\n />\n );\n};\n\nexport default DevLogin;\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { Formik } from 'formik';\nimport axios from 'axios';\nimport {\n Button, Container, Grid, TextField, Typography\n} from '@material-ui/core';\n\nimport { useAccountState } from 'modules/account';\nimport { LoginSchema } from 'utils/validation';\nimport { getReturnUrl } from 'utils/helpers';\nimport { COMMON_ENDPOINTS } from '../utils/api';\n\nconst DoctorLogin = () => {\n const { authenticated } = useAccountState();\n return (authenticated ?\n \n :\n {\n axios.post(`${COMMON_ENDPOINTS.BANKID}/login/${values.personalNumber}-d?return=${getReturnUrl()}`).then((res) => {\n window.location.replace(res.data.redirectUrl);\n });\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit\n }) => (\n
\n \n \n \n \n Logga in som läkare\n \n \n {window.location.href.includes('error') &&\n \n \n Något gick fel, verifiera att uppgifterna är korrekta och försök igen.\n \n \n }\n \n \n \n \n \n Logga in\n \n \n \n \n
\n )}\n />\n );\n};\n\nexport default DoctorLogin;\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { Formik } from 'formik';\nimport axios from 'axios';\nimport {\n Button, Container, Grid, TextField, Typography\n} from '@material-ui/core';\n\nimport { useAccountState } from 'modules/account';\nimport { LoginSchema } from 'utils/validation';\nimport { COMMON_ENDPOINTS } from 'utils/api';\nimport { getReturnUrl } from 'utils/helpers';\n\nconst AdminLogin = () => {\n const { authenticated } = useAccountState();\n return (authenticated ?\n \n :\n {\n axios.post(`${COMMON_ENDPOINTS.BANKID}/login/${values.personalNumber}-a?return=${getReturnUrl()}`).then((res) => {\n window.location.replace(res.data.redirectUrl);\n });\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit\n }) => (\n
\n \n \n \n \n Logga in som admin\n \n \n {window.location.href.includes('error') &&\n \n \n Något gick fel, verifiera att uppgifterna är korrekta och försök igen.\n \n \n }\n \n \n \n \n \n Logga in\n \n \n \n \n
\n )}\n />\n );\n};\n\nexport default AdminLogin;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useInView } from 'react-hook-inview';\nimport { Link } from 'react-router-dom';\nimport {\n Checkbox, ListItem, ListItemIcon, ListItemSecondaryAction, ListItemText\n} from '@material-ui/core';\nimport {\n NotificationsActive as NotificationsActiveIcon,\n NotificationsNone as NotificationsNoneIcon\n} from '@material-ui/icons';\n\nconst NotificationItem = ({\n notification, setRead, role, checked, handleToggle\n}) => {\n const [ref, isVisible] = useInView();\n\n useEffect(() => {\n if (!notification.read && isVisible) setRead(notification.id);\n }, [isVisible]);\n\n return (\n \n \n {notification.read\n ? \n : \n }\n \n \n {['admin', 'doctor'].includes(role.toLowerCase()) &&\n \n \n \n }\n \n );\n};\n\nNotificationItem.propTypes = {\n notification: PropTypes.shape({\n id: PropTypes.string.isRequired,\n createdAt: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n content: PropTypes.string.isRequired,\n read: PropTypes.bool.isRequired,\n done: PropTypes.bool.isRequired,\n url: PropTypes.string.isRequired,\n }).isRequired,\n setRead: PropTypes.func.isRequired,\n handleToggle: PropTypes.func.isRequired,\n checked: PropTypes.bool.isRequired,\n};\n\nexport default NotificationItem;\n","import React, { useEffect } from 'react';\nimport {\n List, LinearProgress\n} from '@material-ui/core';\n\nimport { useAccountState } from 'modules/account';\nimport { useNotificationDispatch, useNotificationState } from 'modules/notifications';\nimport NotificationItem from './notifications/NotificationItem';\n\nconst Notifications = () => {\n const [checked, setChecked] = React.useState([]);\n const { role } = useAccountState();\n const { notifications, fetching } = useNotificationState();\n const { fetchAll, setRead, setDone } = useNotificationDispatch();\n\n useEffect(() => {\n fetchAll();\n }, []);\n\n const handleToggle = (value) => () => {\n const currentIndex = checked.indexOf(value);\n const newChecked = [...checked];\n\n if (currentIndex === -1) {\n newChecked.push(value);\n } else {\n newChecked.splice(currentIndex, 1);\n }\n setDone(value);\n\n setChecked(newChecked);\n };\n\n\n useEffect(() => {\n setChecked(notifications.filter((n) => n.done).map((n) => n.id));\n }, [notifications.length]);\n\n return (\n
\n {fetching ?\n \n :\n notifications.length > 0 ?\n \n {notifications.map((notification) =>\n )}\n \n :\n 'Hittade inga notifikationer.'\n }\n
\n );\n};\n\nexport default Notifications;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/styles';\nimport SaveIcon from '@material-ui/icons/Save';\nimport AddIcon from '@material-ui/icons/Add';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport GridIcon from '@material-ui/icons/Apps';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport FilesIcon from '@material-ui/icons/SaveAlt';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport SearchIcon from '@material-ui/icons/YoutubeSearchedFor';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n //margin: theme.spacing(0, 2)\n },\n button: {\n margin: '10px 8px 10px 0',\n height: 45,\n padding: '4px',\n minWidth: 10,\n },\n icon: {\n marginRight: 0,\n fontSize: 25,\n },\n label: {\n marginLeft: theme.spacing(1),\n },\n}));\n\nconst ButtonBar = ({ buttons }) => {\n const classes = useStyles();\n const history = useHistory();\n\n const onClickFunc = (event, type, onClick) => {\n switch (type) {\n case 'link':\n history.push(onClick);\n break;\n case 'func':\n onClick(event);\n break;\n default:\n break;\n }\n };\n\n return (\n
\n { buttons.map((button, i) => (\n onClickFunc(event, button.onClickEvent ? button.onClickEvent : 'none', button.onClick)}\n >\n {{\n save: ,\n grid: ,\n menu: ,\n edit: ,\n delete: ,\n add: ,\n settings: ,\n files: ,\n refresh: ,\n search: ,\n }[button.icon]}\n { button.name &&
{button.name}
}\n \n ))}\n
\n );\n};\n\nButtonBar.propTypes = {\n buttons: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n icon: PropTypes.oneOf(['none', 'save', 'add', 'grid', 'menu', 'edit', 'delete', 'settings', 'files', 'refresh', 'search']),\n onClickEvent: PropTypes.oneOf(['none', 'link', 'func']),\n disabled: PropTypes.bool,\n onClick: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n })).isRequired,\n};\n\nexport default ButtonBar;\n","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nconst AnalysisList = ({ show, toggle, analysisList }) => (\n \n Analyslista\n \n {analysisList === null ?\n 'Hittade inga analyser för detta laboratoriet.'\n : analysisList.length === 0 ?\n 'Hittade inga analyser för detta laboratoriet.'\n :\n analysisList.map((analysis) =>\n
\n {analysis.AnalysisName}\n
)\n }\n
\n
\n);\n\nexport default AnalysisList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n}));\n\nconst FormDialog = ({\n title, description, open, toggle, onSubmit, onSubmitDisabled, children\n}) => {\n const classes = useStyles();\n return (\n {}),\n className: classes.paper\n }}\n disableBackdropClick\n disableEscapeKeyDown\n >\n \n {title}\n \n \n \n \n \n \n {description}\n \n { children }\n \n \n \n Spara\n \n \n \n );\n};\n\nFormDialog.propTypes = {\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n open: PropTypes.bool.isRequired,\n toggle: PropTypes.func.isRequired,\n onSubmit: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n onSubmitDisabled: PropTypes.bool,\n};\n\nFormDialog.defaultProps = {\n onSubmitDisabled: false,\n onSubmit: false,\n};\n\nexport default FormDialog;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport { TextField, makeStyles } from '@material-ui/core';\nimport { LaboratoryCreationSchema } from 'utils/validation';\nimport FormDialog from 'components/FormDialog';\nimport { useLaboratoryDispatch } from 'modules/admin/laboratories';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n formActions: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n}));\n\nconst CreateLaboratory = ({ toggleOpen, open }) => {\n const classes = useStyles();\n const { createLaboratory } = useLaboratoryDispatch();\n return (\n {\n createLaboratory(values).then(toggleOpen).catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n \n
\n \n \n \n \n \n )}\n />\n );\n};\n\nCreateLaboratory.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired\n};\n\nexport default CreateLaboratory;\n","import React, { useEffect, useState } from 'react';\n\nimport {\n LinearProgress, IconButton, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, Box\n} from '@material-ui/core';\nimport {\n List as ListIcon,\n Delete as DeleteIcon,\n Edit as EditIcon,\n Cached as RefreshIcon,\n} from '@material-ui/icons';\n\n\nimport { useLaboratoryDispatch, useLaboratoryState } from 'modules/admin/laboratories';\nimport useToggle from 'hooks/useToggle';\n\nimport ButtonBar from 'components/ButtonBar';\n\nimport AnalysisList from './laboratories/AnalysisList';\nimport CreateLaboratory from './laboratories/CreateLaboratory';\n\nconst Laboratories = () => {\n const [analysisListOpen, toggleAnalysisListOpen] = useToggle(false);\n const [newLabOpen, toggleNewLabOpen] = useToggle(false);\n const [analysisList, setAnalysisList] = useState([]);\n const { laboratories, fetched, fetching } = useLaboratoryState();\n const { fetchAll, updateAnalysis } = useLaboratoryDispatch();\n\n useEffect(() => {\n if (!fetched) fetchAll();\n }, []);\n\n const handleAnalysisListToggle = (index) => {\n let currentLabAnalysis = [];\n if (Object.keys(laboratories[index].analysis).length > 0) {\n currentLabAnalysis = laboratories[index].analysis.Analysislist;\n }\n setAnalysisList(currentLabAnalysis);\n toggleAnalysisListOpen();\n };\n\n const buttons = [{\n name: 'Lägg till laboratorie',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleNewLabOpen\n }, {\n icon: 'refresh',\n onClickEvent: 'func',\n onClick: fetchAll\n }];\n\n return (\n
\n {fetching\n ? \n :\n \n \n \n \n \n \n {laboratories.length === 0\n ? 'Hittade inga laboratorier.'\n :\n \n \n \n Namn\n Kod\n Beställarkod\n Senast kontrollerad\n Senast uppdaterad\n \n \n \n \n {laboratories.map((lab, i) => (\n \n \n {lab.name}\n \n \n {lab.code}\n \n \n {lab.orderCode}\n \n \n {lab.lastCheck.split('T')[0]}\n \n \n {lab.lastUpdate.split('T')[0]}\n \n \n \n handleAnalysisListToggle(i)}>\n \n \n \n \n updateAnalysis(lab.id)}>\n \n \n \n {/*\n \n \n \n \n \n \n \n \n */}\n \n \n ))}\n \n
\n }\n
\n }\n
\n );\n};\n\nexport default Laboratories;\n","import React from 'react';\nimport classnames from 'classnames';\nimport Select from 'react-select';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport TextField from '@material-ui/core/TextField';\nimport Paper from '@material-ui/core/Paper';\nimport Chip from '@material-ui/core/Chip';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Popper from '@material-ui/core/Popper';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport { emphasize } from '@material-ui/core/styles/colorManipulator';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n zIndex: 9999\n },\n input: {\n display: 'flex',\n padding: 0,\n height: 'auto',\n },\n valueContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n flex: 1,\n alignItems: 'center',\n overflow: 'hidden',\n },\n chip: {\n margin: theme.spacing(0.5, 0.25),\n },\n chipFocused: {\n backgroundColor: emphasize(\n theme.palette.type === 'light' ? theme.palette.grey[300] : theme.palette.grey[700],\n 0.08,\n ),\n },\n noOptionsMessage: {\n padding: theme.spacing(1, 2),\n },\n singleValue: {\n fontSize: 16,\n },\n placeholder: {\n position: 'absolute',\n left: 2,\n bottom: 6,\n fontSize: 16,\n },\n popper: {\n zIndex: 9999,\n width: '100%'\n },\n paper: {\n position: 'relative',\n zIndex: 1,\n marginTop: theme.spacing(1),\n //left: 0,\n //right: 0,\n },\n divider: {\n height: theme.spacing(2),\n },\n}));\n\nconst NoOptionsMessage = (props) =>\n \n {props.children}\n ;\n\nNoOptionsMessage.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object,\n selectProps: PropTypes.object.isRequired,\n};\n\nfunction inputComponent({ inputRef, ...props }) {\n return
;\n}\n\ninputComponent.propTypes = {\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n};\n\nconst Control = (props) => {\n const {\n children,\n innerProps,\n innerRef,\n selectProps: { classes, TextFieldProps },\n } = props;\n\n return (\n \n );\n};\n\nControl.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n selectProps: PropTypes.object.isRequired,\n};\n\nconst Option = (props) =>\n \n {props.children}\n ;\n\nOption.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n isFocused: PropTypes.bool,\n isSelected: PropTypes.bool,\n};\n\nconst Placeholder = (props) =>\n \n {props.children}\n ;\n\nPlaceholder.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object,\n selectProps: PropTypes.object.isRequired,\n};\n\nconst ValueContainer = (props) =>\n
{props.children}
;\n\nValueContainer.propTypes = {\n children: PropTypes.node,\n selectProps: PropTypes.object.isRequired,\n};\n\nconst MultiValue = (props) =>\n }\n />;\n\n\nMultiValue.propTypes = {\n children: PropTypes.node,\n isFocused: PropTypes.bool,\n removeProps: PropTypes.object.isRequired,\n selectProps: PropTypes.object.isRequired,\n};\n\nconst Menu = (props) => (\n \n \n {props.children}\n \n \n);\n\nMenu.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object,\n selectProps: PropTypes.object,\n};\n\nconst components = {\n Control,\n Menu,\n MultiValue,\n NoOptionsMessage,\n Option,\n Placeholder,\n ValueContainer,\n};\n\nconst MultiSelect = ({ suggestions, onChange, values, selectId }) => {\n const classes = useStyles();\n const theme = useTheme();\n\n const selectStyles = {\n input: (base) => ({\n ...base,\n color: theme.palette.text.primary,\n '& input': {\n font: 'inherit',\n },\n }),\n };\n\n return (\n
\n ({ ...base, zIndex: 9999 }) }}\n />\n
\n );\n};\n\nMultiSelect.propTypes = {\n selectId: PropTypes.string,\n suggestions: PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n })).isRequired,\n onChange: PropTypes.func.isRequired,\n values: PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n })),\n};\n\nexport default MultiSelect;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport {\n FormControl, InputLabel, Select, TextField, MenuItem, Typography, makeStyles, LinearProgress, Grid,\n} from '@material-ui/core';\n\nimport { ReferralCreationSchema } from 'utils/validation';\nimport { useLaboratoryDispatch, useLaboratoryState } from 'modules/admin/laboratories';\nimport { useReferralDispatch } from 'modules/admin/referrals';\nimport MultiSelect from 'components/MultiSelect';\nimport FormDialog from 'components/FormDialog';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n}));\n\nconst CreateHealthPackage = ({\n open, toggleOpen, edit, editReferral, clearEditReferral\n}) => {\n const classes = useStyles();\n const [analysisList, setAnalysisList] = useState([]);\n const [differingAnalysisList, setDifferingAnalysisList] = useState([]);\n const { fetching, laboratories } = useLaboratoryState();\n const { fetchAll } = useLaboratoryDispatch();\n const { createReferral, updateReferral } = useReferralDispatch();\n\n useEffect(() => {\n fetchAll();\n }, []);\n\n useEffect(() => {\n if (laboratories.length > 0 && edit) {\n if (editReferral.analysisList !== null && editReferral.analysisList.length > 0) {\n const editAnalysisList = editReferral.analysisList.map((analysis) => ({\n label: analysis.name,\n value: analysis.code\n }));\n setAnalysisList(editAnalysisList);\n } else if (editReferral.needsVerification && editReferral.oldAnalysisList !== null && editReferral.oldAnalysisList.length > 0) {\n const editAnalysisList = [];\n const differingAnalysisList = [];\n editReferral.oldAnalysisList.forEach((oldAnalysis) => {\n if (!editReferral.laboratory.analysis.Analysislist.find((a) => a.AnalysisCode === oldAnalysis.code)) {\n differingAnalysisList.push(oldAnalysis);\n } else {\n editAnalysisList.push({\n label: oldAnalysis.name,\n value: oldAnalysis.code\n });\n }\n });\n setDifferingAnalysisList(differingAnalysisList);\n setAnalysisList(editAnalysisList);\n }\n }\n }, [laboratories, editReferral, edit]);\n\n return (\n {\n if (edit) {\n const updatedReferral = {\n ...values,\n analysisList:\n analysisList.map((analysis) => ({ code: analysis.value, name: analysis.label })),\n };\n updateReferral(editReferral.id, updatedReferral).then(() => {\n toggleOpen();\n setAnalysisList([]);\n clearEditReferral();\n }).catch(() => actions.setSubmitting(false));\n } else {\n const newReferral = {\n ...values,\n analysisList:\n analysisList.map((analysis) => ({ code: analysis.value, name: analysis.label })),\n };\n createReferral(newReferral).then(() => {\n toggleOpen();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm,\n }) => (\n {\n resetForm();\n clearEditReferral();\n setAnalysisList([]);\n toggleOpen();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n \n \n \n \n {fetching ?\n \n : laboratories.length === 0 ?\n 'Hittade inga laboratorier.'\n :\n \n Laboratorie\n {\n handleChange(e, 'laboratoryId');\n setAnalysisList([]);\n }}\n labelWidth={61}\n inputProps={{\n name: 'laboratoryId',\n id: 'laboratoryId-select',\n }}\n >\n {laboratories.map((lab) =>\n \n {lab.analysis.Analysislist === null ? `${lab.name} (inga analyser)` : lab.name}\n )\n }\n \n \n }\n \n {values.laboratoryId !== '' &&\n \n setAnalysisList(newValues)}\n suggestions={laboratories.find((t) => t.id === values.laboratoryId).analysis.Analysislist.map((a) => ({ value: a.AnalysisCode, label: a.AnalysisName }))}\n values={analysisList}\n />\n \n }\n {edit && editReferral.needsVerification &&\n \n Laboratoriet som denna remissen tillhör har uppdaterat sin analyslista därför behöver remissen uppdateras för att nya remisser ska kunna skickas.\n Koderna som inte har ändrats har automatiskt fyllts i ovan och nedan visas koderna som har ändrats.\n {differingAnalysisList.length > 0 &&\n \n
\n
\n Namn - Kod\n
\n {differingAnalysisList.map((analysis) => (\n {analysis.name} - {analysis.code}\n ))}\n
\n }\n
\n }\n
\n
\n \n )}\n />\n );\n};\n\nCreateHealthPackage.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n edit: PropTypes.bool,\n editReferral: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n clearEditReferral: PropTypes.func,\n};\n\nexport default CreateHealthPackage;\n","import React, { useEffect, useState } from 'react';\n\nimport { useReferralDispatch, useReferralState } from 'modules/admin/referrals';\nimport {\n IconButton, LinearProgress, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, Box, makeStyles\n} from '@material-ui/core';\nimport {\n Clear as CrossIcon,\n Done as DoneIcon,\n Delete as DeleteIcon,\n Edit as EditIcon,\n} from '@material-ui/icons';\n\nimport ButtonBar from 'components/ButtonBar';\n\nimport useToggle from 'hooks/useToggle';\nimport ReferralModal from './referrals/ReferralModal';\n\nconst useStyles = makeStyles((theme) => ({\n crossIcon: {\n fill: theme.palette.error.main,\n },\n doneIcon: {\n fill: theme.palette.success.main,\n }\n}));\n\nconst Referrals = () => {\n const classes = useStyles();\n const [newReferralOpen, toggleReferralOpen] = useToggle();\n const [editReferral, setEditReferral] = useState(false);\n const { fetching, referrals, fetched } = useReferralState();\n const { fetchAll } = useReferralDispatch();\n\n useEffect(() => {\n if (!fetched) fetchAll();\n }, []);\n\n const handleReferralEdit = (hp) => {\n setEditReferral(hp);\n toggleReferralOpen();\n };\n\n const clearEditPackage = () => setEditReferral(false);\n\n const buttons = [{\n name: 'Lägg till remiss',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleReferralOpen\n }, {\n icon: 'refresh',\n onClickEvent: 'func',\n onClick: fetchAll\n }];\n\n return (\n
\n {fetching\n ? \n :\n \n \n \n \n \n {referrals.length === 0 ?\n 'Hittade inga remisser'\n :\n \n \n \n Namn\n Laboratorie\n Verifierad\n \n \n \n \n {referrals.map((r) => (\n \n \n {r.name}\n \n \n {r.laboratory.name}\n \n \n {r.needsVerification\n ? \n : \n }\n \n \n \n handleReferralEdit(r)}>\n \n \n \n {/*\n \n \n \n */}\n \n \n ))}\n \n
\n }\n
\n }\n
\n );\n};\n\nexport default Referrals;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport {\n Button, TextField, Menu, MenuItem, makeStyles, LinearProgress, Grid, List, ListItem, ListItemSecondaryAction, IconButton, ListItemText\n} from '@material-ui/core';\nimport {Add as AddIcon, Clear as CrossIcon, Done as DoneIcon} from '@material-ui/icons';\n\nimport { HealthPackageCreationSchema } from 'utils/validation';\nimport { useHealthPackageDispatch } from 'modules/admin/healthPackages';\nimport { useReferralDispatch, useReferralState } from 'modules/admin/referrals';\nimport FormDialog from 'components/FormDialog';\n\nconst useStyles = makeStyles((theme) => ({\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n crossIcon: {\n fill: theme.palette.error.main,\n },\n doneIcon: {\n fill: theme.palette.success.main,\n },\n verificationIcon: {\n backgroundColor: 'transparent !important',\n cursor: 'default'\n }\n}));\n\nconst CreateHealthPackage = ({\n open, toggleOpen, edit, editPackage, clearEditPackage\n}) => {\n const classes = useStyles();\n const [packageReferrals, setPackageReferrals] = useState([]);\n const { fetchAll } = useReferralDispatch();\n const { fetching, referrals } = useReferralState();\n const { createHealthPackage, updateHealthPackage } = useHealthPackageDispatch();\n\n useEffect(() => {\n fetchAll();\n }, []);\n\n useEffect(() => {\n if (referrals.length > 0 && edit) {\n setPackageReferrals(editPackage.referrals);\n }\n }, [referrals, editPackage, edit]);\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const handleClickLabSelect = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleCloseLabSelect = () => {\n setAnchorEl(null);\n };\n\n const handleAddReferral = (referral) => {\n setPackageReferrals([...packageReferrals, referral]);\n handleCloseLabSelect();\n };\n\n const handleRemoveReferral = (referralArrayIndex) => {\n let newPackageReferrals = [...packageReferrals];\n newPackageReferrals.splice(referralArrayIndex, 1);\n setPackageReferrals(newPackageReferrals);\n };\n\n return (\n {\n if (edit) {\n const updatedHealthPackage = {\n ...values,\n referralIds: packageReferrals.map((referral) => referral.id)\n };\n updateHealthPackage(editPackage.id, updatedHealthPackage).then(() => {\n toggleOpen();\n packageReferrals([]);\n clearEditPackage();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n } else {\n const newHealthPackage = {\n ...values,\n referralIds: packageReferrals.map((referral) => referral.id)\n };\n createHealthPackage(newHealthPackage).then(() => {\n toggleOpen();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm,\n }) => (\n {\n resetForm();\n clearEditPackage();\n setPackageReferrals([]);\n toggleOpen();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n \n \n \n \n \n \n \n {fetching ?\n \n : referrals.length === 0 ?\n 'Hittade inga remisser.'\n :\n \n \n \n {referrals.map((referral) =>\n !packageReferrals.find((r) => r.id === referral.id) &&\n handleAddReferral(referral)}\n >\n {`${referral.name} (${referral.laboratory.name})`}\n )\n }\n \n \n }\n \n \n {packageReferrals.length > 0 &&\n \n {packageReferrals.map((referral, i) => (\n \n \n {`${referral.name} (${referral.laboratory.name})`} \n \n \n \n {referral.needsVerification\n ? \n : \n }\n \n handleRemoveReferral(i)}>\n \n \n \n \n ))} \n \n }\n \n \n
\n \n )}\n />\n );\n};\n\nCreateHealthPackage.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n edit: PropTypes.bool,\n editPackage: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n clearEditPackage: PropTypes.func,\n};\n\nexport default CreateHealthPackage;\n","import React, { useEffect, useState } from 'react';\n\nimport { useHealthPackageDispatch, useHealthPackageState } from 'modules/admin/healthPackages';\nimport {\n IconButton, LinearProgress, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, Box, makeStyles\n} from '@material-ui/core';\nimport {\n Clear as CrossIcon,\n Done as DoneIcon,\n Delete as DeleteIcon,\n Edit as EditIcon,\n} from '@material-ui/icons';\n\nimport ButtonBar from 'components/ButtonBar';\n\nimport useToggle from 'hooks/useToggle';\nimport HealthPackageModal from './healthPackages/HealthPackageModal';\n\nconst useStyles = makeStyles((theme) => ({\n crossIcon: {\n fill: theme.palette.error.main,\n },\n doneIcon: {\n fill: theme.palette.success.main,\n }\n}));\n\nconst HealthPackages = () => {\n const classes = useStyles();\n const [newHealthPackageOpen, toggleNewHealthPackageOpen] = useToggle(false);\n const [editPackage, setEditPackage] = useState(false);\n const { fetching, fetched, healthPackages } = useHealthPackageState();\n const { fetchAll } = useHealthPackageDispatch();\n\n useEffect(() => {\n if (!fetched) fetchAll();\n }, []);\n\n const handlePackageEdit = (hp) => {\n setEditPackage(hp);\n toggleNewHealthPackageOpen();\n };\n\n const clearEditPackage = () => setEditPackage(false);\n\n const buttons = [{\n name: 'Lägg till hälsopaket',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleNewHealthPackageOpen\n }, {\n icon: 'refresh',\n onClickEvent: 'func',\n onClick: fetchAll\n }];\n\n return (\n
\n {fetching\n ? \n :\n \n \n \n \n \n {healthPackages.length === 0 ?\n 'Hittade inga hälsopaket'\n :\n \n \n \n Namn\n Product ID\n Verifierad\n \n \n \n \n {healthPackages.map((hp) => (\n \n \n {hp.name}\n \n \n {hp.woocommerceProductId}\n \n \n {hp.referralNeedsVerification\n ? \n : \n }\n \n \n \n handlePackageEdit(hp)}>\n \n \n \n {/*\n \n \n \n */}\n \n \n ))}\n \n
\n }\n
\n }\n
\n );\n};\n\nexport default HealthPackages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Polar } from 'react-chartjs-2';\n\nconst options = {\n legend: {\n display: false\n },\n scale: {\n display: false\n },\n scales: {\n xAxes: [\n {\n ticks: {\n display: false\n },\n gridLines: {\n lineWidth: 0,\n circular: false,\n display: false\n }\n }\n ],\n yAxes: [\n {\n ticks: {\n display: false\n },\n gridLines: {\n lineWidth: 0,\n circular: false,\n display: false\n }\n }\n ]\n },\n tooltips: {\n callbacks: {\n label(tooltipItem, data) {\n return data.labels[tooltipItem.index];\n }\n }\n }\n};\n\nconst PolarChart = ({ data, labels, colors }) => (\n \n);\n\nPolarChart.propTypes = {\n data: PropTypes.array.isRequired,\n labels: PropTypes.array.isRequired,\n colors: PropTypes.array,\n};\n\nPolarChart.defaultProps = {\n colors: [\n '#FF6384',\n '#4BC0C0',\n '#FFCE56',\n '#E7E9ED',\n '#36A2EB'\n ]\n};\n\nexport default PolarChart;\n","import surveyV1 from './surveys/surveyV1';\nimport surveyV2 from './surveys/surveyV2';\n\nexport const surveys = [surveyV1, surveyV2];\n\nexport const getLatestVersionId = () => {\n const { version } = surveys.reduce((prev, current) => ((prev.version > current.version) ? prev : current));\n return version;\n};\n","export default {\n version: 1,\n sections: [\n {\n name: 'Basfrågor',\n color: '#e6194B',\n questions: [\n {\n name: 'Är du gravid eller ammar?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Gravid / ammar',\n gender: 'Female',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: ''\n }, {\n name: 'Vet ej',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi rekommenderar att du kollar upp om du är gravid så du har vetskapen och slipper eventuell oro. Om du avser att bli gravid så rekommenderar vi att du kollar upp dina värden av näring och dess inbördes balans. Kolla upp tungmetaller och framför allt kolla upp de mediciner som du ev. tar. Öka ditt mineralintag, sänk Omega 6, öka din syresättning genom djupandning, avslappning.'\n }, {\n name: 'Ja',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Grattis till ditt kommande barn. Nu när vi vet detta kan vi ta med detta i vår beräkning vid framtida test analyser\" För att ge både mamma och barn viktiga näringsmässiga förutsättningar och förhindra missbildning och andra psykiska störningar; Undvik att laga mat i aluminiumkastruller eller folie, för att förhindra Autism ofta förekommande vid för hög halt aluminium. Asperger, ADHD, dyslexi motsv. har ofta brist på Omega3, Vitamin-D och -C samt B-komplex. Kolla även järnvärdena och magnesium och zink.'\n }],\n }, {\n name: 'Vet du när du hade din senaste menstruationsdag?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Menstruation',\n gender: 'Female',\n choices: [{\n name: 'Vet ej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: ''\n }, {\n name: 'Ja',\n input: 'Ange den första dagen på din menstruationsperiod.',\n inputRequired: true,\n scoring: 1,\n response: ''\n }],\n },\n {\n name: 'Hur är din huvudsakliga kost?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Kosthållning',\n choices: [{\n name: 'Vegan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Som vegan har du större möjligheter till en ren och frisk kropp. Men kom ihåg att om du nyligen blivit vegan, behöver din kropp en viss tid för att ställa om sig innan den kan ta upp all den näring som din kropp har vant sig att få genom andra källor\" Att omvandla omega 3 från ALA från t.ex. linfrön till EPA och DHA tar tid för kroppen att förstå. Samma sak om du tagit regelbundet C-vitamin som kosttillskott under längre tid, då kommer det ta tid för kroppen att förstå att den måste ta upp vitamin-C från frukt och rotfrukter. '\n }, {\n name: 'Vegetarian',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Som vegetarian så bör du få i dig de mesta du behöver. Dock kom ihåg att många vegetarianer äter ofta alldeles för ensidig kost då nästan alla färdiga matprodukter på marknaden är gjorda av soja. All mat är nyttig i rätt mängd, men all mat är giftig i fel mängd. Så var Observant på att du äter tillräckligt varierat och försök äta regnbågens alla färger varje dag samt de 4 smakerna, Salt, surt, sött och beskt. OBS: överdriv inte det söta. Försök även ta minst 60% lokalproducerat och är den mat som skördas efter respektive årstid. Då kommer du få en optimal hälsa.'\n }, {\n name: 'Allätare',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi människor har under årtusenden utvecklats att bli de mest uthållig \"djuret\" av alla däggdjur. Vi är även det mest anpassbara \"Djuret\" av alla. Detta gör att vi kan leva som rena köttätare likt Inuiter (Eskimåer) gjorde förr, vi kan även leva helt vegetariskt som majoriteten av befolkningen i Indien gör. Eller vi kan välja att vara s.k. allätare. Oavsett vilket val vi gör så måste det finnas en balans för att vi skall må bra. Att äta mycket kött innebär att din kropp utvecklas snabbt, men den åldras även snabbt. Inuiterna hade en genomsnittlig livslängd av 43 år innan de började importera frukt och grönt från resten av världen, men det var könsmogna vid 12 års ålder redan för att hinna fortplanta sig. \\n' +\n 'Om du äter mycket grönsaker och frukt, får du en långsammare utveckling men lever desto längre. Det som är viktigt att förstå är att var och en måste sätta upp sina mål varför äter jag som jag gör? - Vill jag leva länge? Vill jag bli elitidrottare? Vill jag öka min mentala kapacitet? Vill jag leva frisk och vitalt aktiv livet ut? Sedan vi svenskar gick med i EU, har vi ökat vår konsumtion av kött med 8% varje år och andelen sjuka i cancer, hjärt- & kärlsjukdomar, diabetes m.fl. har ökat i samma takt. \\n' +\n 'Så vårt råd till dig är att tänka på följande: Ät minst 60% lokalproducerad mat. (Naturen är alltid i balans, så för att vi människor och djur som lever i en viss klimatzon skall klara det klimat vi lever i, så har naturen sett till att ge oss allt vi behöver. Våra svenska bär har mellan dubbelt till 10 gånger högre näring än samma bär som växer söderut. Detta för att vi skall klara den långa mörka vintern.) Följ den mat som skördas för den årstid som gäller. (då är den som mest nyttig) Ät minst 0,5 dl av regnbågens alla färger inkl., svart och vitt varje dag (ger dig alla nödvändiga vitaminer och antioxidanter). Äta de fyra smakerna Sött, Salt, Surt och Beskt varje dag. (ger dig alla mineraler samt balansera pH-värdet) Så kommer din hälsa att hålla sig betydligt bättre än genomsnittet\" Allmänt bör de flesta tänka på Syra-basbalans, minska sockerintag, minska protein, öka grönsaker och frukt i vissa fall. Rådgör med oss på Life-Check för kostkonsultation.'\n }, {\n name: 'Går på diet',\n input: 'Vilken diet?',\n inputRequired: false,\n scoring: 3,\n response: 'Alla dieter som skiljer sig från vår vanliga kosthållning kommer att kortsiktigt ge dig en förbättring, då din kropp alltid vill ha variation. Men alla dieter kommer även bli som din tidigare kosthållning, d.v.s. den hindrar en variation som din kropp behöver. Vi lever i en värld där vi reser till fjärran länder, vi lever i olika klimatzoner med olika mycket sol, värme och kyla etc. allt detta påverkar vårt behov av näring och fetter. Så att köra samma kosthållning över allt året om, fungerar inte om vi önskar en optimal hälsa och välmående. Att köra en diet som t.ex. detox (avgiftning) så måste du vara medveten om att först se till att alla dina utrensningsorgan som lever, njurar, lymfsystem mm, fungerar för att din kropp skall kunna frigör inlagrade gifter och att kroppen kan föra ut dessa, i annat fall så kan det bli allvarliga bieffekter. Kör du en alltför sträng LCHF diet där du helt utesluter kolhydrater finns det belägg för att många människor har drabbats av depression efter 3–6 månader på en sådan diet. Så var vaksam på den diet som du väljer och vilka risker du tar. Vi avråder inte från att köra en diet, men vi vill uppmärksamma dig på att den skall vara i balans med din kropps behov. Att banta bort övervikt kan leda till att hjärnan får för lite energi och du får negativa bieffekter som du inte önskar. Vill du veta mer så rådfråga oss på Life-Check.'\n }],\n },\n {\n name: 'Hur ser du på din kropp? Normalvikt, underviktig eller överviktig eller muskulös/atletisk???',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Din kropp',\n choices: [{\n name: 'Muskulös',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Att vara muskulös, d.v.s. vara vältränad är utmärkt, men om du tränar på elitnivå skall du vara medveten om att din kropps normala matintag inte räcker till. Då måste du söka hjälp av en kostrådgivare för att veta hur du skall äta för att inte bränna muskler och tappa vikt.'\n }, {\n name: 'Normal',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Att vara normal viktig låter bra. Men vad är din önskan att vara? Muskulös, snabb, uthållig, vig och flexibel? vad du än önskar så kan vi på Life-Check hjälpa dig att nå dina mål. Låt oss bli din personliga kroppsmentor. '\n }, {\n name: 'Överviktig',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Psykoterapi /NLP vid ohälsosam självuppfattning. Annars öka/minska vikt genom kost och rörelse. Fysiska behandling med frekvenser rekommenderas vid fetma. Om du har svårt att minska i vikt, så kan det även beror på att du har ett psykologisk undermedvetet skydd, att det finns en osäkerhet där du känner dig sårbar och behöver ett skydd. I detta fall ökad fettinlagring'\n }, {\n name: 'Underviktig',\n input: '',\n inputRequired: false,\n scoring: 3,\n response: 'Acceptans av den egna kroppen är en av förutsättningarna för välmående. I båda fallen av över- eller undervikt finns även en underliggande psykologisk faktor. Därav att det finns belägg att psykologisk NLP i de flesta fall är den bästa lösningen.'\n }],\n },\n ]\n },\n {\n name: 'Kost',\n color: '#f58231',\n questions: [\n {\n name: 'Jag äter restaurangmat och eller hämt-mat/färdiglagad mat.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Industri tillagad mat',\n choices: [{\n name: 'Dagligen',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi rekomenderar utbildning och kostomläggning.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi kan förebygga ohälsa och påverka vår livslängd och livskvalité till stor del genom vår kost och livsstil. Regelbundet intag av restaurang lagad mat kan innebära större mängder av omega 6, härdade fetter (transfetter) samt nitrit.',\n }],\n },\n {\n name: 'Jag dricker minst 1,5L vatten om dagen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Vatten',\n choices: [{\n name: 'Dagligen',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi rekommenderar utbildning och kostomläggning.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vatten är bland de viktigaste näringsämnen för kroppen då vi består till stor del (ca 70%) av vatten. Det är också grundläggande för de flesta kroppsfunktioner, som t.ex. producera energi, skapa minnen i cellerna samt transportera ut näring och syre samt göra sig av med slaggprodukter mycket annat. Är det något vi skall prioritera mer än allt annat i livet så är rent vatten det bästa vi kan tillföra vår kropp.',\n }],\n },\n {\n name: 'Jag äter minimum halva tallriken med grönsaker och/eller rotfrukter (färska, frysta eller tillagade)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Grönsaker',\n choices: [{\n name: 'Minst 50%',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Mindre än 50%',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Öka mänden grönsaker, följ årstiderna till minst 60%, handla närproducerat och helst ekologiskt. Vill du veta med kolla in vår blogg på www.life-check.se.',\n }, {\n name: 'Nästan aldrig',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Råa grönsaker ger viktiga enzymer. Grönsaker i allmänhet ger kroppen viktiga byggstenar som kolhydrater, fett, protein, vitaminer, mineraler och antioxidanter. Dessa hjälper kroppen att reglera pH-värdet som i sin tur hjälper kroppen att ta upp näring effektivare.',\n }],\n },\n {\n name: 'Jag äter något eller några av följande: gluten (vete råg korn), mjölkprodukter, tillsatt socker.',\n multiple: true,\n input: 'Hur ofta/mycket av vad??',\n inputRequired: false,\n scaleGroup: 'Gluten, Mjölkprodukter, Socker',\n choices: [{\n name: 'Inget av dessa.',\n input: '',\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Mjölkprodukter',\n input: '',\n scoring: 1,\n response: 'Rent generellt kan mjölkprodukter fungera som föda i mindre mängder om de kommer från en bra naturlig ekologsk källa från gräsbetande kor. Men tyvärr så är hanteringen av den industriella mjölkframställningen skadlig för det som naturligt bör finnas i en balanserad hälsosam mjölkprodukt. Vi rekomenderar därför att byta ut komjölksprodukter mot växtbaserad mjölk, eller get/fårmjölk. Även havremjölk eller mandelmjölk, kokosmjölk motsv. fungerar bra.',\n }, {\n name: 'Gluten',\n input: '',\n scoring: 2,\n response: 'Generellt bör alla människor minska intaget av Vete, som är förädlat 50 000 ggr sedan 1943, vilket gör att vetet av idag är extremt obalanserat som föda. Minska på vete, använd hellre ursprungssorter som Dinkel, Kamut, Emmer och Enkorn motsv. samt välj alltid äkta Surdegsbröd om bröd är ett måste. Eller sluta helt med vete\". Referens till studie som visar att majoriteten av människor påverkas/får genomsläpplig tarm av gluten, samt att det motverkar upptag av vitaminer och mineraler.',\n }, {\n name: 'Socker',\n input: '',\n scoring: 3,\n response: 'Undvik drycker med socker och sötningsmedel helt, välj hellre natrulig äkta honung eller äkta Lönnsirap motsv. i te och kaffe eller uteslut helt socker. Överkonsumtion av socker kan leda till livsstilssjukomar som diabetes2. Ökat sockerbrär och därmed övervikt och fetma etc.',\n }],\n },\n {\n name: 'Jag stressar ofta i mig mina måltider? D.v.s. jag avslutar mina måltider snabbt. Eller äter du långsamt och sitter du kvar en stund efter maten?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Stressar i mig mat',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Sitt ned och ät i lugn och ro. Djupandas gärna några minuter innan du börjar måltiden. Tugga maten noggrant och undvik dryck till maten. Drick före eller efter maten. Ta det lugnt en stund efter maten. Gör hellre rörelseaktivitet innan maten och vänta 30-60 min efter maten.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'När vi stressar prioriterar vår kropp att förbereda sig för kamp/flykt och prioriterar ned matsmältning. Det gör att tex magsäcken inte kan producera tillräckligt med saltsyra för att bryta ned maten. Stress gör också att blodtillförsel prioriteras till muskler istället för matsmältningsorganen. Kroppen kan då inte ta hand om maten och både matsmältning och näringsupptag försämras.',\n }],\n },\n ],\n },\n {\n name: 'Sömn',\n color: '#3cb44b',\n questions: [\n {\n name: 'Jag sover ca 7-8 timmar per natt',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Effektiv sovtid',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Sov ej mer än 8 timmar. Helst endast 7 timmar om du inte har ett fysiskt ansträngande arbete. (Om du har en sjukdom i kroppen, rekomenderar vi att sova så mycket som kroppen behöver).',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att sova mer än 8 timmar per natt kan det vara en indikation på att kroppen är i obalans.',\n }]\n },\n {\n name: 'Jag lägger mig i regel ca kl 22',\n multiple: false,\n input: 'Om inte 22.00 så när lägger du dig?',\n inputRequired: false,\n scaleGroup: 'Sovtider på dygnet',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Regelbundna sovtider mår kroppe bäst av. att sova mellan 22.00 fram till 15.00 är den mest verksamma tiden på dygnet för kroppen att nå maximal vila. Stäng av TV, dataskärm, och använd helst blått ljus 1-2 timmar innan sänggående. Djupandas och meditera/slappna av timmen innan sänggående. Lägg dig helst så att du somnar vid 22.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att sova reglebundet och tillräckligt mycket ger ökat produktion av Melatonin, kroppens starkaste antioxidant. Detta antioxidant bidrar till bättre hälsa, stärker immunförsvaret och du lever längre. Att sova mellan 22-03 ger bästa nattvilan. Cirkadiska rytmen. Läs gärna mer om detta i vår blogg om Nattarbete.',\n }]\n },\n {\n name: 'Jag känner mig utvilad när jag vaknar',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Utvilad på morgonen',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Är du fortfarande trött på morgoen kan det vara näringsbrist, framför allt magnesium, vitamin-D och K2, samt att du läcker energi pga inflammationer i kroppen som dränerar energinivåerna. Det kan ävenbero på att du har svårt att syresätta kroppen p.g.a. snarkningar.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att kunna känna sig utvilad efter nattsömn är mycket viktigt och bra sov vanor ger kroppen möjlighet att producera melatonin. Kroppen tål dessutom högre belastning och stress mycket bättre.',\n }]\n },\n {\n name: 'Jag sover vanligtvis hela natten utan avbrott',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Sova utan avbrott',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: 'Vad tror du är orsaken till att du inte kan sova utan avbrott?',\n inputRequired: true,\n scoring: 1,\n response: 'Om du vaknar ofta under natten. Kör 4 regeln: 1) Inte äta innan sänggående. Minst 2 timmar emellan. 2) Inte dricka grönt te eller kaffe under kvällen, ibland inte ens under eftermiddagen. 3) inte sova på dagen för sent. Barn som sover på eftermiddagen påverkar endast nattsömnen om de vilar efter 16.00. 4) Inte stirra på en lysande skärm, TV, dator eller mobil innan sänggående. Stäng av alla modem och elektriska sovklockor. Dessa strömmar frekvenser som påvekar din kropp negativt och stör sömnen för vissa. Även småbarnsföräldrar tvingas vakna flera gånger under natten, vilket påverkar vårt välbefinnande. Är ni 2 så dela upp nätterna om detta är möjligt. ',\n }, {\n name: 'Sällan',\n input: 'Vad tror du är orsaken till att du inte kan sova utan avbrott?',\n inputRequired: true,\n scoring: 2,\n response: 'Att kunna känna sig utvilad efter nattsömn är mycket viktigt och bra sov vanor ger kroppen möjlighet att producera melatonin. Kroppen tål då dessutom högre belastning och stress myckey bättre.',\n }]\n },\n {\n name: 'Jag somnar vanligtvis inom 10 min när jag lägger mig',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Förmåga att somna',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Om det tar lång tid att somna kan det bero på att kroppen är stressad, att dygnsrytmen har rubbats eller att melatoninproduktionen på annat sätt är störd. OM du har för vana att använda dator, mobil innan sänggående, se till att mobilen/datorn är inkopplad med blåljusfilter, (night vision). I annat fall kommer din kropp inte koppla på din melatoninproduktion som är din kropps absolut starkaste antioxidant, vilket reparerar din kropp när du sover.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Du somnar lättare och skönare om du lägger dig på regelbundna tider, undviker starkt ljussken från datorer, mobiler och andra lysande föremål. En 15 minuters meditation med lugnade djupa andningsövningar i 5 minuter kommer att göra underverk. Även en stilla meditativ musik, lugnar ner din kropp så att då kan somna snabbare. Undvik att äta sent och drick varken kaffe eller grönt te, då dessa piggar upp dig. Samma sak med energidrycker och läsk.',\n }]\n },\n ]\n },\n {\n name: 'Träning',\n color: '#42d4f4',\n questions: [\n {\n name: 'Jag tränar/rör på mig minst 30 min, 3 ggr i veckan',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Tränar 3 ggr/vecka',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Börja med att prioritera en stund några ggr i veckan då du tex tar en promenad eller utövar annan rörelse/motion som du uppskattar. Öka successivt till minst 30 min, 3 ggr i veckan.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Rörelse är ett måste för en sund kropp, själ och hjärna samt att fördröja åldrandet. Syreupptagningsförmågan, leder, matsmältning och tankar blir bättre.',\n }]\n },\n {\n name: 'Jag får energi av att träna',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Energi av träning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Fundera på om det är rätt träningsform för dig. Prova annan typ av rörelse eller motion eller minska på ansträngningsgraden. Saknar du energi efter att ha tränat hårt även efter ett par timmars återhämtning, finns det risk för inflammation i kroppen',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att ständigt vara i rörelse är en del av livet. Rörelse skapar energi och ger vitalitet i kroppen som både förbättrar hjärnans funktion och förlänger ditt liv.',\n }]\n },\n {\n name: 'Jag känner mig återhämtad efter ett intensivare träningspass efter 2 dagar (där du når 70% av din maxpuls)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Återhämtning av träning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Bristande kondition måste motverkas med mer kondition i vardagen. Gå i trappan tag ej hiss. Gå en promenad utomhus varje dag i ur och skur minst 20 minuter.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att kunna återhämta sig snabbt indikerar på en vitalitet i kroppen som både förbättrar hjärnans funktion och förlänger ditt liv.',\n }]\n },\n {\n name: 'Jag känner mig mjuk och rörlig i kroppen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Rörlighet i kroppen',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Träna plank-tänj 10 minuter om dagen. Samt kroppsklappning. Yoga eller stretching.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Genom dagligen genomför dessa övningar kan du undvika över 70 olika sjukdomar.',\n }]\n },\n {\n name: 'Jag får önskade resultat av min träning',\n multiple: false,\n input: 'Beskriv vilket resultat önskar du?',\n inputRequired: false,\n scaleGroup: 'Önskat resultat av träning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Öka självbilden du duger som du är, kostomläggning och andningsteknik. Se över träningsrutiner, kanske har man nått en platå och behöver öka intensitet eller ansträngning för att nå mer resultat. Blir man för trött efter träning och har svårt med återhämtning kan man istället behöva minska intensitet och ansträngning och ev. byta aktivitet.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Uteblivet resultat av träning påverkar livskvalité och kan leda till att man tappar intresse och energi.',\n }]\n },\n ]\n },\n {\n name: 'Jobb/ekonomi',\n color: '#000075',\n questions: [\n {\n name: 'Jag känner mig tillfreds med min ekonomiska situation',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Bra ekonomi',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Sök ekonomirådgivning/planeringshjälp',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Otillfredsställande ekonomi kan bidra till stress och försämrad livskvalité',\n }]\n },\n {\n name: 'Jag har människor att rådfråga kring ekonomiska frågor',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Rådgivning ekonomi',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Skapa självtillit och byt arbete om situationen inte förbättras efter försök att kommunicera med arbetskamrater och chef.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi spenderar många timmar på jobbet och det är viktigt inte bara för vår ekonomi men för vår hälsa och välbefinnande att känna att våra behov möts på arbetet.',\n }]\n },\n {\n name: 'Jag vet hur jag kan göra för att påverka min ekonomi',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Kan påverka min ekonomi',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Begär nya arbetsuppgifter på jobbet eller byt arbete',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att utvecklas i jobbet är en viktig del av tillfredställelse med arbete och därmed också allmänt välbefinnande. Känner man att man sitter fast i samma arbetsuppgifter och rutiner kan det leda till stress, en känsla av att sitta fast och inte komma vidare.',\n }]\n },\n {\n name: 'Jag utvecklas av mina arbetsuppgifter',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Utveckas i mitt arbete',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Skapa självtillit och byt arbete',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att känna sig uppskattad är en viktig faktor för att känna sig tillfreds och lycklig på jobbet. Vi vill känna att vi gör ett bra jobb och att vi får bekräftelse på det.',\n }]\n },\n {\n name: 'Jag har energi över efter en arbetsdag',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Energi efter arbetsdag',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vilken arbetsbelastning orkar du med. Se över om du har för mycket arbetsuppgifter och för mycket ansvar. Minimera stress. Öka träning på gym motsv. Med vikter och kondition',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Om man inte har energi över efter arbetsdagen får man svårt att orka med resten av livet, livskvalitén blir lidande. Det kan innebära att du arbetar mer än du egentligen har energi till och på sikt öka risken för utmattning. Det kan finnas en underliggande problematik med stress som lett till inflammation och obalanser i kroppen som behöver tas om hand. Har man \"bara\" dålig kondition behöver man prioritera att öka den för att därmed också öka sin livskvalité, att orka göra mer än bara jobba',\n }]\n }\n ]\n },\n {\n name: 'Familj/vänner',\n color: '#469990',\n questions: [\n {\n name: 'Jag känner mig sedd och bekräftad av min familj (t.ex partner, barn, syskon och föräldrar)',\n multiple: false,\n input: 'Beskriv av vilka du blir bekräftde av samt vilka du inte känner bekräftelse ifrån?',\n inputRequired: false,\n scaleGroup: 'Bekräftad av andra',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga be om det som du önskar på riktigt',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ett av våra mest grundläggande behov är att känna att vår omgivning ser oss och bekräftar oss. Det ökar vår självkänsla och bidrar till välbefinnande och livskvalité',\n }]\n },\n {\n name: 'Jag trivs med min partner relation/relationsstatus/singel.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Bra relation',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga be om det som du önskar på riktigt',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ett otillfredsställande förhållande med partner kan leda till stress och nedstämdhet och sänker livskvalité och livsenergi.',\n }]\n },\n {\n name: 'Jag har nära vänner.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Energi av vänner',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du tycker, egenvärde',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi är alla energivarelser och påverkas i olika grad av andras energier. Umgås man med andra människor som påverkar den egna energin negativt kan det leda till stress och nedstämdhet som sänker din livskvalité',\n }]\n },\n {\n name: 'Jag får energi av mina vänner',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Kommunikation med omgivning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du tycker, egenvärde',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Dålig kommunikation med omgivningen kan leda till stress, frustration och nedstämdhet. Ett av våra grundläggande behov är att känna gemenskap, ge och få utbyte med andra människor.',\n }]\n },\n {\n name: 'Jag upplever att jag har en givande kommunikation med min omgivning',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Feedback helt OK',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du tycker, egenvärde',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'En viktig del av personlig utveckling är att kunna ge och ta emot feedback. Vi får genom det en ökad förståelse för hur vi uppfattas av andra och hjälper andra på samma sätt. Det ger en känsla av att kontroll över sitt liv och möjlighet att öka sin livskvalité',\n }]\n },\n {\n name: 'Jag känner mig tillfreds att ge och ta emot feedback',\n multiple: false,\n input: 'Kommentera vilket: Bra på att ge men inte ta emot? Eller bra på att ta men inte ge? Eller bra på både och?',\n inputRequired: true,\n scaleGroup: '',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: '',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: '',\n }]\n }\n ]\n },\n {\n name: 'Fysisk tillfredsställelse',\n color: '#808000',\n questions: [\n {\n name: 'Jag får enligt MIG den tillfredställande mängd av beröring i form av kramar och närhet.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag får beröm',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Är du bra på att ta emot beröm? Träna på detta. Ger du andra bekräftelse? Att börja ge utan krav på motprestation.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ett av våra mest grundläggande behov är att känna att vår omgivning ser oss och bekräftar oss. Det ökar vår självkänsla och bidrar till välbefinnande och livskvalité',\n }]\n },\n {\n name: 'Jag känner mig nöjd med mitt sexliv',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Nöjd med sexlivet',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Kost och träning eller fysisk funktionsnedsättning, psykoterapi, partnerterapi.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Sex är ett av våra mest grundläggande behov, enligt Maslows behovstrappa. Vid sex ökar nivåerna av dopamin och oxytocin i våra kroppar som ger oss känsla av njutning, tillfredställese och livsenergi. Har vi ett otillfredställande sexliv är det därmed viktigt att',\n }]\n },\n {\n name: 'Jag känner mig snygg naken',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Snygg naken',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden, självacceptans. Kostomläggning och träning vid behov.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Det är viktigt för välbefinnandet att känna sig bekväm i sin kropp, att vara tacksam och uppskatta den.',\n }]\n },\n {\n name: 'Jag vågar uttrycka mina fysiska behov',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Vågar uttrycka min behov',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du behöver.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Det är viktigt för våra grundläggande behov att vi kan uttrycka våra fysiska behov. Tex beröring som närhet, kramar och sex ökar lyckohormonet oxytocin och dopamin som ger välbefinnande och livsenergi.',\n }]\n },\n ]\n },\n {\n name: 'Egentid/återhämtning',\n color: '#ffe119',\n questions: [\n {\n name: 'Jag bokar in tillfällen / aktiviteter som förstärker min livslust och fyller på med energi (massage, resor, skogsutflykt, konsert)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag gör saker jag gillar',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Prioritera och sätt undan tid varje vecka för att göra sådant som ger dig energi och glädje.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'För att vara hållbar i längden och kunna finnas där för våra nära och kära är det viktigt att vi tar hand om oss själva och fyller på vår energi med aktiviteter som ger oss glädje och livslust.',\n }]\n },\n {\n name: 'Jag upplever tacksamhet dagligen för det jag har i livet.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag är tacksam',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Tacksamhetsövningar - fundera en stund varje kväll och varje morgon på vad du är tacksam för. Skriv gärna ned och sätt upp där du kan påminnas om vad du är tacksam för.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'När vi känner tacksamhet ökar vår glädje, helt enkelt för att vi inser att vi har mer än vi tror, när vi flyttar fokus från vad vi inte har, till vad vi faktiskt har.',\n }]\n },\n {\n name: 'Jag utövar aktiv vila såsom meditation, mindfullness, skogspromenad dagligen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag utövar aktiv vila',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Prioritera och sätt undan tid varje dag för aktivitet som ger dig återhämtning, såsom skogspromenad, mindfullness eller meditation.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Studier visar att aktiviteter som meditation har en regenererande effekt på hjärnan.',\n }]\n },\n {\n name: 'Jag vet vilken typ av återhämtning jag behöver för att skapa balans i mitt liv.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag kan återhämta mig',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Fundera på och prova på olika aktiviteter för att hitta det som är rätt för dig. Det kan vara aktiviteter som ger aktiv vila eller intensivare aktiviteter såsom att utöva olika sporter, beroende på dina behov.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'För att vara hållbar i längden och kunna finnas där för våra nära och kära är det viktigt att vi tar hand om oss själva och fyller på vår energi med aktiviteter som ger oss återhämtning, glädje och livlust.',\n }]\n },\n {\n name: 'Jag djupandas medvetet dagligen med magen.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag kan djupandas dagligen',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Djupandningsövningar morgon och kväll',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Det är vanligt att vi andas för ytligt, då får inte kroppen tillräckligt med syresättning och det påverkar bla kroppens Ph-balans och kroppens förmåga att få ut koldioxid ur blodet.',\n }]\n },\n ]\n },\n {\n name: 'Personlig utveckling/mental hälsa',\n color: '#4363d8',\n questions: [\n {\n name: 'Jag känner mig stressad eller orolig dagligen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Stressad & orolig daglien',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden, självacceptans och hjälp att prioritera och eliminera orsakerna till stress, oro, ångest. Se över näringsintag och öka intag av kost och/eller tillskott som magnesium, zink, D-vitamin, K2.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'När vi är stressade går kroppen in i kamp/flykt läge, då prioriteras tex matsmältning ned och vi får problem med matsmältning och näringsupptag. Samtidigt går det åt mer näring när vi stressar. Det är viktigt att minimera stress för att vara hållbar och vital i längden.',\n }]\n },\n {\n name: 'Jag litar vanligtvis på min magkänsla',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Litar på min magkänsla',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi vill gärna tro att det är i hjärnan all vår kunskap sitter, men att lita på sin magkänsla kan hjälpa dig i situationer där din vishet inte räcker till.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vår magkänsla/intuition är ett fantastiskt verktyg vi har som hjälper guida oss rätt i alla situationer. Den är som en inbyggd radar med avancerad teknik och programmering.',\n }]\n },\n {\n name: 'Jag sätter personliga mål och strävar dagligen att nå dessa, (arbete, familj, personlig utveckling)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Personliga mål som jag når',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Börja med att fundera över upp till 3 mål som du vill göra om till nya vanor. Vad skulle du vilja göra annorlunda och vad kommer det att ge dig? Varför är denna handling viktig för dig? Hur ska du förbereda sig för att uppnå detta mål? Hur ofta? Hur effektivt? När ska du göra detta, under vilken period? Vem kommer du att behöva stöd av? Utvärdera sen din egen utveckling och fira dina framgångar. Gör detta upprepade gånger så blir det till en vana.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att sätta mål i livet är som att veta vart man vill gå i livet. Vi mår alla bra att veta varför vi går upp på morgonen, så det inte enbart beror på att vi inte dog. Att sätta mål ger oss en trygghet att veta vad jag vill, och det gör våra dagliga beslut enklare då besluten styr mot våra mål.',\n }]\n },\n {\n name: 'Jag fokuserar oftast på; Nutid, Framtid eller Dåtid?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Fokuserar på då, nu eller framtid',\n choices: [{\n name: 'Nutid',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Framtid',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Prova på tex mindfulness och meditation, tacksamhetsövningar.',\n }, {\n name: 'Dåtid',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Dåtid är förfluten tid som vi inte kan påverka, framtid är ännu inte skapad och vi bör därför inte uppehålla oss där mer än att drömma och fantisera. För det är enbart i nuet som vi kan påverka vår framtid. Det är i nuet som du gör dina val i livet, som leder till det liv du vill skapa.',\n }]\n },\n {\n name: 'Jag har negativa tankar',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Negativa tankar',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'En effektiv övning är att vid meditation, se dig själv i rummet/platsen du befinner dig, sen vidare till att se dig själv i huset eller platsen några meter ovanifrån, sen vidare till att se dig själv i staden, i landet, på kontinenten, från rymden. Ungefär som att zooma in och ut i Google maps i satellit mod. Att resa på egen hand är ett annat sätt att få perspektiv.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Förmågan att ibland lyfta blicken och se sig själv ur ett globalt perspektiv, kan vara bra för att sina egna småsaker inte skall bli till dramatiska händelser. Allt i livet är relativt och vi behöver alla lyfta blicken för att se vårt liv i relation till allt annat som omger oss i världen. Detta ökar din medvetenhet, ger dig nytt perspektiv i livet och även möjlighet att se nya lösningar där du själv har fastnat.',\n }]\n },\n ]\n },\n {\n name: 'Obalanser',\n color: '#911eb4',\n questions: [\n {\n name: 'Jag blir dagligen sugen på specifik mat och dryck, t.ex: Kaffe, Choklad, Oliver etc.',\n multiple: false,\n input: 'OM du blir sugen, komplettera med vad du blir sugen på?',\n inputRequired: false,\n scaleGroup: 'Dagligt matbegär',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Balansera din tarmflora genom att undvika socker och ersätta med nyttigare alternativ. Gör detta under minst en månads tid för att vänja dig av från beroendet. Suget kan också indikera näringsbrister, tex brist på krom vid sötsug, brist på magnesium vid sug efter choklad, brist på natrium vid sug efter chips.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ca 90 % av människans serotonin finns i mag-tarmkanalen där det reglerar tarmrörelser. Resten används i huvudsak som mättnadssignal i hjärnan och som tillväxtsignal i kroppen. Via Vagusnerven som går från tarm till hjärna, styr mikroberna i din tarmflora din hjärna att känna av hunger, törst men även cravings, sk. begär. Äter vi t.ex. mycket socker kommer mikrober i tarmen som gillar socker att öka mest och dominerar i sin tur styr din hjärnas sockerbegär. Det är viktigt att lyssna på kroppen, då den försöker tala om för oss vad som är i obalans på insidan. Kroppen försöker förmedla genom att göra dig sugen på viss mat och dryck vad den behöver för att nå balans under förutsättning att du inte lider av speciella ensidiga begär som socker, alkohol eller andra droger.',\n }]\n },\n {\n name: 'Jag dricker minst två koppar kaffe per dag alt. energidrycker, coca cola',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Koffeindrycker per dag',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Om du dricker varje dag, komplettera med hur många gång & mängd?',\n inputRequired: false,\n scoring: 1,\n response: 'Dra ned på kaffeintaget och försök att inte dricka kaffe varje dag. Njut desto mer de dagar du verkligen dricker kaffe. För att maximera näringsupptaget, undvik kaffe 1-2 timmar innan/efter intag av mat och tillskott. All mat och dryck är nyttig i rätt mängd, men all mat och dryck kan även bli giftig i fel mängd. Att äta eller dricka samma sort föda, dryck varje dag, ger på sikt en obalans oavsett om det är kaffe eller apelsinjuice. Att variera ger även större smakupplevelse och njutning när man väl kan ta del av det man älskar. Det finns studier som visar att man får sämre näringsupptag när man dricker kaffe.',\n }]\n },\n {\n name: 'Jag dricker alkohol varje vecka: Om Ja! Följdfråga; Hur ofta och hur mycket.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Alkoholintag',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Om du dricker varje vecka, komplettera med hur många gång & mängd?',\n inputRequired: false,\n scoring: 1,\n response: 'Få hjälp med beroende genom tex psykoterapi. Mindfullness kan vara en väg att gå, träning en annan. Att börja dansa och träffa människor en tredje eller någon annan hobby som får dig att fokusera på det som gör dig glad. Små mängder alkohol kan vara bra för kroppen, medan stora mängder kan förstöra en människas liv. Ett max två glas vin om dagen kan för många vara stärkande, medan allt över denna mängd oftast ger mer skada än nytta. Känner jag behov att dricka mer bör jag finna något som kan ersätta detta beteende.',\n }]\n },\n {\n name: 'Jag röker och eller snusar dagligen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Röker / Snusar',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Om du röker/snusar varje dag, komplettera med hur många gång & mängd?',\n inputRequired: false,\n scoring: 1,\n response: 'Ta reda på ditt varför, som första steg till medveten förändring. Ditt varför är vad du vill uppnå och meningen med ditt liv. Du kan också få hjälp att bli kvitt beroende med hjälp av tex hypnosterapi, frekvensterapi eller psykoterapi. Lite elakt skulle man kunna säg att cigaretter är den vuxnes Napp. D.v.s. ett behov att sysselsätta sig när man är stressad, upprörd eller känner sig ensam eller illa till mods. D.v.s. det skapar en tillfällig trygghet i vardagen. Men om du vill värna om din hälsa bör du finna andra saker som ger dig samma trygghet. Men all förändring kräver mod, och mod får vi när vi har en inre övertygelse om varför?',\n }]\n },\n {\n name: 'Jag har amalgam i munnen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Amalgam i tänderna',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Hur många tänder som är fyllda med amalgam?',\n inputRequired: true,\n scoring: 1,\n response: 'Tillhör du generationen som fick tandlagningar gjorda av Amalgan, försök att byta ut dessa mot porslin genom en sanering av dina gamla tandfyllningar. Det bör göras med försiktighet av en tandläkare med erfarenhet och rätt utrustning och som är väl insatt i riskerna. Amalgamet i tänderna innehåller tungmetaller bl.a. kvicksilver som fäller ut när vi äter framför allt sura eller syrlig mat och frukt. Dessa tungmetaller lagras ofta i kroppen och blir alltmer belastande med åren som går och i kontakt med fria radikaler bl.a. gör att vi åldras fortare och får sämre näringsupptag o.s.v.',\n }]\n },\n {\n name: 'Jag upplever att jag har svårt att minnas?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Minnessvårighet',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Minnesförlust som är kopplad till näringsbrist åtgärdar du genom att tillsätta kost eller tillskott med Omega 3, A-, D-, E, K-vitamin, B-complex inkl B12, magnesium, zink och vatten. Om minnesproblemen inte har med näringsbrister att göra, försök tänka på vad du har upplevt i livet och vad som kan vara din psykiska orsak. Även uttorking leder till minnesförlust. Så se till att dricka ordentligt, ca 1,5 liter vatten /dag.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Minnesförlust (amnesi) är ovanlig glömska. Orsaken avgör om minnesförlust tänds långsamt eller plötsligt, och om det är tillfälligt eller permanent. Minnesförlust kan ha många olika orsaker; vanligaste är alkohol/droger, mediciner, B12 brist, infektioner, mineralbrist, uttorkning samt depression, och trauman som under ett långt liv av förnekelse framkallar minnesförlust p.g.a. att det du bär på, stressar kroppen som inte längre orkar med utan helt enkelt stänger av minnet. Vanlig orsak för demenssjukdomar som Alzheimers.',\n }]\n },\n {\n name: 'Jag har oregelbunden menstruation',\n multiple: false,\n input: 'Om du har mens, kommentar när hade du menstration senast? Eller hur ofta?',\n inputRequired: false,\n scaleGroup: 'Oregelbunden mens',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vid enstaka menstrations obalanser kan orsakenoftast vara stress, undervikt eller att du bantat för fort eller överdriven träning. Det endokrina systemet håller din kropp i balans, reglerar organfunktion och säkerställer god tillväxt och utveckling. Hormonstörande ämnen kan ändra, blockera, härma eller ändra våra naturliga hormoner. Effekten av att utsättas för hormonstörande ämnen kan visa sig senare i livet och kommer inte nödvändigtvis på en gång. Symptom som kan uppstå speciellt hos kvinnor som blivit utsatt för mycket hormonstörande ämnen kan vara; att menstruationen blir oregelbunden och brösten och körtlarna sväller upp. Det endokrina systemet är extra känsligt och vi behöver skydda systemet från gifter. ',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Även om det är omöjligt att helt undvika hormonstörande ämnen så finns det sätt att begränsa exponeringen för det: Välj ekologiska livsmedel. Skaffa en Vattenrenare som tar bort kemikalier och metaller (jag kan rekommendera http://www.purplesolution.e.... Undvik plast som innehåller BPA, konserver och konservmat. Ta bort alla matlådor gjorda av plast och drick inte vatten ur plastflaska. Värm inte upp plast i mikron och drick aldrig vatten ur en plastflaska som legat kvar i bilen och blivit uppvärmd i solen. Diska inte plastburkar i diskmaskinen. Tvätta händerna efter hantering av kassakvitton – många kvitton innehåller BPA och tungmetaller (bly). Som tas upp genom huden när vi tar i kvittona. Undvik ftalater - Dessa kemikalier finns i plaster och är vanligt förekommande i livsmedelsförpackningar och leksaker. De används i ”dofter”, som återfinns i allt från diskmedel och schampo till doftljus och luft fräschare/doftspridare. Använd naturlig hudvård, som du helst skall kunna äta. Tandläkaren har flera alternativ till plastlagningar och fråga om din tandläkare använder sig av ett material som heter Doxa, som är ett mycket bättre alternativ. Tänk på rotfyllningar, där förekommer starka kemiska medel. Dessutom kommer det samla sig bakterier som kan läcka ut i ditt system. Ät regnbågens samtliga färger så ofta du kan. (mycket grönsaker och bär). Det innehåller massor av antioxidanter som skyddar våra celler. NIEHS och National Toxikologi Program har tagit fram studier där det visar sig att ”vissa hormonliknande kemikalier kan påverka kroppsfunktioner redan i mycket låga doser”.',\n }]\n }\n ]\n },\n {\n name: 'Medicinsk status',\n color: '#bfef45',\n questions: [\n {\n name: 'Jag känner regelbundet smärta, obehag i kroppen.',\n multiple: false,\n input: 'Om du känner smärta/obehag, komplettera Var & Vad du tror är orsaken?',\n inputRequired: false,\n scaleGroup: 'Regelbunden smärta',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Känner vi till orsaken och vi har en läkning som pågår då kan vi under tiden även ta något som bedövar den värsta smärtan. Emedan vi är oklara om orsak och läkprocessen, då bör vi undvika smärtlindrande och antiinflammatoriska läkemedel som i värtsa fall kan förvärra skadan, och istället fokusera på dess grundorsak. OBS: Symtomens placering är inte alltid det samma som grundproblemets orsak. T.ex. ryggvärk i nedre svanken, beror ofta på dålig matsmältning som får tarmen att svälla upp och trycka på nerverna längs ryggraden. Smärtan kan vara orsakad av näringsbrister, se till att du får i dig tillräckligt med Omega 3, Magnesium, D-vitamin, K-vitamin, B-complex inkl B12, Zink, Selen, C-vitamin via kost eller tillskott.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Smärta i kroppen oavsett var de uppstår och oavsett vad du tror är orsaken, är kroppens sätt att signalera till dig att något är fel. Ofta reagerar kroppen med en inflammation för att lösa detta problem. Vår kropp har en otrolig förmåga att reparera sig själv i nästan alla lägen, om vi enbart stöder kroppens egna funktioner.',\n }]\n },\n {\n name: 'Jag har vaccinerat mig under de senaste tio åren',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: '',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Vilka vacciner har du tagit och ungefär när?',\n inputRequired: false,\n scoring: 1,\n response: 'Gör medvetna val gällande vacciner. Om du väljer att ta vacciner, gör så minst 1 vecka innan du reser utomlands eller utsätter kroppen för andra patogener som då kan överblasta kroppens immunförsvar, med risk för kraftfulla biverkningar som följd. Vacciner innehåller både den sjukdom som de är tänkt att skydda emot, samt ett antal andra ämnen som bl.a. konserveringsmedel etc. Alla dessa ämnen utgör en belastning på kroppens immunförsvar för att kroppen skall kunna skapa antikroppar mot dessa patogener (virus, bakterier, svamp, parasiter) som vaccinet avser. Beroende på vilket konserveringsmedel eller andra tillsatser som vaccinet innehåller kan dessa skapa olika typer av reaktioner och biverkningar i sig. Men det som framför allt är viktigt att känna till är att vaccinets verksamma beståndsdelar ger ökad belastning på kroppens immunförsvar 3:e samt 7:e dagen efter vaccinering. Detta innbär att dag 3 och 7 efter vaccinering är kritiska för om kroppen skall orka med denna ökade belastningen eller drabbas av biverkningar eller till och med utveckla sjukdomen som vaccinet avser att skydda emot, vilket händer hos vissa känsliga grupper.',\n }]\n },\n {\n name: 'Jag äter medicin och eller kosstillskott ()',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Mediciner / kosttillskott',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Kompletter med vilka märken och vilken dosering. Skriv de mediciner och tillskott som du tar',\n inputRequired: true,\n scoring: 1,\n response: 'Låt mat var din medicin, och medicin vara din mat. Dvs försök att i första hand att ge kroppen det den behöver genom din kost. Tillskott kan vara nödvändiga under en period och i vissa fall nödvändiga även ätas regelbundet när jorden som grödorna växer i är näringsfattig eller att du t.ex. genomgått en Bypass operation. De flesta mediciner och tillskott har sitt ursprung från naturens egna kemiska ämnen såsom växter, örter och rötter. När vi äter det naturen ger oss i sin naturliga form får vi i oss alla synergier, som behövs för att samverka i våra kroppar och ge oss det vi behöver för kroppens olika processer och behov för att nå balans. Detta fungerar mest optimalt när vi äter lokala vilda eller ekologiskt odlade råvaror. ',\n }]\n },\n {\n name: 'Jag har ärftliga sjukdomar i släkten (Cancer, Diabetes, Hjärt- & kärl, Demens, Parkinson)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Ärftliga sjukdomar',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Komplettera med vilka du känner till?',\n inputRequired: true,\n scoring: 1,\n response: 'Förebygg och lindra, där det är möjligt, genetiska sjukdomar genom att äta en kost och hålla en livsstil som stödjer kroppen att nå balans. Studier visar att vi kan påverka våra geners uttryck till 80% genom den kost och livsstil vi väljer.',\n }]\n },\n {\n name: 'Detta stämmer in på min hy: normal, torr, fet, acne, eksem/psoariasis',\n multiple: true,\n input: '',\n inputRequired: false,\n scaleGroup: 'Min huds utseende',\n choices: [{\n name: 'Normal',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Fet',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Ersätt gluten, komjölkprodukter och socker med hälsosamma alternativ, såsom bröd och pasta gjort på naturligt glutenfria mjölsorter, växtbaserad mjölk såsom mandel-, havre- , Dinkelmjölk, och mycket grönsaker i alla dess färger. Tillsätt nyttiga fetter såsom kokosfett, avokado, olivolja, sesamolja. Stress kan också vara en bidragande orsak och är viktigt att minimera.',\n }, {\n name: 'Torr',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Huden är vårt största utsöndringsorgan och visar oss att vi har obalanser på insidan genom tex torr hy, fet hy, acne, eksem, psoriasis m.fl. Ger vi kroppen de näringsämnen den behöver har den bättre förutsättning att nå balans både på insidan och utsidan.',\n }, {\n name: 'Acne',\n input: '',\n inputRequired: false,\n scoring: 3,\n response: 'Acne - lever, slagg, hormoner, stress, toxiner. Acne kan uppstå p.g.a. olika saker: Oftast nedsatt matsmältning med Galla problematik. Det kan även vara inflammation magen/tarm. Utsöndring av gifter via huden kan ge upphov till inflammationer. t.ex. eksem, acne, rosacea genom att huden belastas alltför mycket. Leverproblem eller näringsbrister. Lösningen kan vara: Tillsätt B5, Zink, Vitamin-C, Omega 3, Gurkmeja och Ingefära. Grunda med rätt näring beroende på grundproblem. Undvik inflammationsbildande kost. Acne tar tid så ha tålamod. Läs mer om inflammationsbildande kost se www.life-check.se/blogg',\n }, {\n name: 'Eksem',\n input: '',\n inputRequired: false,\n scoring: 4,\n response: 'Eksem, bla. brist på fettsyror samt obalans i tarm, även levertecken då den visar på obalanser genom huden. Oftast nedsatt matsmältning med Galla problematik. Det kan även vara inflammation magen/tarm. Utsöndring av gifter via huden kan ge upphov till inflammationer. t.ex. eksem, acne, rosacea genom att huden belastas alltför mycket. Leverproblem eller näringsbrister. Tillsätt B5, Zink, Vitamin-C, Omega 3, Gurkmeja och Ingefära. Grunda med rätt näring beroende på grundproblem. Undvik inflammationsbildande kost.',\n }]\n },\n {\n name: 'Detta stämmer in på min mage: Utan besvär. Jag känner mig gasig i mage. Jag blir uppblåst diekt efter att ha ätit, uppblåst efter någon timme. Jag är ofta hård i magen, Jag får ofta diarré.',\n multiple: true,\n input: '',\n inputRequired: false,\n scaleGroup: 'Dålig mage',\n choices: [{\n name: 'Optimalt - Utan besvär',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Jag känner mig gasig i magen',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Ersätt gluten, komjölkprodukter och socker med hälsosamma alternativ, såsom bröd och pasta gjort på naturligt glutenfria mjölsorter, växtbaserad mjölk såsom mandel-, havre- eller cashewmjölk, och mycket grönsaker i alla dess färger. Ät mycket råa grönsaker för att få i dig viktiga enzymer kroppen behöver för att bryta ned maten. Enzymtillskott kan tillsättas vid behov för att få snabb effekt. Tillsätt nyttiga fetter såsom kokosfett, avokado, olivolja, sesamolja. Stress kan också vara en bidragande orsak och är viktigt att minimera. OM du tycker at det känns för tungt att sluta med allt gluten, kan du prova att byta ut allt brd du äter mot äkta surdegsjästa bröd. De den långa fermenteringstiden (jästiden) på ett äkta surdegsbröd har jäst minst 12 timmar upp emot48 timmar. Gör att det mesta av glutinet har brytits ner. Väljer du dessutom surdeg som bakats på enbart Dinkelvete, korn, råg eller havre, så kommer du garanterat må betydligt bättre. Vanligt vete bör du undvika så långt det är möjligt. Även pasta på dinkel och pizzabröd på dinkel är att föredra. Vill du veta mer om detta kolla in på vår bloggsite och läs om surdegsbröd och modernt vete som har förädlats 50 000 gång sedan 1954. www.evergreenhealth.se',\n }, {\n name: 'Jag blir uppblåst i magen efter en måltid',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Kroppen visar tydligt att den har svårt att smälta maten. Det leder inte bara till symtomen beskrivna utan även till att kroppen får svårt att ta upp näringen och därmed inte förutsättningar att fungera optimalt.',\n }, {\n name: 'Jag blir uppblåst i magen efter en timme',\n input: '',\n inputRequired: false,\n scoring: 3,\n response: 'Hård mage eller förstoppning kan ha många orsaker, men oftast beror det på att du inte går på toaletten tillräckligt ofta, eller att du dricker för lite vätska. OBS: Kaffe, Cola och alkohol torkar ut kroppen och ger inte den vätskemängd som kroppen behöver. Även stillasittande arbete och fritid gör att tarmen inte masseras av dina kroppsrörelser, vilket ökar risken för förstoppning. Lösning är regelbunden rörelse, (promenader, gå i trappor istället för att ta hissen etc) Samt dricka minst 2 liter vatten per dag samt gå på toaletten så fort du behöver, samt sitt kvar en tid så din kropp hinner reagera och få ut din avföring. ',\n }, {\n name: 'Jag blir oftast hård i magen',\n input: '',\n inputRequired: false,\n scoring: 4,\n response: 'Som regel är akut diarré ett symtom på en gastrointestinal infektion, d v s att man fått i sig, bakterier, virus eller parasiter som hämmar tarmens förmåga att ta upp vätska. Därmed blir vätskan kvar i tarmen och löser upp avföringen – man har fått diarré. Dessa bakterier, virus eller parasiter kan vi råka ut för överallt. Men risken är extra stor när vi är utomlands och möter ”främmande” bakteriemiljöer i både dricksvatten och mat. Andra orsaker till diarré kan vara för hög konsumtion av alkohol eller kaffe, födoämnesallergier, stress och ångest eller som en bieffekt av medicinering. Har du ofta diarré tyder på att din tarmflora är i obalans eller saknar förmåga att ta hand om de födoämnen som du äter. Antingen det beror på intolerans mot t.ex. gluten, laktos eller andra livsmedelsprodukter. Rådgör gärna med oss för att finna grundorsaken till dessa symtom. OBS: Vid diarré, drick mycket vatten, så du inte torkar ut. Svensk råa eller frysta blåbär hjälper till att minska problemet liksom kryddnejlika som du maler och dricker som te.',\n }, {\n name: 'Jag får ofta diarré',\n input: '',\n inputRequired: false,\n scoring: 5,\n response: '',\n }]\n },\n {\n name: 'Jag har allergi?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Allergier',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Komplettera med vilka du vet att du har?',\n inputRequired: true,\n scoring: 1,\n response: 'Allergier kan bero på olika slags faktorer, arv eller miljö eller en kombination av de båda. Miljömässiga faktorer kan vara föroreningar, epidemier och kost. Människor som har stor benägenhet att utveckla en allergi har en så kallad atopi. Mastceller - bekämpar parasiter, speciellt maskar. Mastceller binder till sin yta antikroppar som i sin tur aktiverar utsöndring av histamin. Mastceller är även den huvudsakliga orsaken till allergier. Histamin är ett hormon som är verksamt vid allergier. Den sätter igång den allergiska reaktionen om man är överkänslig mot något. Allergi är ett sätt för kroppen att säga att nu är det något som är för mycket och att immunförsvaret är för överbelastat. Vid autonoma sjukdomar så som reumatism angriper vårt immunförsvar sig själv, i tron som att de vore fiender. Även fast det är vanligt att ärva atopiska egenskaper, utvecklar inte alla allergi. Ibland kan en allergi utvecklas på grund av att systemet är fullt av gifter och inte orkar mer. Den stöter då ifrån sig ämnet. Matallergier och intoleranser är vanligt här. Dock är inte celiaki (glutenintolerans) en grundorsak utan det kan bero på att kroppen har blivit utsatt för tungmetaller. Som i sin tur skapat inflammationer så kroppens immunförsvar inte orkar ta hand om allt, det är ständigt triggat. Då kan det vara bra att ta tillskott av något som kallad L-glutatin, som dels är ett mycket effektivt antioxidant vilket motverkar de fria radikalerna som bl.a. tungmetaller utgör. Samt hjälper kroppen att transportera ut tungmetaller som koppar, kvicksilver etc. ut ur kroppen. ',\n }]\n },\n ]\n }\n ]\n};\n","export default {\n version: 2,\n sections: [\n {\n name: 'Basfrågor',\n color: '#e6194B',\n questions: [\n {\n name: 'Vad är din vikt i kilogram?',\n type: 'input',\n inputType: 'number',\n accessor: 'length',\n },\n {\n name: 'Vad är din längd i centimeter?',\n type: 'input',\n inputType: 'number',\n accessor: 'length',\n },\n {\n name: 'Är du gravid eller ammar?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Gravid / ammar',\n gender: 'Female',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: ''\n }, {\n name: 'Vet ej',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi rekommenderar att du kollar upp om du är gravid så du har vetskapen och slipper eventuell oro. Om du avser att bli gravid så rekommenderar vi att du kollar upp dina värden av näring och dess inbördes balans. Kolla upp tungmetaller och framför allt kolla upp de mediciner som du ev. tar. Öka ditt mineralintag, sänk Omega 6, öka din syresättning genom djupandning, avslappning.'\n }, {\n name: 'Ja',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Grattis till ditt kommande barn. Nu när vi vet detta kan vi ta med detta i vår beräkning vid framtida test analyser\" För att ge både mamma och barn viktiga näringsmässiga förutsättningar och förhindra missbildning och andra psykiska störningar; Undvik att laga mat i aluminiumkastruller eller folie, för att förhindra Autism ofta förekommande vid för hög halt aluminium. Asperger, ADHD, dyslexi motsv. har ofta brist på Omega3, Vitamin-D och -C samt B-komplex. Kolla även järnvärdena och magnesium och zink.'\n }],\n }, {\n name: 'Vet du när du hade din senaste menstruationsdag?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Menstruation',\n gender: 'Female',\n choices: [{\n name: 'Vet ej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: ''\n }, {\n name: 'Ja',\n input: 'Ange den första dagen på din menstruationsperiod.',\n inputRequired: true,\n scoring: 1,\n response: ''\n }],\n },\n {\n name: 'Hur är din huvudsakliga kost?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Kosthållning',\n choices: [{\n name: 'Vegan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Som vegan har du större möjligheter till en ren och frisk kropp. Men kom ihåg att om du nyligen blivit vegan, behöver din kropp en viss tid för att ställa om sig innan den kan ta upp all den näring som din kropp har vant sig att få genom andra källor\" Att omvandla omega 3 från ALA från t.ex. linfrön till EPA och DHA tar tid för kroppen att förstå. Samma sak om du tagit regelbundet C-vitamin som kosttillskott under längre tid, då kommer det ta tid för kroppen att förstå att den måste ta upp vitamin-C från frukt och rotfrukter. '\n }, {\n name: 'Vegetarian',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Som vegetarian så bör du få i dig de mesta du behöver. Dock kom ihåg att många vegetarianer äter ofta alldeles för ensidig kost då nästan alla färdiga matprodukter på marknaden är gjorda av soja. All mat är nyttig i rätt mängd, men all mat är giftig i fel mängd. Så var Observant på att du äter tillräckligt varierat och försök äta regnbågens alla färger varje dag samt de 4 smakerna, Salt, surt, sött och beskt. OBS: överdriv inte det söta. Försök även ta minst 60% lokalproducerat och är den mat som skördas efter respektive årstid. Då kommer du få en optimal hälsa.'\n }, {\n name: 'Allätare',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi människor har under årtusenden utvecklats att bli de mest uthållig \"djuret\" av alla däggdjur. Vi är även det mest anpassbara \"Djuret\" av alla. Detta gör att vi kan leva som rena köttätare likt Inuiter (Eskimåer) gjorde förr, vi kan även leva helt vegetariskt som majoriteten av befolkningen i Indien gör. Eller vi kan välja att vara s.k. allätare. Oavsett vilket val vi gör så måste det finnas en balans för att vi skall må bra. Att äta mycket kött innebär att din kropp utvecklas snabbt, men den åldras även snabbt. Inuiterna hade en genomsnittlig livslängd av 43 år innan de började importera frukt och grönt från resten av världen, men det var könsmogna vid 12 års ålder redan för att hinna fortplanta sig. \\n' +\n 'Om du äter mycket grönsaker och frukt, får du en långsammare utveckling men lever desto längre. Det som är viktigt att förstå är att var och en måste sätta upp sina mål varför äter jag som jag gör? - Vill jag leva länge? Vill jag bli elitidrottare? Vill jag öka min mentala kapacitet? Vill jag leva frisk och vitalt aktiv livet ut? Sedan vi svenskar gick med i EU, har vi ökat vår konsumtion av kött med 8% varje år och andelen sjuka i cancer, hjärt- & kärlsjukdomar, diabetes m.fl. har ökat i samma takt. \\n' +\n 'Så vårt råd till dig är att tänka på följande: Ät minst 60% lokalproducerad mat. (Naturen är alltid i balans, så för att vi människor och djur som lever i en viss klimatzon skall klara det klimat vi lever i, så har naturen sett till att ge oss allt vi behöver. Våra svenska bär har mellan dubbelt till 10 gånger högre näring än samma bär som växer söderut. Detta för att vi skall klara den långa mörka vintern.) Följ den mat som skördas för den årstid som gäller. (då är den som mest nyttig) Ät minst 0,5 dl av regnbågens alla färger inkl., svart och vitt varje dag (ger dig alla nödvändiga vitaminer och antioxidanter). Äta de fyra smakerna Sött, Salt, Surt och Beskt varje dag. (ger dig alla mineraler samt balansera pH-värdet) Så kommer din hälsa att hålla sig betydligt bättre än genomsnittet\" Allmänt bör de flesta tänka på Syra-basbalans, minska sockerintag, minska protein, öka grönsaker och frukt i vissa fall. Rådgör med oss på Life-Check för kostkonsultation.'\n }, {\n name: 'Går på diet',\n input: 'Vilken diet?',\n inputRequired: false,\n scoring: 3,\n response: 'Alla dieter som skiljer sig från vår vanliga kosthållning kommer att kortsiktigt ge dig en förbättring, då din kropp alltid vill ha variation. Men alla dieter kommer även bli som din tidigare kosthållning, d.v.s. den hindrar en variation som din kropp behöver. Vi lever i en värld där vi reser till fjärran länder, vi lever i olika klimatzoner med olika mycket sol, värme och kyla etc. allt detta påverkar vårt behov av näring och fetter. Så att köra samma kosthållning över allt året om, fungerar inte om vi önskar en optimal hälsa och välmående. Att köra en diet som t.ex. detox (avgiftning) så måste du vara medveten om att först se till att alla dina utrensningsorgan som lever, njurar, lymfsystem mm, fungerar för att din kropp skall kunna frigör inlagrade gifter och att kroppen kan föra ut dessa, i annat fall så kan det bli allvarliga bieffekter. Kör du en alltför sträng LCHF diet där du helt utesluter kolhydrater finns det belägg för att många människor har drabbats av depression efter 3–6 månader på en sådan diet. Så var vaksam på den diet som du väljer och vilka risker du tar. Vi avråder inte från att köra en diet, men vi vill uppmärksamma dig på att den skall vara i balans med din kropps behov. Att banta bort övervikt kan leda till att hjärnan får för lite energi och du får negativa bieffekter som du inte önskar. Vill du veta mer så rådfråga oss på Life-Check.'\n }],\n },\n {\n name: 'Hur ser du på din kropp? Normalvikt, underviktig eller överviktig eller muskulös/atletisk???',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Din kropp',\n choices: [{\n name: 'Muskulös',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Att vara muskulös, d.v.s. vara vältränad är utmärkt, men om du tränar på elitnivå skall du vara medveten om att din kropps normala matintag inte räcker till. Då måste du söka hjälp av en kostrådgivare för att veta hur du skall äta för att inte bränna muskler och tappa vikt.'\n }, {\n name: 'Normal',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Att vara normal viktig låter bra. Men vad är din önskan att vara? Muskulös, snabb, uthållig, vig och flexibel? vad du än önskar så kan vi på Life-Check hjälpa dig att nå dina mål. Låt oss bli din personliga kroppsmentor. '\n }, {\n name: 'Överviktig',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Psykoterapi /NLP vid ohälsosam självuppfattning. Annars öka/minska vikt genom kost och rörelse. Fysiska behandling med frekvenser rekommenderas vid fetma. Om du har svårt att minska i vikt, så kan det även beror på att du har ett psykologisk undermedvetet skydd, att det finns en osäkerhet där du känner dig sårbar och behöver ett skydd. I detta fall ökad fettinlagring'\n }, {\n name: 'Underviktig',\n input: '',\n inputRequired: false,\n scoring: 3,\n response: 'Acceptans av den egna kroppen är en av förutsättningarna för välmående. I båda fallen av över- eller undervikt finns även en underliggande psykologisk faktor. Därav att det finns belägg att psykologisk NLP i de flesta fall är den bästa lösningen.'\n }],\n },\n ]\n },\n {\n name: 'Kost',\n color: '#f58231',\n questions: [\n {\n name: 'Jag äter restaurangmat och eller hämt-mat/färdiglagad mat.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Industri tillagad mat',\n choices: [{\n name: 'Dagligen',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi rekomenderar utbildning och kostomläggning.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi kan förebygga ohälsa och påverka vår livslängd och livskvalité till stor del genom vår kost och livsstil. Regelbundet intag av restaurang lagad mat kan innebära större mängder av omega 6, härdade fetter (transfetter) samt nitrit.',\n }],\n },\n {\n name: 'Jag dricker minst 1,5L vatten om dagen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Vatten',\n choices: [{\n name: 'Dagligen',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi rekommenderar utbildning och kostomläggning.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vatten är bland de viktigaste näringsämnen för kroppen då vi består till stor del (ca 70%) av vatten. Det är också grundläggande för de flesta kroppsfunktioner, som t.ex. producera energi, skapa minnen i cellerna samt transportera ut näring och syre samt göra sig av med slaggprodukter mycket annat. Är det något vi skall prioritera mer än allt annat i livet så är rent vatten det bästa vi kan tillföra vår kropp.',\n }],\n },\n {\n name: 'Jag äter minimum halva tallriken med grönsaker och/eller rotfrukter (färska, frysta eller tillagade)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Grönsaker',\n choices: [{\n name: 'Minst 50%',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Mindre än 50%',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Öka mänden grönsaker, följ årstiderna till minst 60%, handla närproducerat och helst ekologiskt. Vill du veta med kolla in vår blogg på www.life-check.se.',\n }, {\n name: 'Nästan aldrig',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Råa grönsaker ger viktiga enzymer. Grönsaker i allmänhet ger kroppen viktiga byggstenar som kolhydrater, fett, protein, vitaminer, mineraler och antioxidanter. Dessa hjälper kroppen att reglera pH-värdet som i sin tur hjälper kroppen att ta upp näring effektivare.',\n }],\n },\n {\n name: 'Jag äter något eller några av följande: gluten (vete råg korn), mjölkprodukter, tillsatt socker.',\n multiple: true,\n input: 'Hur ofta/mycket av vad??',\n inputRequired: false,\n scaleGroup: 'Gluten, Mjölkprodukter, Socker',\n choices: [{\n name: 'Inget av dessa.',\n input: '',\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Mjölkprodukter',\n input: '',\n scoring: 1,\n response: 'Rent generellt kan mjölkprodukter fungera som föda i mindre mängder om de kommer från en bra naturlig ekologsk källa från gräsbetande kor. Men tyvärr så är hanteringen av den industriella mjölkframställningen skadlig för det som naturligt bör finnas i en balanserad hälsosam mjölkprodukt. Vi rekomenderar därför att byta ut komjölksprodukter mot växtbaserad mjölk, eller get/fårmjölk. Även havremjölk eller mandelmjölk, kokosmjölk motsv. fungerar bra.',\n }, {\n name: 'Gluten',\n input: '',\n scoring: 2,\n response: 'Generellt bör alla människor minska intaget av Vete, som är förädlat 50 000 ggr sedan 1943, vilket gör att vetet av idag är extremt obalanserat som föda. Minska på vete, använd hellre ursprungssorter som Dinkel, Kamut, Emmer och Enkorn motsv. samt välj alltid äkta Surdegsbröd om bröd är ett måste. Eller sluta helt med vete\". Referens till studie som visar att majoriteten av människor påverkas/får genomsläpplig tarm av gluten, samt att det motverkar upptag av vitaminer och mineraler.',\n }, {\n name: 'Socker',\n input: '',\n scoring: 3,\n response: 'Undvik drycker med socker och sötningsmedel helt, välj hellre natrulig äkta honung eller äkta Lönnsirap motsv. i te och kaffe eller uteslut helt socker. Överkonsumtion av socker kan leda till livsstilssjukomar som diabetes2. Ökat sockerbrär och därmed övervikt och fetma etc.',\n }],\n },\n {\n name: 'Jag stressar ofta i mig mina måltider? D.v.s. jag avslutar mina måltider snabbt. Eller äter du långsamt och sitter du kvar en stund efter maten?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Stressar i mig mat',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende.'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Sitt ned och ät i lugn och ro. Djupandas gärna några minuter innan du börjar måltiden. Tugga maten noggrant och undvik dryck till maten. Drick före eller efter maten. Ta det lugnt en stund efter maten. Gör hellre rörelseaktivitet innan maten och vänta 30-60 min efter maten.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'När vi stressar prioriterar vår kropp att förbereda sig för kamp/flykt och prioriterar ned matsmältning. Det gör att tex magsäcken inte kan producera tillräckligt med saltsyra för att bryta ned maten. Stress gör också att blodtillförsel prioriteras till muskler istället för matsmältningsorganen. Kroppen kan då inte ta hand om maten och både matsmältning och näringsupptag försämras.',\n }],\n },\n ],\n },\n {\n name: 'Sömn',\n color: '#3cb44b',\n questions: [\n {\n name: 'Jag sover ca 7-8 timmar per natt',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Effektiv sovtid',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Sov ej mer än 8 timmar. Helst endast 7 timmar om du inte har ett fysiskt ansträngande arbete. (Om du har en sjukdom i kroppen, rekomenderar vi att sova så mycket som kroppen behöver).',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att sova mer än 8 timmar per natt kan det vara en indikation på att kroppen är i obalans.',\n }]\n },\n {\n name: 'Jag lägger mig i regel ca kl 22',\n multiple: false,\n input: 'Om inte 22.00 så när lägger du dig?',\n inputRequired: false,\n scaleGroup: 'Sovtider på dygnet',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Regelbundna sovtider mår kroppe bäst av. att sova mellan 22.00 fram till 15.00 är den mest verksamma tiden på dygnet för kroppen att nå maximal vila. Stäng av TV, dataskärm, och använd helst blått ljus 1-2 timmar innan sänggående. Djupandas och meditera/slappna av timmen innan sänggående. Lägg dig helst så att du somnar vid 22.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att sova reglebundet och tillräckligt mycket ger ökat produktion av Melatonin, kroppens starkaste antioxidant. Detta antioxidant bidrar till bättre hälsa, stärker immunförsvaret och du lever längre. Att sova mellan 22-03 ger bästa nattvilan. Cirkadiska rytmen. Läs gärna mer om detta i vår blogg om Nattarbete.',\n }]\n },\n {\n name: 'Jag känner mig utvilad när jag vaknar',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Utvilad på morgonen',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Är du fortfarande trött på morgoen kan det vara näringsbrist, framför allt magnesium, vitamin-D och K2, samt att du läcker energi pga inflammationer i kroppen som dränerar energinivåerna. Det kan ävenbero på att du har svårt att syresätta kroppen p.g.a. snarkningar.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att kunna känna sig utvilad efter nattsömn är mycket viktigt och bra sov vanor ger kroppen möjlighet att producera melatonin. Kroppen tål dessutom högre belastning och stress mycket bättre.',\n }]\n },\n {\n name: 'Jag sover vanligtvis hela natten utan avbrott',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Sova utan avbrott',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: 'Vad tror du är orsaken till att du inte kan sova utan avbrott?',\n inputRequired: true,\n scoring: 1,\n response: 'Om du vaknar ofta under natten. Kör 4 regeln: 1) Inte äta innan sänggående. Minst 2 timmar emellan. 2) Inte dricka grönt te eller kaffe under kvällen, ibland inte ens under eftermiddagen. 3) inte sova på dagen för sent. Barn som sover på eftermiddagen påverkar endast nattsömnen om de vilar efter 16.00. 4) Inte stirra på en lysande skärm, TV, dator eller mobil innan sänggående. Stäng av alla modem och elektriska sovklockor. Dessa strömmar frekvenser som påvekar din kropp negativt och stör sömnen för vissa. Även småbarnsföräldrar tvingas vakna flera gånger under natten, vilket påverkar vårt välbefinnande. Är ni 2 så dela upp nätterna om detta är möjligt. ',\n }, {\n name: 'Sällan',\n input: 'Vad tror du är orsaken till att du inte kan sova utan avbrott?',\n inputRequired: true,\n scoring: 2,\n response: 'Att kunna känna sig utvilad efter nattsömn är mycket viktigt och bra sov vanor ger kroppen möjlighet att producera melatonin. Kroppen tål då dessutom högre belastning och stress myckey bättre.',\n }]\n },\n {\n name: 'Jag somnar vanligtvis inom 10 min när jag lägger mig',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Förmåga att somna',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Om det tar lång tid att somna kan det bero på att kroppen är stressad, att dygnsrytmen har rubbats eller att melatoninproduktionen på annat sätt är störd. OM du har för vana att använda dator, mobil innan sänggående, se till att mobilen/datorn är inkopplad med blåljusfilter, (night vision). I annat fall kommer din kropp inte koppla på din melatoninproduktion som är din kropps absolut starkaste antioxidant, vilket reparerar din kropp när du sover.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Du somnar lättare och skönare om du lägger dig på regelbundna tider, undviker starkt ljussken från datorer, mobiler och andra lysande föremål. En 15 minuters meditation med lugnade djupa andningsövningar i 5 minuter kommer att göra underverk. Även en stilla meditativ musik, lugnar ner din kropp så att då kan somna snabbare. Undvik att äta sent och drick varken kaffe eller grönt te, då dessa piggar upp dig. Samma sak med energidrycker och läsk.',\n }]\n },\n ]\n },\n {\n name: 'Träning',\n color: '#42d4f4',\n questions: [\n {\n name: 'Jag tränar/rör på mig minst 30 min, 3 ggr i veckan',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Tränar 3 ggr/vecka',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Börja med att prioritera en stund några ggr i veckan då du tex tar en promenad eller utövar annan rörelse/motion som du uppskattar. Öka successivt till minst 30 min, 3 ggr i veckan.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Rörelse är ett måste för en sund kropp, själ och hjärna samt att fördröja åldrandet. Syreupptagningsförmågan, leder, matsmältning och tankar blir bättre.',\n }]\n },\n {\n name: 'Jag får energi av att träna',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Energi av träning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Fundera på om det är rätt träningsform för dig. Prova annan typ av rörelse eller motion eller minska på ansträngningsgraden. Saknar du energi efter att ha tränat hårt även efter ett par timmars återhämtning, finns det risk för inflammation i kroppen',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att ständigt vara i rörelse är en del av livet. Rörelse skapar energi och ger vitalitet i kroppen som både förbättrar hjärnans funktion och förlänger ditt liv.',\n }]\n },\n {\n name: 'Jag känner mig återhämtad efter ett intensivare träningspass efter 2 dagar (där du når 70% av din maxpuls)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Återhämtning av träning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Bristande kondition måste motverkas med mer kondition i vardagen. Gå i trappan tag ej hiss. Gå en promenad utomhus varje dag i ur och skur minst 20 minuter.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att kunna återhämta sig snabbt indikerar på en vitalitet i kroppen som både förbättrar hjärnans funktion och förlänger ditt liv.',\n }]\n },\n {\n name: 'Jag känner mig mjuk och rörlig i kroppen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Rörlighet i kroppen',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Träna plank-tänj 10 minuter om dagen. Samt kroppsklappning. Yoga eller stretching.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Genom dagligen genomför dessa övningar kan du undvika över 70 olika sjukdomar.',\n }]\n },\n {\n name: 'Jag får önskade resultat av min träning',\n multiple: false,\n input: 'Beskriv vilket resultat önskar du?',\n inputRequired: false,\n scaleGroup: 'Önskat resultat av träning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Öka självbilden du duger som du är, kostomläggning och andningsteknik. Se över träningsrutiner, kanske har man nått en platå och behöver öka intensitet eller ansträngning för att nå mer resultat. Blir man för trött efter träning och har svårt med återhämtning kan man istället behöva minska intensitet och ansträngning och ev. byta aktivitet.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Uteblivet resultat av träning påverkar livskvalité och kan leda till att man tappar intresse och energi.',\n }]\n },\n ]\n },\n {\n name: 'Jobb/ekonomi',\n color: '#000075',\n questions: [\n {\n name: 'Jag känner mig tillfreds med min ekonomiska situation',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Bra ekonomi',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Sök ekonomirådgivning/planeringshjälp',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Otillfredsställande ekonomi kan bidra till stress och försämrad livskvalité',\n }]\n },\n {\n name: 'Jag har människor att rådfråga kring ekonomiska frågor',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Rådgivning ekonomi',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Skapa självtillit och byt arbete om situationen inte förbättras efter försök att kommunicera med arbetskamrater och chef.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi spenderar många timmar på jobbet och det är viktigt inte bara för vår ekonomi men för vår hälsa och välbefinnande att känna att våra behov möts på arbetet.',\n }]\n },\n {\n name: 'Jag vet hur jag kan göra för att påverka min ekonomi',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Kan påverka min ekonomi',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Begär nya arbetsuppgifter på jobbet eller byt arbete',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att utvecklas i jobbet är en viktig del av tillfredställelse med arbete och därmed också allmänt välbefinnande. Känner man att man sitter fast i samma arbetsuppgifter och rutiner kan det leda till stress, en känsla av att sitta fast och inte komma vidare.',\n }]\n },\n {\n name: 'Jag utvecklas av mina arbetsuppgifter',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Utveckas i mitt arbete',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Skapa självtillit och byt arbete',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att känna sig uppskattad är en viktig faktor för att känna sig tillfreds och lycklig på jobbet. Vi vill känna att vi gör ett bra jobb och att vi får bekräftelse på det.',\n }]\n },\n {\n name: 'Jag har energi över efter en arbetsdag',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Energi efter arbetsdag',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vilken arbetsbelastning orkar du med. Se över om du har för mycket arbetsuppgifter och för mycket ansvar. Minimera stress. Öka träning på gym motsv. Med vikter och kondition',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Om man inte har energi över efter arbetsdagen får man svårt att orka med resten av livet, livskvalitén blir lidande. Det kan innebära att du arbetar mer än du egentligen har energi till och på sikt öka risken för utmattning. Det kan finnas en underliggande problematik med stress som lett till inflammation och obalanser i kroppen som behöver tas om hand. Har man \"bara\" dålig kondition behöver man prioritera att öka den för att därmed också öka sin livskvalité, att orka göra mer än bara jobba',\n }]\n }\n ]\n },\n {\n name: 'Familj/vänner',\n color: '#469990',\n questions: [\n {\n name: 'Jag känner mig sedd och bekräftad av min familj (t.ex partner, barn, syskon och föräldrar)',\n multiple: false,\n input: 'Beskriv av vilka du blir bekräftde av samt vilka du inte känner bekräftelse ifrån?',\n inputRequired: false,\n scaleGroup: 'Bekräftad av andra',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga be om det som du önskar på riktigt',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ett av våra mest grundläggande behov är att känna att vår omgivning ser oss och bekräftar oss. Det ökar vår självkänsla och bidrar till välbefinnande och livskvalité',\n }]\n },\n {\n name: 'Jag trivs med min partner relation/relationsstatus/singel.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Bra relation',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga be om det som du önskar på riktigt',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ett otillfredsställande förhållande med partner kan leda till stress och nedstämdhet och sänker livskvalité och livsenergi.',\n }]\n },\n {\n name: 'Jag har nära vänner.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Energi av vänner',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du tycker, egenvärde',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vi är alla energivarelser och påverkas i olika grad av andras energier. Umgås man med andra människor som påverkar den egna energin negativt kan det leda till stress och nedstämdhet som sänker din livskvalité',\n }]\n },\n {\n name: 'Jag får energi av mina vänner',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Kommunikation med omgivning',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du tycker, egenvärde',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Dålig kommunikation med omgivningen kan leda till stress, frustration och nedstämdhet. Ett av våra grundläggande behov är att känna gemenskap, ge och få utbyte med andra människor.',\n }]\n },\n {\n name: 'Jag upplever att jag har en givande kommunikation med min omgivning',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Feedback helt OK',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du tycker, egenvärde',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'En viktig del av personlig utveckling är att kunna ge och ta emot feedback. Vi får genom det en ökad förståelse för hur vi uppfattas av andra och hjälper andra på samma sätt. Det ger en känsla av att kontroll över sitt liv och möjlighet att öka sin livskvalité',\n }]\n },\n {\n name: 'Jag känner mig tillfreds att ge och ta emot feedback',\n multiple: false,\n input: 'Kommentera vilket: Bra på att ge men inte ta emot? Eller bra på att ta men inte ge? Eller bra på både och?',\n inputRequired: true,\n scaleGroup: '',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: '',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: '',\n }]\n }\n ]\n },\n {\n name: 'Fysisk tillfredsställelse',\n color: '#808000',\n questions: [\n {\n name: 'Jag får enligt MIG den tillfredställande mängd av beröring i form av kramar och närhet.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag får beröm',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Är du bra på att ta emot beröm? Träna på detta. Ger du andra bekräftelse? Att börja ge utan krav på motprestation.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ett av våra mest grundläggande behov är att känna att vår omgivning ser oss och bekräftar oss. Det ökar vår självkänsla och bidrar till välbefinnande och livskvalité',\n }]\n },\n {\n name: 'Jag känner mig nöjd med mitt sexliv',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Nöjd med sexlivet',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Kost och träning eller fysisk funktionsnedsättning, psykoterapi, partnerterapi.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Sex är ett av våra mest grundläggande behov, enligt Maslows behovstrappa. Vid sex ökar nivåerna av dopamin och oxytocin i våra kroppar som ger oss känsla av njutning, tillfredställese och livsenergi. Har vi ett otillfredställande sexliv är det därmed viktigt att',\n }]\n },\n {\n name: 'Jag känner mig snygg naken',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Snygg naken',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden, självacceptans. Kostomläggning och träning vid behov.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Det är viktigt för välbefinnandet att känna sig bekväm i sin kropp, att vara tacksam och uppskatta den.',\n }]\n },\n {\n name: 'Jag vågar uttrycka mina fysiska behov',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Vågar uttrycka min behov',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden och våga stå upp för vad du behöver.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Det är viktigt för våra grundläggande behov att vi kan uttrycka våra fysiska behov. Tex beröring som närhet, kramar och sex ökar lyckohormonet oxytocin och dopamin som ger välbefinnande och livsenergi.',\n }]\n },\n ]\n },\n {\n name: 'Egentid/återhämtning',\n color: '#ffe119',\n questions: [\n {\n name: 'Jag bokar in tillfällen / aktiviteter som förstärker min livslust och fyller på med energi (massage, resor, skogsutflykt, konsert)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag gör saker jag gillar',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Prioritera och sätt undan tid varje vecka för att göra sådant som ger dig energi och glädje.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'För att vara hållbar i längden och kunna finnas där för våra nära och kära är det viktigt att vi tar hand om oss själva och fyller på vår energi med aktiviteter som ger oss glädje och livslust.',\n }]\n },\n {\n name: 'Jag upplever tacksamhet dagligen för det jag har i livet.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag är tacksam',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Tacksamhetsövningar - fundera en stund varje kväll och varje morgon på vad du är tacksam för. Skriv gärna ned och sätt upp där du kan påminnas om vad du är tacksam för.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'När vi känner tacksamhet ökar vår glädje, helt enkelt för att vi inser att vi har mer än vi tror, när vi flyttar fokus från vad vi inte har, till vad vi faktiskt har.',\n }]\n },\n {\n name: 'Jag utövar aktiv vila såsom meditation, mindfullness, skogspromenad dagligen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag utövar aktiv vila',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Prioritera och sätt undan tid varje dag för aktivitet som ger dig återhämtning, såsom skogspromenad, mindfullness eller meditation.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Studier visar att aktiviteter som meditation har en regenererande effekt på hjärnan.',\n }]\n },\n {\n name: 'Jag vet vilken typ av återhämtning jag behöver för att skapa balans i mitt liv.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag kan återhämta mig',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Fundera på och prova på olika aktiviteter för att hitta det som är rätt för dig. Det kan vara aktiviteter som ger aktiv vila eller intensivare aktiviteter såsom att utöva olika sporter, beroende på dina behov.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'För att vara hållbar i längden och kunna finnas där för våra nära och kära är det viktigt att vi tar hand om oss själva och fyller på vår energi med aktiviteter som ger oss återhämtning, glädje och livlust.',\n }]\n },\n {\n name: 'Jag djupandas medvetet dagligen med magen.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Jag kan djupandas dagligen',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Djupandningsövningar morgon och kväll',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Det är vanligt att vi andas för ytligt, då får inte kroppen tillräckligt med syresättning och det påverkar bla kroppens Ph-balans och kroppens förmåga att få ut koldioxid ur blodet.',\n }]\n },\n ]\n },\n {\n name: 'Personlig utveckling/mental hälsa',\n color: '#4363d8',\n questions: [\n {\n name: 'Jag känner mig stressad eller orolig dagligen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Stressad & orolig daglien',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Psykoterapi för att öka självbilden, självacceptans och hjälp att prioritera och eliminera orsakerna till stress, oro, ångest. Se över näringsintag och öka intag av kost och/eller tillskott som magnesium, zink, D-vitamin, K2.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'När vi är stressade går kroppen in i kamp/flykt läge, då prioriteras tex matsmältning ned och vi får problem med matsmältning och näringsupptag. Samtidigt går det åt mer näring när vi stressar. Det är viktigt att minimera stress för att vara hållbar och vital i längden.',\n }]\n },\n {\n name: 'Jag litar vanligtvis på min magkänsla',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Litar på min magkänsla',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vi vill gärna tro att det är i hjärnan all vår kunskap sitter, men att lita på sin magkänsla kan hjälpa dig i situationer där din vishet inte räcker till.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Vår magkänsla/intuition är ett fantastiskt verktyg vi har som hjälper guida oss rätt i alla situationer. Den är som en inbyggd radar med avancerad teknik och programmering.',\n }]\n },\n {\n name: 'Jag sätter personliga mål och strävar dagligen att nå dessa, (arbete, familj, personlig utveckling)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Personliga mål som jag når',\n choices: [{\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Börja med att fundera över upp till 3 mål som du vill göra om till nya vanor. Vad skulle du vilja göra annorlunda och vad kommer det att ge dig? Varför är denna handling viktig för dig? Hur ska du förbereda sig för att uppnå detta mål? Hur ofta? Hur effektivt? När ska du göra detta, under vilken period? Vem kommer du att behöva stöd av? Utvärdera sen din egen utveckling och fira dina framgångar. Gör detta upprepade gånger så blir det till en vana.',\n }, {\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Att sätta mål i livet är som att veta vart man vill gå i livet. Vi mår alla bra att veta varför vi går upp på morgonen, så det inte enbart beror på att vi inte dog. Att sätta mål ger oss en trygghet att veta vad jag vill, och det gör våra dagliga beslut enklare då besluten styr mot våra mål.',\n }]\n },\n {\n name: 'Jag fokuserar oftast på; Nutid, Framtid eller Dåtid?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Fokuserar på då, nu eller framtid',\n choices: [{\n name: 'Nutid',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Framtid',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Prova på tex mindfulness och meditation, tacksamhetsövningar.',\n }, {\n name: 'Dåtid',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Dåtid är förfluten tid som vi inte kan påverka, framtid är ännu inte skapad och vi bör därför inte uppehålla oss där mer än att drömma och fantisera. För det är enbart i nuet som vi kan påverka vår framtid. Det är i nuet som du gör dina val i livet, som leder till det liv du vill skapa.',\n }]\n },\n {\n name: 'Jag har negativa tankar',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Negativa tankar',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'En effektiv övning är att vid meditation, se dig själv i rummet/platsen du befinner dig, sen vidare till att se dig själv i huset eller platsen några meter ovanifrån, sen vidare till att se dig själv i staden, i landet, på kontinenten, från rymden. Ungefär som att zooma in och ut i Google maps i satellit mod. Att resa på egen hand är ett annat sätt att få perspektiv.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Förmågan att ibland lyfta blicken och se sig själv ur ett globalt perspektiv, kan vara bra för att sina egna småsaker inte skall bli till dramatiska händelser. Allt i livet är relativt och vi behöver alla lyfta blicken för att se vårt liv i relation till allt annat som omger oss i världen. Detta ökar din medvetenhet, ger dig nytt perspektiv i livet och även möjlighet att se nya lösningar där du själv har fastnat.',\n }]\n },\n ]\n },\n {\n name: 'Obalanser',\n color: '#911eb4',\n questions: [\n {\n name: 'Jag blir dagligen sugen på specifik mat och dryck, t.ex: Kaffe, Choklad, Oliver etc.',\n multiple: false,\n input: 'OM du blir sugen, komplettera med vad du blir sugen på?',\n inputRequired: false,\n scaleGroup: 'Dagligt matbegär',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Balansera din tarmflora genom att undvika socker och ersätta med nyttigare alternativ. Gör detta under minst en månads tid för att vänja dig av från beroendet. Suget kan också indikera näringsbrister, tex brist på krom vid sötsug, brist på magnesium vid sug efter choklad, brist på natrium vid sug efter chips.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Ca 90 % av människans serotonin finns i mag-tarmkanalen där det reglerar tarmrörelser. Resten används i huvudsak som mättnadssignal i hjärnan och som tillväxtsignal i kroppen. Via Vagusnerven som går från tarm till hjärna, styr mikroberna i din tarmflora din hjärna att känna av hunger, törst men även cravings, sk. begär. Äter vi t.ex. mycket socker kommer mikrober i tarmen som gillar socker att öka mest och dominerar i sin tur styr din hjärnas sockerbegär. Det är viktigt att lyssna på kroppen, då den försöker tala om för oss vad som är i obalans på insidan. Kroppen försöker förmedla genom att göra dig sugen på viss mat och dryck vad den behöver för att nå balans under förutsättning att du inte lider av speciella ensidiga begär som socker, alkohol eller andra droger.',\n }]\n },\n {\n name: 'Jag dricker minst två koppar kaffe per dag alt. energidrycker, coca cola',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Koffeindrycker per dag',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Om du dricker varje dag, komplettera med hur många gång & mängd?',\n inputRequired: false,\n scoring: 1,\n response: 'Dra ned på kaffeintaget och försök att inte dricka kaffe varje dag. Njut desto mer de dagar du verkligen dricker kaffe. För att maximera näringsupptaget, undvik kaffe 1-2 timmar innan/efter intag av mat och tillskott. All mat och dryck är nyttig i rätt mängd, men all mat och dryck kan även bli giftig i fel mängd. Att äta eller dricka samma sort föda, dryck varje dag, ger på sikt en obalans oavsett om det är kaffe eller apelsinjuice. Att variera ger även större smakupplevelse och njutning när man väl kan ta del av det man älskar. Det finns studier som visar att man får sämre näringsupptag när man dricker kaffe.',\n }]\n },\n {\n name: 'Jag dricker alkohol varje vecka: Om Ja! Följdfråga; Hur ofta och hur mycket.',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Alkoholintag',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Om du dricker varje vecka, komplettera med hur många gång & mängd?',\n inputRequired: false,\n scoring: 1,\n response: 'Få hjälp med beroende genom tex psykoterapi. Mindfullness kan vara en väg att gå, träning en annan. Att börja dansa och träffa människor en tredje eller någon annan hobby som får dig att fokusera på det som gör dig glad. Små mängder alkohol kan vara bra för kroppen, medan stora mängder kan förstöra en människas liv. Ett max två glas vin om dagen kan för många vara stärkande, medan allt över denna mängd oftast ger mer skada än nytta. Känner jag behov att dricka mer bör jag finna något som kan ersätta detta beteende.',\n }]\n },\n {\n name: 'Jag röker och eller snusar dagligen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Röker / Snusar',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Om du röker/snusar varje dag, komplettera med hur många gång & mängd?',\n inputRequired: false,\n scoring: 1,\n response: 'Ta reda på ditt varför, som första steg till medveten förändring. Ditt varför är vad du vill uppnå och meningen med ditt liv. Du kan också få hjälp att bli kvitt beroende med hjälp av tex hypnosterapi, frekvensterapi eller psykoterapi. Lite elakt skulle man kunna säg att cigaretter är den vuxnes Napp. D.v.s. ett behov att sysselsätta sig när man är stressad, upprörd eller känner sig ensam eller illa till mods. D.v.s. det skapar en tillfällig trygghet i vardagen. Men om du vill värna om din hälsa bör du finna andra saker som ger dig samma trygghet. Men all förändring kräver mod, och mod får vi när vi har en inre övertygelse om varför?',\n }]\n },\n {\n name: 'Jag har amalgam i munnen',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Amalgam i tänderna',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Hur många tänder som är fyllda med amalgam?',\n inputRequired: true,\n scoring: 1,\n response: 'Tillhör du generationen som fick tandlagningar gjorda av Amalgan, försök att byta ut dessa mot porslin genom en sanering av dina gamla tandfyllningar. Det bör göras med försiktighet av en tandläkare med erfarenhet och rätt utrustning och som är väl insatt i riskerna. Amalgamet i tänderna innehåller tungmetaller bl.a. kvicksilver som fäller ut när vi äter framför allt sura eller syrlig mat och frukt. Dessa tungmetaller lagras ofta i kroppen och blir alltmer belastande med åren som går och i kontakt med fria radikaler bl.a. gör att vi åldras fortare och får sämre näringsupptag o.s.v.',\n }]\n },\n {\n name: 'Jag upplever att jag har svårt att minnas?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Minnessvårighet',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Minnesförlust som är kopplad till näringsbrist åtgärdar du genom att tillsätta kost eller tillskott med Omega 3, A-, D-, E, K-vitamin, B-complex inkl B12, magnesium, zink och vatten. Om minnesproblemen inte har med näringsbrister att göra, försök tänka på vad du har upplevt i livet och vad som kan vara din psykiska orsak. Även uttorking leder till minnesförlust. Så se till att dricka ordentligt, ca 1,5 liter vatten /dag.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Minnesförlust (amnesi) är ovanlig glömska. Orsaken avgör om minnesförlust tänds långsamt eller plötsligt, och om det är tillfälligt eller permanent. Minnesförlust kan ha många olika orsaker; vanligaste är alkohol/droger, mediciner, B12 brist, infektioner, mineralbrist, uttorkning samt depression, och trauman som under ett långt liv av förnekelse framkallar minnesförlust p.g.a. att det du bär på, stressar kroppen som inte längre orkar med utan helt enkelt stänger av minnet. Vanlig orsak för demenssjukdomar som Alzheimers.',\n }]\n },\n {\n name: 'Jag har oregelbunden menstruation',\n multiple: false,\n input: 'Om du har mens, kommentar när hade du menstration senast? Eller hur ofta?',\n inputRequired: false,\n scaleGroup: 'Oregelbunden mens',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Vid enstaka menstrations obalanser kan orsakenoftast vara stress, undervikt eller att du bantat för fort eller överdriven träning. Det endokrina systemet håller din kropp i balans, reglerar organfunktion och säkerställer god tillväxt och utveckling. Hormonstörande ämnen kan ändra, blockera, härma eller ändra våra naturliga hormoner. Effekten av att utsättas för hormonstörande ämnen kan visa sig senare i livet och kommer inte nödvändigtvis på en gång. Symptom som kan uppstå speciellt hos kvinnor som blivit utsatt för mycket hormonstörande ämnen kan vara; att menstruationen blir oregelbunden och brösten och körtlarna sväller upp. Det endokrina systemet är extra känsligt och vi behöver skydda systemet från gifter. ',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Även om det är omöjligt att helt undvika hormonstörande ämnen så finns det sätt att begränsa exponeringen för det: Välj ekologiska livsmedel. Skaffa en Vattenrenare som tar bort kemikalier och metaller (jag kan rekommendera http://www.purplesolution.e.... Undvik plast som innehåller BPA, konserver och konservmat. Ta bort alla matlådor gjorda av plast och drick inte vatten ur plastflaska. Värm inte upp plast i mikron och drick aldrig vatten ur en plastflaska som legat kvar i bilen och blivit uppvärmd i solen. Diska inte plastburkar i diskmaskinen. Tvätta händerna efter hantering av kassakvitton – många kvitton innehåller BPA och tungmetaller (bly). Som tas upp genom huden när vi tar i kvittona. Undvik ftalater - Dessa kemikalier finns i plaster och är vanligt förekommande i livsmedelsförpackningar och leksaker. De används i ”dofter”, som återfinns i allt från diskmedel och schampo till doftljus och luft fräschare/doftspridare. Använd naturlig hudvård, som du helst skall kunna äta. Tandläkaren har flera alternativ till plastlagningar och fråga om din tandläkare använder sig av ett material som heter Doxa, som är ett mycket bättre alternativ. Tänk på rotfyllningar, där förekommer starka kemiska medel. Dessutom kommer det samla sig bakterier som kan läcka ut i ditt system. Ät regnbågens samtliga färger så ofta du kan. (mycket grönsaker och bär). Det innehåller massor av antioxidanter som skyddar våra celler. NIEHS och National Toxikologi Program har tagit fram studier där det visar sig att ”vissa hormonliknande kemikalier kan påverka kroppsfunktioner redan i mycket låga doser”.',\n }]\n }\n ]\n },\n {\n name: 'Medicinsk status',\n color: '#bfef45',\n questions: [\n {\n name: 'Jag känner regelbundet smärta, obehag i kroppen.',\n multiple: false,\n input: 'Om du känner smärta/obehag, komplettera Var & Vad du tror är orsaken?',\n inputRequired: false,\n scaleGroup: 'Regelbunden smärta',\n choices: [{\n name: 'Sällan',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ibland',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Känner vi till orsaken och vi har en läkning som pågår då kan vi under tiden även ta något som bedövar den värsta smärtan. Emedan vi är oklara om orsak och läkprocessen, då bör vi undvika smärtlindrande och antiinflammatoriska läkemedel som i värtsa fall kan förvärra skadan, och istället fokusera på dess grundorsak. OBS: Symtomens placering är inte alltid det samma som grundproblemets orsak. T.ex. ryggvärk i nedre svanken, beror ofta på dålig matsmältning som får tarmen att svälla upp och trycka på nerverna längs ryggraden. Smärtan kan vara orsakad av näringsbrister, se till att du får i dig tillräckligt med Omega 3, Magnesium, D-vitamin, K-vitamin, B-complex inkl B12, Zink, Selen, C-vitamin via kost eller tillskott.',\n }, {\n name: 'Ofta',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Smärta i kroppen oavsett var de uppstår och oavsett vad du tror är orsaken, är kroppens sätt att signalera till dig att något är fel. Ofta reagerar kroppen med en inflammation för att lösa detta problem. Vår kropp har en otrolig förmåga att reparera sig själv i nästan alla lägen, om vi enbart stöder kroppens egna funktioner.',\n }]\n },\n {\n name: 'Jag har vaccinerat mig under de senaste tio åren',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: '',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Vilka vacciner har du tagit och ungefär när?',\n inputRequired: false,\n scoring: 1,\n response: 'Gör medvetna val gällande vacciner. Om du väljer att ta vacciner, gör så minst 1 vecka innan du reser utomlands eller utsätter kroppen för andra patogener som då kan överblasta kroppens immunförsvar, med risk för kraftfulla biverkningar som följd. Vacciner innehåller både den sjukdom som de är tänkt att skydda emot, samt ett antal andra ämnen som bl.a. konserveringsmedel etc. Alla dessa ämnen utgör en belastning på kroppens immunförsvar för att kroppen skall kunna skapa antikroppar mot dessa patogener (virus, bakterier, svamp, parasiter) som vaccinet avser. Beroende på vilket konserveringsmedel eller andra tillsatser som vaccinet innehåller kan dessa skapa olika typer av reaktioner och biverkningar i sig. Men det som framför allt är viktigt att känna till är att vaccinets verksamma beståndsdelar ger ökad belastning på kroppens immunförsvar 3:e samt 7:e dagen efter vaccinering. Detta innbär att dag 3 och 7 efter vaccinering är kritiska för om kroppen skall orka med denna ökade belastningen eller drabbas av biverkningar eller till och med utveckla sjukdomen som vaccinet avser att skydda emot, vilket händer hos vissa känsliga grupper.',\n }]\n },\n {\n name: 'Jag äter medicin och eller kosstillskott ()',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Mediciner / kosttillskott',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Kompletter med vilka märken och vilken dosering. Skriv de mediciner och tillskott som du tar',\n inputRequired: true,\n scoring: 1,\n response: 'Låt mat var din medicin, och medicin vara din mat. Dvs försök att i första hand att ge kroppen det den behöver genom din kost. Tillskott kan vara nödvändiga under en period och i vissa fall nödvändiga även ätas regelbundet när jorden som grödorna växer i är näringsfattig eller att du t.ex. genomgått en Bypass operation. De flesta mediciner och tillskott har sitt ursprung från naturens egna kemiska ämnen såsom växter, örter och rötter. När vi äter det naturen ger oss i sin naturliga form får vi i oss alla synergier, som behövs för att samverka i våra kroppar och ge oss det vi behöver för kroppens olika processer och behov för att nå balans. Detta fungerar mest optimalt när vi äter lokala vilda eller ekologiskt odlade råvaror. ',\n }]\n },\n {\n name: 'Jag har ärftliga sjukdomar i släkten (Cancer, Diabetes, Hjärt- & kärl, Demens, Parkinson)',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Ärftliga sjukdomar',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Komplettera med vilka du känner till?',\n inputRequired: true,\n scoring: 1,\n response: 'Förebygg och lindra, där det är möjligt, genetiska sjukdomar genom att äta en kost och hålla en livsstil som stödjer kroppen att nå balans. Studier visar att vi kan påverka våra geners uttryck till 80% genom den kost och livsstil vi väljer.',\n }]\n },\n {\n name: 'Detta stämmer in på min hy: normal, torr, fet, acne, eksem/psoariasis',\n multiple: true,\n input: '',\n inputRequired: false,\n scaleGroup: 'Min huds utseende',\n choices: [{\n name: 'Normal',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Fet',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Ersätt gluten, komjölkprodukter och socker med hälsosamma alternativ, såsom bröd och pasta gjort på naturligt glutenfria mjölsorter, växtbaserad mjölk såsom mandel-, havre- , Dinkelmjölk, och mycket grönsaker i alla dess färger. Tillsätt nyttiga fetter såsom kokosfett, avokado, olivolja, sesamolja. Stress kan också vara en bidragande orsak och är viktigt att minimera.',\n }, {\n name: 'Torr',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Huden är vårt största utsöndringsorgan och visar oss att vi har obalanser på insidan genom tex torr hy, fet hy, acne, eksem, psoriasis m.fl. Ger vi kroppen de näringsämnen den behöver har den bättre förutsättning att nå balans både på insidan och utsidan.',\n }, {\n name: 'Acne',\n input: '',\n inputRequired: false,\n scoring: 3,\n response: 'Acne - lever, slagg, hormoner, stress, toxiner. Acne kan uppstå p.g.a. olika saker: Oftast nedsatt matsmältning med Galla problematik. Det kan även vara inflammation magen/tarm. Utsöndring av gifter via huden kan ge upphov till inflammationer. t.ex. eksem, acne, rosacea genom att huden belastas alltför mycket. Leverproblem eller näringsbrister. Lösningen kan vara: Tillsätt B5, Zink, Vitamin-C, Omega 3, Gurkmeja och Ingefära. Grunda med rätt näring beroende på grundproblem. Undvik inflammationsbildande kost. Acne tar tid så ha tålamod. Läs mer om inflammationsbildande kost se www.life-check.se/blogg',\n }, {\n name: 'Eksem',\n input: '',\n inputRequired: false,\n scoring: 4,\n response: 'Eksem, bla. brist på fettsyror samt obalans i tarm, även levertecken då den visar på obalanser genom huden. Oftast nedsatt matsmältning med Galla problematik. Det kan även vara inflammation magen/tarm. Utsöndring av gifter via huden kan ge upphov till inflammationer. t.ex. eksem, acne, rosacea genom att huden belastas alltför mycket. Leverproblem eller näringsbrister. Tillsätt B5, Zink, Vitamin-C, Omega 3, Gurkmeja och Ingefära. Grunda med rätt näring beroende på grundproblem. Undvik inflammationsbildande kost.',\n }]\n },\n {\n name: 'Detta stämmer in på min mage: Utan besvär. Jag känner mig gasig i mage. Jag blir uppblåst diekt efter att ha ätit, uppblåst efter någon timme. Jag är ofta hård i magen, Jag får ofta diarré.',\n multiple: true,\n input: '',\n inputRequired: false,\n scaleGroup: 'Dålig mage',\n choices: [{\n name: 'Optimalt - Utan besvär',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Jag känner mig gasig i magen',\n input: '',\n inputRequired: false,\n scoring: 1,\n response: 'Ersätt gluten, komjölkprodukter och socker med hälsosamma alternativ, såsom bröd och pasta gjort på naturligt glutenfria mjölsorter, växtbaserad mjölk såsom mandel-, havre- eller cashewmjölk, och mycket grönsaker i alla dess färger. Ät mycket råa grönsaker för att få i dig viktiga enzymer kroppen behöver för att bryta ned maten. Enzymtillskott kan tillsättas vid behov för att få snabb effekt. Tillsätt nyttiga fetter såsom kokosfett, avokado, olivolja, sesamolja. Stress kan också vara en bidragande orsak och är viktigt att minimera. OM du tycker at det känns för tungt att sluta med allt gluten, kan du prova att byta ut allt brd du äter mot äkta surdegsjästa bröd. De den långa fermenteringstiden (jästiden) på ett äkta surdegsbröd har jäst minst 12 timmar upp emot48 timmar. Gör att det mesta av glutinet har brytits ner. Väljer du dessutom surdeg som bakats på enbart Dinkelvete, korn, råg eller havre, så kommer du garanterat må betydligt bättre. Vanligt vete bör du undvika så långt det är möjligt. Även pasta på dinkel och pizzabröd på dinkel är att föredra. Vill du veta mer om detta kolla in på vår bloggsite och läs om surdegsbröd och modernt vete som har förädlats 50 000 gång sedan 1954. www.evergreenhealth.se',\n }, {\n name: 'Jag blir uppblåst i magen efter en måltid',\n input: '',\n inputRequired: false,\n scoring: 2,\n response: 'Kroppen visar tydligt att den har svårt att smälta maten. Det leder inte bara till symtomen beskrivna utan även till att kroppen får svårt att ta upp näringen och därmed inte förutsättningar att fungera optimalt.',\n }, {\n name: 'Jag blir uppblåst i magen efter en timme',\n input: '',\n inputRequired: false,\n scoring: 3,\n response: 'Hård mage eller förstoppning kan ha många orsaker, men oftast beror det på att du inte går på toaletten tillräckligt ofta, eller att du dricker för lite vätska. OBS: Kaffe, Cola och alkohol torkar ut kroppen och ger inte den vätskemängd som kroppen behöver. Även stillasittande arbete och fritid gör att tarmen inte masseras av dina kroppsrörelser, vilket ökar risken för förstoppning. Lösning är regelbunden rörelse, (promenader, gå i trappor istället för att ta hissen etc) Samt dricka minst 2 liter vatten per dag samt gå på toaletten så fort du behöver, samt sitt kvar en tid så din kropp hinner reagera och få ut din avföring. ',\n }, {\n name: 'Jag blir oftast hård i magen',\n input: '',\n inputRequired: false,\n scoring: 4,\n response: 'Som regel är akut diarré ett symtom på en gastrointestinal infektion, d v s att man fått i sig, bakterier, virus eller parasiter som hämmar tarmens förmåga att ta upp vätska. Därmed blir vätskan kvar i tarmen och löser upp avföringen – man har fått diarré. Dessa bakterier, virus eller parasiter kan vi råka ut för överallt. Men risken är extra stor när vi är utomlands och möter ”främmande” bakteriemiljöer i både dricksvatten och mat. Andra orsaker till diarré kan vara för hög konsumtion av alkohol eller kaffe, födoämnesallergier, stress och ångest eller som en bieffekt av medicinering. Har du ofta diarré tyder på att din tarmflora är i obalans eller saknar förmåga att ta hand om de födoämnen som du äter. Antingen det beror på intolerans mot t.ex. gluten, laktos eller andra livsmedelsprodukter. Rådgör gärna med oss för att finna grundorsaken till dessa symtom. OBS: Vid diarré, drick mycket vatten, så du inte torkar ut. Svensk råa eller frysta blåbär hjälper till att minska problemet liksom kryddnejlika som du maler och dricker som te.',\n }, {\n name: 'Jag får ofta diarré',\n input: '',\n inputRequired: false,\n scoring: 5,\n response: '',\n }]\n },\n {\n name: 'Jag har allergi?',\n multiple: false,\n input: '',\n inputRequired: false,\n scaleGroup: 'Allergier',\n choices: [{\n name: 'Nej',\n input: '',\n inputRequired: false,\n scoring: 0,\n response: 'Vi finner inga negativa avvikelser i detta avseende'\n }, {\n name: 'Ja',\n input: 'Komplettera med vilka du vet att du har?',\n inputRequired: true,\n scoring: 1,\n response: 'Allergier kan bero på olika slags faktorer, arv eller miljö eller en kombination av de båda. Miljömässiga faktorer kan vara föroreningar, epidemier och kost. Människor som har stor benägenhet att utveckla en allergi har en så kallad atopi. Mastceller - bekämpar parasiter, speciellt maskar. Mastceller binder till sin yta antikroppar som i sin tur aktiverar utsöndring av histamin. Mastceller är även den huvudsakliga orsaken till allergier. Histamin är ett hormon som är verksamt vid allergier. Den sätter igång den allergiska reaktionen om man är överkänslig mot något. Allergi är ett sätt för kroppen att säga att nu är det något som är för mycket och att immunförsvaret är för överbelastat. Vid autonoma sjukdomar så som reumatism angriper vårt immunförsvar sig själv, i tron som att de vore fiender. Även fast det är vanligt att ärva atopiska egenskaper, utvecklar inte alla allergi. Ibland kan en allergi utvecklas på grund av att systemet är fullt av gifter och inte orkar mer. Den stöter då ifrån sig ämnet. Matallergier och intoleranser är vanligt här. Dock är inte celiaki (glutenintolerans) en grundorsak utan det kan bero på att kroppen har blivit utsatt för tungmetaller. Som i sin tur skapat inflammationer så kroppens immunförsvar inte orkar ta hand om allt, det är ständigt triggat. Då kan det vara bra att ta tillskott av något som kallad L-glutatin, som dels är ett mycket effektivt antioxidant vilket motverkar de fria radikalerna som bl.a. tungmetaller utgör. Samt hjälper kroppen att transportera ut tungmetaller som koppar, kvicksilver etc. ut ur kroppen. ',\n }]\n },\n ]\n }\n ]\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n ExpansionPanel,\n ExpansionPanelDetails,\n ExpansionPanelSummary,\n Grid,\n makeStyles,\n Typography\n} from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nimport PolarChart from 'components/PolarChart';\nimport { surveys } from 'utils/surveys';\n\nconst useStyles = makeStyles(() => ({\n item: {\n marginBottom: 20,\n },\n userInput: {\n whiteSpace: 'pre'\n }\n}));\n\nconst HealthSurveyAnswers = ({ gender, dbSurvey, role }) => {\n const classes = useStyles();\n const survey = surveys.find((s) => s.version === dbSurvey.versionId);\n if (!survey) {\n return role === 'patient'\n ? 'Kunde inte generera något svar för denna enkäten. Kontakta oss via meddelande om problemet består.'\n : 'Kunde inte generera något svar för denna enkäten. Kontakta utvecklarna om problemet består.';\n }\n\n const calcScorePerSection = (answers) => {\n const answersScore = answers.filter((a) => a.question !== null && a.section !== null).map((a) => {\n const question = survey.sections[a.section].questions[a.question];\n if (question.type === 'input') return 0;\n if (question.gender && gender !== 'Unknown') {\n if (question.gender !== gender) return 0;\n }\n if (a.answer.length > 1) {\n return a.answer.reduce((acc, choice) => acc + question.choices[choice].scoring, 0) / a.answer.length;\n }\n return question.choices[a.answer[0]].scoring;\n });\n\n const maxPointsPerSection = survey.sections.map((section) =>\n section.questions.map((question) => {\n if (question.type === 'input') return 0;\n if (question.gender && gender !== 'Unknown') {\n if (question.gender !== gender) return 0;\n }\n return question.choices.reduce((prev, current) => ((prev.scoring > current.scoring) ? prev : current)).scoring;\n }).reduce((acc, section) => acc + section));\n\n // const totalPoints = answersScore.reduce((a, acc) => a + acc);\n const questions = survey.sections.map((section) => section.questions);\n const questionsPerSection = questions.map((question) => question.length);\n const scorePerSection = questionsPerSection.map((question, i) => answersScore.splice(0, questionsPerSection[i]));\n const sumScorePerSection = scorePerSection.map((answers) => answers.reduce((answer, acc) => answer + acc));\n const percentOfScorePerSection = sumScorePerSection.map((points, i) => (maxPointsPerSection[i] - points) / maxPointsPerSection[i]);\n return survey.sections.map((section, i) => ({ section: section.name, score: percentOfScorePerSection[i] }));\n };\n\n const generateResponse = (choices, answer) => {\n const score = choices[answer].scoring;\n const response = [];\n switch (score) {\n case 0:\n if (choices[0].response !== '') {\n response.push({choices[0].response});\n }\n break;\n case 1:\n if (choices[1].response !== '') {\n response.push({choices[1].response});\n }\n break;\n case 2:\n if (choices[2].response !== '') {\n response.push({choices[2].response});\n }\n break;\n case 3:\n if (choices[2].response !== '' || choices[3].response !== '') {\n response.push({choices[2].response}
{choices[3].response}
);\n }\n break;\n case 4:\n if (choices[3].response !== '' || choices[4].response !== '') {\n response.push({choices[3].response}
{choices[4].response}
);\n }\n break;\n default:\n if (choices[answer].response !== '') {\n response.push({choices[answer].response});\n }\n break;\n }\n if (response.length > 0) {\n response.unshift(Vår respons:
);\n }\n return response;\n };\n\n let a = 0;\n return (\n \n \n }\n >\n Livshjulet\n \n \n a.score * 100)}\n labels={calcScorePerSection(dbSurvey.answers.survey).map((a, i) =>\n `${a.section}: ${Math.round(calcScorePerSection(dbSurvey.answers.survey)[i].score * 100)}%`)}\n colors={survey.sections.map((section) => section.color)}\n />\n \n \n {survey.sections.map((section) => (\n \n }\n >\n {section.name}\n \n \n \n {section.questions.map((question, qIndex) => {\n if (question.gender && gender !== 'Unknown') {\n if (question.gender !== gender) return null;\n }\n a++;\n const b = a - 1;\n const currQuestion = dbSurvey.answers.survey[b];\n if (currQuestion.section === null || currQuestion.question === null) return null;\n if (question.type === 'input') {\n return (\n \n \n Fråga: {question.name}\n \n \n {role === 'patient' ? 'Ditt svar: ' : 'Klientens svar:'} {currQuestion.answer[0]}\n \n \n );\n }\n return (\n \n \n Fråga: {question.name}\n \n \n {role === 'patient' ? question.multiple ? 'Dina val: ' : 'Ditt val: ' : 'Klientens val: '}\n {question.multiple\n ? currQuestion.answer.map((answer) => question.choices[answer].name).join(', ')\n : question.choices[currQuestion.answer[0]].name\n }\n \n {'input' in currQuestion && currQuestion.input !== '' &&\n \n Ytterligare information som {role !== 'patient' ? 'klienten' : 'du'} har angivit:
\n
{currQuestion.input}
\n
\n }\n {role === 'admin' &&\n \n {question.multiple\n ? \n Vår response
\n {currQuestion.answer.map((answer) =>
{question.choices[answer].response}
)}\n
\n : generateResponse(question.choices, currQuestion.answer[0])\n }\n
\n }\n
);\n })}\n
\n
\n
))}\n \n }\n >\n Övrigt\n \n \n
Övriga synpunkter
\n
{dbSurvey.answers.extra.comment}
\n
\n
\n
\n );\n};\nHealthSurveyAnswers.propTypes = {\n gender: PropTypes.string.isRequired,\n dbSurvey: PropTypes.object.isRequired,\n role: PropTypes.string.isRequired,\n};\n\nexport default HealthSurveyAnswers;\n","import React, { useEffect } from 'react';\nimport {\n LinearProgress\n} from '@material-ui/core';\n\nimport { useParams } from 'react-router-dom';\nimport { useSurveyDispatch as useSurveyAdminDispatch, useSurveyState as useSurveyAdminState } from 'modules/admin/surveys';\nimport { useSurveyDispatch as useSurveyDoctorDispatch, useSurveyState as useSurveyDoctorState } from 'modules/doctor/surveys';\n\nimport HealthSurveyAnswers from 'components/HealthSurveyAnswers';\n\nconst HealthSurvey = () => {\n const { role, id } = useParams();\n\n const useSurveyDispatch = role === 'admin' ? useSurveyAdminDispatch : useSurveyDoctorDispatch;\n const useSurveyState = role === 'admin' ? useSurveyAdminState : useSurveyDoctorState;\n\n const { fetchSingle, clearCurrent } = useSurveyDispatch();\n const { current, fetching } = useSurveyState();\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n return (fetching ?\n \n : (Object.keys(current).length > 0 && Object.keys(current.answers).length > 0) ?\n \n :\n
\n Antingen finns det ingen enkät med detta ID eller är denna enkäten inte besvarad ännu.\n
\n );\n};\n\nexport default HealthSurvey;\n","import React from 'react';\nimport {\n ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, makeStyles, Typography\n} from '@material-ui/core';\nimport { ExpandMore as ExpandMoreIcon } from '@material-ui/icons';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n expansionDetails: {\n flexDirection: 'column',\n height: '70vh',\n },\n description: {\n whiteSpace: 'pre-line',\n wordWrap: 'break-word'\n }\n}));\nconst AttachmentsList = ({ attachments }) => {\n const classes = useStyles();\n\n return (\n \n {attachments.length === 0 && Det finns inga uppladdade bilagor.}\n {attachments.map((attachment, i) => (\n \n }\n >\n {`Bilaga #${i + 1}${attachment.title ? ` - ${attachment.title}` : ''}`}\n \n \n {attachment.description !== '' &&\n \n {attachment.description !== '' &&\n \n Beskrivning:\n \n {attachment.description}\n \n \n }\n }\n {attachment.file !== null && }\n \n \n ))}\n \n );\n};\n\nAttachmentsList.propTypes = {\n attachments: PropTypes.array.isRequired,\n};\n\nexport default AttachmentsList;\n","import React, { useState, useRef } from 'react';\nimport { Button, Typography, makeStyles } from '@material-ui/core';\n\n\nconst useStyles = makeStyles(() => ({\n input: {\n display: 'none'\n },\n clearButton: {\n marginLeft: 10\n }\n}));\n\n/**\n * @param initialFile\n * @param accept: Array with values of \"image\", \"pdf\", \"csv\",\n * @returns {{clearFile: *, file: *, setFile: *, renderFileUploader: *}}\n */\n\nexport default (accept = [], initialFile = null) => {\n const fileInput = useRef(null);\n const classes = useStyles();\n const [file, setFile] = useState(initialFile);\n const [fileUrl, setFileUrl] = useState(null);\n const [error, setError] = useState('');\n\n const fileTypeVerified = (fileType) => {\n if (fileType.includes('image/') && accept.includes('image')) return true;\n if (fileType.includes('application/pdf') && accept.includes('pdf')) return true;\n // if (fileType.includes('csv') && accept.includes('csv')) return true;\n return false;\n };\n\n const saveFile = (files) => {\n if (files.length > 0) {\n if (fileTypeVerified(files[0].type)) {\n setFile(files[0]);\n setFileUrl(URL.createObjectURL(files[0]));\n setError('');\n } else {\n setError('Filtypen är inte godkänd.');\n }\n }\n };\n\n const clearFile = () => {\n setFile(null);\n setFileUrl(null);\n setError('');\n fileInput.current.value = '';\n };\n\n const acceptTypes = () =>\n accept.map((a) => {\n switch (a) {\n case 'image':\n return 'image/*';\n case 'pdf':\n return 'application/pdf';\n case 'csv':\n return '.csv';\n default:\n return null;\n }\n }).filter((a) => a !== null).join(',');\n\n const renderFileUploader = () => (\n \n {error !== '' && {error}}\n saveFile(e.target.files)}\n ref={fileInput}\n />\n \n {file !== null &&\n clearFile()}\n >\n Ta bort fil\n \n }\n {fileUrl !== null &&\n \n Förhandsvisning:\n \n \n }\n \n );\n\n return {\n file, error, clearFile, setFile, renderFileUploader\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport {\n Button, TextField, makeStyles\n} from '@material-ui/core';\n\nimport FormDialog from 'components/FormDialog';\nimport { AttachmentCreationSchema } from 'utils/validation';\nimport AttachmentsList from 'components/AttachmentsList';\nimport useFileUpload from 'hooks/useFileUpload';\nimport useToggle from 'hooks/useToggle';\n\nconst useStyles = makeStyles(() => ({\n root: {\n padding: 10\n },\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n input: {\n display: 'none',\n },\n expansionDetails: {\n flexDirection: 'column'\n },\n uploadButton: {\n marginBottom: 10\n },\n}));\n\nconst Attachments = ({ attachments, create, modelId }) => {\n const classes = useStyles();\n const [showModal, toggleShowModal] = useToggle();\n const { file, clearFile, renderFileUploader } = useFileUpload(['pdf', 'image']);\n\n return (\n
\n {\n if (!modelId || !create) return;\n const formData = new FormData();\n formData.append('file', file);\n formData.append('title', values.title);\n formData.append('description', values.description);\n create(modelId, formData).then(() => {\n actions.resetForm();\n clearFile();\n toggleShowModal();\n }).catch(() => actions.setSubmitting(false));\n }}\n validationSchema={AttachmentCreationSchema}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm\n }) => (\n {\n resetForm();\n clearFile();\n toggleShowModal();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n \n { renderFileUploader() }\n \n \n )}\n />\n {modelId && create && (\n \n )}\n \n
\n );\n};\n\nAttachments.propTypes = {\n attachments: PropTypes.array.isRequired,\n};\n\nexport default Attachments;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\n\nimport {\n makeStyles, Grid, TextField, Button, Checkbox, FormControlLabel, IconButton,\n} from '@material-ui/core';\nimport { Edit as EditIcon, Clear as ClearIcon, Delete as DeleteIcon } from '@material-ui/icons';\n\nimport { useCaseDispatch as useCaseDispatchAdmin } from 'modules/admin/cases';\nimport { usePatientDispatch as usePatientDispatchAdmin } from 'modules/admin/patients';\nimport { useCaseDispatch as useCaseDispatchDoctor } from 'modules/doctor/cases';\nimport { usePatientDispatch as usePatientDispatchDoctor } from 'modules/doctor/patients';\nimport { useAccountState } from 'modules/account';\n\nimport { CommentCreationSchema } from 'utils/validation';\n\nconst useStyles = makeStyles((theme) => ({\n item: {\n padding: theme.spacing(4, 2),\n borderBottom: '2px solid black'\n },\n header: {\n fontWeight: 'bold',\n marginBottom: 10,\n },\n contentDoctorPermission: {\n marginTop: 10,\n fontStyle: 'italic'\n },\n content: {\n whiteSpace: 'pre-line',\n wordWrap: 'break-word'\n },\n addNew: {\n marginTop: 30,\n '& > .header': {\n fontSize: 20\n },\n '& > div': {\n marginBottom: 10\n },\n '& .bottom': {\n display: 'flex',\n justifyContent: 'space-between'\n }\n }\n}));\nconst Comments = ({\n comments, id, role, page\n}) => {\n const classes = useStyles();\n const [editingIds, setEditingIds] = useState([]);\n const { user } = useAccountState();\n\n const toggleEditing = (id) => {\n const editingIndex = editingIds.findIndex((i) => i === id);\n if (editingIndex >= 0) {\n const newEditingId = [...editingIds];\n newEditingId.splice(editingIndex, 1);\n setEditingIds(newEditingId);\n } else {\n setEditingIds([...editingIds, id]);\n }\n };\n\n let useDispatch;\n if (page === 'patient') {\n useDispatch = role === 'admin' ? usePatientDispatchAdmin : usePatientDispatchDoctor;\n } else if (page === 'case') {\n useDispatch = role === 'admin' ? useCaseDispatchAdmin : useCaseDispatchDoctor;\n }\n const { createComment, updateComment, deleteComment } = useDispatch();\n\n const CommentForm = (initialValues, editing = false, commentId = null) =>\n {\n if (editing) {\n updateComment(id, commentId, values).then(() => {\n action.resetForm();\n toggleEditing(commentId);\n }).catch(() => action.setSubmitting(false));\n } else {\n createComment(id, values).then(() => action.resetForm()).catch(() => action.setSubmitting(false));\n }\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n
\n {!editing &&
Lägg till ny kommentar
}\n \n
\n {role === 'admin' &&\n \n }\n label=\"Läkare kan se kommentaren\"\n />\n }\n \n {editing ? 'Uppdatera' : 'Lägg till'}\n \n
\n \n )}\n />;\n\n return (\n \n {comments.map((comment) =>\n \n \n
\n {comment.admin !== null ? comment.admin.name : comment.doctor !== null ? comment.doctor.name : ''}\n {((role === 'admin' && comment.admin && comment.admin.id === user.adminId) || (role === 'doctor' && comment.doctor && comment.doctor.id === user.doctorId)) &&\n \n toggleEditing(comment.id)}>\n {editingIds.find((id) => id === comment.id)\n ? \n : }\n \n window.confirm('Är du säker på att du vill ta bort denna kommentaren?') && deleteComment(id, comment.id)}>\n \n \n \n }\n
\n {!editingIds.find((id) => id === comment.id) ?\n \n
{comment.content}
\n {role === 'admin' &&\n comment.doctorHasPermission &&\n comment.admin &&\n
Läkare kan se denna kommentaren.
\n }\n
\n :\n CommentForm({ content: comment.content, doctorHasPermission: comment.doctorHasPermission }, true, comment.id)\n }\n
\n \n {comment.createdAt.split('T')[0]}\n \n
)}\n {CommentForm({ content: '', doctorHasPermission: true })}\n
\n );\n};\n\nComments.propTypes = {\n comments: PropTypes.array.isRequired,\n id: PropTypes.number.isRequired,\n role: PropTypes.string.isRequired,\n page: PropTypes.oneOf(['patient', 'case']).isRequired,\n};\n\nexport default Comments;\n","export const Gender = {\n Male: 0,\n Female: 1\n};\n\nexport const DoctorType = {\n Doctor: 0,\n Therapist: 1\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { Formik } from 'formik';\nimport {\n makeStyles, Grid, Typography, TextField, Button\n} from '@material-ui/core';\n\nimport { useCaseDispatch as useCaseDispatchAdmin } from 'modules/admin/cases';\nimport { useCaseDispatch as useCaseDispatchDoctor } from 'modules/doctor/cases';\nimport { usePatientDispatch as usePatientDispatchAdmin } from 'modules/admin/patients';\nimport { usePatientDispatch as usePatientDispatchDoctor } from 'modules/doctor/patients';\nimport { StatementCreationSchema } from 'utils/validation';\nimport { useAccountState } from '../modules/account';\n\nimport { DoctorType } from '../utils/enums';\n\nconst useStyles = makeStyles((theme) => ({\n section: {\n marginBottom: 70,\n },\n item: {\n padding: theme.spacing(4, 2),\n borderBottom: '1px solid black'\n },\n header: {\n fontWeight: 'bold',\n marginBottom: 10,\n },\n content: {\n whiteSpace: 'pre-line',\n wordWrap: 'break-word'\n },\n addNew: {\n marginTop: 30,\n '& > .header': {\n fontSize: 20\n },\n '& > div': {\n marginBottom: 10\n },\n '& .bottom': {\n display: 'flex',\n justifyContent: 'space-between'\n }\n }\n}));\n\nconst Statements = ({\n healthStatements, doctorStatements, role, id, page,\n}) => {\n const classes = useStyles();\n\n let useDispatch;\n if (page === 'patient') {\n useDispatch = role === 'admin' ? usePatientDispatchAdmin : usePatientDispatchDoctor;\n } else if (page === 'case') {\n useDispatch = role === 'admin' ? useCaseDispatchAdmin : useCaseDispatchDoctor;\n }\n const { createStatement } = useDispatch();\n const { user } = useAccountState();\n\n console.log(user, DoctorType);\n\n const StatementForm = () =>\n {\n createStatement(id, values).then(() => action.resetForm()).catch(() => action.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n
\n
Lägg till ett nytt utlåtande
\n \n
\n \n Lägg till\n \n
\n \n )}\n />;\n\n return (\n \n
\n {healthStatements.length > 0\n ? Hälsoutlåtanden\n : Hittade inga hälsoutlåtanden\n }\n { healthStatements.map((statement) =>\n \n \n
\n { statement.admin.name }\n { page !== 'case' && statement.case !== null &&\n - Tillhör följande ärende\n }\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
)\n }\n {role === 'admin' && StatementForm()}\n
\n
\n {doctorStatements.filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Therapist]).length > 0\n ? Läkarutlåtanden\n : Hittade inga läkarutlåtanden\n }\n { doctorStatements.filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Doctor]).map((statement) =>\n \n \n
\n {statement.doctor.name}\n {page !== 'case' && statement.case !== null &&\n - Tillhör följande ärende\n }\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
)\n }\n {role === 'doctor' && user.doctorType === Object.keys(DoctorType)[DoctorType.Doctor] && StatementForm()}\n
\n
\n {doctorStatements.filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Therapist]).length > 0\n ? Terapeututlåtanden\n : Hittade inga terapeututlåtanden\n }\n {doctorStatements.filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Therapist]).map((statement) =>\n \n \n
\n {statement.doctor.name}\n {page !== 'case' && statement.case !== null &&\n - Tillhör följande ärende\n }\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
)\n }\n {role === 'doctor' && user.doctorType === Object.keys(DoctorType)[DoctorType.Therapist] && StatementForm()}\n
\n
\n );\n};\n\nStatements.propTypes = {\n healthStatements: PropTypes.array,\n doctorStatements: PropTypes.array,\n role: PropTypes.oneOf(['admin', 'doctor']).isRequired,\n page: PropTypes.oneOf(['patient', 'case']).isRequired,\n id: PropTypes.number.isRequired,\n};\n\nexport default Statements;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport { TextField, makeStyles } from '@material-ui/core';\n\nimport { TestResultCreationSchema } from 'utils/validation';\nimport FormDialog from 'components/FormDialog';\nimport useFileUpload from 'hooks/useFileUpload';\n\nimport { useTestDispatch } from 'modules/admin/tests';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n }\n },\n}));\n\nconst UploadTestResultForm = ({\n toggleOpen, open, type, modelId, updateView\n}) => {\n const classes = useStyles();\n const { file, clearFile, renderFileUploader } = useFileUpload(['pdf', 'image']);\n const { createCaseTestResult, createPatientTestResult } = useTestDispatch();\n\n return (\n {\n if (file !== null) {\n const formData = new FormData();\n formData.append('file', file);\n formData.append('modelId', modelId);\n formData.append('title', values.title);\n if (type === 'patient') {\n createPatientTestResult(formData).then(() => {\n toggleOpen();\n updateView();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n } else if (type === 'case') {\n createCaseTestResult(formData).then(() => {\n toggleOpen();\n updateView();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }\n } else {\n actions.setSubmitting(false);\n }\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm\n }) => (\n {\n toggleOpen();\n clearFile();\n resetForm();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n {renderFileUploader()}\n \n \n )}\n />\n );\n};\n\nUploadTestResultForm.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n type: PropTypes.oneOf(['patient', 'case']),\n modelId: PropTypes.string.isRequired,\n updateView: PropTypes.func.isRequired,\n};\n\nexport default UploadTestResultForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport { TextField, makeStyles } from '@material-ui/core';\n\nimport FormDialog from 'components/FormDialog';\n\nimport { useTestDispatch } from 'modules/admin/tests';\n\nimport { TestResultCreationSchema } from 'utils/validation';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n }\n },\n}));\n\nconst CreateLabportalenTestResult = ({\n toggleOpen, open, type, modelId, updateView\n}) => {\n const classes = useStyles();\n const { createPatientLabportalenTestResult, createCaseLabportalenTestResult } = useTestDispatch();\n\n return (\n {\n console.log('test', modelId);\n if (type === 'patient') {\n console.log('patient')\n createPatientLabportalenTestResult({\n ...values,\n modelId\n }).then(() => {\n toggleOpen();\n updateView();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n } else if (type === 'case') {\n console.log('case')\n createCaseLabportalenTestResult({\n ...values,\n modelId\n }).then(() => {\n toggleOpen();\n updateView();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm\n }) => (\n {\n toggleOpen();\n resetForm();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n \n \n \n )}\n />\n );\n};\n\nCreateLabportalenTestResult.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n type: PropTypes.oneOf(['patient', 'case']),\n modelId: PropTypes.string.isRequired,\n updateView: PropTypes.func.isRequired,\n};\n\nexport default CreateLabportalenTestResult;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n IconButton, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, makeStyles\n} from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport {\n ArrowForward as ArrowForwardIcon,\n Description as DescriptionIcon,\n Clear as CrossIcon,\n Done as DoneIcon,\n Delete as DeleteIcon,\n} from '@material-ui/icons';\n\nimport useToggle from 'hooks/useToggle';\nimport ButtonBar from 'components/ButtonBar';\nimport UploadTestResultForm from './testResults/UploadTestResultForm';\nimport CreateLabportalenTestResult from './testResults/CreateLabportalenTestResult';\n\nconst useStyles = makeStyles((theme) => ({\n crossIcon: {\n fill: theme.palette.error.main,\n },\n doneIcon: {\n fill: theme.palette.success.main,\n }\n}));\n\nconst TestResults = ({\n tests, role, id, type, fetch, deleteTest\n}) => {\n const classes = useStyles();\n const [showUploadTest, toggleShowUploadTest] = useToggle();\n const [showLabportalenLinkForm, toggleShowLabportalenLinkForm] = useToggle();\n\n const buttons = [{\n name: 'Ladda upp provresultat',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleShowUploadTest\n }, {\n name: 'Länka labbportalen svar',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleShowLabportalenLinkForm\n }];\n\n return (\n \n {role === 'admin' &&\n \n \n \n \n \n }\n {tests.length === 0\n ? 'Hittade inga provresultat.'\n :\n \n \n \n Typ\n Titel\n Rid\n Datum\n Signerat\n \n \n \n \n {tests.map((test) => (\n \n \n {test.type}\n \n \n {test.title ? test.title : ''}\n \n \n {test.referralId ? test.referralId : ''}\n \n \n {test.createdAt.split('T')[0]}\n \n \n {test.signed\n ? \n : \n }\n \n \n \n \n \n \n \n {test.case !== null && type === 'patient' &&\n \n \n \n \n \n }\n {test.type === 'ManualUpload' && role === 'admin' && !test.signed &&\n \n deleteTest(test.id)}\n >\n \n \n \n }\n \n \n ))}\n \n
\n }\n
\n );\n};\n\nTestResults.propTypes = {\n fetch: PropTypes.func.isRequired,\n type: PropTypes.oneOf(['patient', 'case']).isRequired,\n};\n\nexport default TestResults;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\n\nimport FormDialog from 'components/FormDialog';\nimport { makeStyles, TextField } from '@material-ui/core';\nimport { PatientCreationSchema } from 'utils/validation';\nimport { usePatientDispatch } from 'modules/admin/patients';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n }\n },\n}));\nconst EditPatientData = ({ open, toggleOpen, patient }) => {\n const classes = useStyles();\n const { updatePatient } = usePatientDispatch();\n\n return (\n {\n updatePatient(patient.patientId, {\n ...values,\n length: values.length === '' ? 0 : parseInt(values.length, 10),\n weight: values.weight === '' ? 0 : parseInt(values.weight, 10)\n }).then(() => {\n actions.resetForm();\n toggleOpen();\n })\n .catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm\n }) => (\n {\n toggleOpen();\n resetForm();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n />\n );\n};\n\nEditPatientData.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n patient: PropTypes.object.isRequired,\n};\n\nexport default EditPatientData;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Button, makeStyles } from '@material-ui/core';\n\nimport useToggle from 'hooks/useToggle';\nimport EditPatientData from './EditPatientData';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n maxWidth: 500,\n marginTop: 20,\n borderRadius: 5,\n boxShadow: theme.shadows[2],\n '& > div': {\n padding: 10,\n },\n '& > div:nth-child(even)': {\n backgroundColor: theme.palette.action.selected,\n }\n }\n}));\n\nconst Overview = ({ patient, role }) => {\n const classes = useStyles();\n const [showUpdateInfo, toggleShowUpdateInfo] = useToggle();\n\n return (\n \n {role === 'admin' &&\n \n \n \n \n }\n \n \n \n Förnamn\n {patient.firstName}\n \n \n \n \n Efternamn\n {patient.lastName}\n \n \n \n \n Personnummer\n {patient.personalNumber}\n \n \n \n \n Email\n {patient.email}\n \n \n \n \n Adress\n {patient.address}\n \n \n \n \n Postnummer\n {patient.postCode}\n \n \n \n \n Ort\n {patient.city}\n \n \n \n \n Land\n {patient.country}\n \n \n \n \n Telefonnummer\n {patient.phoneNumber}\n \n \n \n \n Telefonnummer (arbete)\n {patient.phoneWork}\n \n \n \n \n Telefonnummer (hemma)\n {patient.phoneHome}\n \n \n \n \n Längd (cm)\n {patient.length}\n \n \n \n \n Vikt (kg)\n {patient.weight}\n \n \n \n \n );\n};\n\nOverview.propTypes = {\n patient: PropTypes.object.isRequired,\n role: PropTypes.string.isRequired,\n};\n\nexport default Overview;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport {\n makeStyles, FormControl, Select, MenuItem, LinearProgress\n} from '@material-ui/core';\nimport { CaseCreationSchema } from 'utils/validation';\nimport FormDialog from 'components/FormDialog';\nimport { useCaseDispatch } from 'modules/admin/cases';\nimport { useHealthPackageDispatch, useHealthPackageState } from 'modules/admin/healthPackages';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n formActions: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n}));\n\nconst CreateCaseForm = ({\n toggleOpen, open, patientId, fetchPatient\n}) => {\n const classes = useStyles();\n const { fetching: fetchingHealthPackages, healthPackages } = useHealthPackageState();\n const { fetchAll: fetchAllHealthPackages } = useHealthPackageDispatch();\n\n const { createCase } = useCaseDispatch();\n\n useEffect(() => {\n fetchAllHealthPackages();\n }, []);\n\n return (\n fetchingHealthPackages ?\n \n :\n 0 ? healthPackages[0].id : '',\n }}\n validationSchema={CaseCreationSchema}\n onSubmit={(values, actions) => {\n createCase(values).then(() => {\n toggleOpen();\n fetchPatient();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n 0 && 'Fyll i informationen nedan för att skapa ett nytt ärende. '}\n `}\n open={open}\n toggle={toggleOpen}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n \n {healthPackages.map((hp) =>\n \n {`${hp.name} (Produkt-ID ${hp.woocommerceProductId})`}\n )\n }\n \n \n
\n \n )}\n />\n );\n};\n\nCreateCaseForm.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n patientId: PropTypes.number.isRequired,\n fetchPatient: PropTypes.func.isRequired,\n};\n\nexport default CreateCaseForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n IconButton, Table, TableBody, TableCell, TableHead, TableRow, Tooltip\n} from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport { ArrowForward as ArrowForwardIcon } from '@material-ui/icons';\n\nimport useToggle from 'hooks/useToggle';\nimport ButtonBar from 'components/ButtonBar';\nimport CreateCaseForm from './CreateCaseForm';\n\nconst Cases = ({\n cases, role, patientId, fetchPatient\n}) => {\n const [open, toggleOpen] = useToggle();\n\n const buttons = [{\n name: 'Lägg till ärende',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleOpen\n }];\n\n return (\n \n {role === 'admin' &&\n \n \n \n \n }\n \n \n \n Ärende-ID\n Hälsopaket\n \n \n \n \n {cases.map((c) => (\n \n \n Ärende #{c.id}\n \n \n {c.healthPackageName}\n \n \n \n \n \n \n \n \n \n ))}\n \n
\n
\n );\n};\n\nCases.propTypes = {\n cases: PropTypes.array.isRequired,\n role: PropTypes.string.isRequired,\n patientId: PropTypes.number.isRequired,\n fetchPatient: PropTypes.func.isRequired,\n};\n\nexport default Cases;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport {\n IconButton, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, makeStyles\n} from '@material-ui/core';\nimport {\n ArrowForward as ArrowForwardIcon,\n Clear as CrossIcon,\n Done as DoneIcon,\n} from '@material-ui/icons';\n\nconst useStyles = makeStyles((theme) => ({\n crossIcon: {\n fill: theme.palette.error.main,\n },\n doneIcon: {\n fill: theme.palette.success.main,\n }\n}));\n\nconst HealthSurveys = ({ surveys, role }) => {\n const classes = useStyles();\n return (\n \n \n \n Hälsoenkät-ID\n Besvarad\n \n \n \n \n {surveys.map((survey, i) => (\n \n \n Hälsoenkät #{i + 1}\n \n \n {survey.answered\n ? \n : \n }\n \n \n {survey.answered &&\n \n \n \n \n \n }\n \n \n ))}\n \n
\n );\n}\n\nHealthSurveys.propTypes = {\n surveys: PropTypes.array.isRequired,\n role: PropTypes.string.isRequired,\n};\n\nexport default HealthSurveys;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useParams } from 'react-router-dom';\nimport { Formik } from 'formik';\nimport {\n Grid, Avatar, makeStyles, TextField, Button\n} from '@material-ui/core';\n\nimport { MessageCreationSchema } from 'utils/validation';\nimport { usePatientDispatch } from 'modules/admin/patients';\n\nconst useStyles = makeStyles((theme) => ({\n message: {\n margin: theme.spacing(3, 0)\n },\n contentWrapper: {\n borderBottom: '1px solid #C0C0C0',\n paddingBottom: 20,\n },\n messageHeader: {\n fontSize: 20,\n marginBottom: 10,\n fontWeight: '#C0C0C0'\n },\n content: {\n whiteSpace: 'pre-line',\n wordWrap: 'break-word'\n },\n date: {\n color: 'grey'\n },\n addNew: {\n marginTop: 30,\n '& > .header': {\n fontSize: 20\n },\n '& > div': {\n marginBottom: 10\n },\n '& .bottom': {\n display: 'flex',\n justifyContent: 'space-between'\n }\n }\n}));\n\nconst Messages = ({ messages }) => {\n const classes = useStyles();\n const { role, id } = useParams();\n const { createMessage } = usePatientDispatch();\n\n const MessageForm = () =>\n {\n createMessage(id, values).then(() => action.resetForm()).catch(() => action.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n
\n
Lägg till ett nytt meddelande
\n \n
\n \n Lägg till\n \n
\n \n )}\n />;\n\n return (\n \n { messages.map((message) =>\n \n \n {message.creatorName.charAt(0)}\n \n \n \n \n
\n {message.creatorName}\n
\n
{message.content}
\n
\n \n {message.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n {role === 'admin' && MessageForm()}\n
\n );\n};\n\nMessages.propTypes = {\n messages: PropTypes.array.isRequired,\n};\n\nexport default Messages;\n","import React, { useEffect } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport {\n LinearProgress, Tab, Tabs, makeStyles, Typography\n} from '@material-ui/core';\n\nimport { usePatientDispatch as usePatientDispatchAdmin, usePatientState as usePatientStateAdmin } from 'modules/admin/patients';\nimport { usePatientDispatch as usePatientDispatchDoctor, usePatientState as usePatientStateDoctor } from 'modules/doctor/patients';\n\nimport Attachments from 'components/Attachments';\nimport Comments from 'components/Comments';\nimport Statements from 'components/Statements';\nimport TestResults from 'components/TestResults';\nimport Overview from './show/Overview';\nimport Cases from './show/Cases';\nimport HealthSurveys from './show/HealthSurveys';\nimport Messages from './show/Messages';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: theme.spacing(3, 2)\n },\n title: {\n marginBottom: 20,\n marginLeft: 10\n }\n}));\n\nconst Show = () => {\n const classes = useStyles();\n const { role, id, view } = useParams();\n\n const usePatientDispatch = role === 'admin' ? usePatientDispatchAdmin : usePatientDispatchDoctor;\n const usePatientState = role === 'admin' ? usePatientStateAdmin : usePatientStateDoctor;\n\n const {\n fetchSingle, clearCurrent, createAttachment, deleteTestResult\n } = usePatientDispatch();\n const { fetching, current } = usePatientState();\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n const handleDeleteTestResult = (testId) => {\n if (role === 'admin' && deleteTestResult) {\n deleteTestResult(testId, parseInt(id, 10));\n }\n };\n\n return (\n
\n {fetching\n ? \n : Object.entries(current).length === 0 ?\n Kunde inte hitta klient\n :\n \n \n Journal för {current.name} ({current.personalNumber})\n \n \n \n \n \n \n \n \n \n { role === 'admin' &&\n \n }\n \n
\n {{\n overview: ,\n cases:\n fetchSingle(parseInt(id, 10), false)}\n />,\n tests:\n fetchSingle(parseInt(id, 10), false)}\n deleteTest={handleDeleteTestResult}\n />,\n statements:\n ,\n 'health-surveys': ,\n attachments:\n ,\n comments:\n ,\n messages: role === 'admin' && ,\n }[view]}\n
\n
\n }\n
\n );\n};\n\nexport default Show;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MaterialTable from 'material-table';\nimport { Paper } from '@material-ui/core';\n\nconst Table = ({ columns, data, actions }) => {\n return (\n \n }}\n localization={{\n header: {\n actions: ''\n },\n pagination: {\n labelDisplayedRows: '{from}-{to} av {count}',\n labelRowsSelect: 'rader'\n },\n toolbar: {\n searchPlaceholder: 'Sök',\n searchTooltip: 'Sök',\n }\n }}\n options={{\n pageSize: 10\n }}\n columns={columns}\n data={data}\n actions={actions}\n />\n );\n};\n\nTable.propTypes = {\n columns: PropTypes.array.isRequired,\n data: PropTypes.array.isRequired,\n actions: PropTypes.array,\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n TextField, FormControl, Select, MenuItem, makeStyles\n} from '@material-ui/core';\nimport { Formik } from 'formik';\n\nimport { usePatientDispatch } from 'modules/admin/patients';\nimport { PatientCreationSchema } from 'utils/validation';\nimport { Gender } from 'utils/enums';\nimport FormDialog from 'components/FormDialog';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n formActions: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n}));\n\nconst CreatePatientForm = ({ toggleOpen, open }) => {\n const classes = useStyles();\n const { createPatient } = usePatientDispatch();\n return (\n {\n createPatient(values).then(() => {\n toggleOpen();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n \n
\n \n \n \n \n \n \n \n \n \n \n Male\n Female\n \n \n \n \n \n )}\n />\n );\n};\n\nCreatePatientForm.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n};\n\nexport default CreatePatientForm;\n","import React, { useEffect, useRef } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport axios from 'axios';\nimport { LinearProgress, Box } from '@material-ui/core';\n\nimport { usePatientDispatch as usePatientDispatchAdmin, usePatientState as usePatientStateAdmin } from 'modules/admin/patients';\nimport { usePatientDispatch as usePatientDispatchDoctor, usePatientState as usePatientStateDoctor } from 'modules/doctor/patients';\nimport ButtonBar from 'components/ButtonBar';\nimport Table from 'components/Table';\nimport useToggle from 'hooks/useToggle';\nimport { ADMIN_ENDPOINTS } from 'utils/api';\n\nimport CreatePatientForm from './index/CreatePatientForm';\n\nconst Index = () => {\n const { role } = useParams();\n const history = useHistory();\n const [open, toggleOpen] = useToggle();\n const fileUploadRef = useRef();\n\n const usePatientDispatch = role === 'admin' ? usePatientDispatchAdmin : usePatientDispatchDoctor;\n const usePatientState = role === 'admin' ? usePatientStateAdmin : usePatientStateDoctor;\n\n const { fetchAll } = usePatientDispatch();\n const { fetching, fetched, patients } = usePatientState();\n\n useEffect(() => {\n if (!fetched) fetchAll();\n }, []);\n\n const buttons = [{\n name: 'Lägg till klient',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleOpen\n }, {\n name: 'Ladda upp csv',\n icon: 'add',\n onClickEvent: 'func',\n onClick: () => fileUploadRef.current && fileUploadRef.current.click()\n }, {\n icon: 'refresh',\n onClickEvent: 'func',\n onClick: fetchAll\n }];\n\n const handleCsvUpload = () => {\n if (fileUploadRef.current && fileUploadRef.current.files.length > 0) {\n const formData = new FormData();\n formData.append('file', fileUploadRef.current.files[0]);\n axios.post(`${ADMIN_ENDPOINTS.FILEUPLOAD}/csv-case`, formData, {\n headers: {\n 'Content-Type': 'text/csv'\n }\n }).then(() => {\n fetchAll();\n });\n fileUploadRef.current.value = '';\n }\n };\n\n return (\n
\n {fetching\n ? \n : patients.length === 0\n ? 'Hittade inga patienter'\n :\n \n {role === 'admin' &&\n \n \n \n Klicka här för att ladda ner csv-mall\n \n \n }\n ({\n name: `${patient.name} (${patient.personalNumber})`,\n id: patient.id\n }))}\n actions={[\n {\n icon: 'assignment_ind',\n tooltip: 'Öppna patientjournal',\n onClick: (event, rowData) => history.push(`/${role}/patients/${rowData.id}/overview`)\n }\n ]}\n />\n \n }\n
\n );\n};\n\nexport default Index;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\n\nimport { makeStyles, Grid } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n section: {\n marginBottom: 70,\n },\n item: {\n padding: theme.spacing(4, 2),\n borderBottom: '1px solid black'\n },\n header: {\n fontWeight: 'bold',\n marginBottom: 10,\n },\n}));\n\nconst Statements = ({ statements, role }) => {\n const classes = useStyles();\n\n return (\n \n
\n {statements.length === 0\n ? 'Hittade inga utlåtanden.'\n : statements.map((statement) =>\n \n \n
\n {statement.patient.name}\n {statement.case !== null &&\n - Tillhör följande ärende\n }\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
)\n }\n
\n
\n );\n};\n\nStatements.propTypes = {\n statements: PropTypes.array.isRequired,\n role: PropTypes.string.isRequired,\n};\n\nexport default Statements;\n","import React, { useEffect } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport {\n IconButton,\n LinearProgress, makeStyles, Tab, Tabs, Tooltip, Typography\n} from '@material-ui/core';\nimport { PersonAdd as PersonAddIcon } from '@material-ui/icons';\n\nimport { useAdminDispatch, useAdminState } from 'modules/admin/admins';\nimport { useAccountDispatch } from 'modules/account';\n\nimport Statements from './show/Statements';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: theme.spacing(3, 2)\n },\n title: {\n marginBottom: 20,\n marginLeft: 10\n }\n}));\n\nconst Show = () => {\n const { role, id, view } = useParams();\n const classes = useStyles();\n\n const { fetchSingle, clearCurrent } = useAdminDispatch();\n const { fetching, current } = useAdminState();\n const { createLabportalenAccount } = useAccountDispatch();\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n return (\n
\n {fetching\n ? \n : Object.entries(current).length === 0\n ? Hittade ingen admin med detta id.\n :\n \n \n Adminprofil för {current.name} ({current.personalNumber})\n \n {current.labPortalenUserGuid === null &&\n \n createLabportalenAccount(current.applicationUserId)}>\n \n \n \n }\n \n \n \n
\n {{\n statements: ,\n }[view]}\n
\n
\n }\n
\n );\n};\n\nexport default Show;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport { TextField, makeStyles } from '@material-ui/core';\nimport { UserCreationSchema } from 'utils/validation';\nimport { useAdminDispatch } from 'modules/admin/admins';\nimport FormDialog from 'components/FormDialog';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n formActions: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n}));\n\nconst CreateAdminForm = ({ open, toggleOpen }) => {\n const classes = useStyles();\n const { createAdmin } = useAdminDispatch();\n return (\n {\n createAdmin(values).then(() => {\n toggleOpen();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n \n
\n \n \n \n \n \n \n )}\n />\n );\n};\n\nCreateAdminForm.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n};\n\nexport default CreateAdminForm;\n","import React, { useEffect } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport {\n LinearProgress, IconButton, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, Box\n} from '@material-ui/core';\nimport {\n ArrowForward as ArrowForwardIcon,\n Delete as DeleteIcon,\n Edit as EditIcon,\n} from '@material-ui/icons';\n\nimport { useAdminDispatch, useAdminState } from 'modules/admin/admins';\n\nimport ButtonBar from 'components/ButtonBar';\nimport useToggle from 'hooks/useToggle';\nimport CreateAdminForm from './index/CreateAdminForm';\n\nconst Index = () => {\n const [open, toggleOpen] = useToggle(false);\n\n const { fetchAll } = useAdminDispatch();\n const { fetching, fetched, admins } = useAdminState();\n\n useEffect(() => {\n if (!fetched) fetchAll();\n }, []);\n\n const buttons = [{\n name: 'Lägg till admin',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleOpen\n }, {\n icon: 'refresh',\n onClickEvent: 'func',\n onClick: fetchAll\n }];\n\n return (\n
\n {fetching\n ? \n :\n \n \n \n \n \n {admins.length === 0\n ? Hittade inga admins.\n :\n \n \n \n \n Namn\n \n \n \n \n { admins.map((admin) => (\n \n \n {admin.name}\n \n \n \n \n \n \n \n {/*\n \n \n \n \n \n \n \n \n */}\n \n \n ))}\n \n
\n
\n }\n
\n }\n
\n );\n};\n\nexport default Index;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\n\nimport { makeStyles, Grid } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n section: {\n marginBottom: 70,\n },\n item: {\n padding: theme.spacing(4, 2),\n borderBottom: '1px solid black'\n },\n header: {\n fontWeight: 'bold',\n marginBottom: 10,\n },\n}));\n\nconst Statements = ({ statements, role }) => {\n const classes = useStyles();\n return (\n \n
\n {statements.length === 0\n ? 'Hittade inga utlåtanden.'\n : statements.map((statement) =>\n \n \n
\n {statement.patient.name}\n {statement.case !== null &&\n - Tillhör följande ärende\n }\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
)\n }\n
\n
\n );\n};\n\nStatements.propTypes = {\n statements: PropTypes.array.isRequired,\n role: PropTypes.string.isRequired,\n};\n\nexport default Statements;\n","import React, { useEffect } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport {\n IconButton, LinearProgress, makeStyles, Tab, Tabs, Tooltip, Typography\n} from '@material-ui/core';\nimport { PersonAdd as PersonAddIcon } from '@material-ui/icons';\n\nimport { useDoctorDispatch, useDoctorState } from 'modules/admin/doctors';\nimport { useAccountDispatch } from 'modules/account';\n\nimport Statements from './show/Statements';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: theme.spacing(3, 2)\n },\n title: {\n marginBottom: 20,\n marginLeft: 10\n }\n}));\n\nconst Show = () => {\n const { role, id, view } = useParams();\n const classes = useStyles();\n\n const { fetchSingle, clearCurrent } = useDoctorDispatch();\n const { fetching, current } = useDoctorState();\n const { createLabportalenAccount } = useAccountDispatch();\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n return (\n
\n {fetching\n ? \n : Object.entries(current).length === 0\n ? Hittade ingen läkare me detta id.\n :\n \n \n Läkarprofil för {current.name} ({current.personalNumber})\n \n {current.labPortalenUserGuid === null &&\n \n createLabportalenAccount(current.applicationUserId)}>\n \n \n \n }\n \n \n \n
\n {{\n statements: ,\n }[view]}\n
\n
\n }\n
\n );\n};\n\nexport default Show;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport {\n TextField, makeStyles, Select, MenuItem, FormControl\n} from '@material-ui/core';\nimport { UserCreationSchema } from 'utils/validation';\nimport FormDialog from 'components/FormDialog';\nimport { useDoctorDispatch } from 'modules/admin/doctors';\n\nimport { DoctorType } from 'utils/enums';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n },\n '& > button': {\n textAlign: 'right'\n }\n },\n formActions: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n}));\n\nconst CreateDoctorForm = ({ toggleOpen, open }) => {\n const classes = useStyles();\n const { createDoctor } = useDoctorDispatch();\n return (\n {\n createDoctor(values).then(() => {\n toggleOpen();\n actions.resetForm();\n }).catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n \n
\n \n \n Läkare\n Terapeut\n \n \n \n \n \n \n \n \n )}\n />\n );\n};\n\nCreateDoctorForm.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired\n};\n\nexport default CreateDoctorForm;\n","import React, { useEffect } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport {\n LinearProgress, IconButton, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, Box\n} from '@material-ui/core';\n\nimport {\n ArrowForward as ArrowForwardIcon,\n Delete as DeleteIcon,\n Edit as EditIcon,\n} from '@material-ui/icons';\n\nimport { useDoctorDispatch, useDoctorState } from 'modules/admin/doctors';\n\nimport ButtonBar from 'components/ButtonBar';\nimport useToggle from 'hooks/useToggle';\nimport CreateDoctorForm from './index/CreateDoctorForm';\n\nconst Index = () => {\n const [open, toggleOpen] = useToggle(false);\n\n const { fetchAll } = useDoctorDispatch();\n const { fetching, fetched, doctors } = useDoctorState();\n\n useEffect(() => {\n if (!fetched) fetchAll();\n }, []);\n\n const buttons = [{\n name: 'Lägg till läkare',\n icon: 'add',\n onClickEvent: 'func',\n onClick: toggleOpen\n }, {\n icon: 'refresh',\n onClickEvent: 'func',\n onClick: fetchAll\n }];\n\n return (\n
\n {fetching\n ? \n :\n \n \n \n \n \n {doctors.length === 0\n ? Hittade inga läkare.\n :\n \n \n \n Namn\n Typ\n \n \n \n \n { doctors.map((doctor) => (\n \n \n {doctor.name}\n \n {doctor.type === 'Doctor' ? 'Läkare' : doctor.type === 'Therapist' ? 'Terapeut' : ''}\n \n \n \n \n \n \n {/*\n \n \n \n \n \n \n \n \n */}\n \n \n ))}\n \n
\n }\n
\n }\n
\n );\n};\n\nexport default Index;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik } from 'formik';\nimport { TextField, makeStyles } from '@material-ui/core';\n\nimport FormDialog from 'components/FormDialog';\n\nimport { useCaseDispatch } from 'modules/admin/cases';\n\nimport { ReferralsAddedToCaseSchema } from 'utils/validation';\n\nconst useStyles = makeStyles(() => ({\n form: {\n '& > div': {\n marginBottom: 10\n }\n },\n}));\n\nconst UploadReferralForm = ({\n toggleOpen, open, caseId\n}) => {\n const classes = useStyles();\n const { addReferrals } = useCaseDispatch();\n\n return (\n {\n addReferrals(caseId, values.referralIds.replace(/ /g, '').split(','))\n .then(() => {\n actions.resetForm();\n toggleOpen();\n })\n .catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm\n }) => (\n {\n toggleOpen();\n resetForm();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n
\n \n \n \n )}\n />\n );\n};\n\nUploadReferralForm.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n caseId: PropTypes.number.isRequired,\n};\n\nexport default UploadReferralForm;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n ExpansionPanel,\n ExpansionPanelSummary,\n ExpansionPanelDetails,\n Typography,\n Grid,\n makeStyles,\n TextField,\n FormControl, Select, MenuItem, Checkbox, ListItemText\n} from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nimport { surveys } from 'utils/surveys';\n\nconst useStyles = makeStyles(() => ({\n item: {\n marginBottom: 20,\n },\n input: {\n height: 40\n },\n textField: {\n '& > div:first-child': {\n height: 40\n }\n },\n select: {\n padding: '10px 20px',\n },\n button: {\n float: 'right',\n marginLeft: 10\n },\n questionInputWrapper: {\n margin: '10px 0'\n },\n questionInput: {\n '& > div': {\n padding: '10px 10px 10px 20px'\n }\n },\n}));\n\nconst HealthSurveyForm = ({\n gender, surveyVersionId, updateAnswers, updateExtraData\n}) => {\n const classes = useStyles();\n\n // Gets the latest survey\n const survey = surveys.find((s) => s.version === surveyVersionId);\n\n const numberOfQuestions = () => {\n let questions = 0;\n for (let s = 0; s < survey.sections.length; s++) {\n for (let q = 0; q < survey.sections[s].questions.length; q++) {\n if (survey.sections[s].questions[q].gender && gender !== 'Unknown') {\n questions += survey.sections[s].questions[q].gender === gender ? 1 : 0;\n } else {\n questions++;\n }\n }\n }\n return questions;\n };\n const [answers, setAnswers] = useState(new Array(numberOfQuestions()).fill().map(() => ({\n answer: [''], input: '', section: null, question: null\n })));\n const [extraData, setExtraData] = useState({\n comment: ''\n });\n const addAnswer = (question, sIndex, qIndex, answer, multiple = false) => {\n const newAnswers = [...answers];\n newAnswers[question].question = qIndex;\n newAnswers[question].section = sIndex;\n if (multiple) {\n if (answers[question].answer[0] === '') {\n newAnswers[question].answer = [answer[1]];\n } else {\n newAnswers[question].answer = answer;\n }\n } else {\n newAnswers[question].answer = [answer];\n }\n setAnswers(newAnswers);\n updateAnswers(answers);\n };\n\n const handleUpdateExtraData = (key, value) => {\n if (key in extraData) {\n const newExtraData = { ...extraData };\n newExtraData[key] = value;\n setExtraData(newExtraData);\n updateExtraData(extraData);\n }\n };\n\n const addAnswerInput = (question, input) => {\n answers[question].input = input;\n setAnswers(answers);\n updateAnswers(answers);\n };\n\n let a = 0;\n return (\n \n {survey.sections.map((section, sIndex) => (\n \n }\n >\n {section.name}\n \n \n \n {section.questions.map((question, qIndex) => {\n if (question.gender && gender !== 'Unknown') {\n if (question.gender !== gender) return null;\n }\n a++;\n const b = a - 1;\n return (\n \n {question.multiple ?\n \n \n {question.name}\n {\n if (answers[0] === '') return 'Välj svar';\n return answers.map((answer) => question.choices[answer].name).join(', ');\n }}\n onChange={(e) => addAnswer(b, sIndex, qIndex, e.target.value, true)}\n inputProps={{\n name: `question-${section.name}-${qIndex}-name`,\n id: `question-${section.name}-${qIndex}`,\n }}\n >\n {question.choices.map((choice, cIndex) =>\n \n -1} color=\"primary\"/>\n \n )\n }\n \n \n {answers[b].answer[0] !== '' && question.input !== '' &&\n
\n {question.input}\n addAnswerInput(b, e.target.value)}\n />\n
\n }\n
\n : question.type === 'input' ?\n
\n {question.name}\n addAnswer(b, sIndex, qIndex, e.target.value)}\n />\n
\n :\n \n \n {question.name}\n addAnswer(b, sIndex, qIndex, e.target.value)}\n inputProps={{\n name: `question-${section.name}-${qIndex}-name`,\n id: `question-${section.name}-${qIndex}`,\n }}\n >\n {answers[b].answer[0] === '' && }\n {question.choices.map((choice, cIndex) =>\n )\n }\n }\n \n \n {answers[b].answer[0] !== '' && (question.choices[answers[b].answer].input !== '' || question.input !== '') &&\n
\n {question.choices[answers[b].answer].input !== ''\n ? question.choices[answers[b].answer].input\n : question.input !== '' && question.input\n }\n addAnswerInput(b, e.target.value)}\n />\n
\n }\n
\n }\n
);\n })}\n
\n
\n
))}\n \n }\n >\n Övrigt\n \n \n
Övriga synpunkter
\n handleUpdateExtraData('comment', e.target.value)}\n />\n
\n
\n
\n );\n};\n\nHealthSurveyForm.propTypes = {\n gender: PropTypes.string.isRequired,\n surveyVersionId: PropTypes.number.isRequired,\n updateAnswers: PropTypes.func.isRequired,\n updateExtraData: PropTypes.func.isRequired,\n};\n\nexport default HealthSurveyForm;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useCaseDispatch } from 'modules/admin/cases';\nimport FormDialog from 'components/FormDialog';\nimport HealthSurveyForm from 'components/HealthSurveyForm';\nimport { getLatestVersionId } from 'utils/surveys';\n\nconst CreateHealthSurveyDialog = ({\n toggleOpen, open, currentCase, healthSurveyId,\n}) => {\n const { updateSurveyAnswers } = useCaseDispatch();\n\n // Gets the latest survey\n const versionId = getLatestVersionId();\n\n const [answers, setAnswers] = useState([]);\n const [extraData, setExtraData] = useState({});\n const [touched, setTouched] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setTouched(true);\n setIsSubmitting(true);\n if (!answers.every((answer) => answer.answer.length > 0 && answer.answer[0] !== '')) {\n setIsSubmitting(false);\n return;\n }\n await updateSurveyAnswers(currentCase.id, healthSurveyId, versionId, {\n survey: answers,\n extra: extraData,\n });\n setIsSubmitting(false);\n };\n\n return (\n {\n toggleOpen();\n }}\n onSubmitDisabled={isSubmitting}\n onSubmit={handleSubmit}\n >\n {versionId ?\n \n :\n 'Kunde inte generera enkäten. Kontakta utvecklarna om problemet består.'\n }\n {touched && (answers.length === 0 || !answers.every((answer) => answer.answer.length > 0 && answer.answer[0] !== ''))\n ?\n Vänligen besvara samtliga frågor.\n : null\n }\n \n );\n};\n\nCreateHealthSurveyDialog.propTypes = {\n open: PropTypes.bool.isRequired,\n toggleOpen: PropTypes.func.isRequired,\n currentCase: PropTypes.object.isRequired,\n healthSurveyId: PropTypes.number.isRequired,\n};\n\nexport default CreateHealthSurveyDialog;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n makeStyles, Button\n} from '@material-ui/core';\nimport useToggle from 'hooks/useToggle';\n\nimport HealthSurveyAnswers from 'components/HealthSurveyAnswers';\nimport CreateHealthSurveyDialog from './CreateHealthSurveyDialog';\n\nconst useStyles = makeStyles(() => ({\n button: {\n marginTop: 10,\n },\n}));\n\nconst HealthSurvey = ({ survey, role, currentCase }) => {\n const classes = useStyles();\n const [showCreateHealthSurvey, toggleCreateHealthSurvey] = useToggle();\n return (\n \n {!survey.answered ?\n \n
Hälsoenkäten har inte blivit besvarad ännu.
\n { role === 'admin' &&\n \n \n Skapa hälsoenkätsvar\n \n \n \n }\n
\n :\n \n }\n
\n\n );\n};\n\nHealthSurvey.propTypes = {\n survey: PropTypes.object.isRequired,\n role: PropTypes.string.isRequired,\n currentCase: PropTypes.object.isRequired,\n};\n\nexport default HealthSurvey;\n","import React, { useEffect } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport {\n LinearProgress, makeStyles, Tab, Tabs, Typography, Button\n} from '@material-ui/core';\n\nimport { useCaseDispatch as useCaseDispatchAdmin, useCaseState as useCaseStateAdmin } from 'modules/admin/cases';\nimport { useCaseDispatch as useCaseDispatchDoctor, useCaseState as useCaseStateDoctor } from 'modules/doctor/cases';\nimport useToggle from 'hooks/useToggle';\n\nimport Comments from 'components/Comments';\nimport Statements from 'components/Statements';\nimport Attachments from 'components/Attachments';\nimport TestResults from 'components/TestResults';\n\nimport UploadReferralForm from './show/UploadReferralForm';\nimport HealthSurvey from './show/HealthSurvey';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: theme.spacing(3, 2)\n },\n title: {\n marginBottom: 20,\n marginLeft: 10\n }\n}));\n\nconst Show = () => {\n const { role, id, view } = useParams();\n const classes = useStyles();\n const [showUploadReferral, toggleShowUploadReferral] = useToggle();\n\n const useCaseDispatch = role === 'admin' ? useCaseDispatchAdmin : useCaseDispatchDoctor;\n const useCaseState = role === 'admin' ? useCaseStateAdmin : useCaseStateDoctor;\n\n const { fetching, current } = useCaseState();\n const {\n fetchSingle, clearCurrent, createAttachment, deleteTestResult\n } = useCaseDispatch();\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n const handleDeleteTestResult = (testId) => {\n if (role === 'admin' && deleteTestResult) {\n deleteTestResult(testId, parseInt(id, 10));\n }\n };\n\n return (\n
\n {fetching\n ? \n : Object.entries(current).length === 0 ?\n Kunde inte hitta ärende med angivet id.\n :\n \n \n Ärende för {current.patient.name} ({current.patient.personalNumber})\n \n {current.healthPackageName &&\n \n Hälsopaket: {current.healthPackageName}\n \n }\n {current.referralIds && current.referralIds.length > 0 &&\n \n Vi söker fortfarande svar från följande remisser (rid): {current.referralIds.join(', ')}\n \n }\n {role === 'admin' &&\n \n \n Lägg till remisser\n \n \n \n }\n \n \n \n \n \n \n \n
\n {{\n tests:\n fetchSingle(parseInt(id, 10), false)}\n deleteTest={handleDeleteTestResult}\n type=\"case\"\n />,\n 'health-survey':\n ,\n attachments:\n ,\n statements:\n ,\n comments:\n ,\n }[view]}\n
\n
\n }\n
\n );\n};\n\nexport default Show;\n","import React, { useEffect } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport {\n LinearProgress, makeStyles, Typography, IconButton, Tooltip\n} from '@material-ui/core';\n\nimport { AssignmentTurnedIn as SignIcon } from '@material-ui/icons';\n\nimport { useTestDispatch as useTestDispatchAdmin, useTestState as useTestStateAdmin } from 'modules/admin/tests';\nimport { useTestDispatch as useTestDispatchDoctor, useTestState as useTestStateDoctor } from 'modules/doctor/tests';\n\nconst useStyles = makeStyles(() => ({\n title: {\n marginBottom: 20,\n marginLeft: 10\n },\n signContainer: {\n marginBottom: 20,\n marginLeft: 10,\n marginRight: 10,\n borderBottom: '1px solid black'\n }\n}));\nconst Show = () => {\n const { role, id } = useParams();\n const classes = useStyles();\n\n const useTestDispatch = role === 'admin' ? useTestDispatchAdmin : useTestDispatchDoctor;\n const useTestState = role === 'admin' ? useTestStateAdmin : useTestStateDoctor;\n\n const { fetchSingle, signTestResult, clearCurrent } = useTestDispatch();\n const { fetching, current } = useTestState();\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n return (\n
\n {fetching\n ? \n : Object.entries(current).length === 0\n ? 'Hittade inget test.'\n :\n \n \n Provresultat för {current.patient.name} ({current.patient.personalNumber}) {current.case !== null && ärende (#{current.case.id})}\n \n {!current.signed &&\n
\n \n Efter du har signerat resultatet nedan, klicka knappen nedan för att göra provresultatet synligt för klienten. Det är viktigt att du försäkrar dig om att resultatet nedan är signerat innan du klickar här eftersom klienten annars kan ändra i provresultatet.\n \n \n signTestResult(current.id)}>\n \n \n \n
\n }\n {current.attachmentFile !== null ?\n \n : current.labPortalenUrl !== '' &&\n {\n /* document.getElementById('btnSign').addEventListener('click',function(){\n console.log('editingClick')\n }); */\n }}\n />\n }\n
\n }\n
\n );\n};\n\nexport default Show;\n","import React, { useEffect } from 'react';\nimport {\n Avatar, Button, Grid, makeStyles, TextField, LinearProgress\n} from '@material-ui/core';\nimport { Formik } from 'formik';\n\nimport { MessageCreationSchema } from 'utils/validation';\nimport { useMessageDispatch, useMessageState } from 'modules/patient/messages';\n\nconst useStyles = makeStyles((theme) => ({\n message: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n contentWrapper: {\n borderBottom: '1px solid #C0C0C0',\n paddingBottom: 20,\n },\n messageHeader: {\n fontSize: 20,\n marginBottom: 10,\n fontWeight: '#C0C0C0'\n },\n date: {\n color: 'grey'\n },\n content: {\n whiteSpace: 'pre-line',\n wordWrap: 'break-word'\n },\n addNew: {\n marginTop: 30,\n padding: 10,\n '& > .header': {\n fontSize: 20\n },\n '& > div': {\n marginBottom: 10\n },\n '& .bottom': {\n display: 'flex',\n justifyContent: 'space-between'\n }\n }\n}));\n\nconst Messages = () => {\n const classes = useStyles();\n const { fetchAll, createMessage } = useMessageDispatch();\n const { fetching, messages } = useMessageState();\n\n useEffect(() => {\n fetchAll();\n }, []);\n\n const MessageForm = () =>\n {\n createMessage(values).then(() => action.resetForm()).catch(() => action.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting\n }) => (\n
\n
Lägg till ett nytt meddelande
\n \n
\n \n Lägg till\n \n
\n \n )}\n />;\n\n return (\n
\n {fetching ?\n \n : messages.length === 0 ?\n 'Hittade inga meddelanden'\n : messages.map((message) =>\n \n \n {message.creatorName.charAt(0)}\n \n \n \n \n
\n {message.creatorName}\n
\n
{message.content}
\n
\n \n {message.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n {MessageForm()}\n
\n );\n};\n\nexport default Messages;\n","import React, { useEffect } from 'react';\nimport {\n Avatar, Grid, Typography, LinearProgress, makeStyles, ExpansionPanelSummary, ExpansionPanelDetails, ExpansionPanel,\n} from '@material-ui/core';\n\nimport { useStatementDispatch, useStatementState } from 'modules/patient/statements';\nimport {DoctorType} from \"../../utils/enums\";\nimport {ExpandMore as ExpandMoreIcon} from \"@material-ui/icons\";\n\nconst useStyles = makeStyles((theme) => ({\n header: {\n marginLeft: 10\n },\n message: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n content: {\n whiteSpace: 'pre-line',\n wordWrap: 'break-word'\n },\n contentWrapper: {\n borderBottom: '1px solid #C0C0C0',\n paddingBottom: 20,\n },\n messageHeader: {\n fontSize: 20,\n marginBottom: 10,\n fontWeight: '#C0C0C0'\n },\n date: {\n color: 'grey'\n },\n expansionDetails: {\n flexDirection: 'column'\n },\n}));\n\nconst Statements = () => {\n const classes = useStyles();\n const { fetchAll } = useStatementDispatch();\n const { fetching, statements } = useStatementState();\n\n useEffect(() => {\n fetchAll();\n }, []);\n\n let healthStatements, doctorStatements, therapistStatements;\n if (Object.keys(statements).length > 0) {\n healthStatements = statements.healthStatements;\n doctorStatements = statements.doctorStatements\n .filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Doctor]);\n therapistStatements = statements.doctorStatements\n .filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Therapist]);\n }\n\n return (fetching\n ? \n : Object.keys(statements).length > 0 &&\n \n \n }\n >\n \n {healthStatements.length > 0\n ? 'Hälsoutlåtanden'\n : 'Hittade inga hälsoutlåtanden'\n }\n \n \n \n {healthStatements.map((statement) =>\n \n \n {statement.admin.name.charAt(0)}\n \n \n \n \n
\n {statement.admin.name}\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n
\n
\n \n }\n >\n \n {doctorStatements.length > 0\n ? 'Läkarutlåtanden'\n : 'Hittade inga läkarutlåtanden'\n }\n \n \n \n {doctorStatements.map((statement) =>\n \n \n {statement.doctor.name.charAt(0)}\n \n \n \n \n
\n {statement.doctor.name}\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n
\n
\n \n }\n >\n \n {therapistStatements.length > 0\n ? 'Terapeututlåtanden'\n : 'Hittade inga terapeututlåtanden'\n }\n \n \n \n {therapistStatements.map((statement) =>\n \n \n {statement.doctor.name.charAt(0)}\n \n \n \n \n
\n {statement.doctor.name}\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n
\n
\n
\n );\n};\n\nexport default Statements;\n","import React from 'react';\nimport { Formik } from 'formik';\nimport { useAccountState, useAccountDispatch } from 'modules/account';\nimport {\n Grid, Button, makeStyles, TextField, Typography\n} from '@material-ui/core';\nimport { PatientCreationSchema } from 'utils/validation';\n\nconst useStyles = makeStyles(() => ({\n form: {\n margin: '0 10px',\n '& > div': {\n marginBottom: 10\n },\n '& h6': {\n marginBottom: 15\n }\n },\n}));\n\nconst Settings = () => {\n const classes = useStyles();\n const { user } = useAccountState();\n const { updateAccountAsPatient } = useAccountDispatch();\n\n return (\n \n \n {\n updateAccountAsPatient(user.patientId, {\n ...values,\n length: values.length === '' ? 0 : parseInt(values.length, 10),\n weight: values.weight === '' ? 0 : parseInt(values.weight, 10)\n }).then(() => {\n actions.resetForm();\n })\n .catch(() => actions.setSubmitting(false));\n }}\n render={({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n }) =>\n
\n Uppdatera din information nedan.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default Settings;\n","import React, { useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport {\n LinearProgress, Table, TableBody, TableCell, TableHead, TableRow, makeStyles\n} from '@material-ui/core';\nimport {\n Clear as CrossIcon,\n Done as DoneIcon,\n} from '@material-ui/icons';\n\nimport { useSurveyState, useSurveyDispatch } from 'modules/patient/surveys';\n\nconst useStyles = makeStyles((theme) => ({\n crossIcon: {\n marginLeft: 5,\n fill: theme.palette.error.main,\n },\n doneIcon: {\n marginLeft: 5,\n fill: theme.palette.success.main,\n },\n tableCell: {\n display: 'flex',\n alignItems: 'center'\n }\n}));\n\nconst Index = () => {\n const classes = useStyles();\n const { fetchAll } = useSurveyDispatch();\n const { surveys, fetching } = useSurveyState();\n\n useEffect(() => {\n fetchAll();\n }, []);\n\n return (\n
\n {fetching\n ? \n : surveys.length === 0\n ? 'Hittade inga hälsoenkäter'\n :\n \n \n \n Status\n Datum\n \n \n \n {surveys.map((survey) => (\n \n \n {Object.keys(survey.answers).length === 0\n ? Inväntar svar\n : Besvarad\n }\n \n \n {survey.createdAt.split('T')[0]}\n \n \n ))}\n \n
\n }\n
\n );\n};\n\nexport default Index;\n","import React, { useEffect, useState } from 'react';\nimport {\n LinearProgress, Button, Typography, Grid, makeStyles\n} from '@material-ui/core';\n\nimport { useParams } from 'react-router-dom';\nimport { useSurveyDispatch, useSurveyState } from 'modules/patient/surveys';\nimport { useAccountState } from 'modules/account';\n\nimport HealthSurveyAnswers from 'components/HealthSurveyAnswers';\nimport HealthSurveyForm from 'components/HealthSurveyForm';\nimport { surveys, getLatestVersionId } from 'utils/surveys';\n\nconst useStyles = makeStyles(() => ({\n button: {\n marginTop: 20,\n marginBottom: 20,\n marginLeft: 10\n }\n}));\n\nconst Show = () => {\n const classes = useStyles();\n const { user: { gender } } = useAccountState();\n\n // Gets the latest survey\n const versionId = getLatestVersionId();\n\n const [answers, setAnswers] = useState([]);\n const [extraData, setExtraData] = useState({});\n const [touched, setTouched] = useState(false);\n const [loading, setLoading] = useState(false);\n const { id, role } = useParams();\n const { fetchSingle, clearCurrent, update } = useSurveyDispatch();\n const { current, fetching } = useSurveyState();\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setLoading(true);\n if (!answers.every((answer) => answer.answer.length > 0 && answer.answer[0] !== '')) {\n setLoading(false);\n return;\n }\n await update(current.id, versionId, {\n survey: answers,\n extra: extraData,\n });\n setLoading(false);\n };\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n return (fetching ?\n \n :\n \n {Object.keys(current).length > 0 && Object.keys(current.answers).length === 0 ?\n
\n {versionId ?\n \n :\n 'Kunde inte generera enkäten. Kontakta oss via meddelande om problemet består.'\n }\n \n \n \n {touched && (answers.length === 0 || !answers.every((answer) => answer.answer.length > 0 && answer.answer[0] !== ''))\n ? 'Vänligen besvara samtliga frågor.'\n : ''\n }\n \n \n \n setTouched(true)}\n >\n Skicka svar\n \n \n \n \n : Object.keys(current).length > 0 && Object.keys(current.answers).length > 0 &&\n \n }\n
\n );\n};\n\nexport default Show;\n","import React, { useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport {\n LinearProgress, Table, TableBody, TableCell, TableHead, TableRow\n} from '@material-ui/core';\n\nimport { useCaseState, useCaseDispatch } from 'modules/patient/cases';\n\nconst Index = () => {\n const { fetchAll } = useCaseDispatch();\n const { cases, fetching } = useCaseState();\n\n useEffect(() => {\n fetchAll();\n }, []);\n return (\n
\n {fetching\n ? \n : cases.length === 0\n ? 'Hittade inte ärenden'\n :\n \n \n \n Hälsopaket\n Datum\n \n \n \n {cases.map((c) => (\n \n \n {c.healthPackageName ? c.healthPackageName : ''}\n \n \n {c.createdAt.split('T')[0]}\n \n \n ))}\n \n
\n }\n
\n );\n};\n\nexport default Index;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport {\n Table, TableBody, TableCell, TableHead, TableRow\n} from '@material-ui/core';\n\nconst TestResults = ({ testResults }) => (testResults.length === 0\n ? 'Hittade inga provresultat'\n :\n \n \n \n Provtyp\n Titel\n Datum\n \n \n \n {testResults.map((result) => (\n \n \n {result.type}\n \n \n {result.title ? result.title : ''}\n \n \n {result.createdAt.split('T')[0]}\n \n \n ))}\n \n
\n);\n\nTestResults.propTypes = {\n testResults: PropTypes.array.isRequired,\n};\n\nexport default TestResults;\n","import React from 'react';\nimport {\n Avatar, ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Grid, makeStyles, Typography\n} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport {DoctorType} from \"../../../../utils/enums\";\nimport {ExpandMore as ExpandMoreIcon} from \"@material-ui/icons\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: '0 10px',\n },\n message: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n content: {\n whiteSpace: 'pre-line',\n wordWrap: 'break-word'\n },\n contentWrapper: {\n borderBottom: '1px solid #C0C0C0',\n paddingBottom: 20,\n },\n messageHeader: {\n fontSize: 20,\n marginBottom: 10,\n fontWeight: '#C0C0C0'\n },\n date: {\n color: 'grey'\n },\n expansionDetails: {\n flexDirection: 'column'\n },\n}));\nconst Statements = ({ healthStatements, doctorStatements }) => {\n const classes = useStyles();\n\n const doctorRoleStatements = doctorStatements\n .filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Doctor]);\n const therapistStatements = doctorStatements\n .filter((statement) => statement.doctor.type === Object.keys(DoctorType)[DoctorType.Therapist]);\n\n return (\n
\n \n }\n >\n \n {healthStatements.length > 0\n ? 'Hälsoutlåtanden'\n : 'Hittade inga hälsoutlåtanden'\n }\n \n \n \n {healthStatements.map((statement) =>\n \n \n {statement.admin.name.charAt(0)}\n \n \n \n \n
\n {statement.admin.name}\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n
\n
\n \n }\n >\n \n {doctorRoleStatements.length > 0\n ? 'Läkarutlåtanden'\n : 'Hittade inga läkarutlåtanden'\n }\n \n \n \n {doctorRoleStatements.map((statement) =>\n \n \n {statement.doctor.name.charAt(0)}\n \n \n \n \n
\n {statement.doctor.name}\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n
\n
\n \n }\n >\n \n {therapistStatements.length > 0\n ? 'Terapeututlåtanden'\n : 'Hittade inga terapeututlåtanden'\n }\n \n \n \n {therapistStatements.map((statement) =>\n \n \n {statement.doctor.name.charAt(0)}\n \n \n \n \n
\n {statement.doctor.name}\n
\n
{statement.content}
\n
\n \n {statement.createdAt.split('T')[0]}\n \n
\n
\n
)\n }\n
\n
\n
\n );\n};\n\nStatements.propTypes = {\n healthStatements: PropTypes.array.isRequired,\n doctorStatements: PropTypes.array.isRequired,\n};\n\nexport default Statements;\n","import React, { useEffect } from 'react';\nimport { Link, useParams, useHistory } from 'react-router-dom';\nimport {\n LinearProgress, makeStyles, Tab, Tabs\n} from '@material-ui/core';\n\nimport { useCaseDispatch, useCaseState } from 'modules/patient/cases';\n\nimport Attachments from 'components/Attachments';\nimport TestResults from './show/TestResults';\nimport Statements from './show/Statements';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n },\n}));\n\nconst Show = () => {\n const { id, view } = useParams();\n const history = useHistory();\n const classes = useStyles();\n\n const { fetching, current } = useCaseState();\n const { fetchSingle, clearCurrent, createAttachment } = useCaseDispatch();\n\n useEffect(() => {\n if (!view) {\n history.push(`/patient/cases/${id}/tests`);\n }\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\n\n return (\n
\n {fetching\n ? \n : Object.entries(current).length === 0 ?\n Hittade inget ärende.\n :\n \n \n \n \n \n \n
\n {{\n tests: ,\n statements:\n ,\n attachments:\n \n }[view]}\n
\n
\n }\n
\n );\n};\n\nexport default Show;\n","import React, { useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport {\n LinearProgress, Table, TableBody, TableCell, TableHead, TableRow\n} from '@material-ui/core';\n\nimport { useTestState, useTestDispatch } from 'modules/patient/tests';\n\nconst Index = () => {\n const { fetchAll } = useTestDispatch();\n const { tests, fetching } = useTestState();\n\n useEffect(() => {\n fetchAll();\n }, []);\n return (\n
\n {fetching\n ? \n : tests.length === 0\n ? 'Hittade inte provresultat'\n :\n \n \n \n Provtyp\n Titel\n Datum\n \n \n \n {tests.map((test) => (\n \n \n {test.type === 'ManualUpload' ? 'Manuellt uppladdat test' : test.type === 'LabportalenTest' ? 'Prov från labportalen' : ''}\n \n \n {test.title !== '' ? test.title : ''}\n \n \n {test.createdAt.split('T')[0]}\n \n \n ))}\n \n
\n }\n
\n );\n};\n\nexport default Index;\n","import React, { useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { LinearProgress } from '@material-ui/core';\n\nimport { useTestDispatch, useTestState } from 'modules/patient/tests';\n\nconst Show = () => {\n const { id } = useParams();\n\n const { fetchSingle, clearCurrent } = useTestDispatch();\n const { fetching, current } = useTestState();\n\n useEffect(() => {\n fetchSingle(parseInt(id, 10));\n return () => clearCurrent();\n }, []);\nconsole.log(current)\n return (\n
\n {fetching\n ? \n : Object.entries(current).length === 0 ?\n 'Test not found.'\n : current.attachmentFile !== null ?\n \n : current.labPortalenUrl !== '' &&\n \n }\n
\n );\n};\n\nexport default Show;\n","import React from 'react';\nimport Attachments from 'components/Attachments';\nimport { useAccountState } from 'modules/account';\nimport { LinearProgress } from '@material-ui/core';\n\nconst PatientAttachments = () => {\n const {\n user: {\n patientAttachments\n }\n } = useAccountState();\n\n if (!patientAttachments) {\n return ;\n }\n\n return (\n \n );\n};\n\nexport default PatientAttachments;\n","import React from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport AuthRoute from 'components/AuthRoute';\n\nimport Layout from 'layout';\n\nimport Home from 'views/Home';\nimport PatientLogin from 'views/PatientLogin';\nimport DevLogin from 'views/DevLogin';\nimport DoctorLogin from 'views/DoctorLogin';\nimport AdminLogin from 'views/AdminLogin';\nimport Notifications from 'views/Notifications';\n\nimport Laboratories from 'views/Laboratories';\nimport Referrals from 'views/Referrals';\nimport HealthPackages from 'views/HealthPackages';\nimport HealthSurvey from 'views/HealthSurvey';\n\nimport PatientsShow from 'views/patients/Show';\nimport PatientsIndex from 'views/patients/Index';\n\nimport AdminsShow from 'views/admins/Show';\nimport AdminsIndex from 'views/admins/Index';\n\nimport DoctorsShow from 'views/doctors/Show';\nimport DoctorsIndex from 'views/doctors/Index';\n\nimport CasesShow from 'views/cases/Show';\n\nimport TestsShow from 'views/tests/Show';\n\n// Patient views\nimport Messages from 'views/patient/Messages';\nimport Statements from 'views/patient/Statements';\nimport Settings from 'views/patient/Settings';\nimport PatientSurveysIndex from 'views/patient/surveys/Index';\nimport PatientSurveysShow from 'views/patient/surveys/Show';\nimport PatientCasesIndex from 'views/patient/cases/Index';\nimport PatientCasesShow from 'views/patient/cases/Show';\nimport PatientTestsIndex from 'views/patient/tests/Index';\nimport PatientTestsShow from 'views/patient/tests/Show';\nimport Attachments from 'views/patient/Attachments';\n\n\nconst Routes = () => (\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n\n \n\n \n \n \n \n \n \n \n);\n\nexport default Routes;\n","import React from 'react';\nimport { Provider } from 'react-redux';\nimport { createBrowserHistory } from 'history';\nimport { Router } from 'react-router-dom';\nimport { authenticate } from 'modules/account';\nimport httpService from './services/httpService';\n\nimport configureStore from './configureStore';\nimport Routes from './Routes';\n\n// Create browser history to use in the Redux store\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst history = createBrowserHistory({ basename: baseUrl });\n\n// Get the application-wide store instance, prepopulating with state from the server where available.\nconst initialState = window.initialReduxState;\nconst store = configureStore(history, initialState);\n\nhttpService.setupInterceptors(store, history);\n// Check if user is authenticated when first loading/refreshing browser and sets redux state\nstore.dispatch(authenticate());\n\n\nexport default () => (\n \n \n \n \n \n);\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { ConnectedRouter } from 'connected-react-router';\nimport { createBrowserHistory } from 'history';\n\nimport configureStore from './configureStore';\nimport App from './App';\nimport { unregister } from './registerServiceWorker';\n\n// Create browser history to use in the Redux store\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst history = createBrowserHistory({ basename: baseUrl });\n\n// Get the application-wide store instance, prepopulating with state from the server where available.\nconst initialState = window.initialReduxState;\nconst store = configureStore(history, initialState);\n\nconst rootElement = document.getElementById('root');\n\nReactDOM.render(\n \n \n \n \n ,\n rootElement\n);\n\nunregister();\n"],"sourceRoot":""}